semantic_digital_twin.robots.daisy

Contents

semantic_digital_twin.robots.daisy#

Classes#

DAiSyController

The ros2_control controllers of the DAiSy, as its controller manager names them.

DAiSyJoint

Names of the DAiSy's commandable connections, as spelled in its URDF.

DAiSyLeftGripperLeftFinger

A finger is a kinematic chain attached to a gripper to manipulate objects.

DAiSyLeftGripperRightFinger

A finger is a kinematic chain attached to a gripper to manipulate objects.

DAiSyRightGripperLeftFinger

A finger is a kinematic chain attached to a gripper to manipulate objects.

DAiSyRightGripperRightFinger

A finger is a kinematic chain attached to a gripper to manipulate objects.

DAiSyLeftGripper

An WEISS WPG gripper driven by the Griplink interface.

DAiSyRightGripper

DAiSyLeftArm

An arm is a kinematic chain that has an end effector attached to it.

DAiSyRightArm

An arm is a kinematic chain that has an end effector attached to it.

DAiSyCamera

DAiSy does not currently have a dedicated camera.

DAiSy

Represents two UR5 Arms mounted on a table.

Module Contents#

class semantic_digital_twin.robots.daisy.DAiSyController#

Bases: enum.StrEnum

The ros2_control controllers of the DAiSy, as its controller manager names them.

LEFT_FORWARD_VELOCITY = 'left_forward_velocity_controller'#

Commands the joint velocities of the left arm.

RIGHT_FORWARD_VELOCITY = 'right_forward_velocity_controller'#

Commands the joint velocities of the right arm.

class semantic_digital_twin.robots.daisy.DAiSyJoint#

Bases: semantic_digital_twin.datastructures.definitions.JointName

Names of the DAiSy’s commandable connections, as spelled in its URDF.

Members are usable wherever a connection name is expected, so a configuration keyed by them stays a plain mapping of names to positions.

LEFT_SHOULDER_PAN = 'left_shoulder_pan_joint'#
LEFT_SHOULDER_LIFT = 'left_shoulder_lift_joint'#
LEFT_ELBOW = 'left_elbow_joint'#
LEFT_WRIST_1 = 'left_wrist_1_joint'#
LEFT_WRIST_2 = 'left_wrist_2_joint'#
LEFT_WRIST_3 = 'left_wrist_3_joint'#
LEFT_GRIPPER_FINGER = 'left_gripper_finger_joint'#
LEFT_GRIPPER_RIGHT_FINGER = 'left_gripper_right_finger_joint'#
RIGHT_SHOULDER_PAN = 'right_shoulder_pan_joint'#
RIGHT_SHOULDER_LIFT = 'right_shoulder_lift_joint'#
RIGHT_ELBOW = 'right_elbow_joint'#
RIGHT_WRIST_1 = 'right_wrist_1_joint'#
RIGHT_WRIST_2 = 'right_wrist_2_joint'#
RIGHT_WRIST_3 = 'right_wrist_3_joint'#
RIGHT_GRIPPER_FINGER = 'right_gripper_finger_joint'#
RIGHT_GRIPPER_RIGHT_FINGER = 'right_gripper_right_finger_joint'#
class semantic_digital_twin.robots.daisy.DAiSyLeftGripperLeftFinger#

Bases: semantic_digital_twin.robots.robot_parts.Finger

A finger is a kinematic chain attached to a gripper to manipulate objects.

setup_hardware_interfaces() → None#

Sets up a default hardware interface for this robot part by setting the has_hardware_interface flag to True for relevant connections of this robot part.

Implement as “pass” if this robot part does not have any hardware interfaces.

setup_joint_states() → list[semantic_digital_twin.datastructures.joint_state.JointState]#

Sets up default joint states for this robot part.

Implement as “return []” if this robot part does not have any important joint states.

classmethod setup_default_configuration_in_world_below_robot_root(robot_root: semantic_digital_twin.world_description.world_entity.KinematicStructureEntity) → Self#

Sets up a default configuration of this robot part in the world, below the given robot root.

This is used to set up a default configuration of the robot part in the world after parsing a URDF.

class semantic_digital_twin.robots.daisy.DAiSyLeftGripperRightFinger#

Bases: semantic_digital_twin.robots.robot_parts.Finger

A finger is a kinematic chain attached to a gripper to manipulate objects.

setup_hardware_interfaces() → None#

Sets up a default hardware interface for this robot part by setting the has_hardware_interface flag to True for relevant connections of this robot part.

Implement as “pass” if this robot part does not have any hardware interfaces.

setup_joint_states() → list[semantic_digital_twin.datastructures.joint_state.JointState]#

