The Landscape in 2024: Mini Robots Are Going Legged
For a long time, the entry point to open-source robotics was a wheeled rover. You'd get a TurtleBot-style chassis, a Raspberry Pi, and a stack of ROS packages for SLAM and navigation. It was a fine education, but it sidestepped the hardest problem in robotics: dynamic balance. A wheeled base is statically stable by construction. A biped or quadruped is not.
That's the shift I've been watching. The mini robot space has moved from rolling bases to legged platforms, and it's not a gimmick—it's a deliberate attempt to make the hard problems accessible. The four platforms that exemplify this are Microduck from Pollen Robotics, Microban from LaBRI's Rhoban team, Bimo from Mekion, and Mini Pupper 2 from MangDang. Each one picks a different niche within the same broad territory.
Microduck is a desktop biped aimed at social AI and manipulation. It has an actuated beak for grabbing small objects, which is a wonderfully specific design choice that tells you exactly what kind of research it's for. Microban is a full 3D-printable humanoid from the RoboCup world, with a decade of competitive gait engineering behind it. Bimo is a research platform built specifically for sim-to-real reinforcement learning, with deep integration into NVIDIA's Isaac Lab. Mini Pupper 2 is a quadruped that leans heavily into ROS 2, edge vision, and generative AI interaction.
Why does this matter? Because the barrier to entry for real legged robotics research is falling. A few years ago, you'd need to spend thousands on a Unitree or build a MIT Mini Cheetah clone with quasi-direct-drive motors and custom driver boards. Now you can get a 19-servo humanoid with a proven walk engine for the cost of a mid-range phone, or a palm-sized quadruped that runs Nav2 and an onboard depth camera. The trade-offs are real—these platforms use budget smart servos with significant backlash and thermal limits—but the point is that the entry point now exists. You can start on the hard problems without a machine shop or a lab budget.
What Each Platform Actually Gives You: Hardware and Software Specs
The specs matter here because the differences between these platforms are not cosmetic. They define what research you can plausibly do on them.
Microduck is a ~25 cm, sub-800 g biped with a duck-like form factor. Its distinctive feature is a set of 15 custom high-precision servos driving leg degrees of freedom, neck articulation, and an actuated beak that can grasp small objects. The compute is a Rockchip RK3566 SoC, and the sensing stack is genuinely impressive for the size: dual IMUs, an integrated camera, a low-profile time-of-flight/depth sensor, and micro-LiDAR for spatial navigation. The software is a Python SDK with ROS-friendly architecture, and it supports dynamic walking, sitting, balancing, and autonomous fall recovery. The catch: it's partially open. The SDK and control layers are open source, but some hardware components remain commercial.
Microban is the fully open-hardware option. It's a ~30 cm humanoid with 19 Robotis Dynamixel XL330-M288-T smart serial servos—six per leg for 12 lower-body degrees of freedom, three per arm, and one for neck pan. The compute is a Raspberry Pi Zero 2 W running embedded Linux, communicating with the servos over a custom UART/half-duplex breakout board. The entire mechanical design ships as STL models for FDM 3D printing. The software is the Rhoban stack: analytical inverse kinematics and splined walk engines refined over years of RoboCup competition, giving you omnidirectional locomotion and soccer play that runs deterministically on a 512 MB Pi with zero GPU overhead.
Bimo takes a different route. It's a fully 3D-printable modular chassis for standard serial bus servos, with an embedded ESP32 or companion SBC handling high-frequency joint commands and telemetry over serial or Wi-Fi. The real selling point is the software integration: pre-configured URDF/MJCF models and Gym environments for NVIDIA Isaac Lab, so you can train PPO locomotion policies in massive parallel GPU simulation and deploy them to real hardware via Python runtime APIs. It's a research skeleton, not a companion robot.
Mini Pupper 2 is a 12-DoF quadruped weighing about 560 g. It runs a Raspberry Pi Compute Module 4 plus an ESP32 co-processor, with 12 smart serial servos providing position, velocity, and torque feedback. The optional Luxonis OAK-D-Lite depth camera gives it real edge spatial computing. The software stack is native ROS 2 Humble/Iron with SLAM, Nav2, and gait generation, plus hooks for multi-modal LLM APIs.
| Platform | Form Factor | Actuation | Compute | Software Focus |
|---|---|---|---|---|
| Microduck | 25 cm biped, <800 g, duck-like | 15 custom servos, actuated beak | Rockchip RK3566, dual IMU, camera, ToF/micro-LiDAR | Python SDK, social AI, teleoperation, fall recovery |
| Microban | 30 cm humanoid, fully 3D-printable | 19 Dynamixel XL330, 18+1 DoF | Raspberry Pi Zero 2 W, custom UART breakout | IK + splined walk engines, RoboCup soccer, low compute |
| Bimo | Modular 3D-printable biped chassis | Standard serial bus servos | ESP32 / companion SBC, serial or Wi-Fi link | Isaac Lab sim-to-real RL, PPO, URDF/MJCF, Gym environments |
| Mini Pupper 2 | 560 g, 12-DoF quadruped | 12 smart serial servos with feedback | Raspberry Pi CM4 + ESP32, optional OAK-D-Lite | ROS 2 Humble/Iron, SLAM, Nav2, LLM/vision pipelines |
Actuation: The Elephant in the Room (or the Servo in the Joint)
Every serious conversation about these platforms starts with the servos, because the actuator choice is what ultimately determines your ceiling. There are three archetypes in play, and they all come with sharp trade-offs.
Hobby RC servos—think SG90 or MG996R—are dirt cheap and ubiquitous, but they have high backlash, no telemetry, and no position feedback. You can run an open-loop gait on them, but you can't build a robust closed-loop controller. They're fine for STEM kits and toys, not for research platforms.
Smart serial bus servos—the Dynamixel XL330s in Microban, the custom feedback servos in Mini Pupper 2, and the standard bus servos in Bimo—are the workhorses of this field. They're daisy-chained over half-duplex UART or RS-485, which means you get full telemetry (position, velocity, load, voltage, temperature) from every joint through a single wire. That's a massive win for building controllers, but it comes with a price. The high gear reduction—often 1:100 or more—introduces significant backlash and high mechanical impedance, making true torque-based impedance control very difficult. And the bus itself becomes a bottleneck: querying feedback and writing targets for 12 to 19 servos sequentially takes 10–25 ms per round-trip, capping your control loop at roughly 50–100 Hz. That's on the borderline for dynamic bipedal balancing, where 200–500 Hz IMU-to-motor loops are standard.
Quasi-direct-drive (QDD) motors—the approach used by Unitree and MIT Mini Cheetah clones—offer genuine backdrivability and torque sensing, enabling explosive jumps and compliant impacts. But they cost $80–$250+ per actuator, weigh more, and draw far more power. That puts them outside the reach of a sub-$500 desktop platform.
The practical consequence is a split in the ecosystem. Machines like Microban and Mini Pupper 2 live comfortably within the smart serial servo regime: they use deterministic gait engines or carefully tuned RL policies that account for the backlash and latency. Bimo pushes the same hardware into RL training, which works but demands aggressive domain randomization to bridge the gap between simulation and the real actuator dynamics. The QDD platforms are the ones you'd reach for if you need torque control and dynamic agility, but you're paying a premium for every joint.
flowchart TD
A[Actuation Archetype] --> B[Hobby RC Servos]
A --> C[Smart Serial Bus Servos]
A --> D[Quasi-Direct-Drive / BLDC]
B -->|Ultra low cost, no telemetry, high backlash| E[Basic STEM Kits, Toys]
C -->|Full telemetry, daisy-chained, 1:100+ gear reduction| F[Microban, Mini Pupper 2, Bimo]
D -->|Backdrivable, torque control, expensive| G[Unitree, MIT Mini Cheetah clones]
C -->|Limits: 50-100 Hz control loop, thermal saturation| H[Deterministic IK / tuned RL policies]
D -->|Enables: impedance control, agile recovery| I[High-performance dynamic locomotion]
Control: Classical IK vs. End-to-End RL vs. VLA Orchestration
The three control paradigms represented across these platforms aren't just different implementations—they're different philosophies about where intelligence lives and what you're willing to pay for it.
Microban's splined walk engine is the classical end of the spectrum. It's analytical inverse kinematics wrapped in parametric cycloidal trajectories, refined over a decade of RoboCup competition. Everything is deterministic. The gait is computed in closed form on a 512 MB Raspberry Pi Zero 2 W with zero GPU overhead, and it runs at a steady rate because there's no learning involved. The trade-off is brittleness. A splined gait is a recipe, not a policy. If the robot hits an unexpected obstacle or gets shoved, it doesn't adapt—it falls. That's acceptable for soccer, where the field is flat and the obstacles are known, but it's a real limitation for unstructured environments.
Bimo's Isaac Lab pipeline is the opposite bet. You train a PPO policy in massively parallel GPU simulation, with domain randomization over friction, mass, latency, and actuator dynamics, then deploy the resulting policy to real hardware. What you get is emergent robustness: the policy learns to recover from perturbations because it's been pushed over in simulation a thousand times. What you pay is compute. A serious RL training run needs a high-end NVIDIA GPU and hours of simulation time, and the sim-to-real gap is never fully closed. Budget bus servos have non-linear deadbands, backlash, and motor command lag that rigid-body simulators model poorly. If you don't randomize aggressively, your policy that walks perfectly in Isaac Sim will faceplant on carpet.
Microduck and Mini Pupper 2 sit at the high-level end with VLA and LLM orchestration. This isn't about locomotion control—it's about deciding what to do at the task level. Mini Pupper 2 has hooks for multi-modal LLM pipelines, so you can give it a natural language command and have it translate that into a sequence of navigation and action goals. Microduck's software stack is built for social AI and teleoperation, meaning the robot is designed to be guided by a high-level reasoning layer rather than to reason about its own balance. The latency here is significant—an LLM call takes hundreds of milliseconds to seconds—but that's fine because high-level decisions don't need to happen at 200 Hz. The robot's gait runs on a separate loop, and the LLM is the orchestrator on top.
The interesting truth I've landed on is that these aren't competitors—they're layers. Microban's classical engine is what you'd run underneath a VLA system if you needed deterministic reliability. Bimo's RL policy could be the middle layer that handles dynamic recovery while an LLM picks the objective. The real question is which layer you're trying to research. If you want to study gait and perturbation handling, you need Bimo. If you want to study HRI and task-level reasoning, you need Microduck or Mini Pupper. If you want to win RoboCup, you need Microban.
Compute Tiering and the Real-Time Challenge
The compute architecture you choose for a mini robot is really a decision about where you're willing to tolerate non-determinism. The kill shot is Linux scheduler jitter. A stock kernel, even a well-tuned one, can introduce 10–30 ms of task scheduling delay under load. For a biped that expects to receive a joint command within a predictable window, that's enough to tip it over during a phase transition.
The dual-processor approach, used by Mini Pupper 2 and Bimo, solves this by splitting the problem. An ESP32 or RP2040 runs the low-level servo communication and IMU loops on FreeRTOS, where timing is deterministic. It spits out joint angle commands at 200 Hz or better and reads back telemetry without any Linux involvement. The Raspberry Pi or Rockchip SoC handles everything that doesn't need hard real-time: vision, SLAM, ROS 2 nodes, LLM calls. The communication between them is over high-speed serial or USB, introducing a small but acceptable latency budget.
Microban takes the other route: single Raspberry Pi Zero 2 W talking directly to 19 Dynamixels over a custom UART breakout. There's no microcontroller in the loop. It's simpler, cheaper, and requires less code, but it means the Linux kernel is inside the control loop. The Rhoban team mitigates this with kernel-level tuning—low-latency UART settings and PREEMPT_RT patches where feasible—but the fundamental jitter risk remains. You're trusting the scheduler to deliver your joint commands on time.
There's a third factor that compounds the problem on both architectures: the servo bus itself. Half-duplex UART communication with 12 to 19 daisy-chained smart servos takes 10–25 ms per round-trip for feedback and command writes. That caps your effective control rate at roughly 50–100 Hz, regardless of how fast your processor is. The ESP32 can issue commands at 200 Hz, but it can only complete a full feedback cycle every 10–25 ms. That's the real ceiling, and it's the reason these platforms lean on deterministic gait engines or carefully tuned RL policies rather than aggressive torque-based impedance control.
sequenceDiagram
participant Pi as Raspberry Pi (Linux)
participant ESP as ESP32 (FreeRTOS)
participant Servo as Smart Servo Bus
participant Sensor as IMU
Note over Pi, ESP: Dual-Processor Architecture (Mini Pupper 2, Bimo)
Pi->>ESP: High-level goals (10 Hz)
ESP->>Sensor: Poll IMU (200 Hz)
Sensor-->>ESP: IMU data
ESP->>Servo: Write joint targets (100 Hz effective)
Servo-->>ESP: Telemetry feedback
ESP-->>Pi: State updates (10 Hz)
Note over Pi, ESP: Latency: ~10-25 ms per servo bus cycle
participant PiZero as Pi Zero 2W (Linux)
participant Servo2 as Dynamixel Bus (UART)
Note over PiZero, Servo2: Single-SBC Architecture (Microban)
PiZero->>Servo2: Write joint targets (100 Hz target)
Note over PiZero: Scheduler jitter: 10-30 ms
PiZero->>Servo2: Write joint targets (delayed by jitter)
Note over Servo2: UART round-trip: 10-25 ms
Servo2-->>PiZero: Feedback (interrupted by jitter)
Note over PiZero: Gait phase transition may be missed
Failure Modes: What Breaks When You Actually Run These
The most common failure I'd watch for with these platforms isn't software—it's mechanical and electrical, and it compounds quickly.
Gear stripping and thermal throttling. Compact smart servos like the Dynamixel XL330s in Microban or the custom servos in Mini Pupper 2 use plastic or sintered gear trains to keep weight and cost down. That's fine for gentle gestures, but foot strikes, rapid direction changes, and fall recovery introduce shock loads that strip gear teeth or cause wear. Worse, these robots pack 12 to 19 servos into tightly enclosed 3D-printed shells with minimal passive convection. Continuous stance holding or high-frequency RL locomotion cycles heat up the servo motors rapidly, leading to thermal torque throttling or coil burnout. I've seen the pattern described as a slow degradation: the robot starts walking slightly less energetically, then a joint starts glitching, then a gear eventually gives out. You need a bench stock of spare servos and geartrains if you're running a fleet.
Brownouts from current spikes. This is the killer for compute stability. When a biped takes an impact or multiple servos attempt to correct balance simultaneously, the aggregate current draw spikes—often 5A to 15A+. If servos and the Raspberry Pi share a single battery rail, that transient voltage sag drops below the Pi's PMIC threshold, inducing an immediate kernel reset. The worst part is that it's often ungraceful, corrupting the SD card filesystem. The mitigation is strict power isolation: dedicated buck regulators and separate high-discharge batteries for servos versus compute, with bulk capacitor banks to absorb transients. This is non-negotiable for any serious deployment.
Bus packet loss on impacts. The half-duplex serial bus carrying commands to 12 to 19 servos is a single wire, and it's not shielded from vibration. Rapid joint vibrations at connectors cause intermittent packet drops, which triggers servo timeout failsafes or jerk artifacts. The robot's controller thinks it sent a command; the servo never received it. On a biped mid-step, that's a fall. The mitigation is software-level: retries, timeouts, and fail-soft behaviors that bring the robot to a stable stance rather than letting it collapse. But retries add latency, and latency is exactly what you don't have during dynamic locomotion.
FDM print deformation. The 3D-printed joint brackets and leg links, often PLA or PETG, creep over time under dynamic mechanical load. This changes joint alignment and calibration zero-offsets, meaning the gait engine's model of the robot gradually drifts from reality. You can automate zero-point calibration routines, but the fundamental material limitation remains. Upgrading critical stress points—servo horns, ankle joints, leg links—to SLS nylon or carbon-infused filament is the real fix.
The common thread is that these are all physics problems, not software problems. The software stacks are increasingly robust—ROS 2, Isaac Lab, deterministic IK engines—but the hardware is doing something fundamentally hard, and it breaks predictably. The teams that succeed are the ones that treat failure modes as part of the engineering budget, not as surprises.
Sim-to-Real: The Domain Gap That Won't Go Away
Bimo's pitch is the most intellectually ambitious of the four: skip the hand-tuned gait entirely and let reinforcement learning discover locomotion in simulation, then deploy the policy to real hardware. The integration with NVIDIA Isaac Lab is genuinely well-executed—pre-configured URDF and MJCF models, Gym environments, and a runtime API that pushes trained policies to the ESP32 controller. For someone who wants to study locomotion RL without building a simulator from scratch, this is the platform I'd reach for.
But the domain gap is the whole game, and it's brutal at this scale. Rigid-body simulators do a poor job of modeling ground contact, and the problem gets worse as robots get smaller. A 500 g biped with a 25 cm stride interacts with the floor in ways that are dominated by micro-slipping, contact compliance, and the nonlinear friction behavior of rubber feet on carpet versus hardwood. Isaac Sim will happily simulate a perfect point contact with Coulomb friction; the real robot is bouncing on a compliant surface that deforms under load. The policy that walks beautifully in simulation is often the one that faceplants on the first real step.
The second half of the gap is actuator dynamics. Isaac Lab assumes ideal torque or position controllers by default. Real budget bus servos have significant deadbands (a range where command changes produce no movement), backlash from high gear reduction, and motor command lag that varies with load and temperature. If you train a policy in a simulator that assumes the servo reaches its target angle instantly, you're building the gap into your policy from the start.
The mitigation is a two-part process that every serious Bimo user will eventually converge on. First, system identification: characterize your actual servo response—deadband width, command-to-motion latency, torque limits, thermal throttling behavior—and bake those parameters into the simulation. This is tedious, but it's the difference between a policy that transfers and one that doesn't. Second, aggressive domain randomization: randomize friction, mass, latency, actuator dynamics, and ground compliance across a wide distribution during training. The policy learns to be robust to a range of scenarios rather than tuned to one idealized model. The trade-off is that heavy randomization slows convergence, so you're spending more GPU hours to get a policy that's slightly more conservative in the real world.
If you're expecting to train in the morning and deploy after lunch, you'll be disappointed. This is a pipeline with real engineering work at every stage. But it's the right pipeline, and it's the one that produces genuinely adaptive behavior rather than a spline that falls over when you push it.
Resources
- GitHub - Rhoban/microban: Microban is an affordable, fully 3D-printable, and 100% open-source humanoid robot. Powered by a Raspberry Pi Zero 2W and 19 Dynamixel servomotors, it serves as an accessible
- GitHub - mangdangroboticsclub/mini_pupper_2_bsp: BSP(Board Support Package) for Mini Pupper 2 · GitHub
Updated 2026-08-30 by Mehran Mozaffari.
Related posts
15 September 2026
Generating Manufacturable assemblies with Multi-Agent CAD: A Practitioner's Look at MAC
6 September 2026
Inside Stanford's Robotics Foundations: A Practitioner's Deep Dive
4 September 2026
The Delta X Robot Kit: What a $1,000 Desktop Delta Actually Buys You
3 September 2026
RoboTok: Retrieving Dexterous Manipulation Demos from Web Video by 3D Hand-Motion Similarity
3 September 2026
AR as a Robot Navigation Interface: Inside the Spectacles-Dimensional OS Bridge
27 August 2026
The Standard of Completion: How Factory's Three-Role Agent System Rebuilt gdal to 90 Percent Parity
