Chapter 3 - Wheeled Kinematics (by Paul Furgale)


#Physics #Engineering #Control_Theory #Robotics #AMRs

↩️ Go Back

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)

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:

B) Review: Manipulator Kinematics vs Wheeled Kinematics

B.1) Manipulator Kinematics

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...

Note

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.
|400

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 XW direction should be explained by the turning of the wheel.
|300

b) If the wheel is ideal, the motion in the YW direction should not be possible, because the wheel cannot side slip.

So, we can write these "differential constraints" in an equation, where the motion in the XW direction is represented as x˙, and the motion in the YW direction is represented as y˙.

So, with the Rolling Contraint and the No-Sliding Constraint, we have defined the available motion in x˙ and y˙.


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,

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.

More info

  1. DOFs = number of variables in the state
  2. DDOFs = velocities that can change independetly
  3. Holonomic restrictions reduce DOFs
  4. Non-holonomic restrictions reduce DDOFs
  5. 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),

|420

Example 2:
Consider an office chair with 6 castor wheel,

|200


B.2.3.2) Non-holonomic Systems - Examples

Example:

Consider a Differential Drive Robot,
|250

it has two non-stearable wheels aligned on a common axis,

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, rRS and rSW are not changing, therefore, their time derivatives are zero).

And if me then go through some vector calculus, we will end up with the "General Wheel Equation"

Note

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:

Video

#Physics #Engineering #Engineering_Mechanics #Dynamics

↩️ Go Back

Table of Contents:


A) Part 1: Relative Motion with Translating frame

When we study the relative motion of 2 particles (let's say "A" and "B"), we can begin our analysis by only using "translating" frames of reference. In other words, the motion of the moving coordinate system, let's say {xyz} is only "translating" with no "rotation".

In this example, rA and rB are absolute positions with respect to the fixed reference frame.

And rB/A is the relative position vector of the two particles (B relative to A), and it is simply the difference of the two absolute position vectors.

Also, if we take the time derivative of the relative position equation, we get the equation of relative velocity.

However, let's not forget something...

If we express the vector rB/A with respect of {xyz}, we have to use its unit vectors i^, j^ and k^.

And if we take the time derivative,

Remember

We have to remember that for translating frames, the unit vectors i^, j^ and k^ do not change with time!

So, there is no need to apply the [[Product Rule]] when we take the time derivative, since only x, y, and z positions are functions of time,


B) Part 2: Relative Motion with Rotating frame

So now let's revisit this scenario,

This time the moving coordinate system represented by the small case letters x and y, is rotating with angular velocity Ω (and angular acceleration Ω˙) with respect to the fixed frame.

In this example, rA and rB are absolute positions with respect to the fixed reference frame (just like before).

And rB/A is (still) the relative position vector of the two particles (B relative to A), and it is simply the difference of the two absolute position vectors.

Now, to get the relative velocity equation (again), let's take the time derivatives of the relative position equation,

Remember, the relative position vector rB/A can be represented in either the fixed frame or the moving frames. Let's write it with respect to the moving frame,

And now something very important has happened, because the {xy} frame "rotates", i^ and j^ are now variables!

Therefore when we take the time derivative of the relative position vector rB/A we must apply the [[product rule]],

And something looks familiar,

But what about the other terms?

Let's consider again the diagram that showed pure rotation,

First we have the rotating frame, with angular velocity Ω,

After some time dt, we have a new orentation,

The magnitud of the vector di^ can be approximated as the lenght of an arc with central angle dθ,

Therefore, the time derivative of i^ is,

But we can also write it as a [[cross product]],

And we can derive the time derivative of j^  in a similar way,

Now we can come back to our relative velocity equation,

And plug our new expressions for the derivatives of i^ and j^ ,

Therefore we get the final equation,



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 (rSW) is equal to zero, so we can reduce the general wheel equation as follows,

C.2.2) Step 2: Constraints for a standard wheel

Now let's review the "differential constraints" for a standard wheel,

  1. Rolling Constraint:

  2. No-Sliding Constraint:

  3. Planar motion assumption:

