Environment Configuration — Robot
The env.robot parameter allows you to specify which robot to use in your simulation. This is one of the most powerful configuration options, enabling you to change not just the robot model but also its components, payloads, and end effectors.
Tip: Run
srb lsto see every registered robot (and which category it belongs to). The-evalue in the examples below selects an environment or environment category — categories are prefixed with an underscore, e.g._manipulation,_ground,_aerial. A robot is only valid for environments whose category it supports.
Robot Selection
The simplest way to select a robot is by specifying its name:
srb agent rand -e _manipulation env.robot=ur10
srb agent rand -e _ground env.robot=unitree_go1
srb agent rand -e _aerial env.robot=crazyflie
End Effector for Manipulators
You can attach a specific end effector to a manipulator with the base+end_effector syntax. Both the base manipulator and the end effector must be named:
srb agent rand -e _manipulation env.robot=ur10+shadow_hand
Payload for Mobile Robots
Similarly, you can attach a payload to a mobile robot with the base+payload syntax:
srb agent rand -e _ground env.robot=spot+cargo_bay
Payloads may be static rigid geometry or an ActivePayload articulation. An
active payload contributes its own action terms after the mobile base terms and
is mounted as a separately addressable scene articulation. For example, the
landscaping configuration below has three actions: two filtered RaphRover drive
channels followed by one continuous RaphShovel velocity channel.
srb agent rand -e terrain_landscaping env.robot=raph_rover+raph_shovel
That landscaping action vector is frozen by the task’s IO contract: three
normalized channels in [-1, 1], mapped to robot/cmd_vel on slice [0:2]
(linear scale and saturation 0.4 m/s; angular scale radians(60) followed by
saturation at 1.0 rad/s) and payload/joint_vel on slice [2:3] (scale and
saturation 0.04 m/s). Those are simulator limits, not verified lab facts;
see Terrain Landscaping Training Readiness.
Hazard — asset-instance customizations can be dropped on the CLI path. When a task config is rebuilt through Hydra (which is what every
srb agent/srb real_agentinvocation does),extract_defaults_from_classserializes an asset-instance field default as{"name": …}plus a small allow-list (action_modeand nested sub-asset fields). Anything else the task declared on that instance is silently dropped, and the asset is rebuilt from its class defaults. A directly constructedTaskCfg(...)keeps the declared values, so the two paths can disagree without any error. This was measured on the landscaping containment: direct construction received a(4.0, 4.0) msurface with0.3 mwalls, the CLI path receivedPlane’s class defaults(0.75, 2.0) mwith1.0 mwalls. If you customize an asset instance in a task config, express it as plain scalars re-applied in__post_init__(what the landscaping tasks now do), or verify explicitly that it survives the round trip.
Combine Mobile Manipulators
SRB supports combining any mobile robot with any manipulator for mobile manipulation environments via the env.robot.mobile_base and env.robot.manipulator parameters:
srb agent rand -e _ground_manipulation env.robot.mobile_base=unitree_a1 env.robot.manipulator=unitree_z1
Similarly, you can attach payloads to the mobile base and end effectors to the manipulator:
srb agent rand -e _ground_manipulation env.robot.mobile_base=anymal_d+cargo_bay env.robot.manipulator=ur10+shadow_hand
Alternatively, a ground mobile manipulator can be composed in a single env.robot token — the first name must be a registered mobile robot and the second a registered manipulator, which may itself carry an end-effector suffix:
srb agent rand -e _ground_manipulation env.robot=unitree_a1+unitree_z1
srb agent rand -e _ground_manipulation env.robot=husky+kinova_gen3n7+robotiq_hand_e
Change Action Modes
Each robot, active payload, and active tool (end-effector) contributes its selected action mode to the action space of the whole system. You can change the selected mode with action_mode on the robot, mobile base, manipulator, or active tool:
srb agent rand -e _manipulation env.robot.action_mode=joint_pos_rel
Robot selection and action mode overrides compose:
srb agent rand -e _manipulation env.robot=ur10 env.robot.action_mode=joint_pos_rel