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)