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
-jflag: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