Friday, August 29, 2008

Going to all places, in all directions: the Killough platform

Regular wheeled or tracked vehicles have been with us for decades and, in some cases, even for centuries. They have undeniable qualities: simplicity, speed, reliability.

But what if we need more maneuverability? Nature has come up with a ubiquitous solution: legs. A legged vehicle, the current examples existing practically only in robotics research labs, can move in any direction. But using few legs makes balancing difficult, and many legs are hard to coordinate.

So, a possible compromise between these two means of locomotion is what is known as a Killough platform, named after its inventor.

Structurally, it consists of three wheels (or sets of wheels) arranged in a triangle or three-point star. Each wheel pushes its end of the star in a tangential direction in relation to the centre. In the next images, each primary color represents each wheel's possible motion.

By combining the action of two of the wheels, the vehicle will move in the direction of the stopped wheel. The secondary colours represent the resultant motion (called a “vector addition”) of the vehicle.

There's also the possibility of moving in directions perpendicular to these: for this purpose, all wheels move. One of the wheels moves in the same direction as the vehicle, and the other two combine their motions to go in the same direction.

If you turn all motors in the same direction, the vehicle will turn around itself.

So, even if we can only have each motor in forward/off/reverse, there are 14 possible “simple” (only moving or only rotating) directions a Killough platform can move!

If you turn on only one motor, there’s an additional 6 directions (moving and turning) the vehicle will go, and if you turn on two motors in different polarities, there are 6 other directions. That’s a grand total of 27 combinations, including stopped. Another way to reach this conclusion is to know that there are three motors, and each one has three possible states (forward, off, reverse), which gives 3 x 3 x 3 = 27. And what if you can also vary each motor’s speed? The number of combinations becomes almost infinite!

Since this kind of drive has three degrees of freedom (X, Y and rotation angle) and all of them are controllable, it is considered a "holonomic" drive. With other drives, like the first one at the Week TechVideo, 2008 #33 vehicles use or the one standard cars have, we can’t control X and Y independently of rotation.

Complicated? There’s no denying that! But here is a simpler explanation:

Basically, it's a fancy word meaning that the robot is movable in every possible direction and can spin in every direction.
A Killough platform is holonomic in a two dimensional world – it can move forwards, backwards, left and right - and combine them to go diagonally - all without turning it's body. And it can also spin around. Those are the only motions possible for an object that's stuck to a two-dimensional surface like the floor.
In a three dimensional world, a holonomic robot would have to be able to move up and down - and also roll sideways and pitch forwards and backwards. A helicopter is a holonomic machine in that sense.

Here is a great description of a Lego Killough platform:

Wikipedia has a nice explanation of holonomic systems:
"In robotics holonomicity refers to the relationship between the controllable and total degrees of freedom of a given robot (or part thereof). If the controllable degrees of freedom is equal to the total degrees of freedom then the robot is said to be holonomic. If the controllable degrees of freedom is less than the total degrees of freedom it is non-holonomic. A robot is considered to be redundant if it has more controllable degrees of freedom than degrees of freedom in its task space. Holonomicity can be used to describe simple objects as well.
For example, a car is non-holonomic because although it could physically move laterally, there is no mechanism to control this movement.
A human arm, by contrast, is a holonomic, redundant system because it has 7 degrees of freedom (3 in the shoulder, 1 in the elbow and 3 in the wrist) and there are only 6 physical degrees of freedom in the task of placing the hand (x, y, z, roll, pitch and yaw), while fixing the 7 degrees of freedom fixes the hand."

This all sounds promising, but try building something like this using “regular” wheels and see what happens: a big problem appears!

The wheels will drag along the surface (indicated by the pink and light green arrows) when you the vehicle tries to move! This is where omniwheels (short for “omnidirectional wheels”) enter the show. They transmit torque from a motor in one direction like conventional wheels, but, unlike them, roll freely in the other direction. You’ll find below two types of omniwheel you can use in your vehicle.

So, what better way to know what Killough platforms can do than to look at some of them? There are numerous implementations made with LEGO, but my personal classics are those from Leo Dorst, Markus Matern (S, M and L), and Philippe “Philo” Hurbain. You can see the two different implementations of omniwheel employed: a pair of normal wheels arranged in a way that one of them is always touching the ground, and a wheel made of many tiny normal wheels on its rim.

