Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
wiki:tutorials:introduction [2019/09/26 14:15]
simon
wiki:tutorials:introduction [2019/11/18 12:43] (current)
simon
Line 157: Line 157:
     uint8 AVOID_ALL_COLLISIONS=2     uint8 AVOID_ALL_COLLISIONS=2
     uint8 ALLOW_ALL_COLLISIONS=3     uint8 ALLOW_ALL_COLLISIONS=3
-    uint8 ATTRACT=4 
-    uint8 REPELL=5 
     string ALL=     string ALL=
     uint8 type     uint8 type
Line 171: Line 169:
 The first three are constraints that are used to specify the goal of your motion. Joint constraints and cartesian constraints are just special cases of constraints with a more convenient interface. Click on [[wiki:​tutorials:​single-arm-joint-move-python|joint]] and [[wiki:​tutorials:​single-arm-cartesian-move-python|cartesian]] constraints to find examples. ''​giskard_msgs/​Constraint''​ can be used to call more advanced or your on constraints. The first three are constraints that are used to specify the goal of your motion. Joint constraints and cartesian constraints are just special cases of constraints with a more convenient interface. Click on [[wiki:​tutorials:​single-arm-joint-move-python|joint]] and [[wiki:​tutorials:​single-arm-cartesian-move-python|cartesian]] constraints to find examples. ''​giskard_msgs/​Constraint''​ can be used to call more advanced or your on constraints.
  
-Move commands also contain a list of ''​giskard_msgs/​CollisionEntry'',​ that can be used to modify the collision avoidance. Per default, Giskard will try to avoid collisions with the environment. However, sometimes you might want to add exceptions. For example, when a cup is modeled as a cylinder and the robot should reach inside with a finger, you have to allow that collision. This is the scenario where this interface comes into play.  +Move commands also contain a list of ''​giskard_msgs/​CollisionEntry'',​ that can be used to modify the collision avoidance.  
- +Find more information ​[[wiki:​tutorials:​collision_avoidance|here]].
-A message to achieve that example would need ''​type=1'',​ ''​robot_links=[r_gripper_l_finger_link]'',​ ''​body_b=[cup]'',​ ''​link_bs=[CollisionEntry.ALL]''​. +
-Robot links contains all names of the controlled robot, as they are in the urdf. Body b is the name you gave the object, when it got added to the world. Link bs is a list of links for body b. If you are dealing with primitive objects, this can be empty. But other objects can also be urdf, where you would list the link names from the urdf again. A list with an empty string will select all links. You can also use this interface to overwrite the self collision avoidance by using the name of the robot as body b. +
- +
-Don't use ''​min_dist'',​ it is only present for backward compatibility and will be removed eventually.  +
- +
-''​ATTRACT'',​ ''​REPELL''​ are not yet supported. +
- +
-''​AVOID_ALL_COLLISIONS''​ and ''​ALLOW_ALL_COLLISIONS''​ are equivalent to ''​robot_links=[CollisionEntry.ALL]'',​ ''​body_b=CollisionEntry.ALL''​ and ''​link_bs=[CollisionEntry.ALL]''​ with ''​type''​ being equal to ''​AVOID_COLLISION''​ or ''​ALLOW_COLLISION''​+