Holonomic Drive Question

So I’ve been toying around with some ideas for a holonomic drive system, and I (and several others who have seen my designs) had a question: do the wheels need to be equidistant to function properly? Because the FIRST starting dimensions are rarely ever square, this would seem to be an important design constraint. Do I need to make my wheelbase square (and thus, smaller) so the wheels will be equidistant, or can I keep it rectangular, and maximize my available space?

I’d say no, for a four wheeled holomnic.

3 wheels is more complex… I’m not sure if it would have to be or not.

the wheels can be wherever you want. you just have to make your programing utilize the wheel geometry properly for example a 3-wheel arranged in an isosceles triangle the total power of all the motors would be 2-thirds so if it were going sideways. one wheel would be at 100% and the other two would be at 50%

the speed of the wheels is always the parallel distance from the centerline of the velocity of the robot i will draw a diagram later that would make it easier to understand.

For reference, it’s a 4-wheel holonomic.

No, they do not need to be equidistant or equiradial. This is true for 4-wheel or 3-wheel configurations (and would also be true for 5- 6- or 8-wheel configurations if you wanted to make one).

When the robot is translating in a straight line, the math involved to determine the rotational velocity of each drive wheel is independent of the distance from the center of motion to the wheel (it is dependent only on the angle between the CM-wheel line and the desired direction of motion). So the algorithm used to determine the drive parameter for a configuration with wheels that are not equidistant will be identical to one that is equidistant.

When the robot is rotating about a point, the math involved to determine the rotational velocity of each drive wheel is dependent on the distance from the center of motion to the wheel. For a system with all wheels equidistant from the center of motion, the algorithm to determine the desired rotational velocity would be executed once, and the results applied to all wheels. For a system with each wheel at a different distance, the algorithm to determine the desired rotational velocity is the same, but the offset parameter (the distance from the center of motion to the point of contact between the wheel and the ground) is different. The algorithm is executed once for each wheel, and the results applied to that wheel. In other words, the math is all the same, but you just do it once for each wheel instead of once for the whole robot.

The cambered holonomic drive system that Team 116 developed this year used four drive wheels that were located at different radial positions and different distances from the CG. The system handled this configuration without issue.

If you think carefully about how this works, you will find that you can start to have some real fun with holonomic systems. Unlike the center of gravity (which is fixed for a given configuration of the physical components), the center of motion is a virtual point that can be relocated. You can change the location of the center of motion just by modifying the offset distance between each wheel and the center of motion, and completing the associated calculations. Then apply the algorithm used to rotate about a point, modified with the relocated center of motion, to determine the drive parameters. In this way the robot does not always have to rotate around the center of mass or center of volume. Instead, it can do things like rotate around a corner of the robot, or around one wheel (“twirling on it’s toes”). Place the center of rotation well outside the robot volume and orthogonal to the direction of motion, and it will drive in an arc. Place the center of motion outside of the robot and directly in line with the direction of motion, and it will linearly translate. In fact, all desired motions can be simplified into a series of rotations about a set of points.


This thread is a couple of months dormant but I just began looking at this type of drive recently. Now I am very much intrigued by the cambered, four-corner design posted by Dave. I had been considering a four wheel design with two axles perpendicular. A “plus sign” design. I am worried that this makes the corners of the robot unstable. Adding caster wheels helps but then I conjured up an idea of taking the traditional tank steer set up for a 4 wheel system and just add the second dimension and have a total of 8 wheels on 4 motors and transmissions. I’ve attached a jpg created from a word drawing so it is rather crude. One motor / transmission would be used per side. It would be prudent to consider using #25 roller chain and sprockets to save weight. The new AndyMark plastic Omniwheels would also be a prudent choice once they become available for weight concerns likewise.

Any and all thoughts welcome.

The concept works, but having 8 wheels and so many chains and sprockets may be a little more than you really need, just to keep your wheel base large. Something you may want to consider is having 4 wheels, with each wheel at a corner of the robot, and with each wheel tilted inwards as if the wheels were all tangent to a circle around your robot. This would let your robot have the same holonomic motion, with a large wheel base, and less wheels. Here is a picture of what I mean. Sorry, was a quick one in MSPaint



I almost didn’t post the idea because of the insane number of wheels and chain. I’ve seen your design suggestion before and beleive that a team at the LSR used one last year. I read posts listing the idea as KIWI? It seems though, that with drivers doing a lot forward driving the kiwi system has an awful lot of spinning wheels to go forward. Maybe that is a none issue, I have absolutely no experience to draw from on this system. How would a kiwi, I hope I am using the correct term, fair in a pushing match? I was thinking that my insane 8 wheel system could always have four wheels spinning against a push with their maximum traction…

I just don’t know.

I’d like to keep this discussion going :cool:

We also, in an spur of the moment brainstorm session came up with a similar configuration. What I wonder is, If you’re going to invest all the weight into a system that nomally will go straight, with really the holonomic aspect as an added feature, why not put only 1 wheel on the front and back? Or maybe just 1 period, at the spin point? Probably save on motors, only 3 needed, and would be more efficient, if driven straight primarily, than a 3 wheel kiwi.

As I continue to ponder this drive system, I drift back to a more complex mechanical system that achieves a similar goal. That being a four wheel steerable system. Chainzilla, 118, used such a system last year. The goal being able to drive the robot in any direction so as to have maximum mobility and control. Having all four wheels spinning in the same direction against a push is always valuable in FIRST as defenders are always present and pushing. I see omniwheels and holonomic drives as a less complex system mechanically but it has the disadvantage of likely being easier to push around

What else do I need to consider or am I over-stating drawbacks to omni-wheels and holonomic drives :confused:


I can’t give you all that many specifics about any of the drive trains being discussed, but I can tell you that Chainzilla was fairly easy to push around. I’m not sure how it would fare relative to omni or holonomic drive, but compared to a standard drive-train (tank style) I really doubt a Crab drive (which is what Chainzilla used, if I’m not mistaken in my terminology) would have much of a chance.

I think the reason why holomics are easy in general to push around is the reason why they are built. **Manueverabilty!!! **A holonomic or crab drive is built to be quick and slippery, because having crazy manueverability at 3 feet per second doesn’t make all that much sense. You’ve got to give up tourque for speed, unless you have a shifting or multi-motor drive, something also difficult to accomplish in a holonomic/crab drive. Ultimately, it doesn’t matter how many wheels you have towards your opponent; if he’s got more torque *and *similar/better wheels, you’re going in the corner. Bottom line.

While a holonomic drive system will be more pushable than a traditional 4-solid wheel system, it is still harder to push than a robot using all onmi-wheels. In general, a four wheel holonomic drive system will have the equivalent of two wheels that roll freely and two wheels that are resisting the motion. But, as Andrew said above me, a holonomic drive system can outmanuever just about anything, so it should be able to go around a robot trying to push it. The only trouble would come in a game where two robots are trying to control the same movable goal (zone zeal, for example).