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