Getting started with DUNE, Neptus and IMC
Prerequisites
You need to use a Linux computer. I prefer Linux Mint on a Dual boot computer, but a virtual computer is also an alternative.
In your linux terminal, you need to get some basic tools. (The commands are for debian-based distros like Ubuntu)
sudo apt-get install build-essential sudo apt-get install g++ gcc openjdk-8-jdk sudo apt-get install git cmake sudo add-apt-repository ppa:webupd8team/java sudo apt-get install oracle-java8-installer sudo apt-get update
DUNE
All code and shared files are placed on a gitlab repository. You can find it here: Albertos Git. To get the code yourself, you clone it into your chosen folder.
mkdir dune_all cd dune_all git clone https://github.com/adallolio/dune.git cd dune/ git checkout AutoNaut cd .. mkdir build cd build cmake ../dune make -j8
To find out more about DUNE, read LSTS Toolchain/Dune
Neptus
Now, clone and build Neptus.
git clone https://github.com/adallolio/neptus.git cd neptus git checkout AutoNaut ant
When it is build, jump to the AutoNaut branch and open Neptus by typing
git checkout AutoNaut ./neptus.sh
Once Neptus is opened, to see your vehicle, you click Consoles/Open and choose ntnu/fixed-wind.ncon or another if you're not working on a fixed-wing vehicle.
IMC
git clone https://github.com/adallolio/imc.git cd imc/ git checkout AutoNaut
Working with DUNE
To start DUNE, you need to choose a configuration file (that is, a .ini-file). These files are placed under the /etc-folder. Assuming you are in the correct branch (AutoNaut), you can run simulations by typing
./dune -c ntnu-autonaut -p Simulation
It is also possible to see the available cmake flags and change their values in a simple GUI by running ccmake ../dune
in the build directory (requires sudo apt-get install cmake-curses-gui
).
A lot of the tasks are specified to work either in Hardware or in AP-SIL or simulation mode. Then, you write
./dune -c name.ini -p Hardware
or, of course, AP-SIL instead of Hardware.
When DUNE starts running, the messages you get tell you which tasks are starting, and whether there are any warnings or errors.
To make your own task, type
cd dune/user python ../programs/scripts/dune-create-task.py . "Your Name" Your/Task/name
To make sure your new tasks or files are compiled, type in your terminal:
make rebuild_cache
It could be wise to follow the tutorial on LSTS Dune Tutorials. The tasks communicate using IMC Messages. Read more about them on IMC. To make debugging easier, you can code your printouts as err, war, inf and cri:
war("This is a warning message. You don't need any endline.");
You can also use the debug symbols debug, trace and spew.
Cross-compiling dune
To be able to use dune on an on-board platform, you need to cross-compile it and have a version of Glued on your on-board computer. See GLUED for description of how this is done.