Environments – Manipulation (Static)
The Space Robotics Bench provides a set of manipulation environments for fixed-base robot arms.
Manipulation (_manipulation)
Template environment for fixed-base manipulation tasks. Configure via
env.robot=<manipulator>.
| Episode Length | 10.0s (500 steps) |
| Reward Terms | 4 |
| Default Robot | Franka |
Compatible Robots
Canadarm3 | Franka | Kinova J2N6S | Kinova J2N7S | Kinova Gen3N7 | Levion Arms | So Arm100 D5 | So Arm100 D7 | Unitree Z1 | Ur3 | Ur3E | Ur5 | Ur5E | Ur10 | Ur10E | Ur16E | Ur20 | Ur30 | Random Ur Manipulator | Vispa | Zeroglab Arms
Reward Breakdown
| Term | Type | Weight | Scale | Notes |
|---|---|---|---|---|
| penalty_action_rate | Linear | -0.1 | – | |
| penalty_joint_torque | Linear | -0.000025 | – | |
| penalty_joint_acceleration | Linear | -0.0005 | – | |
| penalty_undesired_robot_contacts | Threshold | -0.5 | – |
Debris Capture (debris_capture)
Capture and securement of floating debris in microgravity with a fixed-base manipulator
| Episode Length | 10.0s (500 steps) |
| Reward Terms | 11 |
| Default Robot | Franka |
Compatible Robots
Canadarm3 | Franka | Kinova J2N6S | Kinova J2N7S | Kinova Gen3N7 | Levion Arms | So Arm100 D5 | So Arm100 D7 | Unitree Z1 | Ur3 | Ur3E | Ur5 | Ur5E | Ur10 | Ur10E | Ur16E | Ur20 | Ur30 | Random Ur Manipulator | Vispa | Zeroglab Arms
Reward Breakdown
| Term | Type | Weight | Scale | Notes |
|---|---|---|---|---|
| penalty_action_rate | Linear | -0.1 | – | |
| penalty_joint_torque | Linear | -0.000025 | – | |
| penalty_joint_acceleration | Linear | -0.0005 | – | |
| penalty_undesired_robot_contacts | Threshold | -0.5 | – | |
| reward_distance_ee_to_obj | Gaussian | 16 | 0.08 | |
| reward_grasp | SoftThreshold | 16 | – | |
| penalty_debris_velocity_lin | Linear | -3 | – | |
| penalty_debris_velocity_ang | Linear | -1 | – | |
| reward_approach_velocity_alignment | Hyperbolic | 4 | 0.1 | |
| penalty_approach_speed | Linear | -2 | – | |
| penalty_debris_too_far | Linear | -8 | – |
Termination semantics. distance_debris_too_far drives the
penalty_debris_too_far reward and does not set terminated; the finite
horizon is reported as truncated.
Excavation (excavation)
Extraction of granular material (regolith)
| Episode Length | 8.0s (400 steps) |
| Reward Terms | 13 |
| Default Robot | kinova_gen3n7 |
Reward Breakdown
| Term | Type | Weight | Scale | Notes |
|---|---|---|---|---|
| penalty_action_rate | Linear | -0.05 | – | |
| penalty_joint_torque | Linear | -0.00001 | – | |
| penalty_joint_acceleration | Linear | 0 | – | |
| penalty_undesired_robot_contacts | Linear | 0 | – | |
| reward_approach_pile | Gaussian | 1.5 | 0.15 | |
| reward_scoop_depth | Tukey | 2 | – | |
| reward_scoop_orientation | GaussianTracking | 1 | 0.26 | |
| reward_lift | Hyperbolic | 2 | 0.2 | |
| penalty_jerk | Linear | -0.02 | – | |
| penalty_joint_acc | Linear | -0.000001 | – | |
| penalty_undesired_contacts | Linear | -0.5 | – | |
| terminal_particle_count_scaled | Scaled | 10 | – | |
| terminal_success_bonus | Scaled | 50 | – |
Note: The observed heightmap is derived at runtime by binning the live regolith-particle positions onto the observation grid (PhysX particle sets are not raycastable), so it tracks the pile as it is reshaped. The pedestal IMU (
imu_pedestal) is only active withenv.num_envs=1; under parallel environments it is disabled (a warning is logged) and its observations read zeros.
Excavation Demo (excavation_demo)
Manual excavation demo with presentation-oriented lunar regolith defaults
| Episode Length | 1800.0s (90000 steps) |
| Reward Terms | 13 |
| Default Robot | kinova_gen3n7 |
Reward Breakdown
| Term | Type | Weight | Scale | Notes |
|---|---|---|---|---|
| penalty_action_rate | Linear | -0.05 | – | |
| penalty_joint_torque | Linear | -0.00001 | – | |
| penalty_joint_acceleration | Linear | 0 | – | |
| penalty_undesired_robot_contacts | Linear | 0 | – | |
| reward_approach_pile | Gaussian | 1.5 | 0.15 | |
| reward_scoop_depth | Tukey | 2 | – | |
| reward_scoop_orientation | GaussianTracking | 1 | 0.26 | |
| reward_lift | Hyperbolic | 2 | 0.2 | |
| penalty_jerk | Linear | -0.02 | – | |
| penalty_joint_acc | Linear | -0.000001 | – | |
| penalty_undesired_contacts | Linear | -0.5 | – | |
| terminal_particle_count_scaled | Scaled | 10 | – | |
| terminal_success_bonus | Scaled | 50 | – |
Modular Assembly (modular_assembly)
Pick-and-place modular elements into an assembly configuration
| Episode Length | 20.0s (1000 steps) |
| Reward Terms | 10 |
| Default Robot | Franka |
Compatible Robots
Canadarm3 | Franka | Kinova J2N6S | Kinova J2N7S | Kinova Gen3N7 | Levion Arms | So Arm100 D5 | So Arm100 D7 | Unitree Z1 | Ur3 | Ur3E | Ur5 | Ur5E | Ur10 | Ur10E | Ur16E | Ur20 | Ur30 | Random Ur Manipulator | Vispa | Zeroglab Arms
Reward Breakdown
| Term | Type | Weight | Scale | Notes |
|---|---|---|---|---|
| penalty_action_rate | Linear | -0.1 | – | |
| penalty_joint_torque | Linear | 0 | – | |
| penalty_joint_acceleration | Linear | -0.0005 | – | |
| penalty_undesired_robot_contacts | Threshold | -32 | – | |
| reward_top_down_orientation | GaussianTracking | 16 | 0.25 | |
| reward_pair_position | Linear | 8 | – | |
| reward_pair_orientation | Linear | 2 | – | |
| reward_peg_hole_entrance_alignment | Linear | 8 | – | |
| reward_peg_hole_alignment | Linear | 64 | – | |
| reward_success | Linear | 512 | – |
Multi Peg In Hole (multi_peg_in_hole)
A variation of peg-in-hole assembly with multiple pegs and holes
| Episode Length | 40.0s (2000 steps) |
| Reward Terms | 19 |
| Default Robot | Franka |
Compatible Robots
Canadarm3 | Franka | Kinova J2N6S | Kinova J2N7S | Kinova Gen3N7 | Levion Arms | So Arm100 D5 | So Arm100 D7 | Unitree Z1 | Ur3 | Ur3E | Ur5 | Ur5E | Ur10 | Ur10E | Ur16E | Ur20 | Ur30 | Random Ur Manipulator | Vispa | Zeroglab Arms
Reward Breakdown
| Term | Type | Weight | Scale | Notes |
|---|---|---|---|---|
| penalty_action_rate | Linear | -0.1 | – | |
| penalty_joint_torque | Linear | -0.000025 | – | |
| penalty_joint_acceleration | Linear | -0.0005 | – | |
| penalty_undesired_robot_contacts | Threshold | -0.5 | – | |
| reward_top_down_orientation | GaussianTracking | 1 | 0.25 | |
| reward_distance_ee_to_obj | Hyperbolic | 0 | 0.25 | |
| reward_grasp | Linear | 8 | – | |
| reward_lift | Linear | 4 | – | |
| reward_align_peg_to_hole_primary | GaussianTracking | 0 | 0.4 | |
| reward_align_peg_to_hole_secondary | Gaussian | 0 | 0.2 | |
| reward_distance_peg_to_hole_entrance_gradual | Hyperbolic | 0 | 0.16 | |
| reward_distance_peg_to_hole_entrance | Gaussian | 0 | 0.04 | |
| reward_distance_peg_to_hole_bottom | Gaussian | 0 | 0.003 | |
| reward_distance_ee_to_objs | Linear | 2.5 | – | |
| reward_align_pegs_to_holes_primary | Linear | 8 | – | |
| reward_align_pegs_to_holes_secondary | Linear | 4 | – | |
| reward_distance_pegs_to_holes_entrance_gradual | Linear | 8 | – | |
| reward_distance_pegs_to_holes_entrance | Linear | 32 | – | |
| reward_distance_pegs_to_holes_bottom | Linear | 256 | – |
Multi Sample Collection (multi_sample_collection)
A variation of sample collection with multiple samples
| Episode Length | 22.5s (1125 steps) |
| Reward Terms | 12 |
| Default Robot | Franka |
Compatible Robots
Canadarm3 | Franka | Kinova J2N6S | Kinova J2N7S | Kinova Gen3N7 | Levion Arms | So Arm100 D5 | So Arm100 D7 | Unitree Z1 | Ur3 | Ur3E | Ur5 | Ur5E | Ur10 | Ur10E | Ur16E | Ur20 | Ur30 | Random Ur Manipulator | Vispa | Zeroglab Arms
Reward Breakdown
| Term | Type | Weight | Scale | Notes |
|---|---|---|---|---|
| penalty_action_rate | Linear | -0.1 | – | |
| penalty_joint_torque | Linear | -0.000025 | – | |
| penalty_joint_acceleration | Linear | -0.0005 | – | |
| penalty_undesired_robot_contacts | Threshold | -0.5 | – | |
| reward_top_down_orientation | GaussianTracking | 1 | 0.25 | |
| reward_distance_ee_to_obj | Gaussian | 0 | 0.15 | |
| reward_grasp | Linear | 4 | – | |
| reward_lift | Linear | 8 | – | |
| reward_distance_obj_to_target | Gaussian | 0 | 0.15 | |
| penalty_obj_fallen | Linear | 0 | – | |
| reward_distance_ee_to_objs | Linear | 2.5 | – | |
| reward_distance_objs_to_target | Linear | 32 | – |
Peg In Hole (peg_in_hole)
Precision assembly task requiring the robot to insert a peg into a hole
| Episode Length | 10.0s (500 steps) |
| Reward Terms | 13 |
| Default Robot | Franka |
| Multi Variant | multi_peg_in_hole |
Compatible Robots
Canadarm3 | Franka | Kinova J2N6S | Kinova J2N7S | Kinova Gen3N7 | Levion Arms | So Arm100 D5 | So Arm100 D7 | Unitree Z1 | Ur3 | Ur3E | Ur5 | Ur5E | Ur10 | Ur10E | Ur16E | Ur20 | Ur30 | Random Ur Manipulator | Vispa | Zeroglab Arms
Reward Breakdown
| Term | Type | Weight | Scale | Notes |
|---|---|---|---|---|
| penalty_action_rate | Linear | -0.1 | – | |
| penalty_joint_torque | Linear | -0.000025 | – | |
| penalty_joint_acceleration | Linear | -0.0005 | – | |
| penalty_undesired_robot_contacts | Threshold | -0.5 | – | |
| reward_top_down_orientation | GaussianTracking | 1 | 0.25 | |
| reward_distance_ee_to_obj | Hyperbolic | 4 | 0.25 | |
| reward_grasp | SoftThreshold | 8 | – | |
| reward_lift | GaussianZoneTracking | 4 | 0.08 | |
| reward_align_peg_to_hole_primary | GaussianTracking | 8 | 0.4 | |
| reward_align_peg_to_hole_secondary | Gaussian | 4 | 0.2 | |
| reward_distance_peg_to_hole_entrance_gradual | Hyperbolic | 8 | 0.16 | |
| reward_distance_peg_to_hole_entrance | Gaussian | 32 | 0.04 | |
| reward_distance_peg_to_hole_bottom | Gaussian | 256 | 0.003 |
Sample Collection (sample_collection)
Grasping and collection of samples on planetary surfaces
| Episode Length | 7.5s (375 steps) |
| Reward Terms | 10 |
| Default Robot | Franka |
| Multi Variant | multi_sample_collection |
Compatible Robots
Canadarm3 | Franka | Kinova J2N6S | Kinova J2N7S | Kinova Gen3N7 | Levion Arms | So Arm100 D5 | So Arm100 D7 | Unitree Z1 | Ur3 | Ur3E | Ur5 | Ur5E | Ur10 | Ur10E | Ur16E | Ur20 | Ur30 | Random Ur Manipulator | Vispa | Zeroglab Arms
Reward Breakdown
| Term | Type | Weight | Scale | Notes |
|---|---|---|---|---|
| penalty_action_rate | Linear | -0.1 | – | |
| penalty_joint_torque | Linear | -0.000025 | – | |
| penalty_joint_acceleration | Linear | -0.0005 | – | |
| penalty_undesired_robot_contacts | Threshold | -0.5 | – | |
| reward_top_down_orientation | GaussianTracking | 1 | 0.25 | |
| reward_distance_ee_to_obj | Gaussian | 4 | 0.15 | |
| reward_grasp | SoftThreshold | 6 | – | |
| reward_lift | GaussianZoneTracking | 12 | 0.15 | |
| reward_distance_obj_to_target | Gaussian | 32 | 0.15 | |
| penalty_obj_fallen | Linear | -16 | – |
Termination semantics. obj_floor_z drives the penalty_obj_fallen
reward. A fallen sample does not set terminated; the finite horizon is
reported as truncated.
Screwdriving (screwdriving)
Fastening of a pre-inserted bolt
| Episode Length | 15.0s (750 steps) |
| Reward Terms | 13 |
| Default Robot | Franka |
Compatible Robots
Canadarm3 | Franka | Kinova J2N6S | Kinova J2N7S | Kinova Gen3N7 | Levion Arms | So Arm100 D5 | So Arm100 D7 | Unitree Z1 | Ur3 | Ur3E | Ur5 | Ur5E | Ur10 | Ur10E | Ur16E | Ur20 | Ur30 | Random Ur Manipulator | Vispa | Zeroglab Arms
Reward Breakdown
| Term | Type | Weight | Scale | Notes |
|---|---|---|---|---|
| penalty_action_rate | Linear | -0.1 | – | |
| penalty_joint_torque | Linear | -0.000025 | – | |
| penalty_joint_acceleration | Linear | -0.0005 | – | |
| penalty_undesired_robot_contacts | Threshold | -0.5 | – | |
| reward_top_down_orientation | GaussianTracking | 8 | 0.04 | |
| penalty_object_top_down_orientation | Linear | -64 | – | |
| reward_distance_ee_to_bolt_driver_slot | Hyperbolic | 12 | 0.4 | |
| reward_distance_ee_to_bolt_driver_slot_close | Hyperbolic | 32 | 0.02 | |
| reward_distance_ee_to_bolt_driver_slot_precision | Hyperbolic | 512 | 0.005 | |
| reward_contact | SoftThreshold | 4 | – | |
| reward_screwing | Scaled | 128 | – | |
| penalty_distance_obj_to_target_too_far | Threshold | -256 | – | |
| reward_distance_obj_to_target | Linear | 2048 | – |
Solar Panel Assembly (solar_panel_assembly)
Complex assembly sequence involving solar panel components
| Episode Length | 50.0s (2500 steps) |
| Reward Terms | 17 |
| Default Robot | Franka |
Compatible Robots
Canadarm3 | Franka | Kinova J2N6S | Kinova J2N7S | Kinova Gen3N7 | Levion Arms | So Arm100 D5 | So Arm100 D7 | Unitree Z1 | Ur3 | Ur3E | Ur5 | Ur5E | Ur10 | Ur10E | Ur16E | Ur20 | Ur30 | Random Ur Manipulator | Vispa | Zeroglab Arms
Reward Breakdown
| Term | Type | Weight | Scale | Notes |
|---|---|---|---|---|
| penalty_action_rate | Linear | -0.1 | – | |
| penalty_joint_torque | Linear | -0.000025 | – | |
| penalty_joint_acceleration | Linear | -0.0005 | – | |
| penalty_undesired_robot_contacts | Threshold | -0.5 | – | |
| reward_top_down_orientation | GaussianTracking | 1 | 0.25 | |
| reward_distance_ee_to_objs | Linear | 2.5 | – | |
| reward_grasp | SoftThreshold | 8 | – | |
| reward_lift | Linear | 4 | – | |
| reward_align_pegs_to_holes_primary | Linear | 8 | – | |
| reward_align_pegs_to_holes_secondary | Linear | 4 | – | |
| reward_distance_pegs_to_holes_entrance_gradual | Linear | 8 | – | |
| reward_distance_pegs_to_holes_entrance | Linear | 32 | – | |
| reward_distance_pegs_to_holes_bottom | Linear | 256 | – | |
| reward_distance_ee_to_panel | Hyperbolic | 10 | 0.25 | |
| reward_panel_lift | GaussianZoneTracking | 16 | 0.1 | |
| reward_distance_panel_to_target_gradual | Hyperbolic | 32 | 0.1 | |
| reward_distance_panel_to_target | Gaussian | 1024 | 0.015 |