Skip to content

SLAM with TurtleBot3

Darko Lukic edited this page Dec 12, 2020 · 20 revisions

TurtleBot3 Burger SLAM

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

sudo apt install ros-foxy-turtlebot3-cartographer
or compile the package from source

To compile the turtlebot3_navigation2 package do the following:

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_navigation2
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

You may need to the command 2 or 3 times to get it working. The cartographer packages seems to be buggy.

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

TurtleBot3 Burger SLAM

Clone this wiki locally