先回答一个问题:机器人到底往哪里走?
“速度是 2”并不完整:每秒两米还是两厘米?向北还是向下?本课只需要会四则运算。学习目标不是背符号,而是能把一个速度和一个力矩亲手算出来。
第一步:标量只要一个数,向量还需要方向
质量 m=20 kg 是标量。导航系 n 的三根正轴依次指北、东、下,简称 NED。位置写成
pn=2−13m.
p 表示位置,上标 n 不是乘方,而是“这些数字按导航轴记账”。这表示从选定原点向北两米、向西一米、向下三米。下标 x,y,z 表示第一、二、三分量;pxn=2 m。机体系 b 的正轴是前、右、下,简称 FRD。两种坐标系都是右手系,但“前”只有在机头朝北且水平时才等于“北”。
单位也是计算的一部分。速度 v 乘时间 t 才得到位移,不能把速度直接加到位置:
Δpn=vnΔt,1−0.50sm(2 s)=2−10m.
Δ 表示“变化量”,Δt 是经过的时间。只有单位相同、坐标系相同、物理含义相容的量才能逐分量相加。两个向量的加法就是三个普通加法。
第二步:长度不是把三个分量相加
向量 a=[ax,ay,az]T 中的 T 是转置,把横写的一行变成竖写的一列。长度由三维勾股定理给出:
∥a∥=ax2+ay2+az2.
双竖线表示长度,不是绝对值逐项相加。若位移 a=[3,4,0]T m,长度为 5 m。单位方向 d=a/∥a∥=[0.6,0.8,0]T 无量纲,长度为一;零向量不能这样除,因为它没有确定方向。
第三步:点乘把“沿某方向有多少”算成一个数
对同一坐标系中的向量 a,b,点乘定义为
aTb=axbx+ayby+azbz=∥a∥∥b∥cosγ.
γ 是两个非零向量的夹角。点乘结果是标量;垂直时为零,同向时为正。若力 F=[3,4,0]T N,前向单位轴 ex=[1,0,0]T,则 exTF=3 N。若位移 s=[2,0,0]T m,力恒定时做功 FTs=6 J,因为只有沿位移的力做功。这里 J=Nm 是焦耳。
第四步:矩阵只是同时执行几行“乘完再相加”
矩阵有行数和列数。A 是 2×3 矩阵、x 是 3×1 列向量时,内部的三相等,所以能相乘;结果为 2×1:
Ax=[102−103]214=[1(2)+2(1)+0(4)0(2)−1(1)+3(4)]=[411].
同一个物理速度换坐标时用 vn=Rbnvb。Rbn 是三行三列、无量纲的旋转矩阵,下标是来源,上标是目标。水平机体朝东时,机体前、右、下分别指向东、南、下,因此三列为
Rbn=010−100001,Rbn200=020.
这不是把机器人转了一次,而是把同一条每秒两米的前向速度换一种记法。旋转前后长度都为二。
第五步:叉乘输出一个向量,解释转动趋势
点乘回答投影,叉乘回答两方向张成平面的法向及有向面积。先直接按分量计算,不必从行列式记忆:
a×b=aybz−azbyazbx−axbzaxby−aybx=[a]×b,[a]×=0az−ay−az0axay−ax0.
[a]× 不是新物理量,只是把“与 a 叉乘”写成矩阵乘法。交换顺序会变号:b×a=−a×b。因此力矩必须是杆臂叉力,不能反过来。
在 FRD 中,推进器位于参考点前方 rb=[0.5,0,0]T m,向右施力 Fb=[0,4,0]T N:
Nb=rb×Fb=000.5(4)=002Nm.
Nb 是关于该参考点的力矩。正下轴力矩对应从上方看机头向右转。杆臂沿力的方向时,叉乘为零:推力可以很大,却不绕这个参考点产生力矩。
自检:先算再展开答案
- 00-V1(单位):速度 [0,0,0.3]T m/s 持续 2 s,NED 深度增加还是减少?位移多少?
- 00-V2(叉乘):rb=[0,0.2,0]T m、Fb=[5,0,0]T N,力矩是什么?
- 00-V3(矩阵):用上面的朝东旋转矩阵把 vb=[1,1,0]T m/s 变为导航速度,并核对长度。
展开逐步答案
00-V1:向下为正,Δpn=[0,0,0.6]T m,深度增加。00-V2:只有第三项非零,Nz=0(0)−0.2(5)=−1 Nm,所以 Nb=[0,0,−1]T Nm。00-V3:逐行乘得 vn=[−1,1,0]T m/s;前后长度均为 2 m/s。
下一步:变化率与一拍预测。应用入口:坐标与姿态、推进器几何。