这是用户在 2024-11-1 2:47 为 https://app.immersivetranslate.com/pdf-pro/b41a2e4c-9d94-4fbf-9bf3-6343a25462dc 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?

Chapter 3
Modeling
第三章 建模

This chapter provides the underlying models for deriving the Whole-Body Control framework in Chaps. 6 and 7. Section 3.1 gives a brief overview on rigid body transformations in order to introduce the equations of motion of humanoid robots in Sect. 3.2. In multi-contact balancing, the distribution of forces and torques among the contacts is a challenging aspect of the problem, which arises from the closed kinematic chain given by the robot and its environment. Section 3.3 provides a mathematical description of this so-called Wrench Distribution Problem. The physical properties of the involved contacts are modeled and studied in Sects.3.4 to 3.6.
本章为推导第 6 章和第 7 章中的全身控制框架提供了基础模型。第 3.1 节简要介绍了刚体变换,以便在第 3.2 节介绍仿人机器人的运动方程。第 3.1 节简要介绍了刚体变换,以便在第 3.2 节中介绍仿人机器人的运动方程。3.2.在多触点平衡中,触点之间的力和力矩分布是一个具有挑战性的问题,这源于机器人及其环境所提供的封闭运动链。第 3.3 节对这一所谓的 "扳手分布问题 "进行了数学描述。第 3.4 节至第 3.6 节对相关触点的物理特性进行了建模和研究。

3.1 Rigid Body Transformations
3.1 刚体变换

This section provides a brief summary on rigid body transformations, which will be used later to discuss the so-called wrench distribution problem (see Sect.3.3). Let us consider two arbitrary frames F A F A F_(A)\mathcal{F}_{A} and F B F B F_(B)\mathcal{F}_{B} in six-dimensional Cartesian space attached to a rigid body (see Fig. 3.1). The position and orientation of both frames relative to a common world frame W W W\mathcal{W} are denoted by x A R 3 , R A S O ( 3 ) x A R 3 , R A S O ( 3 ) x_(A)inR^(3),R_(A)inSO(3)\boldsymbol{x}_{A} \in \mathbb{R}^{3}, \boldsymbol{R}_{A} \in \mathcal{S O}(3) and x B R 3 , R B S O ( 3 ) x B R 3 , R B S O ( 3 ) x_(B)inR^(3),R_(B)inSO(3)\boldsymbol{x}_{B} \in \mathbb{R}^{3}, \boldsymbol{R}_{B} \in \mathcal{S O}(3), respectively. The linear and angular velocities of frame F A F A F_(A)\mathcal{F}_{A} and F B F B F_(B)\mathcal{F}_{B} relative to the world frame W W W\mathcal{W} are given by χ A R 3 , ω A R 3 χ A R 3 , ω A R 3 chi_(A)inR^(3),omega_(A)inR^(3)\chi_{A} \in \mathbb{R}^{3}, \omega_{A} \in \mathbb{R}^{3} and χ B R 3 χ B R 3 chi_(B)inR^(3)\chi_{B} \in \mathbb{R}^{3}, ω B R 3 ω B R 3 omega_(B)inR^(3)\omega_{B} \in \mathbb{R}^{3}. Both can be stacked into the six-dimensional Cartesian velocities
本节简要介绍了刚体变换,稍后将用于讨论所谓的扳手分布问题(见第 3.3 节)。让我们考虑六维笛卡尔空间中与刚体相连的两个任意框架 F A F A F_(A)\mathcal{F}_{A} F B F B F_(B)\mathcal{F}_{B} (见图 3.1)。两个框架相对于共同世界框架 W W W\mathcal{W} 的位置和方向分别用 x A R 3 , R A S O ( 3 ) x A R 3 , R A S O ( 3 ) x_(A)inR^(3),R_(A)inSO(3)\boldsymbol{x}_{A} \in \mathbb{R}^{3}, \boldsymbol{R}_{A} \in \mathcal{S O}(3) x B R 3 , R B S O ( 3 ) x B R 3 , R B S O ( 3 ) x_(B)inR^(3),R_(B)inSO(3)\boldsymbol{x}_{B} \in \mathbb{R}^{3}, \boldsymbol{R}_{B} \in \mathcal{S O}(3) 表示。帧 F A F A F_(A)\mathcal{F}_{A} F B F B F_(B)\mathcal{F}_{B} 相对于世界帧 W W W\mathcal{W} 的线速度和角速度分别用 χ A R 3 , ω A R 3 χ A R 3 , ω A R 3 chi_(A)inR^(3),omega_(A)inR^(3)\chi_{A} \in \mathbb{R}^{3}, \omega_{A} \in \mathbb{R}^{3} χ B R 3 χ B R 3 chi_(B)inR^(3)\chi_{B} \in \mathbb{R}^{3} , ω B R 3 ω B R 3 omega_(B)inR^(3)\omega_{B} \in \mathbb{R}^{3} 表示。两者可以叠加成六维笛卡尔速度
v A = ( χ A ω A ) and v B = ( χ B ω B ) . v A = ( χ A ω A )  and  v B = ( χ B ω B ) . v_(A)=((chi_(A))/(omega_(A)))quad" and "quadv_(B)=((chi_(B))/(omega_(B))).\boldsymbol{v}_{A}=\binom{\chi_{A}}{\omega_{A}} \quad \text { and } \quad \boldsymbol{v}_{B}=\binom{\chi_{B}}{\omega_{B}} .
The forces and torques acting on F A F A F_(A)\mathcal{F}_{A} and F B F B F_(B)\mathcal{F}_{B} are given by f A R 3 , τ A R 3 f A R 3 , τ A R 3 f_(A)inR^(3),tau_(A)inR^(3)\boldsymbol{f}_{A} \in \mathbb{R}^{3}, \boldsymbol{\tau}_{A} \in \mathbb{R}^{3} and f B R 3 , τ B R 3 f B R 3 , τ B R 3 f_(B)inR^(3),tau_(B)inR^(3)\boldsymbol{f}_{B} \in \mathbb{R}^{3}, \boldsymbol{\tau}_{B} \in \mathbb{R}^{3}, respectively. Analogously to the velocities, the forces and
作用在 F A F A F_(A)\mathcal{F}_{A} F B F B F_(B)\mathcal{F}_{B} 上的力和力矩分别由 f A R 3 , τ A R 3 f A R 3 , τ A R 3 f_(A)inR^(3),tau_(A)inR^(3)\boldsymbol{f}_{A} \in \mathbb{R}^{3}, \boldsymbol{\tau}_{A} \in \mathbb{R}^{3} f B R 3 , τ B R 3 f B R 3 , τ B R 3 f_(B)inR^(3),tau_(B)inR^(3)\boldsymbol{f}_{B} \in \mathbb{R}^{3}, \boldsymbol{\tau}_{B} \in \mathbb{R}^{3} 给出。与速度类似,作用在 F A F A F_(A)\mathcal{F}_{A} F B F B F_(B)\mathcal{F}_{B}上的力和力矩分别为
Fig. 3.1 Frames F A F A F_(A)\mathcal{F}_{A} and F B F B F_(B)\mathcal{F}_{B} located on a rigid body
图 3.1 位于刚体上的框架 F A F A F_(A)\mathcal{F}_{A} F B F B F_(B)\mathcal{F}_{B}


