classical

Submodules

Classes

class brom_drake.stations.classical.ur10e.UR10eStation(time_step: float = 0.002, meshcat_port_number: int = 7001, gripper_type: GripperType = GripperType.Robotiq_2f_85)[source]

Description

A template system diagram for controlling a UR10e robot in a simulated environment.

Diagram

The diagram’s inputs and outputs can be represented as:

                                    -----------------
                                    |               |
gripper_target -------------------->|               |
(Vector, np.array)                  |   UR10e       |
                                    |               |
gripper_target_type --------------->|   Station     |
(Abstract, GripperTarget Enum)      |               |
                                    |               |
desired_joint_positions ----------->|               |
(Vector, np.array)                  |               |
                                    |               |
                                    -----------------
Add2f85Gripper()[source]

Description

Add the Robotiq 2F-85 gripper to the system. The arm must be added first.

AddArm()[source]

Description

Add the UR10e arm to the system.

CreateArmControllerAndConnect() InverseDynamicsController[source]

Description

This function creates a Cartesian arm controller and connects it to the rest of the system. :return:

CreateGripperControllerAndConnect()[source]

Description

Connects the gripper controller to: - The Gripper Actuators (done via the plant of the station)

and exports some of the gripper controller’s inputs and outputs (so that they become the inputs and outputs of the station).

ExportArmControllerPorts()[source]

Description

This function creates the input and output ports for the diagram that are related to the arm controller.

ExportArmPositionInputPort()[source]

Description

Creates the input port for the arm position (i.e. the joint position) for the station. This requires creating a special connection to the arm controller via a multiplexer.

ExportGripperStatePort()[source]

Description

This function exports the gripper’s state as a port of the diagram.

Finalize()[source]

Description

This finalizes the diagram by:

  • Finalizing all plants in the diagram

  • Setting up the visualizer (if desired)

  • Creating and connecting the arm controller

  • Creating and connecting the gripper controller (if desired)

  • Building the diagram

add_arm_to_plant_with_ee_frame(arm_urdf_path: str, plant: MultibodyPlant, new_frame_name: str = 'end_effector', X_ee: RigidTransform = RigidTransform(R=RotationMatrix([[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]]), p=[0.0, 0.0, 0.0])) Tuple[ModelInstanceIndex, Frame][source]

Description

This function adds the “arm” object at the arm_urdf_path location to the plant.

Parameters

arm_urdf_pathstr

The path to the URDF file for the arm.

plantMultibodyPlant

The plant to which the arm will be added.

Returns

arm: ModelInstanceIndex

The model instance index of the arm and the frame of the end effector.

end_effector_frame: Frame

The frame of the end effector.

add_gripper_controller()[source]

Description

This function adds a controller for the gripper to the station. It is optional and may not be necessary for all stations.

create_plants_and_scene_graph(time_step: float = 0.001)[source]

Description

This function creates the plant and scene graph for the diagram.

Parameters

time_stepfloat

The time step for the MultibodyPlant.

use_meshcat() bool[source]

Description

This function returns whether or not to use meshcat for visualization. :return: (bool) Whether or not to use meshcat for visualization.

Functions

(None found)

Variables

(None found)