I am new to the field of robotics and kinematic models. I have been looking at different models for my ackermann based steering robot and the common case (it appears) is to use a bicycle model.
My question that I am having a hard time finding answers on is there a difference/impact on what focus point I choose to base the model around (besides the obvious that the math changes). So does it matter if I pick center of rear axle, center of gravity, or center of front axle? Will one model eventually perform better than others? Is one better for odometrey?
I’m something of a newbie myself in terms of modern robotics, but I’m an old hand at cars and similar transportation machinery. If you would indulge me, let’s make sure we are on the same page regarding terms and goals, etc.
From your post, I understand the following:
- You are building a multi-wheeled robot
- You want to optimize turning efficiency by using Ackermann’s steering geometry to account for the different lengths of turning radius for each of the steering wheels.
- You have somehow come to the conclusion that a bicycle model will aid your understanding and application of Ackermann’s principles.
There are two approaches to implementing Ackermann steering: mechanical approximation and pure mathematical. (I am assuming that your bot is 4 wheeled for convenience.) The mechanical approach is to build a trailing linkage between the two steering wheels such that the trailing arms each lays on a line between the center of its respective kingpin and the center of the rear axle. The linkage then goes between the two trailing arms. When the bot moves straight ahead, the linkage will be parallel to a line through the two kingpins. As long as the trailing arms are on the line, they can be pretty much any length you like, so long as they are the same length. This arrangement can be seen in the WikiPedia entry on Ackermann steering geometry, with the example here.
This is the arrangement for most RC vehicles, as the linkage becomes a convenience that allows the use of a single servo for steering. With bots, it’s more common to have a drive servo on each side and to rely on omni-wheels to improve turning efficiency or to just take the drag hit from skid steering. For applications that require a more nuanced and effective independent steering of each wheel, the mathematical approach is required.
I don’t have a reference to the equations, but all pure mathematical Ackermann models are geometrically constructed with reference to the center of the turning circle, so the reference point for the model is almost always going to be outside the bot’s footprint.
The general mathematical model can be constructed logically.
- The angle of any single steering wheel forms a tangent point on that wheel’s turning circle.
- The turning circles of every steering wheel will be concentric about the same center point.
- Once the radius of any one steering wheel is calculated and known, the tangent angle/steering angle for every other steering wheel can be calculated from that wheel’s position relative to the reference wheel and the common center point.
- The reference steering wheel’s location, the turning circle center point, and the wheel with the angle to be calculated form a triangle. One side’s length is equal to the radius between the reference wheel and the center point of the turning circle. A second side’s length is known from the distance between the reference wheel and the unknown wheel. The angle between this two sides is easily calculated from the bot’s wheel geometry, as is the angle at the center point.
- Two known sides and two known angles known is more than enough info to calculate the length of the third side that is the radius between the common center point and the unknown wheel, the unknown wheel’s relative cartesian position, the inside angle at that corner, the wheel’s astrological sign, shoe size, it’s mother’s maiden name…
- All that stuff allows you to calculate the tangent angle/steering angle at each wheel.
- Bob’s your uncle and Murphy is a close personal friend of mine…
If you are still planning on the mechanical approximation method, the intersection of the lines for the trailing arms MUST be the center of the rear axle or the relative toe-out of the steering wheels will be wrong, the wheels will toe-out or -in when the bot is going straight, and the approximation that could be “good enough” will become a very bad approximation indeed!
Hope this helps you sort it all out. I can chase down reference links for the math if you think that would help.
Cheers, and welcome to the world of robotics!!
caltain