Files
clover/docs/en/simulation_native.md
Oleg Kalachev dd96c91b55 docs: minor fix
2021-10-30 21:36:51 +03:00

3.4 KiB

Native setup

Setting up the simulation environment from scratch requires some effort, but results in the most performant setup, with less chance of driver issues.

Hint See up-to-date commands set for installation Clover simulation software in the script, that builds the virtual machine image with the simulator: install_software.sh.

Prerequisites: Ubuntu 20.04 and ROS Noetic.

Create a workspace for the simulation

Throughout this guide we will be using the catkin_ws as the workspace name. Feel free to change it in your setup. We will be creating it in the home directory of the current user (~).

Create the workspace and clone Clover sources:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone --depth 1 https://github.com/CopterExpress/clover
git clone --depth 1 https://github.com/CopterExpress/ros_led
git clone --depth 1 https://github.com/ethz-asl/mav_comm

Install all prerequisites using rosdep:

cd ~/catkin_ws
rosdep update
rosdep install --from-paths src --ignore-src -y

Install Python-dependencies:

sudo /usr/bin/python3 -m pip install -r ~/catkin_ws/src/clover/clover/requirements.txt

Get PX4 sources

PX4 will be built along with the other packages in our workspace. You may clone it directly into the workspace or put it somewhere and symlink to ~/catkin_ws/src. We will need to put its sitl_gazebo submodule in ~/catkin_ws/src as well. For simplicity's sake we will clone the firmware directly to the workspace:

cd ~/catkin_ws/src
git clone --recursive --depth 1 --branch v1.12.0 https://github.com/PX4/PX4-Autopilot.git ~/PX4-Autopilot
ln -s ~/PX4-Autopilot ~/catkin_ws/src/PX4-Autopilot
ln -s ~/PX4-Autopilot/Tools/sitl_gazebo ~/catkin_ws/src/sitl_gazebo

Install PX4 prerequisites

PX4 comes with its own script for dependency installation. We may as well leverage it:

cd ~/catkin_ws/src/PX4-Autopilot/Tools/setup
sudo ./ubuntu.sh

This will install everything required to build PX4 and its SITL environment.

You may want to skip installing the ARM toolchain if you're not planning on compiling PX4 for your flight controller. To do this, use the --no-nuttx flag:

sudo ./ubuntu.sh --no-nuttx

Add the Clover airframe

Add the Clover airframe to PX4 using the command:

ln -s "$(catkin_find clover_simulation airframes)"/* ~/PX4-Autopilot/ROMFS/px4fmu_common/init.d-posix/airframes/

Install geographiclib datasets

mavros package requires geographiclib datasets to be present:

sudo /opt/ros/noetic/lib/mavros/install_geographiclib_datasets.sh```

Build the simulator

With all dependencies installed, you can build your workspace:

cd ~/catkin_ws
catkin_make

Note

Some of the files - particularly Gazebo plugins - require large amounts of RAM to be built. You may wish to reduce the number of parallel jobs; the number of parallel jobs should be equal to the amount of RAM in gigabytes divided by 2 - so a 16GB machine should use no more than 8 jobs. You can specify the number of jobs using the -j flag: catkin_make -j8

Run the simulator

In order to be sure that everything was built correctly, try running the simulator for the first time:

source ~/catkin_ws/devel/setup.bash
roslaunch clover_simulation simulator.launch