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

Contributing — New Tasks

Copy a task template, adapt its environment, and test it.

1. Duplicate a Template

Copy a package under srb/tasks. Update its registration and config, give it a unique package name, and keep it under srb.tasks: recursive imports register tasks, and family placement sets their documentation category. Choose a template:

TemplateDescription
_manipulationFixed-base manipulation with robotic arms
_groundGround traversal on planetary surfaces
_aerialAerial navigation above planetary surfaces
_orbitalSpaceflight maneuvers
_ground_manipulationMobile manipulation with ground-based robots
_aerial_manipulationMobile manipulation with flying robots
_orbital_manipulationMobile manipulation with spacecraft

2. Modify the Environment

Adapt the scene and assets, choose a robot category, then implement observations, rewards, and termination conditions. Ask the community for task-specific guidance if needed.

3. Debug the Task

Test the task with teleop, zero, or rand, as its action space permits. Enable debug visualization and check parallel instances. First, update docs/data/tasks.toml. Then regenerate the offline task cache (srb cache update) and task docs (srb doc docgen) to sync the generated catalog and task pages. Run a compatible command:

srb agent teleop -e <your_task_name> env.debug_vis=true env.num_envs=4
srb agent zero -e <your_task_name> env.debug_vis=true env.num_envs=4
srb agent rand -e <your_task_name> env.debug_vis=true env.num_envs=4

4. Use the Task in a Workflow

Reference: Workflows

Use workflows compatible with the task’s config, action space, and runtime interfaces. Check compatibility before training, deployment, or validation.

Share your task with the community.

Next: Adding Terrain Sites