Sets up default joint states for this robot part.

Implement as “return []” if this robot part does not have any important joint states.

classmethod setup_default_configuration_in_world_below_robot_root(robot_root: semantic_digital_twin.world_description.world_entity.KinematicStructureEntity) → Self#

Sets up a default configuration of this robot part in the world, below the given robot root.

This is used to set up a default configuration of the robot part in the world after parsing a URDF.

class semantic_digital_twin.robots.daisy.DAiSyRightGripperLeftFinger#

Bases: semantic_digital_twin.robots.robot_parts.Finger

A finger is a kinematic chain attached to a gripper to manipulate objects.

setup_hardware_interfaces() → None#

Sets up a default hardware interface for this robot part by setting the has_hardware_interface flag to True for relevant connections of this robot part.

Implement as “pass” if this robot part does not have any hardware interfaces.

setup_joint_states() → list[semantic_digital_twin.datastructures.joint_state.JointState]#

Sets up default joint states for this robot part.

Implement as “return []” if this robot part does not have any important joint states.

classmethod setup_default_configuration_in_world_below_robot_root(robot_root: semantic_digital_twin.world_description.world_entity.KinematicStructureEntity) → Self#

Sets up a default configuration of this robot part in the world, below the given robot root.

This is used to set up a default configuration of the robot part in the world after parsing a URDF.

class semantic_digital_twin.robots.daisy.DAiSyRightGripperRightFinger#

Bases: semantic_digital_twin.robots.robot_parts.Finger

A finger is a kinematic chain attached to a gripper to manipulate objects.

setup_hardware_interfaces() → None#

Sets up a default hardware interface for this robot part by setting the has_hardware_interface flag to True for relevant connections of this robot part.

Implement as “pass” if this robot part does not have any hardware interfaces.

setup_joint_states() → list[semantic_digital_twin.datastructures.joint_state.JointState]#

Sets up default joint states for this robot part.

Implement as “return []” if this robot part does not have any important joint states.

classmethod setup_default_configuration_in_world_below_robot_root(robot_root: semantic_digital_twin.world_description.world_entity.KinematicStructureEntity) → Self#

Sets up a default configuration of this robot part in the world, below the given robot root.

This is used to set up a default configuration of the robot part in the world after parsing a URDF.

class semantic_digital_twin.robots.daisy.DAiSyLeftGripper#

Bases: semantic_digital_twin.robots.griplink_gripper.GriplinkGripper, semantic_digital_twin.robots.robot_part_mixins.HasTwoFingers[DAiSyLeftGripperLeftFinger, DAiSyLeftGripperRightFinger]

An WEISS WPG gripper driven by the Griplink interface.

Builds griplink-specific configurations so generic actions and demos produce robot- appropriate configurations without naming the robot.

Griplink action server endpoints of the left gripper, by the state each commands.

setup_hardware_interfaces() → None#

Sets up a default hardware interface for this robot part by setting the has_hardware_interface flag to True for relevant connections of this robot part.

Implement as “pass” if this robot part does not have any hardware interfaces.

setup_joint_states() → list[semantic_digital_twin.datastructures.joint_state.JointState]#

The gripper stands open with its fingers at the start of their travel and closed where the facing surfaces of their tips meet, 28 mm along it; further travel carries the fingers past each other.

property approach_axis: krrood_spatial_math.spatial_types.Vector3#

The direction the gripper travels toward an object, expressed in tool_frame.

It is the x-axis of the grasp frame grasp_candidates() describes.

property closing_axis: krrood_spatial_math.spatial_types.Vector3#

The axis the fingers close along, expressed in tool_frame.

It is the y-axis of the grasp frame grasp_candidates() describes, and has to be perpendicular to approach_axis.

classmethod setup_default_configuration_in_world_below_robot_root(robot_root: semantic_digital_twin.world_description.world_entity.KinematicStructureEntity) → Self#

Sets up a default configuration of this robot part in the world, below the given robot root.

This is used to set up a default configuration of the robot part in the world after parsing a URDF.

class semantic_digital_twin.robots.daisy.DAiSyRightGripper#

Bases: semantic_digital_twin.robots.griplink_gripper.GriplinkGripper, semantic_digital_twin.robots.robot_part_mixins.HasTwoFingers[DAiSyRightGripperLeftFinger, DAiSyRightGripperRightFinger]

An WEISS WPG gripper driven by the Griplink interface.

Builds griplink-specific configurations so generic actions and demos produce robot- appropriate configurations without naming the robot.

Griplink action server endpoints of the right gripper, by the state each commands.

setup_hardware_interfaces() → None#

Sets up a default hardware interface for this robot part by setting the has_hardware_interface flag to True for relevant connections of this robot part.

