1. ZMP
1.1 二维分析:
着重看公式3.3,考虑对应于力矩为零时的那个作用点,即满足\(\tau(p_x) = 0\)的点\(p_x\)。
1.2 三维分析:
力矩为零的作用点:
点p就是压强中心,也即ZMP。
当机器人运动的时候,一般情况下,z方向的力矩等0并不成立。
所以在三维情况下,ZMP定义为:地面作用力的力矩水平分量为零的作用点
1.3 双足时的ZMP
两脚各自的ZMP位置通过上诉方式求的\(p_R\)和\(p_L\),地面作用力\(f_R\)和\(f_L\)从传感器读出。
ZMP的位置可求得:
2. ZMP动力学:
2.1 物理量:
- M:质量,单位为kg
- c:质心,\([x, y, z]^T\),单位为m
- P:动量,\([P_x, P_y, P_z]^T\),单位为N*s
- L:角动量,\([L_x, L_y, L_z]^T\),单位为Nms
2.2 动力学公式:
- \(\dot{c} = P / M\),描述了质心速度和动量的关系
- \(\dot{P} = f_{all}\),描述了动量怎么随外力变化
- \(\dot{L} = \tau_{all}\),描述了角动量的变化与合力矩之间的关系
作用在机器人上的总力矩:\(\tau_{all} = c \times Mg + \tau\)
当机器人静止时,力矩应该由重力来平衡,因为角动量的变化为零。如果地面产生的力矩不平衡,角动量将很快增加,这就是跌倒。
2.3 机器人质心的计算:
假设每个连杆相对于局部坐标系的质心\(\overline{c}_j\)已知,那么其在参考坐标系的位置为:
\[c_j = P_j + R_j \overline{c}_j \]
其中,P和R为第j个连杆(在参考坐标系中)的位置和姿态。
机器人的质心由各连杆绕参考坐标系原点的力矩之和除以总质量求得:
\[c = \sum^N_{j=1} m_j c_j / M \]
2.4 机器人动量的计算:
由N个连杆构成的机器人的总动量为:
\[P = \sum^N_{j=1} m_j \dot{c}_j \]
其中\(\dot{c}_j\)是第j个连杆质心的速度:
\[\dot{c}_j = v_j + w_j \times (R_j \overline{c}_j) \]
2.5 机器人角动量的计算:
由N个连杆构成的机器人的角动量为:
\[L = \sum^N_{j=1} L_j \]
其中\(L_j\)是第j个连杆绕原点的角动量:
\[L_j = c_j \times P_j + R_j \overline{I}_j R^T_j w_j \]
3.基于机器人运动的ZMP计算:
ZMP与质心在地面上的投影重合。
3.1 ZMP的近似计算:
-
多质点近似:
-
单质点近似:
ZMP:
4. 双足步行
4.1 二维倒立摆
动力学方程:
- \(r^2 \ddot{\theta}\):角动量变化引起的惯性力,代表质点在绕支点旋转时的角加速度惯性力
力矩=转动惯量 * 角加速度: \(\tau_{惯性} = I \ddot{\theta}\)
转动惯量I: \(I = M r^2\) - \(2r \dot{r} \dot{\theta}\):由于摆臂长度r的变化\(\dot{r}\)产生的科里奥利力力矩
- \(r \dot{\theta}^2\):离心力