Let's Make Robots!

TOW - TriOmniWheeler

Holonomic Rover

Here's the latest from BOA-Labs: My first omni-wheeler.

It draws very little from the suggestion here. Most roving robots must turn to face their direction of travel. The plan with this one is that it should be able to move around in 2D space without having to turn to face "forward." It's called "holonomic" motion. It's annoying that so many variations on this have already made it to market. Other omni wheelers have a perceived flaw where they might slide off the sloped roof of your house. Not this one.

Programming it is going to be the entertaining bit. Have barely contemplated it. All ideas welcome.

I have reused the the controller from Harmenszoon. This controller was also used in my first biped. In fact, in modifyig the software to operate continuous rotation servos, I found a glitch in the biped code which may well re-ignite the project.

I'm seriously considering my old Psion Series 5 as a controller because it's got an RS-232 port and its own built-in high-level programming language (OPL). It looks like some clever bugger has already thought of that, although they use a Palm Pilot.


The second video show the first signs of life. You're thinking "Cool, all he has to do it flip it over!" Not just yet. First I have to do the next bit....

The first video is the last video. It "does stuff."

Closeup Pictures

Some pics of the chassis. Here's the underside, showing the arrangement of the three continuous rotation servos.


Detail of the servo mounting.


The Maths

All the maths (discussed later in the threads) boils down to this:

d = SQRT(3)/2 (this also happens to be COS(30). Useful because 30+90 is the relative angle of each wheel to the chassis.

N1 = w - x

N2 = x / 2 - y * d + w

N3 = x / 2 + y * d + w

N1, N2 and N3 are the wheel speeds. w is the angular velocity (it can rotate as it travels).

The Conclusion

It's time to take this one apart for the motors. I wanted to get it to do "something" first, though, so here it is moving around in all the prescribed ways on the floor.

The wheels weren't good - they were too slippy.

The servos in continuous rotation mode were extremely difficult to control accurately for speed.

A pity, really. I will try coating them with liquid latex or something at some point to make 'em more sticky.

Case closed.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Clean start BOA,
Is the general idea 2 wheels rotating will move the bot in one of 3 linear directions - pushing or pulling depending on direction.

3 wheels will rotate the bot.

Looks great, umm, where's the paint sticks? 

TOW04_Fwd.jpgPaint sticks are for artists. I'm a scientist and an engineer. That's why nothing I start is ever really "finished."

The idea is that one or more wheels, potentially rotating an various speeds and directions relative to one another will move the "bogie" in a given direction regardless of what direction it's facing.

TOW05_Right.jpgYeah, 3 wheels rotating the same direction and speed should rotate it about its centre. Any two wheels rotating in opposite directions will send it off in a straight line in the direction perpendicular to the third (non-rotating) wheel.

But look at the scribbles here. It's clear that the wheels should be rotating in the direction of teh blue arrows in order to produce the overall motion indicated by the red arrows. The question is: what should the speed be?

To get it to go "forward" (bear in mind it has no "front") as fast as possible, we drive the "front" wheels as fast as possible, leaving the "back" wheel fixed. To get it to go to the "right," the "back" wheel rotates to the right with the frontleft wheel rotatingforward and the frontright wheel rotating backward. (Even though it relies on <I>Starfleet Universal Up</I> as it has no "front," I'm now going to stop putting quotes round every reference.)

 Hands up who doesn't see the problem? Clearly, when arrempting tomove to the right, if I make the back wheel go full speed, it will move in a curve towards the top right.


 Glad I stumbled upon this post. I have a quick question I hope you couled help me with. In regards to omni wheels, I have a setup (or close to completing) which is outlined in the below drawing (crude). The top 2 wheels are driven off the same motor and  share a drive shaft.The lower wheel has it's own motor. It is also worth mentioning these wheel are the Vex Omni Wheels.

 The question is: what possible movements will the bot posses given all possible scenarios? Logic tells when I can achieve a "floating" motion, but I'm just not sure how this setup will respond. Any insight would be super helpful.




Hmmm... Let's give the bits names. The ones at the top are the "coaxial pair" and let's call the bottom one the "transverse.

There are only two motors. Driving the coaxial motor alone should certainly cause it to go in a straight line.

If you drive the transverse keeping the coaxials steady, you would hope to spin (probably about a point close to the middle of the coaxials). However, since there's nothing to stop the coaxials sliding sideways, my fear is that they will do so, possibly causing it to move in a straight line, or at least in an arc of a (nearly) unpredictabe radius.Let's hope I'm wrong; if I'm right, it won't be possible to correct the motion as the coaxial pair can only be driven in the same direction.

I think the correct way to control this robot woud be like a car. Use the coaxial motor for drive and teh transverse for steering. In fact, the transverse motor needn't be a roataional motor at all: hae you considred just using a servo?

You have a fixed "back axle" but by using poly wheels, you have eliminated the need for a diferential drive.

I think it would work very well in this fashion, but I'm not confident you can achieve the desired "floating" motion.

By the way, those wheels are bloody brilliant looking! What a great find!! You should consider adding them as one of our LMR links!

Good luck!


I hear what you are saying, make wonderful sense. I think I am going to just finish it out as planned and see what happens.

What I'd like to see happen is this "floating" effect as well as dead straight driving and the ability to rotate on a dime. I will keep you posted.


I applaud your approach. Bang something to gether and see what happens is the accepted norm around here. My design will definitely "float." But, let us never forget that Penicillin was discovered by accident!

As soon as I read the word triangular, there was a bit of a brain haze right behind my eyes. Then my visual cortex kicked in and now I have a migraine!

Please let us know..... Forget video. We want code! Or in your case: high level pseudo code.

perfect  pivot rotations, and side strafe capability eh...

not bad! 

very clean mounting technic!!  good start!
want to see what you will do with ti  ;)
I found a piece of soft plastic rod (dunno what it is, but it's about as soft as a stick of hotmelt glue). I found that a 5.5mm hole would press-fit quite nicely onto the splined head of a servo motor. I turned the rod down on the lathe to the right diameter. The wheels have a keyway in them. I cut a V groove up the length of the rod, inserted it in the middle of the wheel in line with the keyway and filled the gap up with hotmelt glue.