Car-like vehicle motion using Ackermann kinematic model
Robotics System Toolbox / Mobile Robot Algorithms
The Ackermann Kinematic Model block creates a car-like vehicle model that
uses Ackermann steering. This model represents a vehicle with two axles separated by the
Wheel base. The
state of the vehicle is defined as a four-element vector, [x y theta psi],
with an global xy-position, vehicle heading, theta, and
steering angle, psi. The vehicle heading is defined at the center of the
rear axle. Angles are specified in radians. The steering input for the vehicle is given as
radians per second.
v— Vehicle speed
Vehicle speed, specified in meters per second.
dpsi/dt— Steering angular velocity
Angular velocity of the vehicle, specified in radians per second.
state— State of vehicle
Current xy-position, orientation, and steering angle, specified as [x y theta psi], in meters and radians.
stateDot— Derivatives of
The linear and angular velocities of the vehicle, specified as a [xDot
yDot thetaDot psiDot] vector in meters per second and radians per second.
The linear and angular velocities are calculated by taking the time derivatives of the
Wheel base— Distance between front and rear axles
1(default) | positive numeric scalar
The wheel base refers to the distance between the front and rear vehicle axles, specified in meters.
Vehicle speed range— Minimum and maximum vehicle speeds
[-Inf Inf](default) | two-element vector
The wheel speed range is a two-element vector that provides the minimum and maximum vehicle wheel speeds, [MinSpeed MaxSpeed], specified in radians per second.
Maximum steering angle— Distance between front and rear axles
pi/4(default) | positive numeric scalar
The maximum steering angle, refers to the maximum amount the vehicle can be steered
to the right or left, specified in radians. The default value,
provides the vehicle with minimum turning radius, 0.
Initial state— Initial state of vehicle
[0;0;0;0](default) | four-element vector
The initial x-,
heading angle, theta, and steering angle, psi, of
Simulate using— Type of simulation to run
Interpreted execution(default) |
Interpreted execution — Simulate model using
the MATLAB® interpreter. For more information, see Simulation Modes (Simulink).
Code generation — Simulate model using
generated C code. The first time you run a simulation, Simulink® generates C code for the block. The C code is reused for subsequent
simulations, as long as the model does not change.
 Lynch, Kevin M., and Frank C. Park. Modern Robotics: Mechanics, Planning, and Control. 1st ed. Cambridge, MA: Cambridge University Press, 2017.