logo AT axel tanner
  • exhibitions
  • playground
  • blog
  • tags
  • one-liners
  • instagram
  • about
  • search

kiwi drive

If you can't view this video, your browser does not support HTML5 videos.


A robot with three omniwheels set 120° apart (a kiwi drive) can move in any direction and turn at the same time. Before building one I wanted to see it move, so I simulated it: first as a small 2-D kinematic model, then as a full physical simulation in MuJoCo that I can drive around with the keyboard or a gamepad.



how it works

Each omniwheel has two staggered rows of six passive rollers, 36 in total, each its own body in the simulation, so the sideways sliding comes from the contact physics and not from a shortcut. Stick input becomes a desired body velocity, inverse kinematics turns it into three wheel speeds, and motor servos turn the wheels. Commanded and measured speeds agree within about 1 %.




kinematic model

The 2-D version first: the path of the robot on the left, the three wheel speeds on the right. Circling while spinning turns into three shifted sine waves.




tools

  • Python with uv, numpy and matplotlib
  • MuJoCo for the physics, in a small GLFW window
  • a DualSense over Bluetooth, read through Apple’s GameController framework, because raw HID readers only see it resting
2026-11-07 physics·playground·animated·interactive·robotics