LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Looking for Ackermann Kinematics theory

Hi.

 

I´m trying to implement some displacement algoritm for a car-like robot (four wheels: rear wheel-drive, front wheel steering) but I failed finding the basics.

 

Labview Robotics comes with the Ackermann functions, but I need to calculate the velocity frame (x_dot, y_dot, thita_dot) beforehand, and I can´t found the ecuations. I searched on some books, in internet too, without success.

 

In every book/webpage/paper i looked, they say that forward and inverse kinematics are very complex for the complete ackermann model, and they only explain the simplified model (bycicle model, two wheels). Im near to a dead end here...

 

So, if someone knows about a book/webpage/paper which has the complete ecuations, could you share it, please?

0 Kudos
Message 1 of 5
(3,655 Views)

Xandro,

 

You mentioned that you need to calculate the frame velocity beforehand, so I'm curious what values you want to start with in order to calculate this velocity.  The Robotics VIs can do either forward or

inverse kinematics to convert between robot velocity and wheel states.  Here is a very simplified explanation of how they work:

 

Forward:  Apply Velocity to Wheels.vi

This VI takes the velocity of the robot as the input.  The robot velocity can be expressed as frame velocity (x_dot, y_dot, theta_dot) or arc velocity (turning radius, tangential velocity).  For each wheel in the steering frame, the steering angle is calculated to satisfy a nonslip condition, meaning the wheel is oriented in the direction of movement.  The forward velocity of each wheel is then calculated to satisfy a pure-rolling condition, meaning the wheel rolls at the same rate as its movement along with the steering frame.  The velocities of the wheels are essentially calculated with a matrix multiplication that looks something like [v1; v2; ...] = [A1, B1, C1; A2, B2, C2;...]*[x_dot; y_dot; theta_dot].  An, Bn, and Cn are constants that depend on the type of wheel (fixed, steering, caster, mecanum, etc) and the positions of the wheel.

 

Inverse: Get Velocity from Wheels.vi

This VI does the exact reverse of the previous VI.  It estimates the velocity of the robot (either steering frame or arc velocity), based on the states of the wheels.  The velocity estimate is done by doing an inverse matrix multipy of the above equation.

 

Please let me know if this helps at all.  I suggest playing around with the Robotics Steering examples.

 

-Chris M

0 Kudos
Message 2 of 5
(3,638 Views)

Hello Xandro,

 

You can find basics governing state equations for Ackermann steering in the devzone article below

 

Teach Vehicle Steering and Simulation with LabVIEW Robotics Starter Kit (DaNI)

http://zone.ni.com/devzone/cda/tut/p/id/12721

 

Let me know if this helps!

 

-Andy

Andy Chang
National Instruments
LabVIEW Control Design and Simulation
0 Kudos
Message 3 of 5
(3,584 Views)

Xandro,

 

I believe the document linked by Andy uses a simplified model of an Ackermann steering system that doesn't take all four wheels into account.  It is basically a tricycle model.

 

Could you explain more about what it is you are trying to calculate?  For example, what are the inputs and outputs of your system?

 

Chris M

0 Kudos
Message 4 of 5
(3,575 Views)

My apologies if I didn´t explain myself clearly.

 

Let´s say I have an algorithm which "OUT" is an angle "G". G is the angle I want to send to my ackermann robot.

 

Then the ackermann robot turns G degrees.

 

So:

 

1.- Algorithm calculates angle G as an OUT.

2.- You need to calculate the steering frame velocity (x_dot, y_dot, thita_dot), using the "G" angle as an IN

3.- Then you use the Apply Steering Frame Velocity to Wheels function, with (x_dot, y_dot, thita_dot) as an IN

 

The point is, I wasn´t able to found any Ackermann Kinematics for the point 2, but yesterday I ran into a book which explains that the tricycle kinematics are an equivalent to the four wheels ackermann model, then you use a simple ecuations to convert the "turning front wheel angle" of the tricycle into the "turning angles to the left and right front wheels" of the ackermann.

 

 

Actually,Andy gave me the same aproximation. I´ll look into that. Thank you Andy! And thank you all!

0 Kudos
Message 5 of 5
(3,551 Views)