A hackable bimanual mobile manipulator,
engineered in the open.
Haller is a four-wheel differential-drive base carrying two SO-101 arms. ROS 2 for the base, LeRobot for the arms, a unified FastAPI + Next.js HMI that ties it all together — build it, calibrate it in the browser, teleoperate it across the room.
- [01]BASE
ROS 2 differential drive
LK-TECH MF5010 BLDCs over CAN at 1 Mbps. RPLIDAR A1M8 publishes 2D scans into Nav2. The whole stack runs on a Jetson Orin Nano with a 0.5 s cmd_vel watchdog as the secondary safety.
- · /cmd_vel
- · 50 Hz odom
- [02]ARMS
Two symmetric SO-101 arms
Open hardware from TheRobotStudio — 6× Feetech STS3215 servos each, on half-duplex USB-TTL buses. Either arm can lead or follow. Calibration sidecars are saved and backed up on every write.
- · 6 DoF × 2
- · in-browser calib
- [03]HMI
One browser, every loop closed
A unified Next.js + FastAPI dashboard: joint sliders, pose presets, MJPEG feeds, leader↔follower teleop at 60 Hz, webcam pose-teleop with a SPACE dead-man, dataset recording — all behind a single E-STOP.
- · 60 Hz teleop
- · 20 Hz telemetry
- 01Architectureone-screen mental model
- 02Bill of materialsparts & sourcing
- 03Buildmechanical assembly
- 04Mobile base (ROS 2)bringup & drive
- 05Vision pipelinedetection + seg + costmap
- 06LeRobot environmentpython tooling
- 07SO-101 armscalibrate & test
- 08HMI overviewweb frontend
- 09Calibration wizardbrowser flow
- 10Leader ↔ follower teleop60 Hz mirror
- 11Human-pose teleopwebcam → joints
- 12Dataset collectionrecord & push
- 13RunPod inferencecloud GPU
- 14Jetson deploymenton-robot install
- 15Wi-Fi AP fallbackHallerRobot SSID
- 16Troubleshootingwhen it lies to you
Apache-2.0. The SO-101 mechanical design is licensed under its own terms by TheRobotStudio.
Set in Fraunces · IBM Plex Sans · JetBrains Mono