Most of the robots we see in reality can be considered as combinations of rigid bodies, so let's first discuss the velocity of rigid bodies.
The Connection and Distinction 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 stationary, 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 Relationship 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 , and 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 symbolically 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, which allows us to represent physical quantities with numbers rather than just symbols.
Velocity of Rigid Bodies#
First, we need to clarify what exactly the velocity of a rigid body is.
Before learning 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 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).
Thus, 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 itself. We care about the end-effector velocity of a robotic arm, the velocity of the geometric center of a cart, the velocity of the center point on a quadruped robot's body, etc.
However, if we calculate the velocity of the rigid body from the beginning, we can easily compute 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 cumbersome 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 know that for any point in the rigid body, .
Then, to make our discussion more universal, let's take a step further. Suppose the axis of rotation 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 for describing the velocity of the particle. For any point in the rigid body, we have .
Again, we remind you that our current description is 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 ease of understanding, we first 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 over time. And at any time , we have .
In our subsequent symbolic representations, 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.
Thus, we have , and taking the derivative on both sides gives . Ultimately, we can obtain .
In , the length of remains unchanged (because these two points are in the rigid body, and the rigid body does not deform), only the direction changes.
The derivative of the vector is .
To understand from a physical perspective, is the linear velocity brought to point by the angular velocity .
{ps: This can be easily understood by drawing and using the basic definition of the derivative.}
We can see that the difference between and is whether or not.
Thus, regardless of whether the rigid body is performing pure rolling in space, 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 .
To recap:
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 the rigid body as the among them.
As shown in Figure 2, let us take the second step forward, 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 in the expression of rigid body velocity, proving that our reference point does not necessarily have to be on the axis of rotation.
Choosing the reference point on the axis of rotation is naturally convenient because we do not have to consider the problem of the reference point rotating.
However, in practical engineering, we often cannot directly obtain the velocity of the axis of rotation.
We can only place the velocity measuring sensors at suitable positions on the machine, and we cannot always install them on the axis of rotation.
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 is to ensure that we can effectively calculate the velocity of the rigid body even in many imperfect real situations.
Thus, we have .
We will continue to derive this expression using physical laws.
For point , we have .
For point , we have .
From the formula , 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 the 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 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 selected any point on the rigid body; now we are selecting any point outside the rigid body but body-fixed. The significance of these two choices is completely the same, with the key being body-fixed.
Here, 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 we call body-fixed.
Thus, based on the results of the second step, we can still obtain .
To reiterate, at this time, the velocity of the rigid body in the figure is .
Now, let us move on to the final fourth step: to reach the limit of the range of reference points 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 stationary, body-fixed or not, etc..
We choose a coordinate system , and we can say that at every moment, there is a body-fixed point that coincides 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.
It is not the velocity of point ; I do not care about the velocity of point , regardless of what it is.
Thus, based on formula (5), we replace with : .
Since point is the origin, if I **express this equation in the coordinate system , it can be written as .
.
One 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 quite 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 worthwhile; 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, while 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 representation of the cone's twist 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 meaning of a body-fixed point and a point on the rigid body is completely the same; 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 formula (5): ,
where is the velocity of the reference point, and is the reference point.
Note that velocity and twist 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 twist 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! Here, our is actually what we defined as .
Thus, we have obtained the velocity of the rigid body cone represented in twist form, which in the coordinate system is represented as .
Next, let's calculate the velocity of the rigid body cone in the coordinate system .
CallBack:
Note that the velocity we are describing for the cone 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 is rotating around the $\widehat{z}$ axis, while is rotating around the $\widehat{x}$ axis. Thus, .
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 not changed; they have always been the apex of the cone, and it has neither rotated nor translated. Therefore, .
In summary, .
At this point, we can introduce an important knowledge point: coordinate transformation.
Since we are merely expressing the same physical vector in different coordinate systems, how should we transform between these different representations? This will help us convert the physical quantities we care about into coordinate systems that are easier for computation or coding.
[[Todo: Coordinate Transformation of Twist]]
Let's take another example of a mobile robot.
The figure describes a mobile robot rotating around the rotation 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 points in the opposite direction.
Similar to the cone example, let's first look at the twist in the 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 twist in the coordinate system ; the answer is (try to calculate it manually for practice) .