1、URL

   https://control.ros.org/rolling/doc/ros2_controllers/doc/mobile_robot_kinematics.html



You're reading the documentation for a development version. For the latest released version, please have a look at Jazzy.

Wheeled Mobile Robot Kinematics

This page introduces the kinematics of different wheeled mobile robots. For further reference see Siciliano et.al - Robotics: Modelling, Planning and Control and Kevin M. Lynch and Frank C. Park - Modern Robotics: Mechanics, Planning, And Control.

Wheeled mobile robots can be classified in two categories:

Omnidirectional robots

which can move instantaneously in any direction in the plane, and

Nonholonomic robots

which cannot move instantaneously in any direction in the plane.

The forward integration of the kinematic model using the encoders of the wheel actuators — is referred to as odometric localization or passive localization or dead reckoning. We will call it just odometry.

Omnidirectional Wheeled Mobile Robots

Omnidirectional Drive Robots using Omni Wheels

The below explains the kinematics of omnidirectional drive robots using 3 or more omni wheels.It follows the coordinate conventions defined in ROS REP 103.

Omnidirectional Drive Robot using Omni Wheels


  • is the robot’s body-frame coordinate system, located at the contact point of the wheel on the ground.


  • is the world coordinate system.


  • is the robot’s linear velocity on the x-axis.


  • is the robot’s linear velocity on the y-axis.


  • is the robot’s angular velocity on the z-axis.


  • is the robot’s radius / the distance between the robot’s center and the wheels.

  • Red arrows on the wheel

  • signify the positive direction of their rotation

    is the angular offset of the first wheel from
  • .


  • is the angle between each wheel which can be calculated using the below equation where
    • is the number of wheels.

    Inverse Kinematics

    The necessary angular velocity of the wheels to achieve a desired body twist can be calculated using the below matrix:

    Here are the angular velocities of the wheels and is the radius of the wheels.These equations can be written in algebraic form for any wheel

    like this:

    Forward Kinematics

    The body twist of the robot can be obtained from the wheel velocities by using the pseudoinverse of matrix

    .

    Swerve Drive Robots

    The below explains the kinematics of omnidirectional drive robots using four swerve modules, each with independently controlled steering and driving motors. It follows the coordinate conventions defined in REP-103.

    Swerve Drive Robot

  • is the robot’s body-frame coordinate system, located at the geometric center of the robot.


  • is the world coordinate system.


  • is the robot’s linear velocity on the x-axis.


  • is the robot’s linear velocity on the y-axis.


  • is the robot’s angular velocity on the z-axis.


  • is the wheelbase (distance between front and rear wheels).


  • is the track width (distance between left and right wheels).

  • Red arrows on wheel

  • signify the direction of the wheel’s velocity
    • .

    Each swerve module

    , for (typically front-left, front-right, back-left, back-right) is located at

    relative to the center, typically:

    • Front-left:

    Front-right:

    Back-left:

    Back-right:

    Inverse Kinematics

    For each module

    at position

    , the velocity vector is:

    The wheel velocity and steering angle

    are:

    Odometry

    The body twist of the robot is computed from the wheel velocities

    and steering angles

    . Each module’s velocity components in the body frame are:

    The chassis velocities are calculated as:

    Odometry updates the robot’s pose (, ,

    ) in the global frame using the computed chassis velocities. The global velocities are:

    Nonholonomic Wheeled Mobile Robots

    Unicycle model

    To define the coordinate systems (ROS coordinate frame conventions, the coordinate systems follow the right-hand rule), consider the following simple unicycle model

    Unicycle

  • is the robot’s body-frame coordinate system, located at the contact point of the wheel on the ground.


  • is the world coordinate system.


  • are the robot’s Cartesian coordinates in the world coordinate system.


  • is the robot’s heading angle, i.e. the orientation of the robot’s -axis w.r.t. the world’s
    • -axis.

    In the following, we want to command the robot with a desired body twist

    where is the linear velocity of the robot in its body-frame, and

    is the angular velocity of the robot in its body-frame. As we consider steering robots on a flat surface, it is sufficient to give


    , i.e. the linear velocity of the robot in direction of the
  • axis.


  • , i.e. the angular velocity of the robot about the
    • axis.

    as desired system inputs. The forward kinematics of the unicycle can be calculated with

    We will formulate the inverse kinematics to calculate the desired commands for the robot (wheel speed or steering) from the given body twist.

    Differential Drive Robot

    Citing Siciliano et.al - Robotics: Modelling, Planning and Control:

    A unicycle in the strict sense (i.e., a vehicle equipped with a single wheel)is a robot with a serious problem of balance in static conditions. However,there exist vehicles that are kinematically equivalent to a unicycle but morestable from a mechanical viewpoint.

    One of these vehicles is the differential drive robot, which has two wheels, each of which is driven independently.

    Differential drive robot

    • is the wheel track (the distance between the wheels).

    Forward Kinematics

    The forward kinematics of the differential drive model can be calculated from the unicycle model above using

    Inverse Kinematics

    The necessary wheel speeds to achieve a desired body twist can be calculated with:

    Odometry

    We can use the forward kinematics equations above to calculate the robot’s odometry directly from the encoder readings.

    Car-Like (Bicycle) Model

    The following picture shows a car-like robot with two wheels, where the front wheel is steerable. This model is also known as the bicycle model.

    Car-like robot

    is the steering angle of the front wheel, counted positive in direction of rotation around
  • -axis.


  • is the velocity of the rear and front wheel.


    • is the wheelbase.

    We assume that the wheels are rolling without slipping. This means that the velocity of the contact point of the wheel with the ground is zero and the wheel’s velocity points in the direction perpendicular to the wheel’s axis. The Instantaneous Center of Rotation (ICR), i.e. the center of the circle around which the robot rotates, is located at the intersection of the lines that are perpendicular to the wheels’ axes and pass through the contact points of the wheels with the ground.

    As a consequence of the no-slip condition, the velocity of the two wheels must satisfy the following constraint:

    Forward Kinematics

    The forward kinematics of the car-like model can be calculated with

    Inverse Kinematics

    The steering angle is one command input of the robot:

    For the rear-wheel drive, the velocity of the rear wheel is the second input of the robot:

    For the front-wheel drive, the velocity of the front wheel is the second input of the robot:

    Odometry

    We have to distinguish between two cases: Encoders on the rear wheel or on the front wheel.

    For the rear wheel case:

    For the front wheel case:

    Double-Traction Axle

    The following image shows a car-like robot with three wheels, with two independent traction wheels at the rear.

    A car-like robot with two traction wheels at the rear

    • is the wheel track of the rear axle.

    Forward Kinematics

    The forward kinematics is the same as the car-like model above.

    Inverse Kinematics

    The turning radius of the robot is

    Then the velocity of the rear wheels must satisfy these conditions to avoid skidding

    Odometry

    The calculation of

    from two encoder measurements of the traction axle is overdetermined.If there is no slip and the encoders are ideal,

    holds. But to get a more robust solution, we take the average of both , i.e.,

    Ackermann Steering

    The following image shows a four-wheeled robot with two independent steering wheels in the front.

    A car-like robot with two steering wheels at the front

    • is the wheel track of the front axle, measured between the two kingpins.

    To prevent the front wheels from slipping, the steering angle of the front wheels cannot be equal.This is the so-called Ackermann steering.

    Note

    Ackermann steering can also be achieved by a mechanical linkage between the two front wheels. In this case the robot has only one steering input, and the steering angle of the two front wheels is mechanically coupled. The inverse kinematics of the robot will then be the same as in the car-like model above.

    Forward Kinematics

    The forward kinematics is the same as for the car-like model above.

    Inverse Kinematics

    The turning radius of the robot is

    Then the steering angles of the front wheels must satisfy these conditions to avoid skidding

    Odometry

    The calculation of

    from two angle measurements of the steering axle is overdetermined.If there is no slip and the measurements are ideal,

    holds. But to get a more robust solution, we take the average of both , i.e.,

    Ackermann Steering with Traction

    The following image shows a four-wheeled car-like robot with two independent steering wheels at the front, which are also driven independently.

    A car-like robot with two steering wheels at the front, which are also independently driven.

    • is the distance from the kingpin to the contact point of the front wheel with the ground.

    Forward Kinematics

    The forward kinematics is the same as the car-like model above.

    Inverse Kinematics

    To avoid slipping of the front wheels, the velocity of the front wheels cannot be equal and

    with turning radius of the robot and the left/right front wheel

    This results in the following inverse kinematics equations

    with the steering angles of the front wheels from the Ackermann steering equations above.

    Odometry

    The calculation of

    from two encoder measurements of the traction axle is again overdetermined.If there is no slip and the encoders are ideal,

    holds. But to get a more robust solution, we take the average of both , i.e.,

    标签: none

    评论已关闭