ArkToolbox is a toolbox for ScicosLab/ XCos (similar to Matlab simulink, but free). ArkToolbox is useful for drone control design, simulation, and testing and is compatible with FlightGear, MAVLink (QGroundControl/ArduPilotMega), and the JSBSim Trimming GUI software. This creates a completely open source toolchain for developing aircraft models, finding trim states for control, and developing controllers. The ArkToolbox also supports hardware in the loop communication via MAVLink.
Download Here: https://github.com/arktools/arktoolbox/downloads
More Demo Videos:
arducopter simulation with hardware/software in the loop: http://youtu.be/6ho8OXavEsc
rover hardware in the loop: http://youtu.be/ddysKBCKTSw
sailboat control system: http://youtu.be/5jYfah5Pcps
rocket control system: http://youtu.be/Un1YITQHUV0
Wiki for getting started on ArkToolbox for ScicosLab:
https://github.com/arktools/arktoolbox/wiki
Grab JSBSim Trimming GUI here:
https://github.com/jgoppert/jsbsim/downloads
Video tutorial for JSBSim Trimming GUI: http://youtu.be/JCjRGJTWe5k
Grab Aircraft Models to Run/ Fly in FlightGear Here (includes Arducopter/ EasyStar):
https://github.com/arktools/arkhangar
All the demos have been well tested on all platforms. If you find any errors let me know. The MAVLink blocks are running version 0.9 so I will be upgrading to version 1.0 when I get a chance to support the latest APM versions. If you have time to contribute to ArkToolbox, send me an email.
Comments
I forgot to update that readme. But it is a standard cmake install. The autobuild was just there to help with that. There is an option in arktoolbox tree to automatically build dependencies. It works in windows/ debian/ mac, so it should work for you. This will download all the deps and call cmake etc.
Try removing your CMakeCache.txt file. It will force it to search for your installed programs again.
In the development version I'm starting to work on XCos support. Currently only ScicosLab is supported: http://www.scicoslab.org/
https://github.com/arktools/arktoolbox/downloads
I renamed the toolbox since I am in the process of adding scilab support in addition to scicoslab.
Glad to hear you got your setup working. Let me know how the mac package goes.
Looking into it further (but still really just scratching the surface), perhaps the best way to communicate inter-process would be UDP. The flight gear comms are over UDP, which I guess would give me quite a good template. Unfortunately I'd probably have to write or modify a C++ library based on that flight-gear reading code to actually get something going (unless there's a way of bring UDP data into Scicos that I'm not aware of). At that point, it'd probably be easier to forgo the Scicos stuff altogether and just call JBSim and Flightgear communication libraries from Labview.
Regardless of the route I take, this is certainly really interesting, and will definitely provide inspiration even if I don't use it directly myself. If you have any further thoughts I'd love to hear them!
This looks useful! I'm going to give it a go next week with some airship control software I've written that needs some HIL testing before we try and fly the thing.
I'm not using MAVLink for comms, so I'd have to modify the input and output blocks for talking to our system. I noticed that the blocks are written in matlab (well, I guess Scilab). Is the process as simple as writing a function in a similar manner to those already written? I noticed that there's compiled versions of each block - is that necessary? Is there any good documentation on writing blocks for Scicos?
With my control system, currently data is passed to and from the hardware we're using in strings by TCP. I've got that working fairly reliably with a groundstation written in Labview. The easiest option for me would probably be to do all communications through the groundstation software, and then let the groundstation pass data to the simulation. It's a bit of a lengthy process, but it would probably be easier than re-implementing the data parsing system in scilab.
If I wanted to read aircraft state from the locally running groundstation, what would be the best option? If I was on Linux I'd probably use a named pipe to write the data out of Labview, but unfortunately if I want to use the groundstation it has to be on Windows. Could I set up a TCP client or server in Scicos to read data from Labview?
Sorry if there's a lot of questions here. Unfortunately I'm quite busy this week, but next week I might have some time to play around with stuff and probably answer most of my own questions. Any light you could shed would be a good starting block though!
I would recommend QGroundControl http://qgroundcontrol.org/. I just finished the powerpc version of arkscicos/ jsbsim let me know how they work. I'll get ardupilotone back up and running soon to test the mavlink comm. MAVLink blocks are now upated to version 1.0, but haven't been tested yet so there might be some constants that I forgot to multiply with etc.
The sm-3 simulation can be constructed using a jsbsimcomm block. Just enable the flightgear output for the visualization to work. The sm-3 model is in arkhangar on github, see: https://github.com/arktools/arkhangar
The power pc build of qt took all day today. Still working at it. Have to build openscenegraph now. I added joystick input to arkscicos. Makes it much more fun to play with manual input! You can download 0.9.0 and try it out.
-
1
-
2
of 2 Next