19.2.9. Install MAVROS

cd ~/ros_catkin_ws

Attention

Use kinetic in the following command, even if your ROS distro is newer.

rosinstall_generator --rosdistro kinetic mavlink | tee /tmp/mavros.rosinstall
rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall

Attention

If rosdep fails to install dependencies, because they are not available in the repositories, install them via rosinstall_generator and wstool.

wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src -j4
sudo apt update
rosdep install --from-paths src --ignore-src -y

So if your console output of rosdep install is

1ERROR: the following packages/stacks could not have their rosdep keys resolved
2to system dependencies:
3mavros: No definition of [geographic_msgs] for OS [debian]
4mavros_extras: No definition of [urdf] for OS [debian]
5test_mavros: No definition of [control_toolbox] for OS [debian]
6mavros_msgs: No definition of [geographic_msgs] for OS [debian]
7Continuing to install resolvable dependencies...

Execute

rosinstall_generator urdf control_toolbox geographic_msgs | tee /tmp/mavros_deps.rosinstall

and

wstool merge -t src /tmp/mavros_deps.rosinstall
wstool update -t src -j4

rerun rosdep install and make sure all dependecies get resolved.

Note

It might be necessary to do some iterations of rosdep install and the manual installation of dependecies until everything compiles successfully.

Build the code:

sudo catkin build --cmake-args -DCMAKE_BUILD_TYPE=Release

After the build process has finished cleanly, you might have to execute the geographiclib install script:

sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh