/landmark-slam-2d

ROS 2 package for 2D landmark SLAM.

Primary LanguageC++Apache License 2.0Apache-2.0

2d-landmark-slam

ROS 2 package for 2D landmark SLAM using FastSLAM 2.0.

RViz Screenshot

Building from source

Follow these steps to build using colcon:

mkdir -p slam_ws/src && cd slam_ws/src
git clone https://github.com/atharva-18/landmark-slam-2d.git
cd ..
colcon build

To source the setup, please run:

source ./install/setup.bash # If using bash
source ./install/setup.zsh # If using zsh

Running the package

Run using ROS command line tools:

ros2 launch landmark_slam_2d slam.launch.py

Subscribed topics

  • /perception/landmark_detections Message of type geometry_msgs/Polygon. Holds all detected 2D landmarks.

  • /estimation/slam/state Message of type geometry_msgs/Twist. Holds linear and angular velocity data in body/base_link frame.

Published topics

  • /estimation/slam/map Message of type geometry_msgs/Polygon. Holds all estimated landmark positions in the map.

  • /estimation/slam/pose Message of type geometry_msgs/Pose2D. Holds the estimated 2D pose of the robot.

  • /estimation/visualization/map Message of type visualization_msgs/MarkerArray. Holds the markers required by RViz.

Footnotes

This package is intended to work on ROS 2 Foxy with Ubuntu 20.04, however, Rolling should also work. Please note that this algorithm is not tested on a real robot.