Skip to content

Sara-Esm/apriltag_autonomous_docking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AprilTag Autonomous Docking with TurtleBot3

This project demonstrates AprilTag-based autonomous docking using a TurtleBot3 Waffle Pi in ROS 2 Humble with Gazebo simulation.


📌 Features

  • AprilTag detection using apriltag_ros
  • Full integration in ROS 2 and Gazebo simulation
  • Launch file to start detection node
  • Camera topic remapping and tag visualization
  • Tested with TurtleBot3 Waffle Pi in Gazebo

🧠 Project Structure

ros2_docking_ws/src/apriltag_docking/
├── apriltag_docking/
│   └── __init__.py
├── launch/
│   └── detect_apriltag.launch.py
├── package.xml
├── setup.py
├── setup.cfg
├── pyproject.toml
├── resource/
│   └── apriltag_docking

🚀 Getting Started

1. Clone and Build the Workspace

mkdir -p ~/ros2_docking_ws/src
cd ~/ros2_docking_ws/src
git clone <your-github-repo-url> apriltag_docking
cd ~/ros2_docking_ws
colcon build
source install/setup.bash

2. Launch the AprilTag Detection

ros2 launch apriltag_docking detect_apriltag.launch.py

3. Verify the Tag Detection

In a new terminal:

source ~/ros2_docking_ws/install/setup.bash
ros2 topic echo /tag_detections

4. Visualize in RViz

rviz2

Add the following displays:

  • TF
  • Image (from /camera/image_raw)
  • AprilTag detections (custom marker or topic monitor)

📷 Demo Video


⚙️ Dependencies

  • ROS 2 Humble
  • turtlebot3 packages
  • apriltag_ros (built from source)
  • Gazebo with TurtleBot3 simulation

🛠 How it Works

  • The TurtleBot3 camera publishes /camera/image_raw and /camera/camera_info.
  • The apriltag_ros node subscribes to these and detects the AprilTag.
  • Detected tags are published to /tag_detections with their 3D poses.
  • These poses can be used for navigation or control logic (coming next).

📁 Launch File

# detect_apriltag.launch.py
Node(
    package='apriltag_ros',
    executable='apriltag_node',
    name='apriltag_node',
    parameters=[{
        'family': 'tag36h11',
        'size': 0.08,
        'image_transport': 'raw',
        ...
    }],
    remappings=[
        ('/image_rect', '/camera/image_raw'),
        ('/camera_info', '/camera/camera_info')
    ]
)

📄 License

This project is licensed under the MIT License.


🌟 Acknowledgements

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published