Four wheels, four minds — inside the drivetrain
How the rover's 4WIS/4WID drivetrain turns a joystick nudge into coordinated motion across four independently steered, independently driven wheels.
Most vehicles steer two wheels and drive two more. Our rover steers all four and drives all four — independently. That’s what 4WIS/4WID means, and it’s what lets the rover crab sideways up a slope, spin in place on loose regolith, or thread an Ackermann turn between rocks.
From stick to wheels
A nudge on the operator’s control stick doesn’t move a motor directly. It becomes a velocity command that travels through a small chain of ROS 2 nodes:
- Locomotion solves the inverse kinematics — given a desired body motion, what angle and speed does each of the four wheels need?
- Slew limiting keeps those commands physically sane, so a hard flick doesn’t try to snap a wheel 90° instantly.
- Hardware I/O talks to the Maxon motor controllers running APOSS firmware.
A safety watchdog sits across the whole chain. Lose the control link, and the rover stops — no coasting off a ledge because a Wi-Fi packet dropped.
Keeping the chassis level
Underneath all of that is an active suspension. Three decoupled PID loops — pitch, roll and ride height — work to keep the chassis flat while the wheels ride over obstacles. It’s the difference between a science sample that stays in the cup and one that ends up in the dirt.
What’s next
We’re migrating the link between firmware and ROS 2 from TCP toward a custom CAN-bus board (internally, “iCANT”). More determinism, fewer cables, and one less thing to debug at 2 a.m. the night before a run.