Contributing — New Tasks
Use this guide to add a task package, check it with an agent, and update its catalog metadata.
1. Choose a task template
Copy a task package from srb/tasks. Choose the template that matches the task family:
| Template | Description |
|---|---|
_manipulation | Fixed-base manipulation with robotic arms |
_ground | Ground traversal on planetary surfaces |
_aerial | Aerial navigation above planetary surfaces |
_orbital | Spaceflight maneuvers |
_ground_manipulation | Mobile manipulation with ground-based robots |
_aerial_manipulation | Mobile manipulation with flying robots |
_orbital_manipulation | Mobile manipulation with spacecraft |
2. Create the task package
Give the package a unique name. Keep it under the matching task family for recursive registration, and update its registration and configuration.
3. Adapt the environment
- Scene: Change the assets and layout to match the scenario.
- Robot: Specify a suitable robot category.
- Task: Define the task logic and objectives, including its observation space, reward function, and termination condition.
4. Register the task
Runtime commands reject a task missing from docs/data/tasks.toml or the
offline cache. These steps require Isaac Sim.
- Add the task table and ownership row:
python3 scripts/sync_task_sidecars.py --write - Fill in the task’s
taglineindocs/data/tasks.toml. - Refresh the offline cache:
srb cache update - Regenerate the catalog pages:
srb doc docgen
5. Run an agent to check the task
References: srb agent teleop, srb agent zero, and srb agent rand.
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
6. Use the task in a workflow
Reference: Workflows
Use the task with workflows that support its configuration, action space, and runtime interfaces. Check compatibility before training, deployment, or validation.