pycram.designators.action_designator

Contents

pycram.designators.action_designator#

Attributes#

Classes#

MoveTorsoAction

Move the torso of the robot up and down.

SetGripperAction

Set the gripper state of the robot.

ReleaseAction

Releases an Object from the robot.

GripAction

Grip an object with the robot.

ParkArmsAction

Park the arms of the robot.

ReachToPickUpAction

Let the robot reach a specific pose.

PickUpAction

Let the robot pick up an object.

PlaceAction

Places an Object at a position using an arm.

NavigateAction

Navigates the Robot to a position.

TransportAction

Transports an object to a position using an arm

LookAtAction

Lets the robot look at a position.

DetectAction

Detects an object that fits the object description and returns an object designator_description describing the object.

OpenAction

Opens a container like object

CloseAction

Closes a container like object.

GraspingAction

Grasps an object described by the given Object Designator description

FaceAtAction

Turn the robot chassis such that is faces the pose and after that perform a look at action.

MoveAndPickUpAction

Navigate to standing_position, then turn towards the object and pick it up.

MoveAndPlaceAction

Navigate to standing_position, then turn towards the object and pick it up.

SearchAction

Searches for a target object around the given location.

Functions#

record_object_pre_perform(action)

Record the object before the action is performed.

validate_close_open(object_designator, arm, action_type)

Validates if the container is opened or closed by checking the joint position of the container.

check_opened(joint_obj, obj_part, arm, upper_limit)

check_closed(joint_obj, obj_part, arm, lower_limit)

Module Contents#

pycram.designators.action_designator.record_object_pre_perform(action)#

Record the object before the action is performed.

This should be appended to the pre performs of every action that interacts with an object.

class pycram.designators.action_designator.MoveTorsoAction#

Bases: pycram.designator.ActionDescription

Move the torso of the robot up and down.

torso_state: pycram.datastructures.enums.TorsoState#

The state of the torso that should be set

plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: datetime.timedelta = timedelta(seconds=2))#

Create a goal validator for the joint positions and wait until the goal is achieved or the timeout is reached.

classmethod description(torso_state: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.TorsoState], pycram.datastructures.enums.TorsoState]) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[MoveTorsoAction]]#
class pycram.designators.action_designator.SetGripperAction#

Bases: pycram.designator.ActionDescription

Set the gripper state of the robot.

gripper: pycram.datastructures.enums.Arms#

The gripper that should be set

motion: pycram.datastructures.enums.GripperState#

The motion that should be set on the gripper

plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: datetime.timedelta = timedelta(seconds=2))#

Needs gripper state to be read or perceived.

classmethod description(gripper: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms], motion: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.GripperState], pycram.datastructures.enums.GripperState] = None) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[SetGripperAction]]#
class pycram.designators.action_designator.ReleaseAction#

Bases: pycram.designator.ActionDescription

Releases an Object from the robot.

Note: This action can not ve used yet.

object_designator: pycram.world_concepts.world_object.Object#

The object that should be released

object_at_execution: typing_extensions.Optional[pycram.datastructures.dataclasses.FrozenObject] = None#

The object at the time this Action got created. It is used to be a static, information holding entity

gripper: pycram.datastructures.enums.Arms#

The gripper that should be used to release the object

_pre_perform_callbacks = []#

List to save the callbacks which should be called before performing the action.

__post_init__()#
abstract plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

classmethod description(object_designator: pycram.designator.ObjectDesignatorDescription, gripper: typing_extensions.Optional[typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms]] = None) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[ReleaseAction]]#
class pycram.designators.action_designator.GripAction#

Bases: pycram.designator.ActionDescription

Grip an object with the robot.

Note: This action can not be used yet.

object_designator: pycram.world_concepts.world_object.Object#

The object that should be gripped

object_at_execution: typing_extensions.Optional[pycram.datastructures.dataclasses.FrozenObject] = None#

The object at the time this Action got created. It is used to be a static, information holding entity

gripper: pycram.datastructures.enums.Arms#

The gripper that should be used to grip the object

effort: float = None#

The effort that should be used to grip the object

_pre_perform_callbacks = []#

List to save the callbacks which should be called before performing the action.

__post_init__()#
abstract plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

classmethod description(object_designator: typing_extensions.Union[typing_extensions.Iterable[pycram.world_concepts.world_object.Object], pycram.world_concepts.world_object.Object], gripper: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms] = None, effort: typing_extensions.Union[typing_extensions.Iterable[float], float] = None) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[GripAction]]#
class pycram.designators.action_designator.ParkArmsAction#

