Update collision model¶
Because robots are located in different rooms (different for each partner) it is necessary to update collision model.
Process of model updating can by divided into the two steps: creating description of the model and disabling the collision checking for some parts of the model.
Creating description of the room¶
Whole description is stored in package clopema_description. The parts are described in folder urdf using the xacro macro and the individual parts are stuck together in folder robot.
To describe your room in urdf language first create appropriate file in folder urdf. The name of the file should be different for each partner (at ctu we named it room_ctu.urdf.xacro). The content of the file should be similar to:
<?xml version="1.0"?> <robot xmlns:xacro="http://www.ros.org/wiki/xacro"> <xacro:macro name="room_<institution>"> <!-- Description of your room (links and joint) --> </xacro:macro> </robot>
The links in your room description file should be connected with robot via base_link which is frame in the center-bottom of the robot.
Replace default room (ctu) with your description file¶
As we mention above the individual parts of the robot (and additional collision objects too) are stuck together in folder robot in package clopema_description.
Firstly include file you created in previous step to file robot/clopema.urdf.xacro:
<include filename="$(find clopema_description)/urdf/room_ctu.urdf.xacro" />
then replace default room (ctu) with your macro:
To display the complete model, launch the following command in terminal (the rviz will start):
roslaunch clopema_description show.launch
Disabling collision checking¶
Some parts of room description are always or never in collision. The parts that are always in collision have to be disabled for collision checking and disabling checking for parts that will never be in collision will increase speed of computation.
You can disable collision checking for specified links in file config/clopema_planning_description.yaml in package clopema_arm_navigation - note that collisions are enabled by the default:
- object1: ctu_floor object2: t3_leg_4 operation: disable #Floor with tables legs always in collision