The Problem
Chronic lower back pain affects hundreds of millions of people worldwide. Most mechanical therapy devices are either static (the patient stays fixed while a module acts on them) or require the patient to actively move. Chirobot takes a different approach: the robot itself drives underneath a patient lying in a supine position and delivers controlled positional movement as part of a physical therapy protocol, with no repositioning required from the patient.
The platform has to satisfy three constraints at the same time: a chassis low enough to slide under a patient, full omnidirectional mobility (translation in any horizontal direction combined with simultaneous rotation), and the structural capacity to carry full-body patient loads.
The Design Challenge
The core constraint was holonomic motion under patient load. A standard differential drive can only move forward/backward and rotate; to change direction, it must first reorient. That is unusable for a therapy robot that needs to trace arbitrary patterns under a lying patient.
I chose a 3-wheeled holonomic base with Mecanum wheels arranged at 120° symmetry. Each wheel carries passive rollers mounted at 45° to the wheel axis, so independently controlling the speed and direction of each wheel produces any combination of longitudinal, lateral, and rotational velocity without reorienting. The 120° symmetric layout also distributes the patient's body weight evenly across the three contact points.

Shrinking the Footprint
The central contribution of this phase was reducing the chassis footprint. A common misconception in three-wheeled Mecanum layouts is that the wheel axes must point radially toward the center. They do not: the only kinematic requirement is that the three wheel-plane orientations produce a full-rank inverse-kinematic matrix. As long as the three rows stay linearly independent, the platform keeps full holonomic mobility regardless of wheel orientation.
That geometric insight unlocked the optimization. In the first clean chassis, each servo sat with its long 51.1 mm axis pointing radially, which set the minimum radius and produced a 226 mm chassis. Rotating every servo 90° so its long axis runs tangentially swaps that 51.1 mm for the 39.8 mm width. A numerical sweep over two placement parameters, with a Separating Axis Theorem collision check between the three servo bodies, found the best layout.
−29%
Chassis diameter, 226 mm to 160 mm
Ø30 mm
Inscribed central free zone for electronics
30 kg
Theoretical load capacity across 3 wheels
0
Drivetrain parts changed between iterations
The tangential layout cut the chassis diameter by 29% with no changes to the drivetrain: the same servos, couplers, shafts, bearings, and wheels carry over unchanged. Allowing the wheels to protrude past the rim by half their diameter, a geometrically valid configuration for Mecanum wheels, would shrink it further to 134 mm (41%).
Drivetrain
Per-wheel drive chain
- Servo
- Hiwonder HTD-45H bus servo, 45 kg·cm at 11.1 V
- Bus protocol
- LewanSoul half-duplex, three servos daisy-chained
- Transmission
- Brass 6→4 mm coupler, 4 mm stainless shaft, KP08 pillow block
- Wheel
- 60 mm Mecanum, 9 rollers at 45°, 10 kg rated
Each shaft gets a second radial support from a KP08 pillow block beyond the servo's own output bearing. Without it, the full bending moment from wheel-to-ground reaction forces would be reacted entirely through the servo's internal gearbox bearing, which is not rated for sustained radial loading at patient-body-weight magnitudes.
Mechanical Architecture
The chassis was designed from scratch in SolidWorks, with modularity as a core principle: every component can be swapped without disassembling the full base. This was critical during early lab iterations where wheel geometry and motor mounting angles changed frequently.
Key decisions:
- Low-profile chassis to minimize the ground clearance needed for a patient platform above
- Recessed wheel wells to protect the omnidirectional wheels while keeping the overall footprint compact
- Motor-to-frame interfaces using clamping collars and vibration-resistant fasteners (important given the continuous vibration load during operation)

Fabrication and Iteration
The chassis was fabricated using FDM 3D printing, which allowed rapid iteration between design revisions. Early prints used organic, support-heavy geometries that were structurally sound but difficult to assemble. Later iterations moved to cleaner low-profile geometries with integrated motor mounting channels, reducing print time and improving assembly speed.
Actuation is handled by the three bus servos with custom shaft couplings, powered by two 3S 2200 mAh LiPo packs wired in parallel (11.1 V, 4400 mAh) through a rocker kill switch.
Electrical Architecture
Power splits into two independent rails. The servo rail feeds 11.1 V straight to the LewanSoul bus board driving all three servos; the logic rail uses an LM2596 buck converter to step down to a regulated 5 V for a Raspberry Pi Zero 2W, the sole onboard computer.
Isolating the two rails is essential for stability. Servo commutation produces large current transients that drop the bus voltage on a shared supply, which can trigger Pi brownouts and uncontrolled reboots. The two-rail architecture eliminates that coupling at the cost of a slightly more complex harness. The Pi runs the control loop: take a target chassis velocity, apply the 3-wheel Mecanum inverse-kinematic transform, send speed commands over the serial bus, and read back position and load feedback to catch stalls.
Where We Are
The base geometry is the hardest part of the project, and it is now fixed. The remaining work is completing the wiring harness and commissioning the two-rail power system, implementing the inverse-kinematic drive loop on the Pi to validate omnidirectional motion on a flat surface, and structural load testing to characterize chassis deflection under patient-representative loads. Camera-based localization for closed-loop path following is planned for a later phase.
Final Report
The complete technical report behind Chirobot.
4pages · PDF