Drone delivery featuring MINCO trajectory generation, Aruco pose estimation, and EKF sensor switch. This package is developed to support smooth package delivery and precision landing near structures such as buildings.
- Additional resources: Demo Video and SolidWorks Files.
- Authors: Yueqian Liu and Yuanzhe Shen. Supported by @AbsurdityMaker/荒蛋制造局.
Dependencies are ROS 2, PX4 development toolchains, and other required python packages. Code has been tested on Ubuntu 22.
# Micro-XRCE-DDS-Agent
cd Micro-XRCE-DDS-Agent/
mkdir build
cd build
cmake ..
make
# build ROS packages
cd ROS-Workspace/
source /opt/ros/humble/setup.bash
colcon build
# run Micro-XRCE-DDS-Agent
Micro-XRCE-DDS-Agent/build/MicroXRCEAgent udp4 -p 8888
# run ros gz bridge
source /opt/ros/humble/setup.bash
ros2 run ros_gz_bridge parameter_bridge \
/camera/trigger@std_msgs/msg/[email protected] \
/camera/img/down_left@sensor_msgs/msg/[email protected] \
/camera/img/down_right@sensor_msgs/msg/[email protected] \
/gz/model/odom@nav_msgs/msg/[email protected]
# run camera trigger publisher
source /opt/ros/humble/setup.bash
ros2 topic pub /camera/trigger std_msgs/msg/Bool "{data: true}" --print 0 --rate 30
# run PX4 simulation
cd PX4-Autopilot/
PX4_GZ_WORLD=park make px4_sitl gz_xlab550
# run odom simulator
source /opt/ros/humble/setup.bash
source ROS-Workspace/install/setup.bash
ros2 run xlab_delivery aruco_odom --ros-args --params-file ROS-Workspace/src/xlab_delivery/config/sitl_gz_park.yaml
# run flight manager
source /opt/ros/humble/setup.bash
source ROS-Workspace/install/setup.bash
ros2 run xlab_delivery flight_manager --ros-args --params-file ROS-Workspace/src/xlab_delivery/config/sitl_gz_park.yaml
# then run QGC, switch to offboard mode to start