Example TIAGo - cyberbotics/webots_ros2 GitHub Wiki

TIAGo robot combines perception, navigation, manipulation & Human-Robot Interaction skills out of the box!
  - PAL Robotics

The TIAGo package contains two examples. One example does SLAM and the other provides a navigation tool. Those examples are slightly different from the ones of the TurtleBot3 Burger as TIAGo runs the SLAM and the navigation directly from its launcher file.

Prerequisite

To run this example, you will need the Navigation 2 package. You can install it with

sudo apt install ros-$(ROS_DISTRO)-nav2-bringup

For the SLAM part, you will need Slam Toolbox for version 2023.0.2 and earlier:

sudo apt install ros-$(ROS_DISTRO)-slam-toolbox

Cartographer is also available for versions 2023.0.3 and later:

sudo apt install ros-$(ROS_DISTRO)-cartographer-ros

For the full TIAGo configuration (topics and controllers), you will need tiago_bringup.

sudo apt install ros-$(ROS_DISTRO)-tiago-bringup

TIAGo SLAM

2023.0.2 and earlier

Run the launch file of the TIAGo with the following options:

ros2 launch webots_ros2_tiago robot_launch.py rviz:=true slam:=true

2023.0.3 and higher

Run the launch file of the TIAGo with the following options:

# For SLAM-Toolbox as SLAM package
ros2 launch webots_ros2_tiago robot_launch.py rviz:=true slam_toolbox:=true

# For Cartographer as SLAM package
ros2 launch webots_ros2_tiago robot_launch.py rviz:=true slam_cartographer:=true

In the second terminal launch teleop_twist_keyboard with:

ros2 run teleop_twist_keyboard teleop_twist_keyboard

You are now able to move the robot in the scene while the map is drawn RViz.

Note that the Cartographer configuration file is located in webots_ros2_tiago/resource/cartographer.lua from the package folder.

TIAGo Navigation

Run the launch file of the TIAGo with the following options:

ros2 launch webots_ros2_tiago robot_launch.py rviz:=true nav:=true

This will run RViz and the Navigation 2 package in addition to the Webots simulation. The map file is provided to the launcher file and is centered and rotated to match the robot's initial position. The initial position is therefore (x=0.0, y=0.0, yaw=0.0) and is provided to the navigation package in the configuration file nav2_params.yaml. Once every node is started, you can choose a goal position and orientation with the Navigation2 Goal button in RViz. The robot will plan a trajectory and move to the pose you defined inside Webots and RViz.

TIAGo Bringup (only for version 2023.0.4 and higher)

To start the tiago_bringup launch file with all controllers and topics for the TIAGo robot in addition to the Webots simulation, you can use the following launch file:

ros2 launch webots_ros2_tiago robot_bringup_launch.py rviz:=true

Known issue: Nav2 and Fast-DDS

On Humble, Fast-DDS is the default DDS. There is a known issue that Nav2 may not work correctly and fail randomly on Humble. See this post for more information. If you encounter random failures of Nav2 on Humble, you can try to troubleshoot this issue by changing the DDS and setting RMW_IMPLEMENTATION before building the workspace:

sudo apt install ros-humble-rmw-cyclonedds-cpp
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
colcon build