Car-like steering vehicle model
ackermannKinematics creates a car-like vehicle model that uses
Ackermann steering. This model represents a vehicle with two axles separated by the distance,
state of the vehicle is defined as a four-element vector, [x y theta psi],
with a global xy-position, specified in meters. The vehicle heading,
theta, and steering angle, psi are specified in
radians. The vehicle heading is defined at the center of the rear axle. Angles are given in
radians. To compute the time derivative states for the model, use the
function with input steering commands and the current robot state.
creates an Ackermann kinematic model object with default property values.
kinematicModel = ackermannKinematics
sets additional properties to the specified values. You can specify multiple properties
in any order.
kinematicModel = ackermannKinematics(Name,Value)
WheelBase— Distance between front and rear axles
1(default) | positive numeric scalar
The wheel base refers to the distance between the front and rear axles, specified in meters.
WheelSpeedRange— Range of vehicle wheel speeds
[-Inf Inf](default) | two-element vector
The vehicle speed range is a two-element vector that provides the minimum and maximum vehicle speeds, [MinSpeed MaxSpeed], specified in meters per second.
|Time derivative of vehicle state|
Create a Robot
Define a robot and set the initial starting position and orientation.
kinematicModel = ackermannKinematics; initialState = [0 0 0 0];
Simulate Robot Motion
tspan = 0:0.05:1; cmds = [10 1]; % 10m/s velocity and left turn [t,y] = ode45(@(t,y)derivative(kinematicModel,y,cmds),tspan,initialState);
 Lynch, Kevin M., and Frank C. Park. Modern Robotics: Mechanics, Planning, and Control 1st ed. Cambridge, MA: Cambridge University Press, 2017.