P2
Outline
-
Walking and Dynamic Balance
-
Simplified Models
- ZMP (Zero-Moment Point)
- Inverted Pendulum
- SIMBICON
✅ 不能直接控制角色位置,而是通过与地面的力和反作用力。
P3
Walking


🔎 Gait disorders in adults and the elderly.
phases of a walking gait cycle
Pirker and Katzenschlager 2017.
P4
Walking VS Running
| Walking | Running |
|---|---|
![]() Walking: move without loss of contact, or flight phases | ![]() |
P7
Walking的几个阶段
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
✅ 以上过程假设角色处于 static 状态。没有考虑到移动过程中的脚的动量。因此只能勉强保持角色稳定。要以非常慢的速度相前移动。
P11
Zero-Moment Point (ZMP)
✅ 通过ZMP的控制实现比较稳定的走路。
全身受力分析与问题简化

✅ 角色受到重力和GRF力。
✅ GRF = 支持力(向上)+ 动摩擦力(有速度时才有)
✅ 简化:上半身受到的所有的力,都体现在 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
✅ 方法优点:可以适用于不同角色,不同动作,不同环境交互。
P48
SIMBICON
🔎 SIMBICON (SIMple BIped Locomotion CONtrol) Yin et al. 2007

✅ 经典工作,第一个实现了鲁棒的步态控制。
✅ 原理:跟踪控制器上加一个反馈
P49
Step 1
- Step 1: develop a cyclical base motion
- PD controllers track target angles
- FSM (Finite State Machine) or mocap
✅ 本质上是一个跟踪控制器,用状态机来实现的跟踪控制器

✅ 有四个状态,通过跟踪在4个状态之间切换,也可以用动捕数据来代替
P50
Step 2
- Step 2:
- control torso and swing-hip wrt world frame

✅ 控制目标:上半身保持竖直。
✅ 控制方法:
通过保持上半身竖直,计算出\(\tau _{\text{torso}} \)。
通过使B跟踪目标动作,计算出\(\tau _{B} \)。
通过 \(\tau _{\text{torso}} \) 和 \(\tau _{B} \) 控制 \(\tau _{A} \).
P51
Step 3
- Step 3: COM feedback

✅ 估计下一个脚步的位置d,使质心处于可控范围内。
✅ \(d\) 与 \(D\) 有关,但关系复杂,在此处做了简化。
P52

✅ 简化问题:\(d\) 和 \(v\) 与 \(\theta _d\) 的速度是线性关系。速度会转化为 PD 目标的修正。
✅ 线性的系数为手调。
P53
SIMBICON

P54
Outline
- How to generalize to other motion?

本文出自CaterpillarStudyGroup,转载请注明出处。
https://caterpillarstudygroup.github.io/GAMES105_mdbook/









