Chapter 3 - Wheeled Kinematics (by Paul Furgale)
#Physics #Engineering #Control_Theory #Robotics #AMRs
More info here:
http://paulfurgale.info
https://www.edx.org/course/autonomous-mobile-robots
Table of Contents:
- A) Part 1 - Introduction to Wheeled Locomotion (🎦 video 1)
- B) Review: Manipulator Kinematics vs Wheeled Kinematics
- C) Part 2 - Wheeled Kinematics & The General Wheel Equation (🎦 video 2)
- D) Part 3 - Differential Kinematics & Degrees of Maneuverability, Mobility and Steer-ability (🎦 video 3)
- E) Part 4 - Forward and Inverse Kinematics of a Differential Drive Robot (🎦 video 4)
- E.1) Defining the Notation needed
- E.2) Recall the constraints for a single standard wheel
- E.3) Step 1: apply constraints
- E.4) Step 2: stack the wheel equations for this configuration
- E.5) Step 3: derive the degree of maneuverability
- E.6) Step 4: differential kinematics
- E.7) 💬 Summary
- E.8) Extra - Code Implementation
A) Part 1 - Introduction to Wheeled Locomotion (🎦 video 1)
Video
Q: Why do we even want to build "wheeled mobile robots"?
Ans: On flat surfaces, wheeled locomotion is 1 or 2 orders of magnitud more efficient than legged locomotion.
But...
On softer surfaces, the efficiency of wheeled locomotion suffers.
However, it is the standard choice for mobile robot applications, just because of the greatly reduced technological complexity of:
- building,
- maintaining
- and controlling wheeled robots
B) Review: Manipulator Kinematics vs Wheeled Kinematics
B.1) Manipulator Kinematics
-
- Given a set of actuator positions, determine the corresponding pose
- Given a set of actuator positions, determine the corresponding pose
-
- Given a desire pose, determine the corresponding actuator positions
- Given a desire pose, determine the corresponding actuator positions
B.2) Wheeled Kinematics (DoF and Constraints)
Now... it's not that straightforward when we try to apply this theory to wheeled mobile robots for the following reasons...
The following graphic represents the parts of a mobile robot that are important for the kinematic model.
Reason 1 - Degrees of Freedom
Not all degrees of freedom of a wheel can be actuated or have encoders.
For example: Let's analyse the left wheel.
We can put a coordinate frame {w} at the contact point of the wheel, and if there is a rotation around the contact point, there is no way the robot can sense that rotation because there's no encoder in that axis.
So there is a degree of freedom that can't be sensed by the robot.
Reason 2 - Differential Constraints
Wheels can impose Differential Constraints that complicate the computation of kinematics
For example: Let's give some notation and analyse the motion on the wheels:
We have "differential constraints", because if we analyse the wheel, we can see that:
a) The motion in the
b) If the wheel is ideal, the motion in the
So, we can write these "differential constraints" in an equation, where the motion in the
So, with the Rolling Contraint and the No-Sliding Constraint, we have defined the available motion in
B.2.1) Introduction to Differential Kinematics
Instead of using "Kinematics", what we use with mobile robots is Differential Kinematics.
We still have the the forward and inverse problems, but they are slightly different,
-
Differential Forward Kinematics
- Given a set of actuator speeds, determine the corresponding velocity
- Given a set of actuator speeds, determine the corresponding velocity
-
Differential Inverse Kinematics
- Given a desired velocity, determine the corresponding actuator speeds
- Given a desired velocity, determine the corresponding actuator speeds
Now let's take a moment to go through the different types of wheels mobile robots can use.
Note: These will determine the differential constraints of our robot.
B.2.2) Basic Wheel types
We have the Standard Wheel and the Castor Wheel,
And the more sophisticated wheels like the Swedish Wheel and the Spherical Wheel,
B.2.3) Holonomic and Non-Holonomic Systems
Because of these "differential constraints", different configurations of wheels on a robot base produce different possibilities for motion.
There are two different categories of Physical Systems:
In mobile robotics these terms refers specifically to the "kinematic constraints" of the robot chassis.
► Holonomic Systems
In these systems, "differential constraints" may be re-expressed as "constraints on the robot's pose". In other words, the "differential constraints" are "integrable".
Also, the robot is able to move instantaneously in any direction in the workspace (the space of its degrees of freedom).
► Non-holonomic Systems
In these systems, "differential constraints" are not integrable. There is no way to express them as constraints on the robot pose.
Also, the robot is not able to move instantaneously in every direction in the workspace.
- DOFs = number of variables in the state
- DDOFs = velocities that can change independetly
- Holonomic restrictions reduce DOFs
- Non-holonomic restrictions reduce DDOFs
- A robot is holonomic if, and only if, DOFs = DDOFs
B.2.3.1) Holonomic Systems - Examples
Example 1:
Consider a bicycle with FIXED steering (two non-steerable wheels),
-
The workspace of the robot collapses to a single degree of freedom: a circle. Therefore, the differential constraints can be expressed as constraints on position (it is the circle).
-
In other words, the no-sliding constraint on the wheel caused the constraints on position.
-
In any configuration, it is possible to choose wheel velocities that move the robot any direction within its workspace.
Example 2:
Consider an office chair with 6 castor wheel,
-
The castor wheel impose no differential constraints
-
In any configuration, it is possible to choose wheel velocities that move the robot with any velocity within the plane
B.2.3.2) Non-holonomic Systems - Examples
Example:
Consider a Differential Drive Robot,
it has two non-stearable wheels aligned on a common axis,
-
The workspace of the robot encompasses all poses in the plane
-
The no-sliding constraint,
, cannot be expressed as a constraint on position. We still have access to the whole plane, without restrictions.
-
Regardless of the configuration the robot it in, instantaneous motion in the
direction is not possible.
In other words, even thought we can reach every pose in the plane, we can't choose any wheel velocities to move the robot to the desired pose.
B.2.4) Preview: Deriving the wheel equation
This is the end of part 1, in part 2 we will see how to derive a general wheel equation and use it for kinematics
C) Part 2 - Wheeled Kinematics & The General Wheel Equation (🎦 video 2)
Video
Now we are going to start to flush out some of the mathematics associated with wheeled platforms, we will look at a specific but fundamental problem, **what is the relationship between a robot platform and the constraints imposed by a single wheel?
More specifically, the problem is:
C.1) Deriving a General Wheel Equation
First, let's derive a General Wheel Equation without specifics, so that when we see a particular individual wheel, we have the needed tools for modeling.
We can define some coordinate frames,
So, if we define these coordinate frames, then the position of the wheel with respect to the inertial frame is just the sum of the following vectors:
Now, if you take this vector equation and then take the time derivative in the inertial frame and assume that a couple these vectors are not changing (for example,
And if me then go through some vector calculus, we will end up with the "General Wheel Equation"
The complete derivation of the general wheel equation will be shown after the following recap on vector calculus by Dr. Yiheng Wang
C.1.1) Recap: Rigid Body Kinematics, Relative-Motion Analysis using Rotating Axes by Dr. Yiheng Wang
To recap, read the following sections:
- A) Part 1: Relative Motion with Translating frame
- B) Part 2: Relative Motion with Rotating frame
C.1.2) Complete Derivation of the General Wheel Equation
The [[general wheel equation]] has a really nice form,
What we can do now is take the [[general wheel equation]] and give an example for a [[standard wheel]].
C.2) Standard Wheel Equation
C.2.1) Step 1: Reduced wheel equation
For this example, we will relocate the reference frames and give some new notation as shown below,
And if we set the problem like this, the wheel offset (
C.2.2) Step 2: Constraints for a standard wheel
Now let's review the "differential constraints" for a standard wheel,
-
Rolling Constraint:
-
No-Sliding Constraint:
-
Planar motion assumption:
Note: the wheel has unconstrained rotation about the contact point.
C.2.3) Step 3: More rotation and Math identities
-
The state of the mobile robot:
-
The rotation matrix around the z-axis:
-
Two successive rotations are additive:
To show that the composition of two successive rotations are additive i.e.,
Solution:
The Rotation matrix
We can write rotation matrix
and
since,
- Rotation Transformations:
C.2.4) Step 4: Plugging the constraints in the wheel equation
C.3) Preview: Deriving Forward and Inverse Differential Kinematics
This is the end of part 2, in part 3 we will look at the properties of
D) Part 3 - Differential Kinematics & Degrees of Maneuverability, Mobility and Steer-ability (🎦 video 3)
Video
To this point we developed some mathematical tools for dealing with an individual wheel attached to a robot base.
Now we will extend this theory by stacking the equations from multiple wheels and using those stacked equations to characterize the motion capabilities of a particular wheeled mobile robot.
D.1) Review: Standard wheel equation
Let's start with some review,
D.2) Differential Kinematics (writing the expression)
- Given a wheeled robot, each wheel imposes
constraints,
- Only fixed and steerable standard wheels impose no-sliding constraints,
- Supposed a robot has
wheels of a radius
the individual wheel constraints can be concatenated in matrix form:
-
First we will start with the Rolling Constraints,
-
Then we repeat the process with the No-sliding constraints,
Differential Kinematics:
How to get the Forward Differential Kinematics:
[[Odometry]] is the use of data from motion sensors to estimate change in position over time. It is used in robotics by some legged or wheeled robots to estimate their position relative to a starting location.
How to get the Inverse Differential Kinematics:
D.3) Degree of Maneuverability (mobility and steerability)
-
The [[Degree of Maneuverability]] of a robot is measured by different metrics:
-
[[Degree of Mobility]] measures how the robot is restricted by no-sliding contraints.
-
[[Degree of Steerability]] measures the additional freedom due to a steering mechanism.
Fore more information on [[Degree of Maneuverability]], [[Degree of Mobility]], [[Degree of Steerability]], read the following presentation:
https://web2.qatar.cmu.edu/~gdicaro/16311-Fall17/slides/16311-6-Maneuverability-ICR.pdf
D.3.1) Degree of Mobility
- [[Degree of mobility]]: controllable freedom based on changes on wheel velocity. It measures how the robot is restricted by no-sliding contraints.
- To avoid any lateral slip, the motion vector needs to satisfy:
The [[rank of a matrix]] is the number of linearly independent column vectors (or row vectors) of that matrix.
Full rank matrices have a nonzero determinant, but matrices with a smaller rank have zero determinant (meaning that they squish space to a smaller dimension, because the transformation takes the basis vectors into vectors that are linearly dependent).
How is this relevant to Mobility:
- Intuitively, this means that all the axes associated with the no-slip constraints from all standard wheels converge at a single point - the instantaneous center of rotation
- The larger the rank of
, the more constraint a robot's mobility. The [[degree of mobility]] ( ), reflects this:
-
For example, for a robot with no standard wheels:
-
And for a robot with all directions constrained:
D.3.1.1) Examples - Degree of Mobility (2&3)
For these examples, let's analyse the [[Instanatneous Center of Rotation (ICR)]],
Example 1:
Example 2:
D.3.2) Degree of Steerability
-
[[Degree of Steerability]] measures the additional freedom due to a steering mechanism.
-
It represents an indirect degree of motion
-
The particular orientation at any instant imposes a kinematic contraint
-
The ability to change that orientation leads to an additional degree of maneuverability
D.3.3) Degree of Maneuverability (again)
D.3.3.1) Examples - Same Maneuverability
D.4) 💬 Summary
- Stacking individual wheel constraints gives an equation that may be manipulated to derive the forward and inverse differential kinematics equations for a wheeled mobile robot.
- Analysis of the component parts of this equation lets us classify wheeled mobile robots in terms of maneuverability (a combination of mobility and steerability)
D.5) Preview - Differential Drive Robot Application
This is the end of part 3, in part 4 we will look at an exercise on wheeled locomotion. We will use the our equation to derive the forward and inverse kinematics of a [[differential drive mobile robot]].
E) Part 4 - Forward and Inverse Kinematics of a Differential Drive Robot (🎦 video 4)
Video
So in this exercise we are going to use the mathematical tools that we learned in this topic to derive the equations of motion for a very common robot design, the [[differential drive mobile robot]].
E.1) Defining the Notation needed
So let's start by looking at the configuration of this robot.
E.2) Recall the constraints for a single standard wheel
E.3) Step 1: apply constraints
Now, let's apply these constraints to the [[differential drive mobile robot]],
E.4) Step 2: stack the wheel equations for this configuration
Now we stack the individual wheel constraints in the following way,
E.5) Step 3: derive the degree of maneuverability
Now we want to look at the
E.6) Step 4: differential kinematics
Now we will take the concatenated Rolling and Non-sliding constraints,
and stack them in the following way,
We can name these matrices
E.6.1) Recap: Derivation of the Pseudo Inverse using the Least Squares Approximation
E.6.2) Forward Kinematics Solution
This is the equation we want to solve,
This is what we know,
We can calculate
We can also calculate
Now we have to take the inverse of
Now we calculate the resulting matrix
The Forward Kinematics Solution is,
E.6.3) Inverse Kinematics Solution
This is the equation we want to solve,
This is what we know,
We can calculate
We can also calculate
Now we have to take the inverse of
Now we calculate the resulting matrix
The Inverse Kinematics Solution is,
E.7) 💬 Summary
The results of our analysis were,
E.8) Extra - Code Implementation
For actually implementing these equations into a computer and use the state of the robot with respect of the inertial frame (
For example:
Video: https://youtu.be/n8Tda3KFvZc?si=OdNGYv-XULwbNhh2
Read more here