Fast-Planner ROS2 Implementation, and Multiple AprilTags Detection and Navigation
Graduate Course Project, University of Maryland, ENAE788M-Hands on Aerial Robotics, 2024
This project aims to detect AprilTag positions and use a planner to generate the drone’s trajectory. We use multiple AprilTags to provide waypoints for the drone, leveraging the tracking camera’s video feed for detection. The Fast-Planner is used to plan a safe, kinodynamically feasible trajectory based on these waypoints. The flight tests were done with a Modal AI VOXL2 drone at UMD Brin Family Aerial Robotics Lab.
Advisor: Dr. Joseph Conroy Team Members: Piyush Goenka, Yi-Hsuan Chen
[Download Technical Report here]
Visual Detection - Multiple AprilTags Detection
- Use tracking camera’s video feed for AprilTag detection
- Transform detected poses from camera frame to drone’s body frame and inertial frame
- Generate waypoints based on detected AprilTag positions
- Monitor drone position and publish next waypoint when within 0.2m of current waypoint
Real Drone Implementation
Path Planning - Fast-Planner Implementation
- Integrate Fast-Planner (ROS1) with PX4 and Gazebo (ROS2) using ros1_bridge package
- Use kinodynamic path searching and B-spline optimization for trajectory generation
- Transform coordinate frames between ENU (Fast-Planner) and NED (PX4)
- Implement data transmission between ROS1 and ROS2 using custom Python scripts
Gazebo Simulation
- Successfully demonstrated waypoint tracking using Fast-Planner
- Drone hit 10 waypoints consecutively with smooth trajectories
- Validated the ROS1-ROS2 bridge implementation
Real Drone Attempt
- Achieved basic waypoint following but faced challenges with:
- Vehicle odometry accuracy
- Data transmission delays through ROS1 bridge
References
[1] Boyu Zhou, Shaojie Shen, and Fei Gao. “A robust and efficient trajectory planner for quadrotors”, 2020. (link)
[2] Nilaos. “ROS 2 package that provides bidirectional communication between ROS 1 and ROS 2”, 2023. (link)
[3] Benjamin Perseghetti. “Integration between ROS (1 and 2) and Gazebo simulation”, 2019. (link)