Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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 Length10.0s (500 steps)
Reward Terms4
Default RobotFranka

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
TermTypeWeightScaleNotes
penalty_action_rateLinear-0.1
penalty_joint_torqueLinear-0.000025
penalty_joint_accelerationLinear-0.0005
penalty_undesired_robot_contactsThreshold-0.5

Debris Capture (debris_capture)

Capture and securement of floating debris in microgravity with a fixed-base manipulator

Episode Length10.0s (500 steps)
Reward Terms11
Default RobotFranka

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
TermTypeWeightScaleNotes
penalty_action_rateLinear-0.1
penalty_joint_torqueLinear-0.000025
penalty_joint_accelerationLinear-0.0005
penalty_undesired_robot_contactsThreshold-0.5
reward_distance_ee_to_objGaussian160.08
reward_graspSoftThreshold16
penalty_debris_velocity_linLinear-3
penalty_debris_velocity_angLinear-1
reward_approach_velocity_alignmentHyperbolic40.1
penalty_approach_speedLinear-2
penalty_debris_too_farLinear-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 Length8.0s (400 steps)
Reward Terms13
Default Robotkinova_gen3n7
Reward Breakdown
TermTypeWeightScaleNotes
penalty_action_rateLinear-0.05
penalty_joint_torqueLinear-0.00001
penalty_joint_accelerationLinear0
penalty_undesired_robot_contactsLinear0
reward_approach_pileGaussian1.50.15
reward_scoop_depthTukey2
reward_scoop_orientationGaussianTracking10.26
reward_liftHyperbolic20.2
penalty_jerkLinear-0.02
penalty_joint_accLinear-0.000001
penalty_undesired_contactsLinear-0.5
terminal_particle_count_scaledScaled10
terminal_success_bonusScaled50

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 with env.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 Length1800.0s (90000 steps)
Reward Terms13
Default Robotkinova_gen3n7
Reward Breakdown
TermTypeWeightScaleNotes
penalty_action_rateLinear-0.05
penalty_joint_torqueLinear-0.00001
penalty_joint_accelerationLinear0
penalty_undesired_robot_contactsLinear0
reward_approach_pileGaussian1.50.15
reward_scoop_depthTukey2
reward_scoop_orientationGaussianTracking10.26
reward_liftHyperbolic20.2
penalty_jerkLinear-0.02
penalty_joint_accLinear-0.000001
penalty_undesired_contactsLinear-0.5
terminal_particle_count_scaledScaled10
terminal_success_bonusScaled50

Modular Assembly (modular_assembly)

Pick-and-place modular elements into an assembly configuration

Episode Length20.0s (1000 steps)
Reward Terms10
Default RobotFranka

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
TermTypeWeightScaleNotes
penalty_action_rateLinear-0.1
penalty_joint_torqueLinear0
penalty_joint_accelerationLinear-0.0005
penalty_undesired_robot_contactsThreshold-32
reward_top_down_orientationGaussianTracking160.25
reward_pair_positionLinear8
reward_pair_orientationLinear2
reward_peg_hole_entrance_alignmentLinear8
reward_peg_hole_alignmentLinear64
reward_successLinear512

Multi Peg In Hole (multi_peg_in_hole)

A variation of peg-in-hole assembly with multiple pegs and holes

Episode Length40.0s (2000 steps)
Reward Terms19
Default RobotFranka

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
TermTypeWeightScaleNotes
penalty_action_rateLinear-0.1
penalty_joint_torqueLinear-0.000025
penalty_joint_accelerationLinear-0.0005
penalty_undesired_robot_contactsThreshold-0.5
reward_top_down_orientationGaussianTracking10.25
reward_distance_ee_to_objHyperbolic00.25
reward_graspLinear8
reward_liftLinear4
reward_align_peg_to_hole_primaryGaussianTracking00.4
reward_align_peg_to_hole_secondaryGaussian00.2
reward_distance_peg_to_hole_entrance_gradualHyperbolic00.16
reward_distance_peg_to_hole_entranceGaussian00.04
reward_distance_peg_to_hole_bottomGaussian00.003
reward_distance_ee_to_objsLinear2.5
reward_align_pegs_to_holes_primaryLinear8
reward_align_pegs_to_holes_secondaryLinear4
reward_distance_pegs_to_holes_entrance_gradualLinear8
reward_distance_pegs_to_holes_entranceLinear32
reward_distance_pegs_to_holes_bottomLinear256

