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

Tasks

ioailab.tasks is an explicit IsaacLab-style registry of Galbot task IDs. It does not hide IsaacLab env construction, managers, sensors, or env.step(...).

Registered IDs

Task IDPurpose
GalbotG1-Reach-v0Left-arm reaching
GalbotG1-PickCube-v0Left-arm pick-cube motion-planning task
GalbotG1-PickCube-Teleop-v0GP001 left-wrist/front-head RGB collection
GalbotG1-PickCube-Mimic-v0Mimic augmentation env for PickCube
GalbotG1-StackCube-v0Left-arm stack-cube
GalbotG1-BaseNav-v0Mobile-base navigation
GalbotG1-PickToShelf-v0Coherent pick -> nav -> place task
GalbotG1-PickToShelf-Pick-v0PickToShelf pick component task
GalbotG1-PickToShelf-Nav-v0PickToShelf nav component task
GalbotG1-PickToShelf-Place-v0PickToShelf place component task
GalbotG1-SortToShelf-v0Coherent object sorting task
GalbotG1-SortToShelf-Pick-v0SortToShelf pick component task
GalbotG1-SortToShelf-Nav-v0SortToShelf nav component task
GalbotG1-SortToShelf-Place-v0SortToShelf place component task

Create any registered task with make_env(...):

from ioailab.envs import make_env

env = make_env("GalbotG1-PickCube-v0", num_envs=1)

Component And Coherent Tasks

PickToShelf and SortToShelf use the same structure:

component tasks -> independent Pick/Nav/Place task IDs
coherent task   -> one continuous full-task env
agent           -> TaskFlowAgent dispatches phase agents by row phase

The coherent task does not rebuild envs, load external scene-state files, or reset between phases. It runs the full episode continuously. Component tasks are for standalone collection, debugging, training, and evaluation.

Override phase agents without changing the task:

from ioailab.agents import TaskFlowAgent

env = make_env("GalbotG1-PickToShelf-v0", num_envs=4)
agent = TaskFlowAgent.from_env(env, agents={"nav": custom_nav_agent})

Scenarios And Options

Nav and Place component starts use task-owned scenario YAML files under config/g1/scenarios/. Capture a final state with examples/06_collect_component_task.py --save-end-scenario ..., then load it with --init-scenario ... when intentionally replaying a standalone start.

SortToShelf selects the object through task_options={"sorting_object": ...} or the example flag --sorting-object. Valid values are:

red_cube
blue_cuboid
yellow_cylinder
green_cylinder

Package Layout

Each task package owns its task IDs, scene cfg, config/<robot>/env_cfg.py, MDP terms, registration metadata, optional task agents, and optional motion plans. Shared world geometry can live in task-local scene.py; robot-specific bindings, sensors, reset posture, and actions live under config/<robot>/. Robot-specific agent recipes live under ioailab.tasks.<task>.config.g1.agent_cfg.

There are no top-level scene modules or make_*_cfg scene factories. To author a task, copy an existing package such as ioailab.tasks.pick_cube and follow the Tutorial.