PAL Physics Simulator#
The PAL Physics Simulator is a custom simulator developed by PAL Robotics. Its purpose is to perform highly realistic simulations of the physics of the robot. In particular, it is highly recommended to use the PAL Physics simulator as a simulation tool before testing any torque control experiments on the real robot.
It is based on the dynamics of the robot and runs inside ROS Control and the transmission interface making it as realistic as possible compared to the real robot.
To start the Kangaroo robot inside the PAL Physics Simulator run:
roslaunch kangaroo_pal_physics_simulator kangaroo_pal_physics_simulator.launch
It is also possible to simulate virtual worlds that are translated as Bullet objects used for collision checking. These objects are simulated as immovable and represent fixed objects in the environment, and are intended to test just for collision properties.
The simulator parses most of the worlds represented in Gazebo as .world files.
The following example shows how to launch the PAL Physics Simulator specifying a world and providing a starting position for the robot.
<?xml version="1.0" encoding="UTF-8"?>
<launch>
<arg name="robot" value="full_v2"/>
<arg name="world" value="$(find pal_gazebo_worlds)/worlds/memmo_simple.world"/>
<include file="$(find kangaroo_pal_physics_simulator)/launch/kangaroo_pal_physics_simulator.launch" >
<arg name="world" value="$(arg world)"/>
</include>
<rosparam param="default_floating_base_pose/position">[-0.1, 0.25, 1.0]</rosparam>
<rosparam param="default_floating_base_pose/orientation/x">0.0</rosparam>
<rosparam param="default_floating_base_pose/orientation/y">0.0</rosparam>
<rosparam param="default_floating_base_pose/orientation/z">0.0</rosparam>
<rosparam param="default_floating_base_pose/orientation/w">1.0</rosparam>
</launch>
The starting position of the robot must be specified after the including file to overwrite the default starting position of the robot in the world.
The world is published in RViz as a visualization_msgs::MarkerArray
msg in the /simulator/markers
topic.
The PAL Physics Simulator also offers some tools similar to Gazebo.
The /simulator/floating_base_state
topic retrieves the floating base pose of the robot in the simulation.
The /simulator/external_wrench
topic allows to apply external forces on the robot as it does the rosservice /gazebo/apply_body_wrench
of Gazebo.