Bases: pycram.designator.ActionDescription

Park the arms of the robot.

arm: pycram.datastructures.enums.Arms#

Entry from the enum for which arm should be parked

plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

get_joint_poses() typing_extensions.Dict[str, float]#
Returns:

The joint positions that should be set for the arm to be in the park position.

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: datetime.timedelta = timedelta(seconds=2))#

Create a goal validator for the joint positions and wait until the goal is achieved or the timeout is reached.

classmethod description(arm: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms]) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[ParkArmsAction]]#
pycram.designators.action_designator.SPECIAL_KNOWLEDGE#
class pycram.designators.action_designator.ReachToPickUpAction#

Bases: pycram.designator.ActionDescription

Let the robot reach a specific pose.

object_designator: pycram.world_concepts.world_object.Object#

Object designator_description describing the object that should be picked up

arm: pycram.datastructures.enums.Arms#

The arm that should be used for pick up

grasp_description: pycram.datastructures.grasp.GraspDescription#

The grasp description that should be used for picking up the object

object_at_execution: typing_extensions.Optional[pycram.datastructures.dataclasses.FrozenObject] = None#

The object at the time this Action got created. It is used to be a static, information holding entity. It is not updated when the world object is changed.

_pre_perform_callbacks = []#

List to save the callbacks which should be called before performing the action.

__post_init__()#
plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

move_gripper_to_pose(pose: pycram.datastructures.pose.PoseStamped, movement_type: pycram.datastructures.enums.MovementType = MovementType.CARTESIAN, add_vis_axis: bool = True)#

Move the gripper to a specific pose.

Parameters:
  • pose – The pose to go to.

  • movement_type – The type of movement that should be performed.

  • add_vis_axis – If a visual axis should be added to the world.

property local_transformer: pycram.local_transformer.LocalTransformer#
property arm_chain: pycram.robot_description.KinematicChainDescription#
property end_effector: pycram.robot_description.EndEffectorDescription#
validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Check if object is contained in the gripper such that it can be grasped and picked up.

classmethod description(object_designator: typing_extensions.Union[typing_extensions.Iterable[pycram.world_concepts.world_object.Object], pycram.world_concepts.world_object.Object], arm: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms] = None, grasp: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Grasp], pycram.datastructures.enums.Grasp] = None) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[ReachToPickUpAction]]#
class pycram.designators.action_designator.PickUpAction#

Bases: pycram.designator.ActionDescription

Let the robot pick up an object.

object_designator: pycram.world_concepts.world_object.Object#

Object designator_description describing the object that should be picked up

arm: pycram.datastructures.enums.Arms#

The arm that should be used for pick up

grasp_description: pycram.datastructures.grasp.GraspDescription#

The GraspDescription that should be used for picking up the object

object_at_execution: typing_extensions.Optional[pycram.datastructures.dataclasses.FrozenObject] = None#

The object at the time this Action got created. It is used to be a static, information holding entity. It is not updated when the BulletWorld object is changed.

_pre_perform_callbacks = []#

List to save the callbacks which should be called before performing the action.

__post_init__()#
plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

lift_object(distance: float = 0.1)#
gripper_pose() pycram.datastructures.pose.PoseStamped#

Get the pose of the gripper.

Returns:

The pose of the gripper.

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Check if picked up object is in contact with the gripper.

property arm_chain: pycram.robot_description.KinematicChainDescription#
classmethod description(object_designator: typing_extensions.Union[typing_extensions.Iterable[pycram.world_concepts.world_object.Object], pycram.world_concepts.world_object.Object], arm: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms] = None, grasp_description: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.grasp.GraspDescription], pycram.datastructures.grasp.GraspDescription] = None) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[PickUpAction]]#
class pycram.designators.action_designator.PlaceAction#

Bases: pycram.designator.ActionDescription

Places an Object at a position using an arm.

object_designator: pycram.world_concepts.world_object.Object#

Object designator_description describing the object that should be place

target_location: pycram.datastructures.pose.PoseStamped#

Pose in the world at which the object should be placed

arm: pycram.datastructures.enums.Arms#

Arm that is currently holding the object

object_at_execution: typing_extensions.Optional[pycram.datastructures.dataclasses.FrozenObject] = None#

The object at the time this Action got created. It is used to be a static, information holding entity. It is not updated when the BulletWorld object is changed.

_pre_perform_callbacks = []#

List to save the callbacks which should be called before performing the action.

__post_init__()#
plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