torques can be stacked into the wrenches
扭矩可叠加到扳手中
F A = ( f A τ A ) and F B = ( f B τ B ) . F A = ( f A τ A )  and  F B = ( f B τ B ) . F_(A)=((f_(A))/(tau_(A)))quad" and "quadF_(B)=((f_(B))/(tau_(B))).\boldsymbol{F}_{A}=\binom{\boldsymbol{f}_{A}}{\boldsymbol{\tau}_{A}} \quad \text { and } \quad \boldsymbol{F}_{B}=\binom{\boldsymbol{f}_{B}}{\boldsymbol{\tau}_{B}} .

3.1.1 Body Coordinates 3.1.1 机身坐标

If the translational and rotational velocities are expressed in body frame, which means with respect to the base vectors of F A F A F_(A)\mathcal{F}_{A} and F B F B F_(B)\mathcal{F}_{B}, then they can be computed via
如果平移速度和旋转速度以主体框架表示,也就是相对于 F A F A F_(A)\mathcal{F}_{A} F B F B F_(B)\mathcal{F}_{B} 的基向量,那么它们可以通过以下方式进行计算
A χ A = R A T ( W W x ˙ A ) , B χ B = R B T ( W W x ˙ B ) , S ( A ω A ) = R A T R ˙ A , S ( B ω B ) = R B T R ˙ B . A χ A = R A T W W x ˙ A , B χ B = R B T W W x ˙ B , S A ω A = R A T R ˙ A , S B ω B = R B T R ˙ B . {:[^(A)chi_(A)=R_(A)^(T)(^(W^(W))x^(˙)_(A))","quad^(B)chi_(B)=R_(B)^(T)(^(W^(W))x^(˙)_(B))","],[S(^(A)omega_(A))=R_(A)^(T)R^(˙)_(A)","quad S(^(B)omega_(B))=R_(B)^(T)R^(˙)_(B).]:}\begin{aligned} & { }^{A} \boldsymbol{\chi}_{A}=\boldsymbol{R}_{A}^{T}\left({ }^{W^{W}} \dot{\boldsymbol{x}}_{A}\right), \quad{ }^{B} \boldsymbol{\chi}_{B}=\boldsymbol{R}_{B}^{T}\left({ }^{W^{W}} \dot{\boldsymbol{x}}_{B}\right), \\ & \boldsymbol{S}\left({ }^{A} \boldsymbol{\omega}_{A}\right)=\boldsymbol{R}_{A}^{T} \dot{\boldsymbol{R}}_{A}, \quad \boldsymbol{S}\left({ }^{B} \boldsymbol{\omega}_{B}\right)=\boldsymbol{R}_{B}^{T} \dot{\boldsymbol{R}}_{B} . \end{aligned}
Here, the operator S ( ) S ( ) S(∙)\boldsymbol{S}(\bullet) denotes the cross product matrix according to Definition 3.1.
这里,运算符 S ( ) S ( ) S(∙)\boldsymbol{S}(\bullet) 表示定义 3.1 中的交叉积矩阵。
Definition 3.1 (Cross product matrix S ( λ ) S ( λ ) S(lambda)\boldsymbol{S}(\boldsymbol{\lambda}) ) Let λ = ( λ x T λ y T λ z T ) T λ = λ x T λ y T λ z T T lambda=(lambda_(x)^(T)lambda_(y)^(T)lambda_(z)^(T))^(T)\boldsymbol{\lambda}=\left(\lambda_{x}^{T} \lambda_{y}^{T} \lambda_{z}^{T}\right)^{T} be an arbitrary vector in R 3 R 3 R^(3)\mathbb{R}^{3}. The cross product matrix S ( λ ) R 3 × 3 S ( λ ) R 3 × 3 S(lambda)inR^(3xx3)S(\lambda) \in \mathbb{R}^{3 \times 3} is defined as
定义 3.1(交叉积矩阵 S ( λ ) S ( λ ) S(lambda)\boldsymbol{S}(\boldsymbol{\lambda}) )设 λ = ( λ x T λ y T λ z T ) T λ = λ x T λ y T λ z T T lambda=(lambda_(x)^(T)lambda_(y)^(T)lambda_(z)^(T))^(T)\boldsymbol{\lambda}=\left(\lambda_{x}^{T} \lambda_{y}^{T} \lambda_{z}^{T}\right)^{T} R 3 R 3 R^(3)\mathbb{R}^{3} 中的任意向量。交叉积矩阵 S ( λ ) R 3 × 3 S ( λ ) R 3 × 3 S(lambda)inR^(3xx3)S(\lambda) \in \mathbb{R}^{3 \times 3} 的定义为
S ( λ ) = [ 0 λ z λ y λ z 0 λ x λ y λ x 0 ] S ( λ ) = 0 λ z λ y λ z 0 λ x λ y λ x 0 S(lambda)=[[0,-lambda_(z),lambda_(y)],[lambda_(z),0,-lambda_(x)],[-lambda_(y),lambda_(x),0]]\boldsymbol{S}(\boldsymbol{\lambda})=\left[\begin{array}{ccc} 0 & -\lambda_{z} & \lambda_{y} \\ \lambda_{z} & 0 & -\lambda_{x} \\ -\lambda_{y} & \lambda_{x} & 0 \end{array}\right]
Note that the cross product matrix S ( λ ) S ( λ ) S(lambda)\boldsymbol{S}(\boldsymbol{\lambda}) is skew-symmetric, that is S ( λ ) = S ( λ ) T S ( λ ) = S ( λ ) T S(lambda)=-S(lambda)^(T)\boldsymbol{S}(\boldsymbol{\lambda})=-\boldsymbol{S}(\boldsymbol{\lambda})^{T} and S ( λ ) = S ( λ ) T S ( λ ) = S ( λ ) T S(-lambda)=S(lambda)^(T)\boldsymbol{S}(-\lambda)=\boldsymbol{S}(\lambda)^{T} hold.
请注意,交叉积矩阵 S ( λ ) S ( λ ) S(lambda)\boldsymbol{S}(\boldsymbol{\lambda}) 是倾斜对称的,即 S ( λ ) = S ( λ ) T S ( λ ) = S ( λ ) T S(lambda)=-S(lambda)^(T)\boldsymbol{S}(\boldsymbol{\lambda})=-\boldsymbol{S}(\boldsymbol{\lambda})^{T} S ( λ ) = S ( λ ) T S ( λ ) = S ( λ ) T S(-lambda)=S(lambda)^(T)\boldsymbol{S}(-\lambda)=\boldsymbol{S}(\lambda)^{T} 成立。
The velocities of frame F A F A F_(A)\mathcal{F}_{A} can be mapped to frame F B F B F_(B)\mathcal{F}_{B} via
F A F A F_(A)\mathcal{F}_{A} 的速度可通过以下方式映射到帧 F B F B F_(B)\mathcal{F}_{B}
( A χ A A ω A ) A v A = A d ( R A B , A x A B ) ( B χ A B ω A ) B v B ( A χ A A ω A ) A v A = A d R A B , A x A B ( B χ A B ω A ) B v B ubrace(((^(A)chi_(A))/(^(A)omega_(A)))ubrace)_(^(A)v_(A))=Ad(R_(AB),^(A)x_(AB))ubrace(((^(B)chi_(A))/(^(B)omega_(A)))ubrace)_(^(B)v_(B))\underbrace{\binom{{ }^{A} \boldsymbol{\chi}_{A}}{{ }^{A} \boldsymbol{\omega}_{A}}}_{{ }^{A} \boldsymbol{v}_{A}}=\boldsymbol{A d}\left(\boldsymbol{R}_{A B},{ }^{A} \boldsymbol{x}_{A B}\right) \underbrace{\binom{{ }^{B} \boldsymbol{\chi}_{A}}{{ }^{B} \boldsymbol{\omega}_{A}}}_{{ }^{B} \boldsymbol{v}_{B}}
with A d ( , ) A d ( , ) Ad(∙,***)\boldsymbol{A d}(\bullet, \star) denoting the adjoint matrix according to Definition 3.2. The matrix R A B = R A T R B R A B = R A T R B R_(AB)=R_(A)^(T)R_(B)\boldsymbol{R}_{A B}=\boldsymbol{R}_{A}^{T} \boldsymbol{R}_{B} and the vector A x A B = R A T ( W x B W x A ) A x A B = R A T W x B W x A ^(A)x_(AB)=R_(A)^(T)(^(W)x_(B)-^(W)x_(A)){ }^{A} \boldsymbol{x}_{A B}=\boldsymbol{R}_{A}^{T}\left({ }^{\mathcal{W}} \boldsymbol{x}_{B}-{ }^{\boldsymbol{W}} \boldsymbol{x}_{A}\right) describe the orientation and position of F B F B F_(B)\mathcal{F}_{B} relative to F A F A F_(A)\mathcal{F}_{A}, expressed using the base vectors of F A F A F_(A)\mathcal{F}_{A}.
根据定义 3.2, A d ( , ) A d ( , ) Ad(∙,***)\boldsymbol{A d}(\bullet, \star) 表示邻接矩阵。矩阵 R A B = R A T R B R A B = R A T R B R_(AB)=R_(A)^(T)R_(B)\boldsymbol{R}_{A B}=\boldsymbol{R}_{A}^{T} \boldsymbol{R}_{B} 和向量 A x A B = R A T ( W x B W x A ) A x A B = R A T W x B W x A ^(A)x_(AB)=R_(A)^(T)(^(W)x_(B)-^(W)x_(A)){ }^{A} \boldsymbol{x}_{A B}=\boldsymbol{R}_{A}^{T}\left({ }^{\mathcal{W}} \boldsymbol{x}_{B}-{ }^{\boldsymbol{W}} \boldsymbol{x}_{A}\right) 描述了 F B F B F_(B)\mathcal{F}_{B} 相对于 F A F A F_(A)\mathcal{F}_{A} 的方向和位置,使用基向量 F A F A F_(A)\mathcal{F}_{A} 表示。
Definition 3.2 (Adjoint matrix A d ( R , x ) A d ( R , x ) Ad(R,x)\boldsymbol{A d}(\boldsymbol{R}, \boldsymbol{x}) ) Let R S O ( 3 ) R S O ( 3 ) R inSO(3)\boldsymbol{R} \in \mathcal{S O}(3) and x R 3 x R 3 x inR^(3)\boldsymbol{x} \in \mathbb{R}^{3} be an arbitrary rotation matrix and an arbitrary position vector. Then, the adjoint matrix is defined as
定义 3.2(邻接矩阵 A d ( R , x ) A d ( R , x ) Ad(R,x)\boldsymbol{A d}(\boldsymbol{R}, \boldsymbol{x}) )假设 R S O ( 3 ) R S O ( 3 ) R inSO(3)\boldsymbol{R} \in \mathcal{S O}(3) x R 3 x R 3 x inR^(3)\boldsymbol{x} \in \mathbb{R}^{3} 是任意旋转矩阵和任意位置矢量。那么,邻接矩阵的定义为
A d ( R , x ) = [ R S ( x ) R 0 R ] A d ( R , x ) = R S ( x ) R 0 R Ad(R,x)=[[R,S(x)R],[0,R]]A d(R, x)=\left[\begin{array}{cc} R & S(x) R \\ 0 & R \end{array}\right]
based on the cross product matrix S ( ) S ( ) S(∙)\boldsymbol{S}(\bullet) according to Definition 3.1. The inverse is given by A d ( R , x ) 1 = A d ( R T , R T x ) A d ( R , x ) 1 = A d R T , R T x Ad(R,x)^(-1)=Ad(R^(T),-R^(T)x)\boldsymbol{A d}(\boldsymbol{R}, \boldsymbol{x})^{-1}=\boldsymbol{A d}\left(\boldsymbol{R}^{T},-\boldsymbol{R}^{T} \boldsymbol{x}\right).
根据定义 3.1,以交叉积矩阵 S ( ) S ( ) S(∙)\boldsymbol{S}(\bullet) 为基础。逆矩阵由 A d ( R , x ) 1 = A d ( R T , R T x ) A d ( R , x ) 1 = A d R T , R T x Ad(R,x)^(-1)=Ad(R^(T),-R^(T)x)\boldsymbol{A d}(\boldsymbol{R}, \boldsymbol{x})^{-1}=\boldsymbol{A d}\left(\boldsymbol{R}^{T},-\boldsymbol{R}^{T} \boldsymbol{x}\right) 给出。
The transpose of the adjoint matrix can be used to map forces and torques from frame F A F A F_(A)\mathcal{F}_{A} to frame F B F B F_(B)\mathcal{F}_{B} via
可以通过邻接矩阵的转置将力和力矩从框架 F A F A F_(A)\mathcal{F}_{A} 映射到框架 F B F B F_(B)\mathcal{F}_{B} 中。
( B f B τ τ B ) B F B = A d ( R A B , A x A B ) T ( A f A A τ A ) T F A ( B f B τ τ B ) B F B = A d R A B , A x A B T ( A f A A τ A ) T F A ubrace(((^(B)f_(B))/(^(tau)tau_(B)))ubrace)_(^(B)F_(B))=Ad(R_(AB),^(A)x_(AB))^(T)ubrace(((^(A)f_(A))/(^(A)tau_(A)))ubrace)_(^(T)F_(A))\underbrace{\binom{{ }^{B} \boldsymbol{f}_{B}}{{ }^{\boldsymbol{\tau}} \boldsymbol{\tau}_{B}}}_{{ }^{B} \boldsymbol{F}_{B}}=\boldsymbol{A d}\left(\boldsymbol{R}_{A B},{ }^{A} \boldsymbol{x}_{A B}\right)^{T} \underbrace{\binom{{ }^{A} \boldsymbol{f}_{A}}{{ }^{A} \boldsymbol{\tau}_{A}}}_{{ }^{T} \boldsymbol{F}_{A}}
Note that the wrenches are expressed in F A F A F_(A)\mathcal{F}_{A} and F B F B F_(B)\mathcal{F}_{B}, respectively.
请注意,扳手分别用 F A F A F_(A)\mathcal{F}_{A} F B F B F_(B)\mathcal{F}_{B} 表示。

