Configure Robots and Profiles¶
A task selects one complete RobotProfileCfg. The profile binds a RobotSpecCfg to an action/control pipeline and camera configuration, so robot, action mode, IK, controller, and camera choices remain compatible.
Maintained robot specifications¶
| Environment tag | Robot specification | Arm DoF | Base capability | Maximum arm reach | Profile cameras |
|---|---|---|---|---|---|
EE |
EndEffectorRobotSpecCfg |
0 | end-effector oracle; no multirotor | not set | EE |
UAQuad |
UAQuadRobotSpecCfg |
4 | underactuated quadrotor | 0.67 m | EE and base |
UAHexa |
UAHexaRobotSpecCfg |
4 | underactuated hexarotor | 1.24 m | EE and base |
FAHexa |
FAHexaRobotSpecCfg |
4 | fully actuated fixed-tilt hexarotor | 1.24 m | EE and base |
OmniHexa |
OmniHexaRobotSpecCfg |
3 | fully actuated variable-tilt multirotor | 0.5 m | EE and base |
The EE profile is a task and policy debugging oracle, not a physical aerial-manipulator result. It directly controls a floating end-effector articulation and is the appropriate first variant for isolating scene, observation, action, and success behavior.
What a robot specification owns¶
RobotSpecCfg in source/ambench/ambench/robots/robot_cfg.py is the authoritative morphology surface.
| Field | Purpose |
|---|---|
robot_id, asset |
Stable internal identifier and Isaac Lab articulation config |
control_body_name, base_body_name, ee_body_name |
Semantic body handles resolved against the live articulation |
arm_joint_names |
Ordered arm joints used by observations, IK, and command application |
end_effector |
Tool-tip offset and optional command-to-link quaternion transform |
gripper |
Ordered joints and open/closed or object-width calibration |
max_arm_reach |
Optional reach value used by configuration and control logic |
multirotor |
Rotor layout, actuator properties, actuation class, aerodynamics, and optional propeller visualization |
Body and joint names must match the loaded USD. Pyroki profiles also require a matching URDF and target-link naming.
Select a profile through a registered config¶
Reusable profiles are defined in source/ambench/ambench/tasks/base/robot_profiles.py. Registered task subclasses normally differ only in their selected profile:
from ambench.tasks.base.robot_profiles import FA_HEXA_ABS_PID
class MyTaskHexaAbsPIDCfg(MyTaskDefaultCfg):
robot_profile = FA_HEXA_ABS_PID
Use an existing registered environment whenever it provides the required composition. Available profile names include EE PID/L1, FAHexa PID/L1/BaseJoint/MPC, OmniHexa PID/L1/BaseJoint, and underactuated UAHexa or UAQuad PID variants. Registrations are task-specific, so confirm the exact ID with Find an Environment.
Keep profile changes atomic¶
Changing only the robot asset while retaining incompatible link names, joints, IK URDF, controller type, or camera prim paths will fail during environment construction or produce an invalid command path. For a new morphology, define a new RobotSpecCfg, then compose and register a complete profile.
For implementation-level integration, follow Add a Robot. For action and controller choices inside a profile, continue with Actions, Observations, and Cameras and Controllers and Control Pipelines.