Most of the robots in our reality can be considered as combinations of rigid bodies, so let's first discuss the velocity of rigid bodies.
The Connection and Difference Between Physical Quantities and Numbers#
In the abstract world of physics, we believe that there are two real entities: points and vectors.
A point is the abstract representation of physical quantities in the physical world, existing independently of any coordinate system.
The position of a rigid body can be abstracted as a point; regardless of whether a coordinate system is established or what kind of coordinate system is established, the position of the robot will not change. As long as the rigid body itself is at rest, its position (point) in the physical world is fixed.
A vector is also an abstract representation of physical quantities in the physical world, but unlike a point, it has magnitude and direction.
The velocity and acceleration of a rigid body are vectors. Similarly, regardless of how the coordinate system changes, the vectors represented by velocity and acceleration will not change.
One point to note here is that the coordinate system I am referring to is not the same as the reference frame we learned in high school physics.
![[The Difference and Connection Between Coordinate Systems and Reference Frames in Robot Research#Example of Mobile Robots]]
When we use physical laws to express and calculate physical quantities, and we do not care about the specific magnitude of the physical quantities, but only about the relationships between physical quantities, we do not need a coordinate system or numbers.
A particle $b$ is moving in space, and we can describe its velocity with a vector , while we can use the composition and decomposition of velocity physical law to arbitrarily select two vectors such that .
We can say that the particle has a velocity , moving at a speed of in the direction of .
We can also say that the particle has two velocities and .
In the above example, we did not use a coordinate system or numbers; we used a physical law to express the relationship between three vectors with symbols, while also explaining their physical meaning.
For points and vectors, we always need to care about where the point is, what the magnitude of the vector is, and what the direction of the vector is when applying them.
In practical applications, we certainly want to know where the robot's position is, what its speed is, and what direction it is moving, etc.
At this point, we need to define a coordinate system, from which we can represent physical quantities with numbers rather than just symbols.
Velocity of Rigid Bodies#
First, we need to clarify what exactly is the velocity of a rigid body?
Before studying this course, my intuitive understanding of the velocity of a rigid body was simply the velocity of the center of mass of the rigid body and the angular velocity of the rigid body rotating around the axis through the center of mass; together, they constitute the velocity of the rigid body.
This is clearly not accurate enough, so here we need to first define the velocity of a rigid body.
First, we know that a rigid body is composed of infinitely many points. At the same time, we know that the velocity of these points within the rigid body is related to their position within the rigid body and other parameters (such as the angular velocity of the rigid body around an axis).
Therefore, we can express the velocity of any point in the rigid body in the form of an implicit function as .
Based on this form, we define the velocity of a rigid body as the here.
In other words, as long as we know the velocity of the rigid body and the coordinates of a point on the rigid body, we can calculate the velocity of that point.
In practice, we generally do not care about the velocity of the rigid body. We care about the end-effector velocity of the robotic arm, the velocity of the geometric center of the vehicle, the velocity of the center point on the body of the quadruped robot, etc.
However, if we calculate the velocity of the rigid body from the beginning, we can conveniently calculate the velocities of all the points we want.
Conversely, if we only calculate one point at the beginning and later want to calculate other points, it will become troublesome and confusing.
Of course, up to this point, it is still too abstract. Next, we will expand and explain step by step until we reach spatial velocity.
As shown in Figure 1, the rigid body is rotating around a fixed axis, and we choose a point on the rotation axis of the rigid body as the reference point. According to the relationship between angular velocity and linear velocity in high school physics, we can know that for any point in the rigid body, .
Then, to make our discussion more universal, let's take a step further. Suppose the rotation axis of the rigid body is not fixed but is moving.
is still a point on the rotation axis of the rigid body, and we choose as the reference point to describe the velocity of the particle. For any point in the rigid body, we have .
Again, we remind you that our current description is all about the relationships between vectors, so it does not involve any coordinate systems, which also means that these relationships hold in any coordinate system.
From a physical perspective, let's see how is derived.
First, essentially, the velocity of a point is the change in position of that point, which is its derivative, i.e., . Similarly, .
Next, for convenience of understanding, let's set the origin of the coordinate system as . According to the principle of vector composition (yes, you are not mistaken, this is a physical law! Not a mathematical rule), we must have .
At the same time, since the rigid body is in motion, points and are changing with time. And at any time , we have .
In our subsequent symbolic representation, and mean the same thing; using mainly emphasizes that it is independent of the coordinate system, and its relationship with other vectors and points is also independent of the coordinate system.
Therefore, we have . Taking the derivative of both sides gives . Ultimately, we can obtain .
The length of in has not changed (because these two points are within the rigid body, and the rigid body does not undergo deformation), only the direction has changed.
The derivative of the vector is .
From a physical perspective, represents the linear velocity brought to point by the angular velocity .
{ps: This can be easily understood by drawing and using the basic definition of derivatives.}
We can see that the difference between and is whether or not.
Thus, whether the rigid body is performing pure rolling in space or not, the relationship between the velocity of any point in the rigid body and the velocity of the reference point satisfies .
Combining with the implicit function expression , we can conclude that at this time, the velocity of the rigid body is .
Reviewing the previous text:
We can express the velocity of any point in the rigid body in the form of an implicit function as . Based on this form, we define the velocity of a rigid body as the among them.
As shown in Figure 2, let's continue to take the second step, we choose any point on the rigid body as the reference point for expressing velocity.
The significance of this step is: to broaden the range of reference points we can choose in the expression of rigid body velocity, proving that our reference point does not necessarily have to be on the rotation axis.
Choosing a reference point on the rotation axis is naturally convenient because we do not have to consider the issue of the reference point rotating.
However, in practical engineering, we often cannot directly obtain the velocity of the rotation axis.
We can only place the velocity measurement sensor in a suitable position on the machine and cannot always install it on the rotation axis.
CallBack:
As long as we know the velocity of the rigid body and the coordinates of a point on the rigid body, we can calculate the velocity of that point.
The ability to choose reference points more broadly allows us to calculate the velocity of the rigid body well in many imperfect real situations.
Thus, we have .
Let's continue to derive this equation using physical laws.
For point , we have .
For point , we have .
From the equations , we can derive:
Similarly, based on the definition of rigid body velocity, at this time, the velocity of the rigid body is .
CallBack:
We can express the velocity of any point in the rigid body in the form of an implicit function as . Based on this form, we define the velocity of a rigid body as the among them.
Now that we have completed all the foundational parts.
Next, we need to take an important third step. As shown in Figure 3, we randomly select a body-fixed point outside the rigid body.
The significance of this step is: to further broaden the range of reference points we can choose in the expression of rigid body velocity, proving that our reference point does not necessarily have to be on the rigid body, as long as it is body-fixed.
In the previous second step, we chose any point on the rigid body; now we are choosing any point outside the rigid body but body-fixed. The meaning of these two is completely the same, with the key being body-fixed.
The concept of "field" in physics can help understand body-fixed.
For example, in the magnetic field of a magnet, if we select a point A in the magnetic field of a magnet, then although this point is not on the magnet, it will still move with the magnet, which is what is meant by body-fixed.
Therefore, based on the results of the second step, we can still obtain .
To repeat, at this time, the velocity of the rigid body in the figure is .
Now, let's move on to the final fourth step: to reach the limit of the range of reference points we can choose in the expression of rigid body velocity, proving that our reference point does not necessarily have to be body-fixed. It can be any point, whether it is moving or not, whether it is body-fixed or not, etc..
We choose a coordinate system , and we can say that at every moment, there is a body-fixed point coinciding with the origin of the coordinate system .
We define: The mathematical symbol represents the velocity of the body-fixed point that coincides with point at time t.
This statement is very important: The symbol represents the velocity of the body-fixed point that coincides with point at time t.
Not the velocity of point ; I do not care about the velocity of point , regardless of what it is.
Thus, based on equation (5), we replace with : .
Since point is the origin, if I express this equation in the coordinate system , it can be written as .
.
For the last time, based on the definition of rigid body velocity, we can conclude that at this time, the velocity of the rigid body is .
You should feel that this is very counterintuitive; it is certainly not the velocity of the center of mass of the rigid body in the XYZ direction combined with the angular velocity around XYZ. It feels "very unlike" the velocity of a rigid body...
The sacrifice of intuition is valuable; with this, we will find it very convenient when calculating the forward and inverse kinematics of multi-rigid-body structured robots later.
In textbooks, the naming of is spatial velocity or twist.
Seeing this, you may still be a bit confused, so let's provide a couple more examples.
Let , . The coordinate system is the fixed world coordinate system, and the coordinate system rotates with the cone.
Note that means the angular velocity of the cone relative to the world coordinate system.
First, let's look at the spatial velocity of the cone in the coordinate system : .
Naturally, . Now, what is ?
CallBack:
The symbol represents the velocity of the body-fixed point that coincides with point at time t.
So, we can directly find this body-fixed point .
The body-fixed point and the point on the rigid body are completely equivalent; they both move with the rigid body.
So, how do we find the velocity of the point on the rigid body? We can directly apply equation (5): ,
where is the reference point velocity, and is the reference point.
Note that velocity and spatial velocity are not the same.
We can choose a convenient reference point to easily find , because we know that is zero.
The cone is only rotating, not translating, so is zero. ps: this refers to the velocity of the body-fixed point on the rigid body.
Since we are expressing the spatial velocity in the coordinate system, only is special.
Again, CallBack:
The symbol represents the velocity of the body-fixed point that coincides with point at time t, not the velocity of point .
Thus, we can obtain .
Don't forget! Our here is actually what we defined as .
Thus, we have obtained the spatial velocity representation of the rigid body cone, which is expressed as in the coordinate system .
Next, let's calculate the velocity of the rigid body cone in the coordinate system .
CallBack:
Note that the velocity of the cone we are describing is always relative to the world coordinate system.We are just changing the mathematical representation of this already existing physical quantity in different coordinate systems.
.
First, for , from the figure, we can see that rotates around the $\widehat{z}$ axis, while rotates around the $\widehat{x}$ axis. Therefore, .
From the figure, we can see that throughout the entire process of the cone's rotation, all points that are body-fixed to this cone have remained unchanged, always being the apex of the cone, and it has neither rotated nor translated. Thus, .
In summary, .
At this point, we can introduce an important knowledge point: coordinate transformation.
Since we are only expressing the same physical vector in different coordinate systems, how should these different representations of coordinate systems be transformed? This is beneficial for converting the physical quantities we care about into coordinate systems that are easier for calculation or coding.
[[Todo: Coordinate Transformation of Twists]]
Let's take another example of a mobile robot.
The figure describes a mobile robot rotating around the center point , where the coordinates of point in coordinate system are , and in coordinate system , the coordinates are . The angular velocity of rotation is .
There are two coordinate systems in the figure: the world coordinate system and the body coordinate system . Both follow the right-hand rule, where the axis of points out of the paper, and the axis of is opposite to it.
Similar to the cone example, let's first look at the spatial velocity in coordinate system .
Here, the symbol is synonymous with ; in the future, if not explicitly needed, we will use to represent .
Where ,
Now let's calculate the spatial velocity in coordinate system , and the answer is (try to calculate it by hand as practice) .