3.1.2 World Coordinates 3.1.2 世界坐标

If the translational and rotational velocities are expressed in world coordinates W W W\mathcal{W}, then they can be computed via
如果平移速度和旋转速度用世界坐标 W W W\mathcal{W} 表示,那么它们可以通过以下方法计算得出
w χ A = w x ˙ A , w χ B = w x ˙ B , S ( W ω A ) = R ˙ A R A T , S ( W ω B ) = R ˙ B R B T . w χ A = w x ˙ A , w χ B = w x ˙ B , S W ω A = R ˙ A R A T , S W ω B = R ˙ B R B T . {:[^(w)chi_(A)=^(w)x^(˙)_(A)","quad^(w)chi_(B)=^(w)x^(˙)_(B)","],[S(^(W)omega_(A))=R^(˙)_(A)R_(A)^(T)","quad S(^(W)omega_(B))=R^(˙)_(B)R_(B)^(T).]:}\begin{aligned} & { }^{w} \chi_{A}={ }^{w} \dot{\boldsymbol{x}}_{A}, \quad{ }^{w} \chi_{B}={ }^{w} \dot{\boldsymbol{x}}_{B}, \\ & \boldsymbol{S}\left({ }^{\boldsymbol{W}} \boldsymbol{\omega}_{A}\right)=\dot{\boldsymbol{R}}_{A} \boldsymbol{R}_{A}^{T}, \quad \boldsymbol{S}\left({ }^{\mathcal{W}} \boldsymbol{\omega}_{B}\right)=\dot{\boldsymbol{R}}_{B} \boldsymbol{R}_{B}^{T} . \end{aligned}
The velocities of frame F A F A F_(A)\mathcal{F}_{A} can be mapped to frame F B F B F_(B)\mathcal{F}_{B} via
F A F A F_(A)\mathcal{F}_{A} 的速度可通过以下方式映射到帧 F B F B F_(B)\mathcal{F}_{B}
As the velocities are all in world coordinates, they do not need to be rotated. Consequently, the mapping can be considered a special case of the adjoint matrix with the
由于速度都是世界坐标,因此无需旋转。因此,该映射可视为邻接矩阵的特例,其

