pycram.robot_plans.actions.composite.transporting

Contents

pycram.robot_plans.actions.composite.transporting#

Attributes#

Classes#

TransportAction

Transports an object to a position using an arm

PickAndPlaceAction

Transports an object to a position using an arm without moving the base of the robot

MoveAndPlaceAction

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

MoveAndPickUpAction

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

EfficientTransportAction

To transport an object to a target location by choosing the closest

Module Contents#

class pycram.robot_plans.actions.composite.transporting.TransportAction#

Bases: pycram.robot_plans.actions.base.ActionDescription

Transports an object to a position using an arm

object_designator: semantic_digital_twin.world_description.world_entity.Body#

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: typing_extensions.Optional[pycram.datastructures.enums.Arms]#

Arm that should be used

place_rotation_agnostic: typing_extensions.Optional[bool] = False#

If True, the robot will place the object in the same orientation as it is itself, no matter how the object was grasped.

_pre_perform_callbacks = []#

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

__post_init__()#
inside_container() List[semantic_digital_twin.world_description.world_entity.Body]#
plan() None#

Symbolic plan. Should only call motions or sub-actions.

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#
classmethod description(object_designator: typing_extensions.Union[typing_extensions.Iterable[semantic_digital_twin.world_description.world_entity.Body], semantic_digital_twin.world_description.world_entity.Body], 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, place_rotation_agnostic: typing_extensions.Optional[bool] = False) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[TransportAction]]#
class pycram.robot_plans.actions.composite.transporting.PickAndPlaceAction#

Bases: pycram.robot_plans.actions.base.ActionDescription

Transports an object to a position using an arm without moving the base of the robot

object_designator: semantic_digital_twin.world_description.world_entity.Body#

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

grasp_description: pycram.datastructures.grasp.GraspDescription#

Description of the grasp to pick up the target

_pre_perform_callbacks = []#

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

__post_init__()#
plan() None#

Symbolic plan. Should only call motions or sub-actions.

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#
classmethod description(object_designator: typing_extensions.Union[typing_extensions.Iterable[semantic_digital_twin.world_description.world_entity.Body], semantic_digital_twin.world_description.world_entity.Body], 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, grasp_description=GraspDescription) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[PickAndPlaceAction]]#
class pycram.robot_plans.actions.composite.transporting.MoveAndPlaceAction#

Bases: pycram.robot_plans.actions.base.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: semantic_digital_twin.world_description.world_entity.Body#

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()#

Symbolic plan. Should only call motions or sub-actions.

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#
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[semantic_digital_twin.world_description.world_entity.Body], semantic_digital_twin.world_description.world_entity.Body], 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.robot_plans.actions.composite.transporting.MoveAndPickUpAction#

Bases: pycram.robot_plans.actions.base.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: semantic_digital_twin.world_description.world_entity.Body#

The object to pick up

arm: pycram.datastructures.enums.Arms#

The arm to use

grasp_description: pycram.datastructures.grasp.GraspDescription#

The grasp to use

keep_joint_states: bool#

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

_pre_perform_callbacks = []#

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

__post_init__()#
plan()#

Symbolic plan. Should only call motions or sub-actions.

validate(result: typing_extensions.Optional[typing_extensions.Any] = None, max_wait_time: typing_extensions.Optional[datetime.timedelta] = None)#
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_description: 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.robot_plans.actions.composite.transporting.EfficientTransportAction#

Bases: pycram.robot_plans.actions.base.ActionDescription

To transport an object to a target location by choosing the closest available arm using simple Euclidean distance.

object_designator: semantic_digital_twin.world_description.world_entity.Body#
target_location: pycram.datastructures.pose.PoseStamped#
_choose_best_arm(robot: semantic_digital_twin.world_description.world_entity.Body, obj: semantic_digital_twin.world_description.world_entity.Body) pycram.datastructures.enums.Arms#

Function to find the closest available arm.

plan() None#

The main plan for the transport action, optimized for a stationary robot.

classmethod description(object_designator: typing_extensions.Union[typing_extensions.Iterable[semantic_digital_twin.world_description.world_entity.Body], semantic_digital_twin.world_description.world_entity.Body], target_location: typing_extensions.Union[typing_extensions.Iterable[pycram.datastructures.pose.PoseStamped], pycram.datastructures.pose.PoseStamped]) pycram.datastructures.partial_designator.PartialDesignator[typing_extensions.Type[EfficientTransportAction]]#
pycram.robot_plans.actions.composite.transporting.TransportActionDescription#
pycram.robot_plans.actions.composite.transporting.PickAndPlaceActionDescription#
pycram.robot_plans.actions.composite.transporting.MoveAndPlaceActionDescription#
pycram.robot_plans.actions.composite.transporting.MoveAndPickUpActionDescription#
pycram.robot_plans.actions.composite.transporting.EfficientTransportActionDescription#