This package contains source files needed to simulate multirotor precision landings using image-based visual servoing. Simulations for landing on stationary ground targets, and moving targets exhibiting ship-like motion are included. The simulation environment is ROS/Gazebo. Also included in this repository are launch files for performing precision landings in hardware using a PX4-enabled multirotor. Use of this package assumes you have installed Ubuntu 16.04 LTS, ROS Kinetic, and Gazebo.
To run simulations, you will need to clone this repository into the /src
folder of your catkin workspace along with the following additional packages:
- ROScopter branch master
- ROSflight branch master
- ROSflight Plugins branch master
- MAGICC SIM branch master
- ArUco Localization branch master
You also need to install MAVROS: sudo apt install ros-kinetic-mavros
Before compiling, make sure to update the rosflight submodules:
cd rosflight
git submodule update --init --recursive
cd ../..
Then run catkin_make
Don't forget to source your workspace.
To simulate a multirotor landing on a stationary ArUco marker:
roslaunch ibvs_sim ibvs_sim_nested.launch
To simulate landing a multirotor on a barge that is underway:
roslaunch ibvs_sim ibvs_sim_under_way.launch
The file ibvs_sim/launch/truck_landing.launch
is a ROS launch file for landing on a moving ground target in hardware. It assumes you have a PX4-enabled multirotor with a downward-facing camera. It also assumes you have a ground target that shares its GPS data (lat, lon, etc.) on the ROS network. After launching ibvs_sim/launch/truck_landing.launch
on the multirotor's on-board computer, launch ibvs_sim/launch/odroid_target.launch
to launch the ground target GPS publishers (in this launch file we assume that we get GPS data via the Inertial Sense INS ROS node).