also given in world coordinates.
也以世界坐标表示。
The transpose of the adjoint matrix can again be used to map forces and torques from frame F A F A F_(A)\mathcal{F}_{A} to frame F B F B F_(B)\mathcal{F}_{B} via
通过邻接矩阵的转置,可以再次将力和力矩从框架 F A F A F_(A)\mathcal{F}_{A} 映射到框架 F B F B F_(B)\mathcal{F}_{B} 中。
Note that the forces and torques are all expressed in world frame W W W\mathcal{W}.
请注意,力和力矩均以世界帧 W W W\mathcal{W} 表示。

For simplicity of notation, all position, velocity, force, and torque vectors will be expressed in world coordinates, that is with respect to the base vectors of the world fame W W W\mathcal{W}, unless otherwise mentioned. The superscript W W ^(W)∙{ }^{\mathcal{W}} \bullet will be dropped.
为简化符号,除非另有说明,所有位置、速度、力和力矩矢量都将以世界坐标表示,即相对于世界名 W W W\mathcal{W} 的基矢量。上标 W W ^(W)∙{ }^{\mathcal{W}} \bullet 将被去掉。

3.2 Robot Dynamics 3.2 机器人动力学

Humanoid robots resemble the shape and appearance of a human, which usually leads to a design featuring a torso, arms, legs, and a head. The robot can use the limbs to support itself with respect to the environment but also to interact with it, e.g. for manipulating an object. From a mathematical point of view, a humanoid robot consists of a group of rigid bodies, which are linked to each other via joints. In order to be able to formulate the equations of motion, one of the bodies needs to be selected as the root or base of the kinematic chain. In the literature, there are two basic descriptions featuring either a fixed or a floating base. In the case of a fixed base, one of the bodies that is in contact with the environment to support the robot is defined as the root or base of the kinematic chain. Although it is easier to use a fixedbase model for motion planing (Werner et al. 2012), this has the disadvantage that the body serving as base is not allowed to move with respect to the environment. The latter makes it difficult to use the model for locomotion, which requires a repetitive attaching and detaching of the limbs. For this particular reason, models featuring a floating base are more common in literature (see e.g. Righetti et al. 2013; Sentis 2010; Herzog et al. 2016). Here, a central body of the humanoid robot, such as the hip or the torso, is selected as the root of the kinematic chains representing the limbs. This section introduces several floating-base models, which will be used in Chaps. 6, 7 , and 8 to derive the discussed concepts for balance control.
仿人机器人的形状和外观与人类相似,因此其设计通常具有躯干、手臂、腿部和头部。机器人可以利用肢体支撑自己,但也可以与环境互动,例如操纵物体。从数学角度来看,仿人机器人由一组刚体组成,这些刚体通过关节相互连接。为了能够制定运动方程,需要选择其中一个机构作为运动链的根或基。文献中有两种基本描述,一种是固定基座,另一种是浮动基座。在固定基座的情况下,与环境接触以支撑机器人的其中一个体被定义为运动学链的根或基。虽然使用固定基座模型更容易进行运动规划(Werner 等人,2012 年),但其缺点是不允许作为基座的机体相对于环境移动。后者使模型难以用于运动,因为运动需要四肢的重复连接和分离。基于这一特殊原因,浮动底座的模型在文献中更为常见(参见 Righetti 等人,2013 年;Sentis,2010 年;Herzog 等人,2016 年)。在这里,仿人机器人的中心体(如臀部或躯干)被选为代表四肢的运动学链的根。本节将介绍几种浮基模型,这些模型将在第 6、7 和 8 章中使用。这些模型将在第 6、7 和 8 章中用于推导所讨论的平衡控制概念。

