This project demonstrates AprilTag-based autonomous docking using a TurtleBot3 Waffle Pi in ROS 2 Humble with Gazebo simulation.
- 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
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
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.bashros2 launch apriltag_docking detect_apriltag.launch.pyIn a new terminal:
source ~/ros2_docking_ws/install/setup.bash
ros2 topic echo /tag_detectionsrviz2Add the following displays:
TFImage(from/camera/image_raw)AprilTag detections(custom marker or topic monitor)
- ROS 2 Humble
turtlebot3packagesapriltag_ros(built from source)- Gazebo with TurtleBot3 simulation
- The TurtleBot3 camera publishes
/camera/image_rawand/camera/camera_info. - The
apriltag_rosnode subscribes to these and detects the AprilTag. - Detected tags are published to
/tag_detectionswith their 3D poses. - These poses can be used for navigation or control logic (coming next).
# 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')
]
)This project is licensed under the MIT License.