Developer

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.

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • Developer

    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!

  • Developer

    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.

  • Developer

    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

    arktools/arkhangar
    arktools: Aircraft model repository. Contribute to arktools/arkhangar development by creating an account on GitHub.
  • Hi James, Yours post is very interesting. I search the scicos file for simulate the rocket sm-3, can you help me? thanks.

  • Developer

    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.

  • Developer

    Good to hear! I'm currently building a powerpc compliant mac binary, could be awhile though, sudo port install qt4-mac-devel +universal will probably take till tomorrow.

  • Developer

    No luck on windows? I develop on debian squeeze. Tested it on oneric but was a bit buggy with gnome 3. If you want to use Ubuntu would recommend Ubuntu 10.04 LTS with gnome 2.

  • Developer
    During install of arkscicos make sure it has the correct path to your scicoslab install folder. It should install it to scicoslab-root/contrib/arkscicos-toolbox. The install assumes scicoslab-root is : program files/scicoslab 4.4.1 when it starts up.
This reply was deleted.