3.2.1 Floating Base Dynamics
3.2.1 浮动基地动态

Considering the humanoid robot TORO (see Chap. 5), the body representing the hip is selected as the base of the kinematic chain. The state of the floating base is described by the position x b R 3 x b R 3 x_(b)inR^(3)x_{b} \in \mathbb{R}^{3} and orientation R b S O ( 3 ) R b S O ( 3 ) R_(b)inSO(3)\boldsymbol{R}_{b} \in \mathcal{S O}(3) of the base frame B B B\mathcal{B} relative to the world frame W W W\mathcal{W} (see Fig.3.2). The corresponding linear and angular velocities x ˙ b R 3 x ˙ b R 3 x^(˙)_(b)inR^(3)\dot{\boldsymbol{x}}_{b} \in \mathbb{R}^{3} and ω b R 3 ω b R 3 omega_(b)inR^(3)\boldsymbol{\omega}_{b} \in \mathbb{R}^{3} are stacked into the vector v c = ( x ˙ b T ω b T ) T v c = x ˙ b T ω b T T v_(c)=(x^(˙)_(b)^(T)omega_(b)^(T))^(T)\boldsymbol{v}_{\mathrm{c}}=\left(\dot{\boldsymbol{x}}_{b}^{T} \boldsymbol{\omega}_{b}^{T}\right)^{T}. Note that x b , x ˙ b x b , x ˙ b x_(b),x^(˙)_(b)\boldsymbol{x}_{b}, \dot{\boldsymbol{x}}_{b}, and ω b ω b omega_(b)\boldsymbol{\omega}_{b} are expressed in world coordinates. Based on the n N n N n inNn \in \mathbb{N} joint angles q R n q R n q inR^(n)\boldsymbol{q} \in \mathbb{R}^{n}, the dynamics of the humanoid robot is given by
考虑到仿人机器人 TORO(见第 5 章),选择代表髋关节的身体作为运动学链的基座。浮动基座的状态由基座帧 B B B\mathcal{B} 相对于世界帧 W W W\mathcal{W} 的位置 x b R 3 x b R 3 x_(b)inR^(3)x_{b} \in \mathbb{R}^{3} 和方向 R b S O ( 3 ) R b S O ( 3 ) R_(b)inSO(3)\boldsymbol{R}_{b} \in \mathcal{S O}(3) 描述(见图 3.2)。相应的线速度和角速度 x ˙ b R 3 x ˙ b R 3 x^(˙)_(b)inR^(3)\dot{\boldsymbol{x}}_{b} \in \mathbb{R}^{3} ω b R 3 ω b R 3 omega_(b)inR^(3)\boldsymbol{\omega}_{b} \in \mathbb{R}^{3} 被叠加到矢量 v c = ( x ˙ b T ω b T ) T v c = x ˙ b T ω b T T v_(c)=(x^(˙)_(b)^(T)omega_(b)^(T))^(T)\boldsymbol{v}_{\mathrm{c}}=\left(\dot{\boldsymbol{x}}_{b}^{T} \boldsymbol{\omega}_{b}^{T}\right)^{T} 中。请注意, x b , x ˙ b x b , x ˙ b x_(b),x^(˙)_(b)\boldsymbol{x}_{b}, \dot{\boldsymbol{x}}_{b} ω b ω b omega_(b)\boldsymbol{\omega}_{b} 是以世界坐标表示的。根据 n N n N n inNn \in \mathbb{N} 关节角度 q R n q R n q inR^(n)\boldsymbol{q} \in \mathbb{R}^{n} ,仿人机器人的动力学方程为

