ArkToolbox now released for Windows/ Mac as well as Linux

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:

More Demo Videos:

arducopter simulation with hardware/software in the loop:

rover hardware in the loop:

sailboat control system:

rocket control system:

Wiki for getting started on ArkToolbox for ScicosLab:


Grab JSBSim Trimming GUI here:

Video tutorial for JSBSim Trimming GUI:

Grab Aircraft Models to Run/ Fly in FlightGear Here (includes Arducopter/ EasyStar):

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.

Views: 5160

Comment by Leo Rampen on April 24, 2012 at 4:31am

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!

Comment by Leo Rampen on April 24, 2012 at 6:24am

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!

Comment by James Goppert on May 16, 2012 at 9:35pm

Glad to hear you got your setup working. Let me know how the mac package goes.

Comment by James Goppert on May 17, 2012 at 8:33am

I renamed the toolbox since I am in the process of adding scilab support in addition to scicoslab.

Comment by Jiri Freyvald on June 4, 2012 at 4:40am

Hi James,

I would like to install arktoolbox for xcos.

I have scilab-5.3.3 (xcos) installed,

but when i started install arktoolbox it ended with error message:

** Finding libraries
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (MESSAGE):
  Could NOT find ScicosLab (missing: SCICOSLAB_SCILAB_PROGRAM

Is there special CMakeLists.txt for build with scilab/xcos ?

Comment by James Goppert on June 4, 2012 at 12:23pm

In the development version I'm starting to work on XCos support. Currently only ScicosLab is supported:

Comment by Jiri Freyvald on June 5, 2012 at 9:01am

Ok, i installed scicoslab-4.4.1 (as AUR package for archlinux)

but I received the same error message.

Probably different executable for scicoslab?

Mine is:


but even if I created link to

ln -s /usr/bin/scicoslab /usr/local/bin/scilab


ln -s /usr/bin/scicoslab /usr/local/scilab

I received the same error

any clue?

Comment by James Goppert on June 5, 2012 at 9:25am

Try removing your CMakeCache.txt file. It will force it to search for your installed programs again.

Comment by Jiri Freyvald on June 5, 2012 at 10:51am

it didn't help
but i made some progress.
i have found in cmake/arkcmake/FindScicoslab.cmake section set (_SCICOSLAB_EXTRA_SEARCH_PATHS)
and i added the path where my scicoslab was installed (which is /usr/share/scicoslab-gtk-4.4.1)
and it seems cmake now find scicoslab

But it failed with error message "Could NOT find ArkOsg"

So I downloaded arkosg (git clone )

but according to README, run ./cmake/arkcmake/ to install this package failed

( doesn't exist)

Comment by James Goppert on June 5, 2012 at 10:53am

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.


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2018   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service