Embodiment#
An embodiment is the robot: its physical description, control interface, sensors, and cameras. Because the embodiment is independent of the scene and task, you can swap the robot without touching anything else. The same pick-and-place task works with a Franka or a G1.
embodiment = asset_registry.get_asset_by_name("franka_ik")(enable_cameras=True)
environment = IsaacLabArenaEnvironment(
name="kitchen_pick_and_place",
embodiment=embodiment,
scene=scene,
task=task,
)
Walkthrough#
We load the embodiment from the registry, passing any options to its constructor:
embodiment = asset_registry.get_asset_by_name("franka_ik")(enable_cameras=True)
embodiment.set_initial_pose(Pose(position_xyz=(0.5, 0.0, 0.0), rotation_xyzw=(0.0, 0.0, 0.0, 1.0)))
The initial pose places the robot in world frame — relative to the scene origin. This is usually set to position the robot in front of the workspace.
Available embodiments include the Franka Panda, Unitree G1, GR1T2, DROID, and others.
Each has one or more control variants registered separately.
For example, franka_ik uses differential IK control,
while franka_joint_pos uses direct joint position control.
Cameras
Passing enable_cameras=True adds the robot’s onboard cameras to the observation space.
This is required for any policy that takes image observations, such as GR00T.
More details#
The rest of this section covers further details of the embodiment component.