Fig. 3.2 Floating base model of a humanoid robot
图 3.2 仿人机器人的浮动底座模型
M ( v b q ¨ ) + C ( v b q ˙ ) + g = ( 0 τ ) + τ ext M ¯ ( v b q ¨ ) + C ¯ ( v b q ˙ ) + g ¯ = ( 0 τ ) + τ ¯ ext bar(M)((v_(b))/((q^(¨))))+ bar(C)((v_(b))/((q^(˙))))+ bar(g)=((0)/(tau))+ bar(tau)_(ext)\overline{\boldsymbol{M}}\binom{\boldsymbol{v}_{b}}{\ddot{\boldsymbol{q}}}+\overline{\boldsymbol{C}}\binom{\boldsymbol{v}_{b}}{\dot{\boldsymbol{q}}}+\overline{\boldsymbol{g}}=\binom{\mathbf{0}}{\boldsymbol{\tau}}+\overline{\boldsymbol{\tau}}_{\mathrm{ext}}
with M R ( 6 + n ) × ( 6 + n ) M ¯ R ( 6 + n ) × ( 6 + n ) bar(M)inR^((6+n)xx(6+n))\overline{\boldsymbol{M}} \in \mathbb{R}^{(6+n) \times(6+n)} denoting the inertia matrix and C R ( 6 + n ) × ( 6 + n ) C ¯ R ( 6 + n ) × ( 6 + n ) bar(C)inR^((6+n)xx(6+n))\overline{\boldsymbol{C}} \in \mathbb{R}^{(6+n) \times(6+n)} the Coriolis/centrifugal matrix. Note that M 2 C M ¯ 2 C ¯ bar(M)-2 bar(C)\overline{\boldsymbol{M}}-2 \overline{\boldsymbol{C}} is a skew-symmetric matrix (Ott 2008), which is strongly related to the passivity properties of the robot. The influence of gravity is represented by the vector g ¯ R 6 + n g ¯ R 6 + n bar(g)inR^(6+n)\bar{g} \in \mathbb{R}^{6+n}. The joint torques generated by the actuators are denoted by τ R n τ R n tau inR^(n)\boldsymbol{\tau} \in \mathbb{R}^{n}, while the generalized external forces are given by τ ext R 6 + n τ ¯ ext R 6 + n bar(tau)_(ext)inR^(6+n)\overline{\boldsymbol{\tau}}_{\mathrm{ext}} \in \mathbb{R}^{6+n}.
其中 M R ( 6 + n ) × ( 6 + n ) M ¯ R ( 6 + n ) × ( 6 + n ) bar(M)inR^((6+n)xx(6+n))\overline{\boldsymbol{M}} \in \mathbb{R}^{(6+n) \times(6+n)} 表示惯性矩阵, C R ( 6 + n ) × ( 6 + n ) C ¯ R ( 6 + n ) × ( 6 + n ) bar(C)inR^((6+n)xx(6+n))\overline{\boldsymbol{C}} \in \mathbb{R}^{(6+n) \times(6+n)} 表示科里奥利/离心矩阵。请注意, M 2 C M ¯ 2 C ¯ bar(M)-2 bar(C)\overline{\boldsymbol{M}}-2 \overline{\boldsymbol{C}} 是一个倾斜对称矩阵(Ott,2008 年),与机器人的被动特性密切相关。重力的影响由矢量 g ¯ R 6 + n g ¯ R 6 + n bar(g)inR^(6+n)\bar{g} \in \mathbb{R}^{6+n} 表示。致动器产生的关节扭矩用 τ R n τ R n tau inR^(n)\boldsymbol{\tau} \in \mathbb{R}^{n} 表示,而广义外力用 τ ext R 6 + n τ ¯ ext R 6 + n bar(tau)_(ext)inR^(6+n)\overline{\boldsymbol{\tau}}_{\mathrm{ext}} \in \mathbb{R}^{6+n} 表示。
Depending on the application, a legged humanoid robot has to fulfill several tasks simultaneously. An obvious task is to stabilize the CoM to maintain balance. Another two important tasks are to support itself or to interact with the environment. For these purposes, the robot features several task relevant points, which can be distributed all over the hull of the robot including feet, hands, knees, and elbows, for instance. Each of these points is characterized by a task frame T i T i T_(i)\mathcal{T}_{i} given by a position x i R 3 x i R 3 x_(i)inR^(3)\boldsymbol{x}_{i} \in \mathbb{R}^{3} and an orientation R i S O ( 3 ) R i S O ( 3 ) R_(i)inSO(3)\boldsymbol{R}_{i} \in \mathcal{S O}(3) with respect to the world frame W W W\mathcal{W}. The overall number of task frames is given by ψ N ψ N psi inN\psi \in \mathbb{N}. The corresponding translational and rotational velocities are given by x ˙ i R 3 x ˙ i R 3 x^(˙)_(i)inR^(3)\dot{\boldsymbol{x}}_{i} \in \mathbb{R}^{3} and ω i R 3 ω i R 3 omega_(i)inR^(3)\boldsymbol{\omega}_{i} \in \mathbb{R}^{3}, which can be stacked into v i = ( x ˙ i T ω i T ) T v i = x ˙ i T ω i T T v_(i)=(x^(˙)_(i)^(T)omega_(i)^(T))^(T)\boldsymbol{v}_{i}=\left(\dot{\boldsymbol{x}}_{i}^{T} \boldsymbol{\omega}_{i}^{T}\right)^{T}. The task wrench F i = ( f i T τ i T ) T F i = f i T τ i T T F_(i)=(f_(i)^(T)tau_(i)^(T))^(T)\boldsymbol{F}_{i}=\left(\boldsymbol{f}_{i}^{T} \boldsymbol{\tau}_{i}^{T}\right)^{T} combines the forces f i R 3 f i R 3 f_(i)inR^(3)\boldsymbol{f}_{i} \in \mathbb{R}^{3}
根据不同的应用,腿部仿人机器人必须同时完成多项任务。一项显而易见的任务是稳定 CoM 以保持平衡。另外两个重要任务是支撑自身或与环境互动。为了实现这些目的,机器人需要有几个与任务相关的点,这些点可以分布在机器人的全身,例如脚、手、膝盖和肘部。每个点都有一个任务帧 T i T i T_(i)\mathcal{T}_{i} ,该任务帧由相对于世界帧 W W W\mathcal{W} 的位置 x i R 3 x i R 3 x_(i)inR^(3)\boldsymbol{x}_{i} \in \mathbb{R}^{3} 和方向 R i S O ( 3 ) R i S O ( 3 ) R_(i)inSO(3)\boldsymbol{R}_{i} \in \mathcal{S O}(3) 确定。任务帧的总数由 ψ N ψ N psi inN\psi \in \mathbb{N} 给出。相应的平移速度和旋转速度由 x ˙ i R 3 x ˙ i R 3 x^(˙)_(i)inR^(3)\dot{\boldsymbol{x}}_{i} \in \mathbb{R}^{3} ω i R 3 ω i R 3 omega_(i)inR^(3)\boldsymbol{\omega}_{i} \in \mathbb{R}^{3} 给出,它们可以叠加到 v i = ( x ˙ i T ω i T ) T v i = x ˙ i T ω i T T v_(i)=(x^(˙)_(i)^(T)omega_(i)^(T))^(T)\boldsymbol{v}_{i}=\left(\dot{\boldsymbol{x}}_{i}^{T} \boldsymbol{\omega}_{i}^{T}\right)^{T} 中。任务扳手 F i = ( f i T τ i T ) T F i = f i T τ i T T F_(i)=(f_(i)^(T)tau_(i)^(T))^(T)\boldsymbol{F}_{i}=\left(\boldsymbol{f}_{i}^{T} \boldsymbol{\tau}_{i}^{T}\right)^{T} 将力 f i R 3 f i R 3 f_(i)inR^(3)\boldsymbol{f}_{i} \in \mathbb{R}^{3} 结合在一起