This ROS package enables autonomous navigation by using AR tags (AprilTags) as landmarks. Robots equipped with cameras can navigate accurately to specified locations while avoiding obstacles by identifying predefined AR tags.
- AR Tag Landmarks: Use AprilTags as navigational points.
- Dynamic Landmark Configuration: Easily manage landmarks using YAML files.
- Integration with TF: Automatically manages and publishes transforms to the ROS TF tree.
- CLI Management: Define and update landmarks through a simple command-line interface.
Ensure dependencies are installed:
Clone this repository:
cd ~/catkin_ws/src
git clone https://github.com/ArghyaChatterjee/april-tag-based-autonomous-navigation.git
cd ~/catkin_ws
catkin_makeLandmarks are defined in YAML configuration files (example):
landmark:
mounted: true # True if AR tag is wall-mounted
offset: 0.5 # Distance offset from the tag for navigation goal
id: 1 # AprilTag ID
label: "Entrance" # Landmark label
set: false # Automatically managed; do not manually set- Landmark: Stores landmark data, computes transforms, and manages landmark poses.
- LandmarkCollection: Manages collections of landmarks with additional utilities.
-
landmark_manager:
- CLI to define landmarks interactively.
-
landmark_finder:
- Periodically captures images from a camera to detect landmarks, publishing their poses to the TF tree.
-
tf_map_to_landmark:
- Publishes transforms between a fixed frame (usually map) and landmarks to organize the TF tree.
Include necessary launch files in your main ROS launch configuration from the launch directory.
| Argument | Description | Default |
|---|---|---|
| apriltag_ns | Namespace for AprilTag nodes and parameters | apriltag |
| camera_color_topic | ROS topic for camera color images | camera/color/image_raw |
| camera_info_topic | ROS topic for camera info | camera/color/camera_info |
| use_cam | Launch RealSense camera package | true |
| Argument | Description | Default |
|---|---|---|
| landmark_config | Path to landmark YAML config file | landmarks.yaml |
| fixed_frame | Frame to transform landmark TFs | landmarks |
| obs_frame | Observation frame for landmarks | camera_color_optical_frame |
| standalone_tags | Individual AprilTags to search for | See landmark_manager.launch |
-
"File at
<filepath>does not exist yet. No landmarks loaded."- Ensure the YAML file exists and is correctly formatted.
- Special landmark labels triggering custom behaviors (e.g., docking procedures).
Thanks to Interbotix ROS for their open-source contributions.

