Skip to content

Repository files navigation

Pioneer - UWaterloo's First Humanoid Robot

Published docs: https://watonomous.github.io/humanoid-docs/index.html

Quick start (watod)

cp watod-config.sh watod-config.local.sh   # set ACTIVE_MODULES
./watod up -d
./watod -t <service>                        # shell into a module

One editable container per module — code is bind-mounted from src/<module>, so edits are live. Full setup and dev workflow: DEVELOPING.md.

ACTIVE_MODULES What it runs
interfacing CAN / hardware interfacing, joint_command
perception Perception (cameras, GPU), voxel_grid
simulation_isaac Isaac Lab 2.3.2 — SO101 IL, HumanoidRL, Quest teleop
simulation_mj MuJoCo / mjlab RL

Isaac Lab sim (recommended): see docker/simulation/isaac_lab/QUICKSTART.md.

Repo map

humanoid
├── watod                     # Compose orchestrator
├── watod-config.sh           # Defaults (copy → watod-config.local.sh)
├── watod_scripts/            # Dev-env / Docker helpers
├── modules/                  # docker-compose.<module>.yaml
├── docker/                   # Dockerfiles per stack
│   ├── interfacing/
│   ├── perception/
│   └── simulation/
│       ├── isaac_lab/        # Isaac Lab + LeRobot (primary sim)
│       └── mjlabs/           # MuJoCo / mjlab
├── src/
│   ├── common_msgs/         # Shared ROS 2 messages
│   ├── interfacing/          # CAN, DBC, joint_command (ArmPose → per-motor CAN)
│   ├── perception/           # perception nodes, voxel_grid (depth → occupancy)
│   ├── pioneer_humanoid/     # Shared arm articulation / scene / camera configs
│   ├── simulation/           # Isaac tasks, HumanoidRL
│   ├── teleop/               # Quest WebXR → ROS 2 bridge
│   ├── il/                   # Imitation learning recording
│   └── embedded/             # STM32, ESP32S3 firmware
├── assets/lerobot/           # SO101 USD / vial-task assets
└── docs/                     # Pointer to the humanoid-docs site

Simulation

Stack Module Docs
Isaac Lab 2.3.2 / Sim 5.1 (SO101 IL, HumanoidRL, Quest) simulation_isaac QUICKSTART · full README
MuJoCo / mjlab simulation_mj README
SO101 vial Gym envs (inside simulation_isaac) so101_vial_task
Quest bimanual teleop (inside simulation_isaac) quest_isaac_teleop
Other teleop variants host or container teleop/README.md

Isaac Lab needs Linux, NVIDIA GPU, Docker GPU passthrough, and X11 (xhost +local:docker).

Development

Setup, per-module dev loop, CI/linting, and per-area guides: DEVELOPING.md.

CAN / arm bring-up

Full checklist (power, CANable udev, calibrate, smoke test):

src/interfacing/can/README.md

For the full calibrate → visualize → move sequence: ARM_BRINGUP.md

Open arm work (sim mirror of calibrated joints in Isaac Lab, VR teleop, etc.) is listed there under Open arm tasks.

./src/interfacing/can/scripts/can_udev.sh install   # once per host → /dev/canable

Requirements

  • Ubuntu ≥ 22.04 (WSL / macOS may work for non-GPU stacks)
  • Docker + watod (./watod)
  • NVIDIA GPU + drivers for Isaac Lab, perception, and mjlab

About

Building UWaterloo's First Humanoid Robot - Pioneer

Resources

Stars

23 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages