Skip to content

SLAM with TurtleBot3

Darko Lukić edited this page Nov 30, 2020 · 20 revisions

In this tutorial, we want to show you how to use SLAM with Webots simulated TurtleBot3 Burger. You will see that Webots uses a standard ROS2 interface that can be used with the TurtleBot3 SLAM package without modifications.

Install turtlebot3_cartographer Package for ROS2

Unfortunately, the turtlebot3_cartographer package is not yet available as a Debian package so you have to build it manually:

source /opt/ros/${ROS_DISTRO}/local_setup.bash

# Retrieve the sources
cd /path/to/ros2_ws
git clone -b ${ROS_DISTRO}-devel https://github.com/ROBOTIS-GIT/turtlebot3.git src/turtlebot3

# Check dependencies
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro ${ROS_DISTRO}

# Building packages
colcon build --packages-up-to turtlebot3_cartographer
source install/local_setup.bash

Run Cartographer

Once the turtlebot3_cartographer package is ready to launch a Webots simulation:

ros2 launch webots_ros2_turtlebot robot_launch.py
before webots_ros2 1.0.3
ros2 launch webots_ros2_core robot_launch.py \
    executable:=webots_differential_drive_node \
    node_parameters:=$(ros2 pkg prefix webots_ros2_examples --share)/resource/turtlebot3_burger.yaml \
    world:=$(ros2 pkg prefix webots_ros2_examples --share)/worlds/turtlebot3_burger_example.wbt

In the second terminal, launch cartographer as:

ros2 launch turtlebot3_cartographer cartographer.launch.py \
    use_sim_time:=true

On the official TurtleBot3 website you can find more information about SLAM configuration.

Clone this wiki locally