property arm_chain: pycram.robot_description.KinematicChainDescription#
property end_effector: pycram.robot_description.EndEffectorDescription#
property local_transformer: pycram.local_transformer.LocalTransformer#
validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Check if the object is placed at the target location.

validate_loss_of_contact()#

Check if the object is still in contact with the robot after placing it.

validate_placement_location()#

Check if the object is placed at the target location.

classmethod description(object_designator: typing_extensions.Union[typing_extensions.Iterable[pycram.world_concepts.world_object.Object], pycram.world_concepts.world_object.Object], target_location: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.pose.PoseStamped], pycram.datastructures.pose.PoseStamped], arm: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms] = None) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[PlaceAction]]#
class pycram.designators.action_designator.NavigateAction#

Bases: pycram.designator.ActionDescription

Navigates the Robot to a position.

target_location: pycram.datastructures.pose.PoseStamped#

Location to which the robot should be navigated

keep_joint_states: bool#

Keep the joint states of the robot the same during the navigation.

plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Validate the action after performing it, by checking if the action effects are as expected.

Parameters:
  • result – The result of the action if there is any

  • max_wait_time – The maximum time to wait for the action to be validated, before raising an error.

classmethod description(target_location: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.pose.PoseStamped], pycram.datastructures.pose.PoseStamped], keep_joint_states: typing_extensions.Union[typing_extensions.Iterable[bool], bool] = ActionConfig.navigate_keep_joint_states) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[NavigateAction]]#
class pycram.designators.action_designator.TransportAction#

Bases: pycram.designator.ActionDescription

Transports an object to a position using an arm

object_designator: pycram.world_concepts.world_object.Object#

Object designator_description describing the object that should be transported.

target_location: pycram.datastructures.pose.PoseStamped#

Target Location to which the object should be transported

arm: pycram.datastructures.enums.Arms#

Arm that should be used

_pre_perform_callbacks = []#

List to save the callbacks which should be called before performing the action.

__post_init__()#
plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Validate the action after performing it, by checking if the action effects are as expected.

Parameters:
  • result – The result of the action if there is any

  • max_wait_time – The maximum time to wait for the action to be validated, before raising an error.

classmethod description(object_designator: typing_extensions.Union[typing_extensions.Iterable[pycram.world_concepts.world_object.Object], pycram.world_concepts.world_object.Object], target_location: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.pose.PoseStamped], pycram.datastructures.pose.PoseStamped], arm: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms] = None) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[TransportAction]]#
class pycram.designators.action_designator.LookAtAction#

Bases: pycram.designator.ActionDescription

Lets the robot look at a position.

target: pycram.datastructures.pose.PoseStamped#

Position at which the robot should look, given as 6D pose

plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Check if the robot is looking at the target location by spawning a virtual object at the target location and creating a ray from the camera and checking if it intersects with the object.

classmethod description(target: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.pose.PoseStamped], pycram.datastructures.pose.PoseStamped]) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[LookAtAction]]#
class pycram.designators.action_designator.DetectAction#

Bases: pycram.designator.ActionDescription

Detects an object that fits the object description and returns an object designator_description describing the object.

If no object is found, an PerceptionObjectNotFound error is raised.

technique: pycram.datastructures.enums.DetectionTechnique#

The technique that should be used for detection

state: pycram.datastructures.enums.DetectionState = None#

The state of the detection, e.g Start Stop for continues perception

object_designator: typing_extensions.Optional[pycram.world_concepts.world_object.Object] = None#

The type of the object that should be detected, only considered if technique is equal to Type

region: pycrap.ontologies.Location = None#

The region in which the object should be detected

_pre_perform_callbacks = []#

List to save the callbacks which should be called before performing the action.

__post_init__()#
plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Validate the action after performing it, by checking if the action effects are as expected.

Parameters:
  • result – The result of the action if there is any

  • max_wait_time – The maximum time to wait for the action to be validated, before raising an error.

classmethod description(technique: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.DetectionTechnique], pycram.datastructures.enums.DetectionTechnique], state: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.DetectionState], pycram.datastructures.enums.DetectionState] = None, object_designator: typing_extensions.Union[typing_extensions.Iterable[pycram.world_concepts.world_object.Object], pycram.world_concepts.world_object.Object] = None, region: typing_extensions.Union[typing_extensions.Iterable[pycrap.ontologies.Location], pycrap.ontologies.Location] = None) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[DetectAction]]#
class pycram.designators.action_designator.OpenAction#

Bases: pycram.designator.ActionDescription

