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