Main Content

articulatedSteeringKinematics

Articulated steering vehicle model

Since R2025a

    Description

    Use the articulatedSteeringKinematics object to create a vehicle model to simulate simplified vehicles dynamics for articulated steering vehicles such as Load–Haul–Dump (LHD) vehicles, wheel loaders, and dump trucks. In these vehicles, all wheels are non-steerable, and steering is achieved by articulating at the joint. This model represents a vehicle with an articulated joint and two axles. The front axle is at an offset of FrontAxleOffset from the articulated joint. The rear axle is at an offset of RearAxleOffset from the articulated joint.

    The state of the vehicle is defined as a four-element vector, [x y theta gamma], with the coordinates of the middle of the front axle, xy, specified in meters, the front body orientation, theta, and the articulation or steering angle, gamma, specified in radians. The articulation angle is defined as the front body steering relative to the rear body. To compute the time derivative states for the model, use the derivative function with input commands and the current robot state.

    Creation

    Description

    kinematicModel = articulatedSteeringKinematics creates an articulated steering kinematic model object with default property values.

    example

    kinematicModel = articulatedSteeringKinematics(Name=Value) sets additional properties to the specified values. You can specify multiple properties in any order.

    Properties

    expand all

    The front angle offset refers to the length from the articulated joint to the front axle, specified in meters.

    Data Types: single | double

    The rear angle offset refers to the length from the articulated joint to the rear axle, specified in meters.

    Data Types: single | double

    The vehicle speed range is a two-element vector that provides the minimum and maximum vehicle speeds, [MinSpeed MaxSpeed], specified in meters per second.

    The maximum steering angle rate of the front body relative to rear body, gammaDot, specified in radians per second. If the input steering rate goes beyond the maximum steering angle rate, it is limited to the maximum steering angle rate.

    Object Functions

    derivativeTime derivative of vehicle state

    Examples

    collapse all

    Create the robot model and define the initial state of the robot.

    % Create articulated steering kinematic model
    obj = articulatedSteeringKinematics;
    
    % Define initial state [x, y, theta, gamma]
    initialState = [0 0 0 0];

    Set the timespan of the simulation to 1 second with 0.1-second time steps. Define the input commands for the robot as a velocity of 10 m/s and a steering rate of 1 rad/s, which will create a left turn.

    tspan = 0:0.1:1;
    cmds = [10 1]; % [velocity, steering rate]

    Use the ode45 solver to simulate the robot's motion by calculating the derivative of the robot's state

    [t, y] = ode45(@(t, y) derivative(obj, y, cmds), tspan, initialState);

    Plot the path of the robot to visualize its trajectory during the simulation.

    % Plot the robot's path
    figure
    plot(y(:,1), y(:,2))
    xlabel('X Position (m)')
    ylabel('Y Position (m)')
    title('Path of Articulated Steering Robot Kinematic Model')
    grid on

    Figure contains an axes object. The axes object with title Path of Articulated Steering Robot Kinematic Model, xlabel X Position (m), ylabel Y Position (m) contains an object of type line.

    References

    [1] Corke, P.I., and P. Ridley. “Steering Kinematics for a Center-Articulated Mobile Robot.” IEEE Transactions on Robotics and Automation 17, no. 2 (April 2001): 215–18. https://doi.org/10.1109/70.928568

    Extended Capabilities

    expand all

    C/C++ Code Generation
    Generate C and C++ code using MATLAB® Coder™.

    Version History

    Introduced in R2025a