-
Notifications
You must be signed in to change notification settings - Fork 114
Collisions
In URDF, any collision object will collide with any other collision object - there is no inherent collision avoidance between links. This poses a problem if collision geometries are approximations and might sometimes collide even though the real robot wouldn't. A classic case may be box geometries used for limbs of a robot that will collide at the joint if turned. For this reason, it is in most cases necessary to define which collision objects of a model can collide with which other collision objects. In the ROS community, the solution for this problem comes in the form of SRDF and Phobos does support export of this format. However the MARS simulation does not currently read SRDF and therefore the same information is by default exported to SMURF.
Important Note: As a default, Phobos (and MARS, for that matter) assumes that no collision objects of a link can collide with collision objects of its parent link or child link. If you need such close collisions, consider using additional joints.
MARS internally uses collision bitmasks to efficiently exclude collisions between objects. This makes it easy to assign multiple objects to the same group of collision behaviour. For instance, this can be used if all limbs on the left side of a robot should be able to collide with all limbs on the right side of the robot, but not with the main body. This feature is also helpful to exclude such parts of the robot from collision which can kinematically never collide in the first place, thereby speeding up the simulation by avoiding unnecessary collision checks. While SRDF explicitly excludes pairs of links from colliding, Phobos allows to group together collision properties, effectively recreating the bitmasks used in MARS anyways.
The Set Collision Group button allows to select multiple layers of objects with which an object can collide. Clicking the respective fields, the bits of the underlying collision bitmask are flipped which gets exported to SMURF.
TODO update image? Phobos uses Blender's existing functionality to define collision groups for physics simulation. Thus, its operator simply displays the collision 'layers' that can be found in the physics tab of the Properties GUI area:
Back to top.