IK to simulate ackerman steering



I would like to simulate an ackerman steering with IK. I have tried several times but allso failed severaltimes. I managed somehow to fix it with foreward kinematics but it is not really right.
I would like to make the following:
Point C can be moved from left to right but stays on the line it is now
Poit B and D follow the movement of pointC
Lines AB and ED follow B and D but are constricted to pivoting around A and E
Point A and D rotate with the lines AB and ED
The rectangles are attached to the line that goes to point A resp point E and pivot around these points
There is allso a blue and a black line. One is allways perpendicular to the left rectangle. The other to the right rectangle.
As i presume you have completely lost me now i will attach the 3dm file as far as i could get it.
Hope someone can help me out. ackerman steering.3dm (1.1 MB)

(Luc Adriaenssen) #2


Indeed a sample model tells more than a thousand words.
ackerman steering 001.3dm (1.1 MB)
The basic structure for this IK is one long chain starting off with a rotation ‘head’ and constrained by its ‘tail’. I used your circles ‘draaipunt’ for hinges because they are conveniently present.



Hi Luc

thanks a lot! I will investigate your model because i really want to be able to do this myself.


(Luc Adriaenssen) #4


By way of tutoring (and entertainment) I schematized the IK structure of the Ackerman steering.

ackerman steering 002.3dm (119.0 KB)
In fact the structure consists of 4 revolving points, presented in this model by circles (but they can have any shape you like). In most mechanical structure these revolving point are effectively physically present in the form of a spindle, an pin, an axle, a rod, a bold, a rivet etc…)

In each figure the 4 revolving points are lined up in one chain (A – B – C – D). The difference between each figure lies in the nature of each pivot.

Figure 1: Object A is used to ‘drive’ the IK chain. It is made rotating via keyframes. Objects B and C are IK joints Hinge (axis Z). At the end of the chain object D is the constraint, an indispensable element to complete an IK chain. The default constraint “Keep pivot location the same” allows the object to rotate (and even to scale) in order to meet the requirements of the constraint, so it actually functions simultaneously as a Hinge.

Is it imperative to ‘drive’ the chain by its starting object? No, it isn’t!
In figure 2 the chain starts off with a IK joint (Hinge) allowing the object to rotate relative to the World. Here object B is no longer a IK Hinge but the active ‘driving’ element made rotating by keyframes. Cute, isn’t it?

To make the set complete in figure 2 object C is made the ‘driver’.

Figure 4 shows the chain build-up of figure 1 but now translated to the ‘lines’ of the steering mechanism rather than the revolving points. The Bongo-pivots are positioned at the correct spots hence the system works just as fine. However beginners might consider it to be a problem there are only 3 lines and they would wish one could have 2 pivots on 1 object. However an absolute rule is : 1 object = 1 pivot. So to solve the issue an extra object is needed - in this case a point-object can do.

Then I wondered if an Ackerman steering was generally ‘driven’ by one of its pivots. It’s more likely the central rod is moved left/right (e.g. by means of a rack and pinion). A IK-puzzle :slight_smile:

A chain with 2 branches is the answer; as it were 2 chains sharing the same driver.
The Ackerman’s central rod however is not only moving left or right. It also balances and moves forwards and backwards. Bongo doesn’t permit an object to be moved via keyframes and be a telescope at the same time (even when the directions are unlike). The solution is to assign the ‘driving’ to an extra object (e.g. the rack) which drags along the Ackerman rod via a hinge-able and shifting joint (just like it would be in physical mechanical reality)
ackerman steering 003.3dm (115.9 KB)

Remarkable! As you can see in Figure 6, in an identical IK-structure the ‘driver’ can be made rotating instead of shifting.

Have fun,

PS Object E’ model 003 has no function in the IK structure. It’s merely present to illustrate the functioning of the system.


Hi Luc

Thanks again! I am trying to understand this IK chain and know now that it is not as easy as i thought it was. The situation is indeed that the system is driven by a central point on the line B-C. Not a rack and pinion system in my case. There are actually some more pivoting points in the whole setup but they where not needed to investigate the ackermann principle. My goal was to make an animation where you can move the points B and D inwards or outwards and to see what effect this has on the lines that are perpendicular to the wheels. Ideally they should cross each other on the line that is perpendicular to the wheel below the the two front wheels.
Ackermann says that the lines AB and ED should intersect at the heart of the solo wheel below. But sometimes this does not work as it should and you have to make the ackermann a bit “off” in the positive or the negative direction.
There is allso another steering system that i want to investigate. I will try to fix this myself on the basis of your tutorial but moght need some help.
I do nut understand what you mean by telescopic movement as there is no change in length of the lines AB, BD and DE.

Again, Thanks a lot