P11
Zero-Moment Point (ZMP)
✅ 通过ZMP的控制实现比较稳定的走路。
全身受力分析与问题简化

✅ 角色受到重力和GRF力。
✅ GRF = 支持力(向上)+ 动摩擦力(有速度时才有)
✅ 简化:上半身受到的所有的力,都体现在 ankle 关节上。
✅ 通过对 ankle 施加力/力矩来实现全身移动。
P12
Recall: A System of Links and Joints

$$ M\dot{v} +C(x,v)=f+f_J $$
✅ 在满足这个公式的前提下,一个部分动了另一个部分就会跟着动。因此可以把问题简化,只分析ankle。
P15
脚上受力分析

✅ 仅分析脚上的力,\(f_{\text{ankle}}\) 为 ankle 上的力转化到脚上的力。

✅ 地面对脚的力不是施加到某一个点上,但可以根据公式换算成施加到某一点的力。
P17
Assuming the ground is flat and level
so \(p_i\) - \(p\) is always in the horizontal plane

✅ 把 \(\tau _{GRF} \) 分解为与地面垂直部分和与地面平行部分(力矩的方向是指它的旋转轴的方向。),其中垂直的部分为:

水平的部分为:

Can we find \(p\) such that \(\tau _{GRF}^{xz}=0\) ?
P21
Zero-Moment Point (ZMP)

当\(p\) 为 center pressure时:
$$ \begin{align*} f_{GRF} & =\sum _{i}^{} f_i \\ \tau _{GRF} & =\tau _{GRF}^y=\sum _{i}^{}(p_i-p)\times f_i^{xz} \end{align*} $$
The position of \(p\) is not known, but we assume 以上公式成立。
ZMP条件下支撑脚的受力分析
假设: 支撑脚 should not move in a stance phase,且支撑脚与地面完成接触
则:在所有力作用下处于静平衡状态。

Static Equilibrium:
静态平衡满足:所有合力为0
$$
f_{\text{ankle}} + f_{\text{GRF}} + mg = 0
$$
静态平衡满足:任选一个参考点,所有合力(力矩)相对于参考点的动量为0,否则会旋转。
The moment around a reference point \(o\):
$$ (u-o) \times f_{\text{ankle}} + (p-o) \times f_{\text{GRF}} + (x-o)\times mg + \tau _{GRF}^{y} + \tau _{\text{ankle}} = 0 $$
✅ \(o\) 是一个参考点,可以在任意位置
✅ U:ankle 位置。
✅ X:质心位置 ✅ P:位置未知,高度为 0.
同样只关心水平方向:
Horizontal components (moment projected onto \(xz\) plane):
$$ ((u-o) \times f_{\text{ankle}})^{xz} +( (p-o) \times f_{\text{GRF}} ) ^{xz}+ (x-o)\times mg + \tau _{\text{ankle}}^{xz} = 0 $$
✅ 总力矩为 0,否则人会旋转。
P28
求解 Zero-Moment Point (ZMP)
We can solve this equation to find \(p\)
\(p\) is called Zero-Moment Point (ZMP) because it makes
$$ \tau _{GRF}^{xz}=0 $$
and the horizontal moment
$$ ((u-o) \times f_{\text{ankle}})^{xz} +( (p-o) \times f_{\text{GRF}} ) ^{xz}+ (x-o)\times mg + \tau _{\text{ankle}}^{xz} = 0 $$
Only when 𝑝 is within the support polygon!
✅ \(p\) 满足(1)水平力矩为0. (2)人整体上平衡。
✅ \(u,O,X\) 都是已知,\(p\) 的高度为 0,只有 \(P_xP_y\) 未知且该公式分别在 \(X\) 和 \(Z\) 上成立,实际上是两个方程。
✅ 两个未知量和两个方程,可以解出 \(p\)。
P33
如果解出公式得到的\(p\) is outside the support polygon,那么:
\(p\) could NOT be the center of pressure, because all the GRFs
are applied within the polygon, so that
$$ \tau _{GRF}^{xz}\ne 0 $$
✅ 如果求出 \(p\) 在 polygon外 则不能平衡,因为不是 center pressure.
如果选择polygon上的real center of pressure\({p}' \) ,那么:
$$ ((u-o) \times f_{\text{ankle}})^{xz} +( ({p}'-o) \times f_{\text{GRF}} ) ^{xz}+ (x-o)\times mg + \tau _{\text{ankle}}^{xz} \ne 0 $$
✅ \({p}' \ne p\),\({p}'\) 处水平方向的合外力不为零,脚会翻转人会摔倒。
Simplified Models
P35
关于ZMP的思考
The existence of ZMP is an indication of dynamic balance We can achieve balanced walking by controlling ZMP But how?
P36
Simplified Models的基本套路
- Simplify humanoid / biped robot into an abstract model
- Often consists of a CoM and a massless mechanism
- Need to map the state of the robot to the abstract model
✅ 因此,把最影响平衡的量拿出来,建立简化模型。
✅ 实际上更加复杂,对上半身任何一个部位的干挠,都会影响到脚上的力。
-
Plan the control and movement of the model
- Optimization
- Dynamic programming
- Optimal control
- MPC
-
Track the planned motion of the abstract model
- Inverse Kinematics
- Inverse Dynamics

P37
Example: ZMP-Guided Control
🔎

✅ 把机器人简化为桌子和小车,通过控制小车m的运动来控制 ZMP。使 ZMP 满足预定义轨迹。

✅ 预定义轨迹的轨迹是指保持在pologon里面。通过优化得到 \(m\) 的运动。
✅ 然后通过IK和PD control控制脚的运动。
✅ ASIMO机器人局限性:(1) 脚必须与地面平行。 (2) 脚必须弯曲。 (3) 整体移动速度慢。
P40
Inverted Pendulum Model (IPM)
Walking == Falling + Step Planning
✅ 人的特点是重心偏离再拉回来,这样比始终保持平更省。
P42
IPM问题
✅ IPM: 倒立摆模型,控制小车使杆不掉下去。

Step Plan with IPM
🔎
P45
- Map CoM of the character and the stance foot as IPM
- Plan the position of the next foot step so that the mass point rests at the top of the pendulum
- Create foot trajectory based on the step plan
- Compute target poses using IK

✅ 脚到重心是一个倒立摆。
✅ 由于失去平衡,质心有一个向前的速度,通过到一个合适的落脚点,使质心到达脚的正上方刚好到达速度稳定。
✅ 算出脚的目标位置后,插值,IK,PD 控制。
P46

✅ 动能转势能,能量守恒.算出高度。
❗ 注意:杆的长度是不确定的,因为腿会弯曲。
P47
✅ 方法优点:可以适用于不同角色,不同动作,不同环境交互。
本文出自CaterpillarStudyGroup,转载请注明出处。
https://caterpillarstudygroup.github.io/GAMES105_mdbook/