Implement as “pass” if this robot part does not have any hardware interfaces.

setup_joint_states() → list[semantic_digital_twin.datastructures.joint_state.JointState]#

The gripper stands open with its fingers at the start of their travel and closed where the facing surfaces of their tips meet, 28 mm along it; further travel carries the fingers past each other.

property approach_axis: krrood_spatial_math.spatial_types.Vector3#

The direction the gripper travels toward an object, expressed in tool_frame.

It is the x-axis of the grasp frame grasp_candidates() describes.

property closing_axis: krrood_spatial_math.spatial_types.Vector3#

The axis the fingers close along, expressed in tool_frame.

It is the y-axis of the grasp frame grasp_candidates() describes, and has to be perpendicular to approach_axis.

classmethod setup_default_configuration_in_world_below_robot_root(robot_root: semantic_digital_twin.world_description.world_entity.KinematicStructureEntity) → Self#

Sets up a default configuration of this robot part in the world, below the given robot root.

This is used to set up a default configuration of the robot part in the world after parsing a URDF.

class semantic_digital_twin.robots.daisy.DAiSyLeftArm#

Bases: semantic_digital_twin.robots.robot_parts.Arm[DAiSyLeftGripper]

An arm is a kinematic chain that has an end effector attached to it.

setup_hardware_interfaces() → None#

Sets up a default hardware interface for this robot part by setting the has_hardware_interface flag to True for relevant connections of this robot part.

Implement as “pass” if this robot part does not have any hardware interfaces.

setup_joint_states() → list[semantic_digital_twin.datastructures.joint_state.JointState]#

Sets up default joint states for this robot part.

Implement as “return []” if this robot part does not have any important joint states.

classmethod setup_default_configuration_in_world_below_robot_root(robot_root: semantic_digital_twin.world_description.world_entity.KinematicStructureEntity) → Self#

Sets up a default configuration of this robot part in the world, below the given robot root.

This is used to set up a default configuration of the robot part in the world after parsing a URDF.

class semantic_digital_twin.robots.daisy.DAiSyRightArm#

Bases: semantic_digital_twin.robots.robot_parts.Arm[DAiSyRightGripper]

An arm is a kinematic chain that has an end effector attached to it.

setup_hardware_interfaces() → None#

Sets up a default hardware interface for this robot part by setting the has_hardware_interface flag to True for relevant connections of this robot part.

Implement as “pass” if this robot part does not have any hardware interfaces.

setup_joint_states() → list[semantic_digital_twin.datastructures.joint_state.JointState]#

Sets up default joint states for this robot part.

Implement as “return []” if this robot part does not have any important joint states.

classmethod setup_default_configuration_in_world_below_robot_root(robot_root: semantic_digital_twin.world_description.world_entity.KinematicStructureEntity) → Self#

Sets up a default configuration of this robot part in the world, below the given robot root.

This is used to set up a default configuration of the robot part in the world after parsing a URDF.

class semantic_digital_twin.robots.daisy.DAiSyCamera#

Bases: semantic_digital_twin.robots.robot_parts.RobotCamera[semantic_digital_twin.datastructures.camera_model.FieldOfViewCameraModel]

DAiSy does not currently have a dedicated camera.

Setup a fake camera link in URDF to satisfy SemDT

setup_hardware_interfaces() → None#

Sets up a default hardware interface for this robot part by setting the has_hardware_interface flag to True for relevant connections of this robot part.

Implement as “pass” if this robot part does not have any hardware interfaces.

setup_joint_states() → list[semantic_digital_twin.datastructures.joint_state.JointState]#

Sets up default joint states for this robot part.

Implement as “return []” if this robot part does not have any important joint states.

classmethod setup_default_configuration_in_world_below_robot_root(robot_root: semantic_digital_twin.world_description.world_entity.KinematicStructureEntity) → Self#

Sets up a default configuration of this robot part in the world, below the given robot root.

This is used to set up a default configuration of the robot part in the world after parsing a URDF.

class semantic_digital_twin.robots.daisy.DAiSy#

Bases: semantic_digital_twin.robots.robot_parts.AbstractRobot, semantic_digital_twin.robots.robot_part_mixins.HasLeftRightArm[DAiSyLeftArm, DAiSyRightArm]

Represents two UR5 Arms mounted on a table.

The arms are equipped with WEISS WPG 300-120 grippers

classmethod get_ros_file_path() → str#

Returns a ROS file path pointing to the description of this robot, for example a URDF file.

property all_end_effectors: list[semantic_digital_twin.robots.robot_parts.EndEffector]#
Returns:

Every end effector of this robot, wherever it sits in the robot’s parts.