-
Notifications
You must be signed in to change notification settings - Fork 10
Software dependencies
Freyja is written entirely in C++ and has the following build dependencies.
-
Robot Operating System (ROS)
Most required packages can be installed byros-<distro>-desktop-full
. Freyja is known to work with Debian (8/9/10), Ubuntu (16.04-20.04) and all corresponding ROS versions. Follow official ROS install process (external site). -
Eigen3
This is usually "installed" during aros-<distro>-desktop-full
install. If you're following a different install process, make Eigen3 available as acmake.module
on the system path. Eigen is used internally by Freyja to represent vectors and matrices, and to utilise efficient operations on them. For standard "install", you can:
sudo apt-get install libeigen3-dev
-
mavros
You may need to manually installmavros
in spite ofros-<distro>-desktop-full
. There are build and run dependencies onmavros
, so please follow the binary instructions documented here (external site). Alternatively, you can clonemavros
locally (alongside Freyja) andcatkin_make
will build it as well.Note that building
mavros
takes significantly longer, and needs a much larger RAM space. For small computers (Odroid, RPi, Gumstix etc), you should either allocate decent amount of swap space, or pass-jN
tocatkin_make
, whereN
is the number of allowed concurrent jobs (choose 2 or 3).In any case,
mavros
depends on geoids datasets, libgeographic and other listed libraries, so make sure to install those as well. The typical instructions are summarised here (from the external link above):# install mavros and mavros-extras: sudo apt-get install ros-<distro>-mavros ros-<distro>-mavros-extras # install geographiclib datasets: wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh sudo bash ./install_geographiclib_datasets.sh
Don't like
mavros
?
Perhaps you write your own mavlink interface, or perhaps your autopilot has a different communication stack. Freyja includes anapm_handler
package to talk to ArduPilot/px4, and it depends onmavros
during compile. To circumvent this build dependency, pass-DNO_PIXHAWK
option tocatkin_make
. -
c++11, gcc5 or later
Simply update your packages (specifically,gcc
). Explicit compile options (-std=c++11
) are invoked within Freyja, and some functions in the filter library use STL utilities. If you are not using c++11 or later, consider it today!
That is it!
(c) aj, Nimbus Lab, 2020