Overview
What Haller is, what's in this repo, and where to start.
Haller is an open-source mobile-manipulation robot: a four-wheeled differential-drive base that carries two SO-101 arms for bimanual manipulation. The repo (haller_ws) is the umbrella codebase — ROS 2 stack for the base, LeRobot integration for the arms, the unified web HMI, and the documentation you're reading.
Hardware overview
| Subsystem | Components |
|---|---|
| Compute | NVIDIA Jetson Orin Nano |
| Mobile base | 4-wheel differential drive, LK-TECH MF5010 BLDC motors over CAN |
| Perception | Slamtec RPLIDAR A1M8 (2D LiDAR), camera modules |
| Arms | 2× SO-ARM101 ("SO-101") follower arms with Feetech STS3215 servos |
| Servo bus | Feetech bus servo adapter (USB ↔ TTL half-duplex daisy-chain) |
| Networking | Wi-Fi access point fallback |
The SO-101 mechanical design comes from TheRobotStudio/SO-ARM100. The rest is in this repository.
Where to start
If you want the one-screen mental model of how the pieces fit together first, read Architecture. Otherwise, dive in:
Architecture (system overview)
Bill of materials
Build instructions
Bring up the mobile base (ROS 2)
Vision pipeline (detection + segmentation + costmap)
Set up the LeRobot environment
Configure and calibrate an SO-101 arm
Bring up the HMI
Calibrate via the wizard
Leader ↔ follower teleop
Human-pose teleop (webcam)
MuJoCo simulation
Record a dataset
Inference + finetuning on RunPod
Deploy on a Jetson
Wi-Fi AP fallback
Troubleshooting
Status
The mobile base is operational under ROS 2. Both SO-101 arms run through the unified HMI (FastAPI + Next.js + shadcn/ui) on main. Per-arm controls (joint sliders, home, free-drive, pose presets), a leader↔follower teleop launcher at 60 Hz, an in-browser calibration wizard (homing + range-of-motion sweep + save with automatic backup), live MJPEG camera streams, a dataset-recording panel, and webcam-driven bimanual teleop (in-browser MediaPipe pose → joint angles with a SPACE dead-man) are all live. Cloud-GPU recipes for π0.5 / pi0 / GR00T smoke tests, replay evaluation, and LoRA finetuning ship in scripts/runpod/.
License
Apache-2.0. The SO-101 mechanical design is licensed under its own terms by TheRobotStudio.