On Markus’ Large Killough Platform page, there’s a nifty video that showcases this drive’s capabilities. First, the vehicle moves “the Killough way”: it moves in a square trajectory, without ever needing to change direction. Then, it goes through the same path, like a normal wheeled or tracked vehicle would do: goes straight, turns to face the new direction, and repeats the process. Much clumsier!


The Killough platform, being triangular in nature, is also an excellent application of the structures that were the spotlight of TBs TechTips 011. This is especially useful if you employ the studless construction method, like in the next video by RobotThoughts (which, by the way, doesn't feature any wheels at all):

Usually, each motor drives an omniwheel. This is mechanically simple, and easy for an RCX or an NXT to control. But what if you want to remotely control it yourself? You’d need to simultaneously coordinate directions and speeds for three motors! This is probably what Alexander Holroyd thought, so, just like controlling differential-drive vehicles (like the 8275 Bulldozer) can be simplified using a dual-differential drive (like the second example Conchas posted at Week TechVideo, 2008 #33), he built a mechanism to have one motor to control each degree of freedom . I was never very good at understanding differential-based mechanisms, and this one is definitely too much for me!

Yeah I know, all this stuff about vectors and directions and whatnot most certainly sounds complicated, and the mathematical concepts behind it surely can be; but don’t worry, since as soon as you build one of these and experiment yourself with it, you’ll quickly understand the important bits and be marvelled at what it can do. After all, isn’t learning by observation and experimentation exactly what TECHNIC is all about? Wink


koldo said...

The other option is to control with a NXT. Next month I'll publish a model with balls. I used Hitechnic IRLink and Xander Soldaat's library for RobotC. With NXT you can define power arrays for the six motors and control all them with basic mechanic design.

Conchas said...

Great work and explanation Alexandre!

Kilough platforms, was definitly a post missing at TBs.

And you also keep TBs alive, while I'm out in holidays. ;)

AVCampos said...

Thanks, I wanted to write this article for a long time, and it happening while you are on holidays (but still with an eye on TBs ;)) was a useful coincidence. I just hope I can come up with interesting general articles to write, since no one can beat you to news! ;)

Koldo: from what I understood from your model, you intend to use six motors to drive three balls, like the inverse of three ball-based computer mice, right? Each ball could then be controlled independently on the X and Y axes.

But is that really necessary? Like what the article (and many others it links to) explains, all you need to have full control on a surface is three motors, one for each omniwheel (which, in your case, is a sphere - good idea!), as long as the omniwheel is actuated tangentially and is free to move radially.

It might, however, be much easier to control: if you want to have the vehicle moving in a given direction, just have all the balls move in that direction, thanks to the X and Y control you have over them.

koldo said...

Yes, I think is easier, I've at this moment two options to develop the robot, the first with PF IR control, with HItechnick IRLink and the second with two NXT and RS485 communication between.

"...just have all the balls move in that direction..." : yes, that is the goal of the diferent speed ratios.

Related Posts Plugin for WordPress, Blogger...

© 2007-2014 TechnicBRICKs
TechnicBRICKs contents may be sporadically updated, if the authors finds further relevant info about a certain post, or content/spell mistakes. Hence please don't be surprised if you find few changes at later visits, relative to a previous read.

TechnicBRICKs often shows other peoples' creations and/or images. We always try to credit the author(s) and link to their main publishing website, and if possible with their name in real life.
Since this is not always possible, we request that if you find something here that is yours or from someone you know, you leave a comment on the respective post and claim the authorship.

TechnicBRICKs is optimized for Firefox 16.0 and 1600x1200 resolution displays or wider.

LEGO® is a trademark of The LEGO Group of companies which does not sponsor, authorize or endorse this blog.
LEGO, the LEGO logo, the Brick and Knob configurations, the Minifigure and MINDSTORMS, are registered trademarks of The LEGO Group.
Original LEGO images are copyrighted by The LEGO Group and are used here in accordance with their fair play policy.
You can visit the official LEGO® website at