Robot Assembler Extension [omni.isaac.robot_assembler]

Robot Assembler

class RobotAssembler
static move_articulation_root(src_prim, tgt_prim)

Move the articulation root from src to tgt

is_root_joint(prim)
mask_collisions(prim_path_a: str, prim_path_b: str) pxr.Usd.Relationship

Mask collisions between two prims. All nested prims will also be included.

Parameters
  • prim_path_a (str) – Path to a prim

  • prim_path_b (str) – Path to a prim

Returns

A relationship filtering collisions between prim_path_a and prim_path_b

Return type

Usd.Relationship

assemble_rigid_bodies(base_path: str, attach_path: str, base_mount_frame: str, attach_mount_frame: str, fixed_joint_offset: numpy.array = array([0., 0., 0.]), fixed_joint_orient: numpy.array = array([1, 0, 0, 0]), mask_all_collisions: bool = True) omni.isaac.robot_assembler.robot_assembler.AssembledBodies

Assemble two rigid bodies into one physical structure

Parameters
  • base_robot_path (str) – Path to base robot.

  • attach_robot_path (str) – Path to attach robot. The attach robot will be unrooted from the stage and attached only to the base robot

  • base_robot_mount_frame (str) – Relative path to frame in base robot where there is the desired attach point.

  • attach_robot_mount_frame (str) – Relative path to frame in the attach robot where there is the desired attach point.

  • fixed_joint_offset (np.array, optional) – Fixed offset between attach points. Defaults to np.zeros(3).

  • fixed_joint_orient (np.array, optional) – Fixed orientation between attach points. Defaults to np.array([1, 0, 0, 0]).

  • mask_all_collisions (bool, optional) – Mask all collisions between attach robot and base robot. This is necessary when setting single_robot=False to prevent Physics constraint violations from the new fixed joint. Advanced users may set this flag to False and use the mask_collisions() function separately for more customizable behavior. Defaults to True.

Returns

An object representing the assembled bodies. This object can detach the composed robots and edit the fixed joint transform.

Return type

AssembledBodies

assemble_articulations(base_robot_path: str, attach_robot_path: str, base_robot_mount_frame: str, attach_robot_mount_frame: str, fixed_joint_offset: numpy.array = array([0., 0., 0.]), fixed_joint_orient: numpy.array = array([1, 0, 0, 0]), mask_all_collisions=True, single_robot=False) omni.isaac.robot_assembler.robot_assembler.AssembledRobot

Compose two robots into one physical structure

Parameters
  • base_robot_path (str) – Path to base robot.

  • attach_robot_path (str) – Path to attach robot. The attach robot will be unrooted from the stage and attached only to the base robot

  • base_robot_mount_frame (str) – Relative path to frame in base robot where there is the desired attach point.

  • attach_robot_mount_frame (str) – Relative path to frame in the attach robot where there is the desired attach point.

  • fixed_joint_offset (np.array, optional) – Fixed offset between attach points. Defaults to np.zeros(3).

  • fixed_joint_orient (np.array, optional) – Fixed orientation between attach points. Defaults to np.array([1, 0, 0, 0]).

  • mask_all_collisions (bool, optional) – Mask all collisions between attach robot and base robot. This is necessary when setting single_robot=False to prevent Physics constraint violations from the new fixed joint. Advanced users may set this flag to False and use the mask_collisions() function separately for more customizable behavior. Defaults to True.

  • single_robot (bool, optional) – If True: control the resulting composed robots as a single robot Articulation at base_robot_path. Setting this flag to True may resolve unstable physics behavior when teleporting the robot base. Defaults to False.

Returns

An object representing the assembled robot. This object can detach the composed robots and edit the fixed joint transform.

Return type

AssembledRobot

create_fixed_joint(prim_path: str, target0: Optional[str] = None, target1: Optional[str] = None, fixed_joint_offset: numpy.array = array([0., 0., 0.]), fixed_joint_orient: numpy.array = array([1, 0, 0, 0])) pxr.UsdPhysics.FixedJoint

Create a fixed joint between two bodies

Parameters
  • prim_path (str) – Prim path at which to place new fixed joint.

  • target0 (str, optional) – Prim path of frame at which to attach fixed joint. Defaults to None.

  • target1 (str, optional) – Prim path of frame at which to attach fixed joint. Defaults to None.

  • fixed_joint_offset (np.array, optional) – Translational offset of fixed joint between frames. Defaults to np.zeros(3).

  • fixed_joint_orient (np.array, optional) – Rotational offset of fixed joint between frames (quaternion). Defaults to np.array([1, 0, 0, 0]).

