Skip to content

Predefined Landmarks (vertical or horizontal aruco markers) will be treated as points to navigate by avoiding obstacles. Part of Security and Inspection Robot Project at Lotus Robotics - 2021.

Notifications You must be signed in to change notification settings

ArghyaChatterjee/april-tag-based-autonomous-navigation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AR Tag Landmark-Based Autonomous Navigation

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.

Repository Workflow

April Navigation

Features

  • 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.

Installation

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_make

Landmark Configuration

Landmarks 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

Modules and Nodes

Modules

  • Landmark: Stores landmark data, computes transforms, and manages landmark poses.
  • LandmarkCollection: Manages collections of landmarks with additional utilities.

Nodes

  • landmark_manager:

    • CLI to define landmarks interactively.
Landmark Manager
  • 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.

Usage

Include necessary launch files in your main ROS launch configuration from the launch directory.

Launch File Arguments

landmark.launch

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

landmark_manager.launch

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

Troubleshooting

Landmark Issues

  • "File at <filepath> does not exist yet. No landmarks loaded."

    • Ensure the YAML file exists and is correctly formatted.

Future Work

  • Special landmark labels triggering custom behaviors (e.g., docking procedures).

Acknowledgments

Thanks to Interbotix ROS for their open-source contributions.

About

Predefined Landmarks (vertical or horizontal aruco markers) will be treated as points to navigate by avoiding obstacles. Part of Security and Inspection Robot Project at Lotus Robotics - 2021.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published