Opens a container like object

object_designator: pycram.description.ObjectDescription.Link#

Object designator_description describing the object that should be opened

arm: pycram.datastructures.enums.Arms#

Arm that should be used for opening the container

grasping_prepose_distance: float#

The distance in meters the gripper should be at in the x-axis away from the handle.

plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Check if the container is opened, this assumes that the container state can be read accurately from the real world.

classmethod description(object_designator_description: typing_extensions.Union[typing_extensions.Iterable[pycram.description.ObjectDescription.Link], pycram.description.ObjectDescription.Link], arm: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms] = None, grasping_prepose_distance: typing_extensions.Union[typing_extensions.Iterable[float], float] = ActionConfig.grasping_prepose_distance) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[OpenAction]]#
class pycram.designators.action_designator.CloseAction#

Bases: pycram.designator.ActionDescription

Closes a container like object.

object_designator: pycram.description.ObjectDescription.Link#

Object designator_description describing the object that should be closed

arm: pycram.datastructures.enums.Arms#

Arm that should be used for closing

grasping_prepose_distance: float#

The distance in meters between the gripper and the handle before approaching to grasp.

plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Check if the container is closed, this assumes that the container state can be read accurately from the real world.

classmethod description(object_designator_description: typing_extensions.Union[typing_extensions.Iterable[pycram.description.ObjectDescription.Link], pycram.description.ObjectDescription.Link], arm: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms] = None, grasping_prepose_distance: typing_extensions.Union[typing_extensions.Iterable[float], float] = ActionConfig.grasping_prepose_distance) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[CloseAction]]#
pycram.designators.action_designator.validate_close_open(object_designator: pycram.description.ObjectDescription.Link, arm: pycram.datastructures.enums.Arms, action_type: typing_extensions.Union[typing_extensions.Type[OpenAction], typing_extensions.Type[CloseAction]])#

Validates if the container is opened or closed by checking the joint position of the container.

Parameters:
  • object_designator – The object designator_description describing the object that should be opened or closed.

  • arm – The arm that should be used for opening or closing the container.

  • action_type – The type of the action that should be validated.

pycram.designators.action_designator.check_opened(joint_obj: pycram.description.Joint, obj_part: pycram.description.Link, arm: pycram.datastructures.enums.Arms, upper_limit: float)#
pycram.designators.action_designator.check_closed(joint_obj: pycram.description.Joint, obj_part: pycram.description.Link, arm: pycram.datastructures.enums.Arms, lower_limit: float)#
class pycram.designators.action_designator.GraspingAction#

Bases: pycram.designator.ActionDescription

Grasps an object described by the given Object Designator description

object_designator: typing_extensions.Union[pycram.world_concepts.world_object.Object, pycram.description.ObjectDescription.Link]#

Object Designator for the object that should be grasped

arm: pycram.datastructures.enums.Arms#

The arm that should be used to grasp

prepose_distance: float#

The distance in meters the gripper should be at before grasping the object

plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Validate the action after performing it, by checking if the action effects are as expected.

Parameters:
  • result – The result of the action if there is any

  • max_wait_time – The maximum time to wait for the action to be validated, before raising an error.

classmethod description(object_designator: typing_extensions.Union[typing_extensions.Iterable[pycram.world_concepts.world_object.Object], pycram.world_concepts.world_object.Object], arm: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms] = None, prepose_distance: typing_extensions.Union[typing_extensions.Iterable[float], float] = ActionConfig.grasping_prepose_distance) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[GraspingAction]]#
class pycram.designators.action_designator.FaceAtAction#

Bases: pycram.designator.ActionDescription

Turn the robot chassis such that is faces the pose and after that perform a look at action.

pose: pycram.datastructures.pose.PoseStamped#

The pose to face

keep_joint_states: bool#

Keep the joint states of the robot the same during the navigation.

plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Validate the action after performing it, by checking if the action effects are as expected.

Parameters:
  • result – The result of the action if there is any

  • max_wait_time – The maximum time to wait for the action to be validated, before raising an error.

classmethod description(pose: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.pose.PoseStamped], pycram.datastructures.pose.PoseStamped], keep_joint_states: typing_extensions.Union[typing_extensions.Iterable[bool], bool] = ActionConfig.face_at_keep_joint_states) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[FaceAtAction]]#
class pycram.designators.action_designator.MoveAndPickUpAction#

Bases: pycram.designator.ActionDescription

Navigate to standing_position, then turn towards the object and pick it up.

