This is an old revision of the document!
Implemented Motion Designator
At the moment there is no global implementation of specific designator, therefor every demo implements their own. To implement a simple Demo showing the capabilities of the PyCRAM BulletWorld, the motion designator for the PR2 robot had to be implemented. In the following this motion designator will firstly be presented and afterwards every single one will be explained in more detail along with a table of all parameter they take and if the parameter is required or not.
Designator | Description |
---|---|
Moving | Moves the robot to a given position and checks if the robot is in collision with other objects. |
Pick-Up | Picks up an object with the given type and attaches it to the gripper. |
Place | Places the given object and detaches it from the robot. |
Accessing | Opens a drawer, to access the objects within. |
Looking | Moves the head to look at a given position. |
Opening-Gripper | Opens the gripper of the given arm. |
Closing-Gripper | Closes the gripper of the given arm. |
Detecting | Tries to find an object of the given type within the field of view. |
Move-TCP | Moves the tool center point of the given arm to a given position. |
Move-Arm-Joints | Moves the joints of one or both arms to a given or pre-defined position. |
World-State-Detecting | Detects an object with the belief state of the world. The robot does not need to see the object. |
Moving
The moving designator is used to move the robot to the designed position. It is also possible to specify an orientation, but it is not mandatory to do so.
Slots | Description | Required |
---|---|---|
Type | Defines the type of this designator | Yes |
Target | Defines the destination for the robot | Yes |
Orientation | Defines the orientation of the robot | No |
Pick-Up
The pick-up designator is used to pick up an object with the given arm. Although the arm slot is not necessary for the execution of the designator, it is encouraged to use it for better results.
Slots | Description | Required |
---|---|---|
Type | Defines the type of this designator | Yes |
Object | The object that should be picked up. | Yes |
Arm | The arm with which the object should be picked up. If no arm is given, the left is used. | No |
Place
The place designator is used to place an object with the given arm. Even though it is not required to provide an arm parameter, it is still encouraged to do so for better results.
Slots | Description | Required |
---|---|---|
Type | Defines the type of this designator | Yes |
Object | The object that should be picked up. | Yes |
Arm | The arm with which the object should be picked up. If no arm is given, the left is used. | No |
Accessing
The accessing designator is used to open drawers to access the objects within. The drawer handle and joint need to be specified because no semantic knowledge about the drawer is available.
Slots | Description | Required |
---|---|---|
Type | Defines the type of this designator | Yes |
Drawer-Handle | The name of the drawer handle, how it is specified in the URDF. This is the point which the robot grips to open he drawer. | Yes |
Drawer-Joint | The name of the prismatic joint the drawer is connected to. | Yes |
Part-Of | The object of which the drawer is a part of. | Yes |
Distance | The distance, how wide the drawer should be opened. | No |
Arm | The arm with which the robot should open the drawer. | No |
Looking
The looking designator is used to move the head of the robot, to look at a given position. The position has to be in world coordinate frame. Alternatively, it is possible to specify an object for the robot to look at.
Even thought neither target, nor object are mandatory, one of them has to be provided.
Slots | Description | Required |
---|---|---|
Type | Defines the type of this designator | Yes |
Target | The position for the robot to look at. | No |
Object | The object for the robot to look at. | No |
Opening-Gripper
This designator is used to control the grippers of the robot. It can either open the left or the right gripper.
Slots | Description | Required |
---|---|---|
Type | Defines the type of this designator | Yes |
Gripper | Specifies the gripper which should be opened, either left or right. | Yes |
Closing-Gripper
This designator is used to control the gripper of the robot. It can either close the left or right gripper of the robot.
Slots | Description | Required |
---|---|---|
Type | Defines the type of this designator | Yes |
Gripper | Specifies the gripper which should be opened, either left or right. | Yes |
Detecting
This designator is used to detect an object that is in front of the robot and returns it to the user.
Slots | Description | Required |
---|---|---|
Type | Defines the type of this designator | Yes |
Object-Type | The type of the object that should be detected. | Yes |
Move-TCP
This designator is used to move the Tool Center Point of one of the arms of the robot. The arm does not have to be given. If no arm is given, the left is used.
Slots | Description | Required |
---|---|---|
Type | Defines the type of this designator | Yes |
Target | The target to which the tcp should be moved. | Yes |
Arm | The arm of which the tcp is a part of. | No |
Move-Arm-Joints
This designator is used to manipulate the joints of the robot arms. The user can either do this by giving a list of joint values, that will then be applied to the joints or to use the predefined joint states. This can be used by giving, instead of a list, the string “park”.
Even though neither the left, nor right arm is mandatory to be specified, one of them has to be provided.
Slots | Description | Required |
---|---|---|
Type | Defines the type of this designator | Yes |
Left-Arm | Defines the configuration for the left arm. | No |
Right-Arm | Defines the configuration for the right arm. | No |
World-State-Detecting
This designator is used to detect an object within the state of the world. Thus, the robot does not need to see the object to detect it. This can be useful as, in some cases, the robot is not able to see an object but will still able to grasp it. For example, this is the case if the robot wants to grasp object from the lowest level of a shelf.
Slots | Description | Required |
---|---|---|
Type | Defines the type of this designator | Yes |
Object-Type | The type of the object that should be detected. | Yes |