3.1 旋转矩阵与齐次变换矩阵
旋转矩阵可以表示由旋转变换得到的坐标系,齐次变换矩阵可以表示旋转+平移运动得到的坐标系。
OP=xs⋅x^s+ys⋅y^s=xb⋅x^b+yb⋅y^b+OO′
引入齐次坐标,点的坐标末尾添加一个元素“1”,向量的坐标末尾添加一个元素“0”。
[OP0]=x^s0y^s0001⋅xsys1−001=[x^b0y^b0OO′1]⋅xbyb1−001
其中:x^s=[10],y^s=[01],x^b=[cosθsinθ],y^b=[−sinθcosθ],则有
xsys1=cosθsinθ0−sinθcosθ0OO′1⋅xbyb1=Tsb⋅xbyb1
即:
Tsb=[Rsb01×2OO′1]
为齐次变换矩阵。
在三维空间中则增加了一个维度,齐次变换矩阵也变为了 4x4 矩阵。
3.2 三维空间中机器人单腿的正向运动学
由三个关节的旋转角度求足部坐标。
3.2.1 坐标系
存在四个坐标系。
- 坐标系 {0}:与机身固定
- 坐标系 {1}:髋关节,绕其 x 轴转动
- 坐标系 {2}:大腿关节,绕其 y 轴转动,其 z 轴与大腿重合
- 坐标系 {3}:小腿关节,绕其 y 轴转动,其 z 轴与小腿重合
其中,坐标系 {0}、{1} 、 {2} 的原点 O0、O1、O2 重合。O2O3=0l1l2,其中 l1 大小为 labad。
-
由 {0} 到 {1}
只有旋转过程,因此
T01=[R0101×3O0O11]=10000cosθ1sinθ100−sinθ1cosθ100001
-
由 {1} 到 {2}
同理
T12=cosθ20−sinθ200100sinθ20cosθ200001
-
由 {2} 到 {3}
旋转同时考虑平移
T23=cosθ30−sinθ300100sinθ30cosθ300l1l21
其中
而 P 点在坐标系{3}的坐标:[p31]=00−lknee1
则可以求出其在坐标系 {0} 的坐标 p0:
[p01]=T01T12T23[p31]
xpypzp1=l3sin(θ2+θ3)+l2sinθ2−l3sinθ1cos(θ2+θ3)+l1cosθ1−l2cosθ2sinθ1l3cosθ1cos(θ2+θ3)+l1sinθ1+l2cosθ1cosθ21
3.3 三维空间中机器人单腿的逆向运动学
3.3.1 机身关节 θ1
只考虑机身关节平面内的旋转矩阵
[ypzp]=[cosθ1sinθ1−sinθ1cosθ1][l1−L]
展开后可以计算
{ypzp=l1cosθ1+Lsinθ1=l1sinθ1−Lcosθ1⇒⎩⎨⎧cosθ1yp=l1+Ltanθ1cosθ1zp=l1tanθ1−L
θ1=arctan(ypl1−zpLzpl1+ypL)
其中:L=yP2+zP2−l12
3.3.2 小腿关节 θ3
简单的平面几何求解
cos∠AO3P=2∣O3A∣∣O3P∣∣O3A∣2+∣O3P∣2−∣AP∣2
由于 θ3 是逆时针旋转,为负数,则
θ3=−∣θ3∣=−π+∠AO3P=−π+arccos(2∣O3A∣∣O3P∣∣O3A∣2+∣O3P∣2−∣AP∣2)
其中:∣AP∣=xP2+yP2+zP2−labad2
3.3.3 大腿关节 θ2
将 P 点坐标与前面求出来的 θ1 与 θ3 带入正向运动学的公式即可解出
tanθ2=a2m1−a1m2a1m1+a2m2
其中:⎩⎨⎧a1a2m1m2=ypsinθ1−zpcosθ1=xp=l3sinθ3=l3cosθ3+l2
3.4 雅可比矩阵
对 P 点在坐标系 {0} 中的坐标 p0 的三个值分别对时间求导,最后得到三个速度分量相对于角速度的系数矩阵,即雅可比矩阵。
x˙p=0⋅θ˙1+[l3cos(θ2+θ3)+l2cosθ2]⋅θ˙2+l3cos(θ2+θ3)⋅θ˙3=J11⋅θ˙1+J12⋅θ˙2+J13⋅θ˙3
y˙p=[−l1sinθ1−l2cosθ1cosθ2−l3cosθ1cos(θ2+θ3)]⋅θ1˙+[l2sinθ1sinθ2+l3sinθ1sin(θ2+θ3)]⋅θ2˙+l3sinθ1sin(θ2+θ3)⋅θ3˙=J21⋅θ˙1+J22⋅θ˙2+J23⋅θ˙3
z˙p=[l1cosθ1−l2sinθ1cosθ2−l3sinθ1cos(θ2+θ3)]⋅θ1˙+[−l2cosθ1sinθ2−l3cosθ1sin(θ2+θ3)]⋅θ2˙+[−l3cosθ1sin(θ2+θ3)⋅θ3˙]=J31⋅θ˙1+J32⋅θ˙2+J33⋅θ˙3
整理成矩阵相乘:
x˙py˙pz˙p=J11J21J31J12J22J32J13J23J33⋅θ˙1θ˙2θ˙3=J⋅θ˙1θ˙2θ˙3
也有
θ˙1θ˙2θ˙3=J−1⋅x˙py˙pz˙p
3.4.1 单腿静力学
假设机器人处于静止状态,整条腿的动能保持不变,即总功率为0。可以视为关节对腿做功功率 = 足端对地面做功功率
P关节对腿做功=P足端对地面做功
那么就有
[τ1τ2τ3]⋅θ˙1θ˙2θ˙3=[FxFyFz]⋅x˙py˙pz˙p
τT⋅θ˙1θ˙2θ˙3=FT⋅J⋅θ˙1θ˙2θ˙3
即有
τ=JT⋅F