Launching a Gazebo simulation
First of all open a console and source the workspace:
source ./devel/setup.bash
To launch the simulation of the TIAGo OMNI Base, execute:
roslaunch omni_base_gazebo omni_base_gazebo.launch public_sim:=true
With the simulation of TIAGo OMNI Base we are providing several pre-defined worlds which stress different aspects of navigation systems. You can find a list of these here.
Now let's launch the TIAGo OMNI Base simulation in a corridor as follows:
roslaunch omni_base_gazebo omni_base_gazebo.launch public_sim:=true world:=corridor_110cm
The simulated TIAGo OMNI Base can provide the laser scan as depicted below:
If you manage to launch these two simulations then the installation has been successful.
You will get this error on the output of the launch file:
[ERROR] [1662367674.126953001, 0.572000000]: Could not load controller 'mobile_base_controller' because controller type 'omni_drive_controller/OmniDriveController' does not exist. [ERROR] [1662367674.127010201, 0.572000000]: Use 'rosservice call controller_manager/list_controller_types' to get the available types [ERROR] [1662367675.128505, 1.569000]: Failed to load mobile_base_controller
This is because PAL Robotics developed its own controller for omnidirectional wheel motions: the omni_drive_controller; this internal package is not publicly available but is included in the development computer when the robot is sold. In the public simulation of Gazebo the wheels are not moving but with the package installed it is looking like this:
omni_drive_controller
The core of the TIAGo OMNI Base is the control logic of the motion of the wheels that has been entirely developed in PAL Robotics and is fully integrated with the ros_control package. Such a controller not only allows to rotate separately all the wheels of the robot but also implements the kinematic models of an omnidirectional locomotion system on mecanum wheels and converts velocity commands given to the base through a joystick or through autonomous navigation, into a coordinate movement of the wheels that performs the required movement of the base.
Apart from this kinematic model, also an odometry model has been developed in order to localize the robot and convert the feedback coming from the wheels encoders into the relative position of the base
Nvidia compatibility issues
If you encounter any issues when trying to run gazebo inside the rocker verify that your drivers are up to date and that your PC configuration includes either nvidia GPU or Intel CPU
If you are facing this issue on a laptop, run nvdia-settings and go in the PRIME Profiles section
If you launched the rocker with nvidia support choose the NVIDIA (Performance Mode)
If you launched the rocker with intel support choose NVIDIA On-Demand (Default)
Restart the laptop and it should work