Multi Sample Collection (multi_sample_collection)

A variation of sample collection with multiple samples

Episode Length22.5s (1125 steps)
Reward Terms12
Default RobotFranka

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
TermTypeWeightScaleNotes
penalty_action_rateLinear-0.1
penalty_joint_torqueLinear-0.000025
penalty_joint_accelerationLinear-0.0005
penalty_undesired_robot_contactsThreshold-0.5
reward_top_down_orientationGaussianTracking10.25
reward_distance_ee_to_objGaussian00.15
reward_graspLinear4
reward_liftLinear8
reward_distance_obj_to_targetGaussian00.15
penalty_obj_fallenLinear0
reward_distance_ee_to_objsLinear2.5
reward_distance_objs_to_targetLinear32

Peg In Hole (peg_in_hole)

Precision assembly task requiring the robot to insert a peg into a hole

Episode Length10.0s (500 steps)
Reward Terms13
Default RobotFranka
Multi Variantmulti_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
TermTypeWeightScaleNotes
penalty_action_rateLinear-0.1
penalty_joint_torqueLinear-0.000025
penalty_joint_accelerationLinear-0.0005
penalty_undesired_robot_contactsThreshold-0.5
reward_top_down_orientationGaussianTracking10.25
reward_distance_ee_to_objHyperbolic40.25
reward_graspSoftThreshold8
reward_liftGaussianZoneTracking40.08
reward_align_peg_to_hole_primaryGaussianTracking80.4
reward_align_peg_to_hole_secondaryGaussian40.2
reward_distance_peg_to_hole_entrance_gradualHyperbolic80.16
reward_distance_peg_to_hole_entranceGaussian320.04
reward_distance_peg_to_hole_bottomGaussian2560.003

Sample Collection (sample_collection)

Grasping and collection of samples on planetary surfaces

Episode Length7.5s (375 steps)
Reward Terms10
Default RobotFranka
Multi Variantmulti_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
TermTypeWeightScaleNotes
penalty_action_rateLinear-0.1
penalty_joint_torqueLinear-0.000025
penalty_joint_accelerationLinear-0.0005
penalty_undesired_robot_contactsThreshold-0.5
reward_top_down_orientationGaussianTracking10.25
reward_distance_ee_to_objGaussian40.15
reward_graspSoftThreshold6
reward_liftGaussianZoneTracking120.15
reward_distance_obj_to_targetGaussian320.15
penalty_obj_fallenLinear-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 Length15.0s (750 steps)
Reward Terms13
Default RobotFranka

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
TermTypeWeightScaleNotes
penalty_action_rateLinear-0.1
penalty_joint_torqueLinear-0.000025
penalty_joint_accelerationLinear-0.0005
penalty_undesired_robot_contactsThreshold-0.5
reward_top_down_orientationGaussianTracking80.04
penalty_object_top_down_orientationLinear-64
reward_distance_ee_to_bolt_driver_slotHyperbolic120.4
reward_distance_ee_to_bolt_driver_slot_closeHyperbolic320.02
reward_distance_ee_to_bolt_driver_slot_precisionHyperbolic5120.005
reward_contactSoftThreshold4
reward_screwingScaled128
penalty_distance_obj_to_target_too_farThreshold-256
reward_distance_obj_to_targetLinear2048

Solar Panel Assembly (solar_panel_assembly)

Complex assembly sequence involving solar panel components

Episode Length50.0s (2500 steps)
Reward Terms17
Default RobotFranka

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
TermTypeWeightScaleNotes
penalty_action_rateLinear-0.1
penalty_joint_torqueLinear-0.000025
penalty_joint_accelerationLinear-0.0005
penalty_undesired_robot_contactsThreshold-0.5
reward_top_down_orientationGaussianTracking10.25
reward_distance_ee_to_objsLinear2.5
reward_graspSoftThreshold8
reward_liftLinear4
reward_align_pegs_to_holes_primaryLinear8
reward_align_pegs_to_holes_secondaryLinear4
reward_distance_pegs_to_holes_entrance_gradualLinear8
reward_distance_pegs_to_holes_entranceLinear32
reward_distance_pegs_to_holes_bottomLinear256
reward_distance_ee_to_panelHyperbolic100.25
reward_panel_liftGaussianZoneTracking160.1
reward_distance_panel_to_target_gradualHyperbolic320.1
reward_distance_panel_to_targetGaussian10240.015