Note: the wheel has unconstrained rotation about the contact point.
|300

C.2.3) Step 3: More rotation and Math identities

  1. The state of the mobile robot:

  2. The rotation matrix around the z-axis:

  3. Two successive rotations are additive:
    |300

  1. 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 J1(βs) and C1(βs) in order to characterize the types of motions that a specific mobile robot platform is capable 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)

|420

the individual wheel constraints can be concatenated in matrix form:

  1. First we will start with the Rolling Constraints,

  2. Then we repeat the process with the No-sliding constraints,

Differential Kinematics:

How to get the Forward Differential Kinematics:

How to get the Inverse Differential Kinematics:


D.3) Degree of Maneuverability (mobility and steerability)

More info

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

Recap from [[Linear Algebra]]:

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:

D.3.1.1) Examples - Degree of Mobility (2&3)

For these examples, let's analyse the [[Instanatneous Center of Rotation (ICR)]],

Example 1: δm=2

Example 2: δm=3


D.3.2) Degree of Steerability


D.3.3) Degree of Maneuverability (again)

D.3.3.1) Examples - Same Maneuverability


D.4) 💬 Summary


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 C1 matrix to derive the [[degree of maneuverability]] for this particular robot,

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 A and B just to make it simpler to manipulate,

E.6.1) Recap: Derivation of the Pseudo Inverse using the Least Squares Approximation

Video

#Math #Linear_Algebra

Table of Contents:


Derivation of the Pseudo Inverse using the Least Squares Approximation

Introduction to the Problem

  • We have a matrix equation Ax=b, where A is an n×k matrix, x is a vector in Rk, and b is a vector in Rn.

  • The problem arises when there is no solution for Ax=b, which happens when b is not a linear combination of the column vectors of A, i.e., b is not in the column space of A.


Step 1: Introducing Least Squares Approximation (Minimizing the Distance)

To find an approximate solution, we introduce the concept of the least squares approximation:

  • The goal is to find a vector x such that Ax is as close as possible to b.
  • This closeness is quantified by minimizing the length of the vector bAx.
  • The minimization process involves finding the vector x that minimizes the squared length of bAx.
  • Mathematically, this is expressed as minimizing bAx2, which is the sum of the squared differences of the elements in the vectors b and Ax.


Step 2: Projection onto Column Space

  • The closest vector to b in the column space of A is the projection of b onto this space.
  • We seek x such that Ax is this projection, which will minimize the distance between Ax and b.

Question: Is there an easier way to find x without using the projCol(A)(b)?
Answer: Yes, there is! We can use the Orthogonal Complement and Null Space


Step 3: Orthogonal Complement and Null Space

  • It is shown that Axb is orthogonal to the column space of A.

  • Therefore, Axb is a member of the orthogonal complement of the column space of A, which is also the null space of AT.


Step 4: Deriving the Least Squares Solution

  • Multiplying both sides of the equation Axb=0 by AT gives ATAxATb=0.
  • Solving this for x gives the least squares solution. The equation ATAx=ATb always has a solution, which is the best approximation for the original problem.


Conclusion

  • The least squares solution x is the best possible approximation in the least squares sense for the equation Ax=b when there is no exact solution.
  • This approach minimizes the error in the approximation, making Ax as close as possible to b.


↩️ Go Back


E.6.2) Forward Kinematics Solution

This is the equation we want to solve,

This is what we know,

We can calculate ATA,

We can also calculate ATB,

Now we have to take the inverse of ATA,

Now we calculate the resulting matrix (ATA)1ATB,

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 BTB,

We can also calculate BTA,

Now we have to take the inverse of BTB,

Now we calculate the resulting matrix (BTB)1BTA,

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 (ξI), what is commonly done is to us a numerical method, like Euler's method to get an approximation of the integral of ξ˙I

For example:

|500

Video: https://youtu.be/n8Tda3KFvZc?si=OdNGYv-XULwbNhh2