How ubtech-robot/globalhumanoidrobotchallenge_2026_baseline works
1. Overall shape
- This repository is a robotics baseline built on the LeRobot framework, with a custom Ubtech_sim Isaac Sim package plus an extended src/lerobot stack for teleoperation, data collection, training, and policy deployment.
- The architecture is pipeline-oriented: inputs from cameras/teleoperators/robots → processors → datasets/training → policies → runtime inference/control.
2. Simulation layer: Ubtech_sim/
- Ubtech_sim/main.py is the entry into a standalone Isaac Sim simulation workflow.
- SceneBuilder, RobotArticulation, DualArmIK, grasp_planner, and coordinate_utils together define the simulated world, robot kinematics, grasping logic, and coordinate transforms.
- YAML configs such as Conveyor_Sorting.yaml, Foam_Inlaying.yaml, Packing_Box.yaml, and Part_Sorting.yaml indicate task-scene specialization; DataLogger suggests simulation-side logging for later dataset creation or debugging.
3. Framework boundary: src/lerobot/
- src/lerobot is the reusable robotics framework layer. It is not just one application; it contains abstractions for robots, cameras, teleoperators, datasets, policies, RL, and deployment.
- The GHRC baseline uses this framework to standardize how observations, actions, and models are connected across simulation and real/virtual hardware.
4. Robot and actuation abstraction
- src/lerobot/robots/ defines follower robot interfaces and robot-specific adapters for many platforms; the competition-relevant simulation path is centered on Walker S2 support under walker_s2_sim.
- src/lerobot/motors/ is the low-level hardware boundary, with separate implementations for actuator families such as Dynamixel, Feetech, Damiao, and Robstride.
- This layer isolates model-level control from the underlying robot hardware or simulator implementation.
5. Teleoperation boundary
- src/lerobot/teleoperators/ contains leader-device adapters: keyboard, gamepad, phone, leader arms, gloves, and robot-specific teleoperators.
- For the GHRC baseline, the key interaction mode is keyboard teleoperation (walker_s2_keyboard and the generic keyboard teleop modules), which turns human input into normalized robot actions.
- This layer sits upstream of data recording and live control, acting as the human-to-robot input source.
6. Camera and sensor subsystem
- src/lerobot/cameras/ provides a camera abstraction with backends for OpenCV, RealSense, Reachy2, and ZMQ.
- The 4-camera real-time display described in the README is naturally modeled here: camera streams are captured, optionally published over ZMQ, and consumed by teleop, replay, recording, or inference UIs.
- image_server.py and the ZMQ camera backend form the key transport boundary for remote visualization.
7. Data processing and dataset flow
- src/lerobot/processor/ is the normalization/conversion layer between raw robot/camera signals and model-ready tensors.
- It includes processors for observations, actions, tokenization, renaming, slicing, normalization, batching, and robot-policy bridging.
- src/lerobot/datasets/ stores the dataset stack, including the LeRobot dataset implementation, streaming support, image/video utilities, statistics, transforms, and dataset publishing helpers.
- The README’s dataset format requirement maps to this subsystem: recording produces standardized LeRobotDataset V3.0 artifacts, with Hugging Face used for external dataset storage/distribution.
8. Training and policy families
- src/lerobot/policies/ contains multiple model families: ACT, Diffusion, Pi0/Pi0.5, SmolVLA, VQBeT, SARM, TDMPC, RTC, GROOT, XVLA, and others.
- Each policy typically has its own configuration, model, and processor, which means training is structured as: dataset batch → policy-specific processor → model forward/backward → optimizer/scheduler.
- src/lerobot/optim/ and src/lerobot/configs/ provide the training-time control plane for hyperparameters, optimizer selection, and run configuration.
9. Inference and online execution
- src/lerobot/async_inference/ supports a split execution model with a policy server and robot client, enabling policies to run remotely or asynchronously from the robot loop.
- src/lerobot/transport/ contains gRPC service definitions and generated stubs, which are the explicit network boundary for this inference/control split.
- This is the main path for low-latency deployment: observations are sent to the policy process, actions are returned, and the robot client executes them while optionally recording outputs.
10. RL and evaluation tooling
- src/lerobot/rl/ adds a reinforcement-learning-oriented loop with actor/learner components, buffers, queues, evaluation helpers, and WandB integration.
- src/lerobot/envs/ wraps external benchmark environments such as LIBERO and MetaWorld, showing that the framework supports more than just the GHRC humanoid simulation path.
- These modules form a separate training/eval loop from imitation learning, but share the same dataset, processor, and policy infrastructure.
11. Competition-specific Walker S2 path
- The README’s main baseline is the Walker S2 simulation + keyboard teleoperation + 4-camera view + imitation learning workflow.
- In code terms, that path is implemented by the Walker S2 simulator modules under robots/walker_s2_sim, the keyboard teleoperator modules, the camera stack, and the LeRobot dataset/policy subsystems.
- This is the core architecture to draw if focusing on the GHRC 2026 baseline.
12. Entry points and operational tooling
- src/lerobot/scripts/ contains the runnable entry scripts for the major lifecycle steps: setup, calibration, camera discovery, teleoperation, recording, replay, training, evaluation, and dataset editing.
- Dockerfile, run.sh, pyproject.toml, and setup.py indicate a containerized, package-managed runtime intended to make Isaac Sim, data collection, and training reproducible.
- The repo also relies on external assets via the assets/ submodule and Hugging Face-hosted resources for large simulation and dataset files.
Main entry points: lerobot_record.py Lifecycle scripts · teleop.py Keyboard teleop · main.py Simulation entry · factory.py Policy registry
Components 20
Ubtech Sim
Standalone Isaac Sim workflow for task scenes, kinematics, grasping, and logging.
- Simulation entry · Starts the standalone Ubtech_sim Isaac Sim workflow.
Ubtech_sim/main.py - Scene builder · Builds task-specific simulation worlds and assets.
Ubtech_sim/source/SceneBuilder.py - Robot articulation · Defines robot body structure and articulation control in simulation.
Ubtech_sim/source/RobotArticulation.py - Dual-arm IK · Solves arm motion and pose targeting for the simulated robot.
Ubtech_sim/source/DualArmIK.py - Grasp planner · Generates task grasp strategies for simulated manipulation.
Ubtech_sim/source/grasp_planner.py - Data logger · Records simulation outputs for debugging and dataset creation.
Ubtech_sim/source/DataLogger.py
LeRobot Stack
Reusable robotics framework for robots, cameras, teleop, data, training, and deployment.
- Walker sim · Isaac Sim-facing Walker S2 simulation adapter and runtime interface.
src/lerobot/robots/walker_s2_sim/walkers2sim.py - Keyboard teleop · Maps keyboard input to normalized Walker S2 teleoperation commands.
src/lerobot/teleoperators/walker_s2_keyboard/teleop.py - Camera stack · Common camera abstraction shared across OpenCV, RealSense, ZMQ, and device-specific backends.
src/lerobot/cameras/camera.py - Image server · Publishes camera streams for remote viewing and distributed teleop/inference.
src/lerobot/cameras/zmq/image_server.py - Processor pipe · Normalizes, renames, slices, and bridges observations/actions into model-ready data.
src/lerobot/processor/pipeline.py - Dataset core · LeRobot dataset implementation, streaming, transforms, and publishing helpers.
src/lerobot/datasets/lerobot_dataset.py - Policy registry · Selects and wires policy families with their processors and configs.
src/lerobot/policies/factory.py - ACT policy · Representative action-sequence policy family used during training and inference.
src/lerobot/policies/act/modeling_act.py - Pi0 policy · Representative multimodal policy family for robot control.
src/lerobot/policies/pi0/modeling_pi0.py - Train config · Training and evaluation configuration control plane.
src/lerobot/configs/train.py - Optim factory · Creates optimizers and schedulers for policy training.
src/lerobot/optim/factory.py - Policy server · Runs policies remotely or asynchronously from the robot loop.
src/lerobot/async_inference/policy_server.py - gRPC transport · Defines the robot-client / policy-server service interface.
src/lerobot/transport/services.proto
Lifecycle Tools
Entry scripts and runtime orchestration for setup, record, replay, train, and eval.
- Lifecycle scripts · Operational scripts for setup, calibration, teleop, record, replay, train, and eval.
src/lerobot/scripts/lerobot_record.py
Connections 23
- Simulation entry → Scene builder: builds · Main simulation workflow constructs the world and task scene.
- Simulation entry → Robot articulation: instantiates · Creates the simulated robot articulation.
- Scene builder → Grasp planner: uses · Scene/task setup relies on grasp logic.
- Robot articulation → Dual-arm IK: drives · Robot motion is generated through kinematic solving.
- Simulation entry → Data logger: logs · Simulation records outputs for later reuse.
- Keyboard teleop → Walker sim: commands · Human keyboard input becomes robot actions.
- Camera stack → Image server: streams · Camera frames can be published for remote visualization.
- Image server → Keyboard teleop: supports · Remote view aids teleoperation and control.
- Walker sim → Processor pipe: feeds · Robot observations/actions are normalized before downstream use.
- Keyboard teleop → Processor pipe: inputs · Teleop actions flow through shared processing and normalization.
- Processor pipe → Dataset core: writes · Processed trajectories are stored as datasets.
- Dataset core → Policy registry: trains · Datasets feed policy training and evaluation.
- Policy registry → ACT policy: selects · Policy factory can instantiate ACT-family models.
- Policy registry → Pi0 policy: selects · Policy factory can instantiate Pi0-family models.
- Train config → Optim factory: configures · Training config determines optimization behavior.
- ACT policy → Optim factory: optimizes · Policy training uses shared optimizer/scheduler plumbing.
- Pi0 policy → Optim factory: optimizes · Policy training uses shared optimizer/scheduler plumbing.
- Policy server → gRPC transport: serves · Asynchronous inference is exposed through the service boundary.
- gRPC transport → Walker sim: controls · Robot client path carries observations and actions to the simulator-facing runtime.
- Lifecycle scripts → Keyboard teleop: launches · Scripts start teleoperation and recording workflows.
- Lifecycle scripts → Dataset core: records · Scripts manage dataset creation and editing.
- Lifecycle scripts → Train config: runs · Scripts launch training and evaluation pipelines.
- Lifecycle scripts → Policy server: deploys · Scripts can start inference and evaluation loops.