Diablo is a two-wheeled balancing robot with articulated legs, and all six of its joints run without a gearbox. We designed it for teams who want the speed of a wheeled chassis and the obstacle handling of a legged one in the same machine.
It ships as a development platform. The SDK is open, the front bay is free for sensors, the top deck takes cargo, and there is room to mount lidar, GPS or anti-collision hardware. Labs use it for balance and locomotion research, and integrators evaluate it as a rolling base for delivery, demonstrations, and selected inspection-related development work.
What it does
Diablo carries real payloads at speeds up to 2 m/s while maintaining stable balance. It weighs 22.9 kg and stays under 49 dB, which matters in offices, labs, exhibition spaces and other shared indoor environments.
| Item | Figure |
|---|---|
| Net weight | 22.9 kg |
| Size, standing mode | 540 × 371 × 491 mm |
| Size, creeping mode | 540 × 371 × 270 mm |
| Maximum speed | 2 m/s |
| Load, standing mode | 4 kg |
| Load, creeping mode | 80 kg |
| Jump height | About 8 cm with no load |
| Obstacle crossing | Up to about 8 cm on flat ground |
| Head height adjustment | Up to about 20 cm, as reported in our published DIABLO paper |
| Operating noise | Below 49 dB |
| Runtime, creeping at speed | About 3 hours at 34 °C ambient |
| Runtime, standing upright | About 3 hours at 25 °C ambient |
These are our own test results at the stated temperatures, not the output of any industry certification. On site, terrain, payload and duty cycle will move the numbers.
Two Postures
Standing and creeping give DIABLO two different working modes. In standing mode, DIABLO keeps a compact footprint and remains agile for movement, turning, interaction, and sensor positioning. In our published DIABLO paper, we report head height adjustment of up to about 20 cm, which lets the robot raise or lower its body when approaching steps, uneven surfaces, or low-clearance spaces.
In creeping mode, DIABLO folds down onto four rollers under the head while the two main wheels continue to drive. In this posture, more of the load is supported by the frame, reducing reliance on active self-balancing compared with standing mode. This is why the same machine is rated for 4 kg in standing mode and 80 kg in creeping mode.
DIABLO's balance control is built around an LQR controller based on a simplified inverted-pendulum model, with separate control modules for yaw, split angle, height, and roll. In our validation tests, the robot remains stable within roughly 30 degrees of the equilibrium point, including cases where the body is tilted and the head is not horizontal. The control stack also includes jump and fall-recovery behaviors, with actual recovery performance depending on posture, terrain, payload, and operating conditions.
Why we dropped the gearbox
Direct drive buys three things on a robot that works every day.
Maintenance gets simpler. There is no reducer to wear out, no backlash to develop and no lubrication schedule. Joints bolt to the linkages by flange, so a repair means swapping a module.
Efficiency goes up. Friction in a transmission is energy the battery pays for and never recovers, so removing it puts more of each charge into motion and stretches the working session between charges.
Integration gets faster. One module holds the motor, encoder and driver, so chassis design skips the job of matching motors, reducers and drivers to each other.
The M1502D Joint
Every joint on DIABLO uses our M1502D direct-drive joint module, a direct-drive motor module with built-in driver control and an internal angle sensor. We designed it for high torque at low speed, low torque ripple, and smooth response, because a self-balancing wheeled-leg robot needs fast and precise posture correction when it accelerates, brakes, crosses obstacles, or recovers from disturbances. The table below summarizes the main M1502D parameters used in DIABLO.
| Parameter | Value |
|---|---|
| Rated torque | 9.6 Nm |
| Stall torque | 17 Nm |
| Rated speed | 115 rpm |
| No-load speed | 220 rpm |
| Rated voltage | 24 V |
| Maximum efficiency | 76% or better |
| Motor weight | 2.6 ± 0.1 kg |
| Encoder resolution | 16384 |
| Ambient temperature | -15 °C to 45 °C |
The driver uses field-oriented control with the motor's internal angle sensor, giving clean torque, position and speed control and very little audible noise, with on-board diagnostics and protective functions for safer motor operation. Related M15 series motors are also available for AGV, AMR and compact mobile robot chassis projects.
Control and Software
DIABLO separates real-time balance control from higher-level perception and navigation. A microcontroller handles the low-level control loop, communicates with the motor drivers over CAN bus, reads the BMI088 IMU over SPI, and runs the balance, jump, and fall-recovery controllers on ChibiOS/RT. A mini PC above it provides four-core ARM A53 compute with about 5 TOPS of edge inference, supports multiple camera inputs and H.264/H.265 video processing, and connects through UART. We provide an open-source ROS framework on the mini PC so developers can build navigation and perception functions without interfering with the balance loop. A battery management system, watchdog, handle, and emergency stop support safer hands-on development and testing.
Getting one
We built DIABLO for teams that need a ready-to-use self-balancing wheeled-leg platform for research, prototyping, demonstrations, or integration work without building the balancing chassis from scratch. You can find pricing and full robot specifications on the Diablo product page. We also provide tutorials, the user manual, and SDK documentation through the DIABLO Tutorials and product documents pages. If your project has specific requirements for payload, third-party sensors, mounting space, SDK development, or motor modules, please contact us before ordering so we can review the product specifications, documentation, and available support scope with you.