Returns

A USD fixed joint

Return type

UsdPhysics.FixedJoint

convert_prim_to_rigid_body(prim_path: str) None

Convert a prim to a rigid body by applying the UsdPhysics.RigidBodyAPI Also sets physics:kinematicEnabled property to true to prevent falling from gravity without needing a fixed joint.

Parameters

prim_path (str) – Path to prim to convert.

class AssembledRobot(assembled_robots: omni.isaac.robot_assembler.robot_assembler.AssembledBodies)
property base_path: str

Prim path of the base body

Returns

Prim path of the base body

Return type

str

property attach_path: str

Prim path of the floating (attach) body

Returns

Prim path of the floating (attach) body

Return type

str

property fixed_joint: pxr.UsdPhysics.FixedJoint

USD fixed joint linking base and floating body together

Returns

USD fixed joint linking base and floating body together

Return type

UsdPhysics.FixedJoint

property root_joints: List[pxr.UsdPhysics.Joint]

Root joints that tie the floating body to the USD stage. These are disabled in an assembled body, and will be re-enabled by the disassemble() function.

Returns

Root joints that tie the floating body to the USD stage.

Return type

List[UsdPhysics.Joint]

property collision_mask: pxr.Usd.Relationship

A Usd Relationship masking collisions between the two assembled robots

Returns

A Usd Relationship masking collisions between the two assembled robots

Return type

Usd.Relationship

is_assembled() bool

The composed robots are currently composed together. I.e. the disassemble() function has not been called.

Returns

The disassemble() function has not been called.

Return type

bool

disassemble()

Disassemble composed robots. This can only be done one time, and it will result in all non-trivial functions in this class returning immediately.

get_fixed_joint_transform()

Get the transform between mount frames in composed robot.

Returns

translation with shape (3,) and orientation with shape (4,)

Return type

Tuple[np.array, np.array]

set_fixed_joint_transform(translation: numpy.array, orientation: numpy.array)

Set the transform between mount frames in the composed robot.

Parameters
  • translation (np.array) – Local translation relative to mount frame on base robot.

  • orientation (np.array) – Local quaternion orientation relative to mount frame on base robot.

class AssembledBodies(base_path: str, attach_path: str, fixed_joint: pxr.UsdPhysics.FixedJoint, root_joints: List[pxr.UsdPhysics.Joint], attach_body_articulation_root: pxr.Usd.Prim, collision_mask=None)
property base_path: str

Prim path of the base body

Returns

Prim path of the base body

Return type

str

property attach_path: str

Prim path of the floating (attach) body

Returns

Prim path of the floating (attach) body

Return type

str

property fixed_joint: pxr.UsdPhysics.FixedJoint

USD fixed joint linking base and floating body together

Returns

USD fixed joint linking base and floating body together

Return type

UsdPhysics.FixedJoint

property root_joints: List[pxr.UsdPhysics.Joint]

Root joints that tie the floating body to the USD stage. These are disabled in an assembled body, and will be re-enabled by the disassemble() function.

Returns

Root joints that tie the floating body to the USD stage.

Return type

List[UsdPhysics.Joint]

property collision_mask: pxr.Usd.Relationship

A Usd Relationship masking collisions between the two assembled bodies

Returns

A Usd Relationship masking collisions between the two assembled bodies

Return type

Usd.Relationship

is_assembled() bool

The composed robots are currently composed together. I.e. the disassemble() function has not been called.

Returns

The disassemble() function has not been called.

Return type

bool

disassemble()

Disassemble composed robots. This can only be done one time, and it will result in all non-trivial functions in this class returning immediately.

get_fixed_joint_transform() Tuple[numpy.array, numpy.array]

Get the transform between mount frames in composed robot.

Returns

translation with shape (3,) and orientation with shape (4,)

Return type

Tuple[np.array, np.array]

set_fixed_joint_transform(translation: numpy.array, orientation: numpy.array)

Set the transform between mount frames in the composed body.

Parameters
  • translation (np.array) – Local translation relative to mount frame on base body.

  • orientation (np.array) – Local quaternion orientation relative to mount frame on base body.