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

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:

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. 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.

  1. Add the task table and ownership row: python3 scripts/sync_task_sidecars.py --write
  2. Fill in the task’s tagline in docs/data/tasks.toml.
  3. Refresh the offline cache: srb cache update
  4. 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.