standing_position: pycram.datastructures.pose.PoseStamped#

The pose to stand before trying to pick up the object

object_designator: pycram.world_concepts.world_object.Object#

The object to pick up

arm: pycram.datastructures.enums.Arms#

The arm to use

grasp: pycram.datastructures.enums.Grasp#

The grasp to use

keep_joint_states: bool#

Keep the joint states of the robot the same during the navigation.

plan()#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Validate the action after performing it, by checking if the action effects are as expected.

Parameters:
  • result – The result of the action if there is any

  • max_wait_time – The maximum time to wait for the action to be validated, before raising an error.

classmethod description(standing_position: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.pose.PoseStamped], pycram.datastructures.pose.PoseStamped], object_designator: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.pose.PoseStamped], pycram.datastructures.pose.PoseStamped], arm: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms] = None, grasp: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Grasp], pycram.datastructures.enums.Grasp] = None, keep_joint_states: typing_extensions.Union[typing_extensions.Iterable[bool], bool] = ActionConfig.navigate_keep_joint_states) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[MoveAndPickUpAction]]#
class pycram.designators.action_designator.MoveAndPlaceAction#

Bases: pycram.designator.ActionDescription

Navigate to standing_position, then turn towards the object and pick it up.

standing_position: pycram.datastructures.pose.PoseStamped#

The pose to stand before trying to pick up the object

object_designator: pycram.world_concepts.world_object.Object#

The object to pick up

target_location: pycram.datastructures.pose.PoseStamped#

The location to place the object.

arm: pycram.datastructures.enums.Arms#

The arm to use

keep_joint_states: bool#

Keep the joint states of the robot the same during the navigation.

plan()#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Validate the action after performing it, by checking if the action effects are as expected.

Parameters:
  • result – The result of the action if there is any

  • max_wait_time – The maximum time to wait for the action to be validated, before raising an error.

classmethod description(standing_position: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.pose.PoseStamped], pycram.datastructures.pose.PoseStamped], object_designator: typing_extensions.Union[typing_extensions.Iterable[pycram.world_concepts.world_object.Object], pycram.world_concepts.world_object.Object], target_location: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.pose.PoseStamped], pycram.datastructures.pose.PoseStamped], arm: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.enums.Arms], pycram.datastructures.enums.Arms] = None, keep_joint_states: typing_extensions.Union[typing_extensions.Iterable[bool], bool] = ActionConfig.navigate_keep_joint_states) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[MoveAndPlaceAction]]#
class pycram.designators.action_designator.SearchAction#

Bases: pycram.designator.ActionDescription

Searches for a target object around the given location.

target_location: pycram.datastructures.pose.PoseStamped#

Location around which to look for a target object.

object_type: typing_extensions.Type[pycrap.ontologies.PhysicalObject]#

Type of the object which is searched for.

plan() None#

Plan of the action. To be overridden by subclasses.

Returns:

The result of the action, if there is any

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#

Validate the action after performing it, by checking if the action effects are as expected.

Parameters:
  • result – The result of the action if there is any

  • max_wait_time – The maximum time to wait for the action to be validated, before raising an error.

classmethod description(target_location: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.pose.PoseStamped], pycram.datastructures.pose.PoseStamped], object_type: typing_extensions.Union[typing_extensions.Iterable[pycrap.ontologies.PhysicalObject], pycrap.ontologies.PhysicalObject]) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[SearchAction]]#
pycram.designators.action_designator.MoveTorsoActionDescription#
pycram.designators.action_designator.SetGripperActionDescription#
pycram.designators.action_designator.ParkArmsActionDescription#
pycram.designators.action_designator.ReachToPickUpActionDescription#
pycram.designators.action_designator.PickUpActionDescription#
pycram.designators.action_designator.PlaceActionDescription#
pycram.designators.action_designator.NavigateActionDescription#
pycram.designators.action_designator.TransportActionDescription#
pycram.designators.action_designator.LookAtActionDescription#
pycram.designators.action_designator.DetectActionDescription#
pycram.designators.action_designator.OpenActionDescription#
pycram.designators.action_designator.CloseActionDescription#
pycram.designators.action_designator.GraspingActionDescription#
pycram.designators.action_designator.FaceAtActionDescription#
pycram.designators.action_designator.MoveAndPickUpActionDescription#
pycram.designators.action_designator.MoveAndPlaceActionDescription#
pycram.designators.action_designator.ReleaseActionDescription#
pycram.designators.action_designator.GripActionDescription#
pycram.designators.action_designator.SearchActionDescription#