Precise Landing
Autonomous precise landing on an AprilTag.
Installation
For deployment:
sudo apt install ros-noetic-mrs-precise-landing
For simulations:
sudo apt install ros-noetic-mrs-precise-landing-gazebo
Dependencies
apriltag_ros
uav_core
Components
- AprilTag detector
- Landing Pad Estimator
- Precise Landing Controller
- Gazebo Resources for testing
Example simulation
roscd mrs_precise_landing_gazebo
./tmux/start.sh
How to use it
The default apriltag is an embedded tag (TagCustom48h12): with tag 0 (0.3 meter inner size) on the outside and 10 (0.06 meter inner size) on the inside. The total outside size of the tag is 0.5 meter. However, this can be easily changed in the config files.
You will need to prepare:
- config file for the april tag detector, e.g., apriltag.yaml
- camera node name, camera topic name (such that
/$UAV_NAME/camera_node/camera_topic
) - the ids of the AprilTags need to be filled in the custom config for the estimator, e.g., landing_estimator.yaml
- how should the heading be controlled?, prepare the controller config, e.g., landing_controller.yaml
An example of how to start the nodes using the custom configs:
roslaunch mrs_precise_landing precise_landing.launch apriltag_config:=`rospack find mrs_landing_pad_estimation`/config/apriltag_recursive.yaml camera_node:=bluefox_optflow image_topic:=image_raw estimator_config:=<landing_estimator> controller_config:=<landing_controller>
When the AprilTag is in the view, call:
rosservice call /$UAV_NAME/precise_landing/land
To abort, call:
rosservice call /$UAV_NAME/precise_landing/abort