刚体速度和静力
线矢量
线矢量的定义
静力与角速度的特性
由理论力学的知识可得
- 对于刚体上的静力
- 使用矢量 f=mn 表示静力, 其中 n 为静力的方向, m 为静力的幅值
- 静力除了有方向, 还施加在刚体的特定点 r, 并且在过该点的, 方向为 n 的直线上平移, 静力的效果始终不变
- 无论刚体的受力情况如何, 总能将刚体力系简化为一个过点 A 的合力 (除了 f∥τ 的力螺旋)
此时将合力从施加点 A 移动到 B, 还需要附加一个 τ=rBA×f 的力矩才能使刚体具有等价的受力效果 - 与静力不同, 力矩虽然也有方向和大小, 但没有位置
- 对于刚体上的角速度
- 使用矢量 ω=θ˙n 表示角速度, 其中 n 为转轴的方向, θ˙ 为角速度的幅值
- 除了转轴的方向, 刚体旋转所绕的转轴可能过刚体的特定点 r, 又由于转轴可以是一条无线长的直线, 因此实际上角速度可位于这条过该点, 方向为 n 的直线上的任意位置, 旋转效果始终不变
- 无论刚体各点的瞬时速度如何, 总能将刚体视为绕过点 A 的瞬时转轴 (类比速度瞬心) 旋转
此时将转轴从过点 A 移动为过点 B, 以速度转轴上的点速度始终为 0 的条件可得, 还应当附加一个 v=−ω×rBA=rBA×ω 的速度才能使刚体各点速度与移动前相同 - 与加速度不同, 速度虽然也有大小和方向, 但刚体上各点的平动速度显然是相等的 (否则不满足刚体条件), 因此位置没有意义
由上可知, 这两个量都有以下特点
- 具有方向与大小, 且位于特定直线上
- 复杂力系总能简化为一单个静力, 瞬时运动总能视为绕瞬时转轴旋转运动
- 以可平移, 但平移后将产生一个附加的, 具有方向与大小而没有位置的量
显然一般的矢量不足以表示静力与角速度, 现引入线矢量, 用于表示这类被约束在直线上的, 且方向与直线平行的矢量
线矢量表示的导出
已知线矢量过点 r, 且具有方向 n
由于线矢量在其所在的直线上可任意移动, 因此存在无数个点 ri
显然不适合直接用直线上的点表示
但是注意, 由于这些点在一条方向为 n 直线上
因此其之间满足关系 ri=r+kn
并且对于任何 ri, ri×n=r×n+k0
因此矢量 r×n 不随选取点而变化
因此可通过矢量 n 表明直线以及线矢量的方向
矢量 r×n 表明直线上的任意点 r 应当满足的条件
以此定义线矢量 L 为一个 L∈R6 的矢量, 满足 (该定义为 Plucker 坐标规定)
L=[nr×n]
规定线矢量满足两个约束条件
- 归一化条件: n=0, 称前三个坐标为方向矢量 n
- Plucker 关系: n⋅(r×n)=0, 称后三个坐标为线矩 r×n
该约束条件表明线矢量中, 方向适量 n 垂直于线矩 r×n
根据约束条件注意注意
- 线矢量仅表示直线的位置与方向, 但不包含幅值信息, 还需要乘上幅值以表示具体物理量的大小
- 线矢量过点 r 可以任取, 但线矩 r×n 对于同一个线矢量是唯一确定的, 应将其作为一个整体
力线矢量与速度线矢量
由静力与角速度的特性可知
- 对于大小为 m 的静力可以表示为力线矢量 F=mL=[mnTm(r×n)T]T, 其中
- 力线线矢量的上部分即具有大小与方向的力矢量 f=mn
- 力线线矢量的下部分则体现了将力移动到原点所附加的力矩 τ=r×f
- 使用力线矢量 F 即可表示出刚体的瞬时受力状态
- 对于大小为 θ˙ 的角速度可以表示为速度线矢量 V=θ˙Lr=[θ˙(r×n)Tθ˙nT]T, 其中
- 速度线矢量的上部分体现了将转轴移动到原点时所附加的平动速度 v=r×ω
反映了观察坐标系原点在该转动作用下的平动速度 - 速度线矢量的下部分即具有大小与方向的角速度矢量 ω=θ˙n
- 使用速度线矢量 V 即可表示出刚体的瞬时运动状态
线矢量的倒置
注意, 为了统一使代表平动的效果位于上方, 代表旋转的效果位于下方, 因此速度线矢量中的线矢量与原始定义颠倒
将这种交换上下矢量的运算称为倒置, 使用 Lr 表示, 满足
Lr=[r×nn]
不过注意, 一般线矢量要求 n=1, 一般线矢量经过倒置后为倒置线矢量, 而不满足一般线矢量的要求
线矢量的倒置积运算
与一般矢量不同, 线矢量的点乘没有意义
为了比较线矢量 L1 与 L2, 现定义线矢量的倒置积 (也称为 r-积或 reciprocal product) 满足
L1∘L2=L1⋅L2r=n2⋅(r1×n1)+n1⋅(r2×n2)
根据空间几何知识, 对于空间中两条直线, 其公垂线的长度 d, 其与倒置积之间满足 (其中 […] 表示计算体积的混合积)
dddsin⟨n1,n2⟩L1∘L2=n1×n2[n1n2(r1−r2)]=sin⟨n1,n2⟩[n1n2r1]−[n1n2r2]=[n2n1r1]−[n1n2r2]=−dsin⟨n1,n2⟩
因此倒置积具有性质
- 倒置积的结果具有含义 L1∘L2=−dsin⟨n1,n2⟩, 仅与参与运算的两个线矢量的几何关系有关
表明线矢量在任何坐标系下观察都具有不变性, 可以通过不同的坐标系描述 - 当 L1∘L2=0 表明两线矢量满足以下条件之一
- ⟨n1,n2⟩=0 两线矢量平行
- d=0 两线矢量相交
- ⟨n1,n2⟩,d=0 两线矢量重合
线矢量的坐标变换
与矢量相同, 在不同观察坐标系下, 线矢量的坐标值也将完全不同
因此与表示矢量表示线矢量时也必须在左上标中表示出观察坐标系
交叉积与姿态矩阵
有关交叉积的性质与符号可参考向量交叉积
在该笔记中, 记矢量 u 的交叉积矩阵为 [u] 满足
[u]=0uz−uy−uz0uxuy−ux0{u×v=[u]r(v×u)T=vT[u]=−([u]v)T
由交叉积的特性可得, 对于任意矢量 u,v 及其交叉积结果 u×v 之间保持着以右手螺旋方向垂直于 u,v 的关系
因此即使通过姿态矩阵 ABR 将矢量 Au,Av 所在的观察参考系转变为 Bu=ABRAu,Bv=ABRAv, 两向量交叉积结果依然保持原有关系有 Bu×Bv=ABR(Au×Av)
推广可得对于任意姿态矩阵 R (任意满足姿态矩阵要求的矩阵如旋转矩阵) 与矢量 u,v 有性质
(Ru)×(Rv)=R(u×v)
根据此性质可推导出以下两个推论
- [Ru](Rv)=R([u]v)
证明: 即以上性质使用叉乘矩阵的表示形式 - R[u]RT=[Ru]
证明: R[u]RTv=R[u×(RTv)]=(Ru)×v=[Ru]v
如果是任意矩阵 M 与交叉积矩阵 [u] 运算时, 相当于矩阵的各列 / 行分别与之叉乘
[u]M=[(u×m1)(u×m2)(u×m3)]
M[u]=(m1×u)T(m1×u)T(m1×u)T=−([u]M)T
线矢量的齐次坐标
除了 Plucker 坐标, 也可使用齐次坐标系表示线矢量
注意到 (自由矢量与方向矢量的内容见上一章)
- 矢量 Ar 表示了直线上的一个点, 因此是可以被平移的方向矢量, 因此齐次坐标系下有坐标 Ar=[Ar1]T
- 矢量 An 表示了直线的方向, 因此是不受平移影响的自由矢量, 因此齐次坐标系下有坐标 An=[An0]T
将二者并排即得到线矢量的齐次坐标表示为一个 4×2 的实矩阵, 使用字母 Lˉ 表示, 有形式
ALˉ=[An0Ar1]
有了齐次坐标, 就可以运用坐标系变换方法, 获取不同观察坐标系下, 线矢量的坐标
对于齐次矩阵 ABT 有
ABTALˉ=BLˉ=[Bn0Br1]
类似线矢量的齐次坐标下的线性变换, 在笛卡尔坐标系下坐标系变换后, 两个矢量分别经历运算
- ABRAn=Bn
- ABRAr+BpAo=Br
线矢量的伴随变换推导
既然齐次坐标系下的线矢量能完成坐标系变换, Plucker 坐标下的线矢量也存方法能通过左乘特定矩阵完成坐标系变换
定义这类矩阵为伴随矩阵, 实现的坐标系变换称为伴随变换
使用符号 AdF(BAT) 表示, 其中
- 下标 F 表明该伴随矩阵用于力线矢量, 即一般表示的线矢量 L, 对于速度线矢量为倒置表示 Lr, 则使用下标 V
- 括号内的齐次矩阵给出了坐标系的描述, 因此伴随变换完成的坐标系变换与给出的齐次矩阵相同
可得, 这类矩阵必然是 6×6 的实矩阵
现不直接讨论整个坐标系的变换, 而是从运动描述位姿, 以平移与旋转两个简单的情况分析
平移伴随变换
假设在观察坐标系 {B} 下, 观察坐标系经过平移 BpAo 得到坐标系 {A}
可得, 此时的姿态矩阵为 ABT=D(BpAo), 且其中 ABR=I, 有
BL=[IAn(IAr+BpAo)×IAn]=[AnAr×An+[BpAo]An]=AdF[D(BpAo)]AL
观察可得 AdF[D(BpAo)] 满足
AdF[D(BpAo)]=[I[BpAo]0I]
与平移算子的逆类似, 平移伴随矩阵 AdF[D(BpAo)] 有逆
AdF−1[D(BpAo)]=AdF[D(−BpAo)]=[I−[BpAo]0I]
旋转伴随变换
假设在观察坐标系 {B} 下, 观察坐标系经过旋转 ABR 得到坐标系 {A}
可得, 此时的姿态矩阵为 ABT=ABR, 且其中 BpAo=0, 有
BL=[ABRAn(ABRAr+0)×ABRAn]=[ABRAnABR(Ar×An)]=AdF(ABR)AL
观察可得 AdF(ABR) 满足
AdF(ABR)=[ABR00ABR]
与旋转算子的逆类似, 旋转伴随矩阵 AdF(ABR) 有逆
AdF−1(ABR)=AdF(ABRT)=[ABRT00ABRT]
一般情况下的伴随变换
由运动算子的一般形式可知, 任意齐次矩阵 ABT 总能分解为
ABT=D(BpAo)ABR
而伴随矩阵 AdF(ABT) 存在类似分解, 因此可得出其一般形式满足 (注意 [p] 与 R 相乘顺序)
AdF(ABT)=AdF[D(BpAo)]AdF(ABR)=[I[BpAo]0I][ABR00ABR]=[ABR[BpAo]ABR0ABR]
伴随矩阵的逆即逆变换则满足 (注意求逆法则以及 R 与 [p] 相乘顺序)
AdF−1(ABT)=AdF−1(ABR)AdF−1[D(BpAo)]=[ABRT00ABRT][I−[BpAo]0I]=[ABRT−ABRT[BpAo]0ABRT]=[ABRT([BpAo]ABR)T0ABRT]
可以发现
- 经伴随矩阵变换坐标系后的结果 Bn,Br×Bn 与线矢量的齐次坐标下的结果一致
- 将伴随矩阵的各个分块矩阵分别转置即可得到伴随矩阵的逆
且显然, 对于伴随矩阵的逆变换有性质
AdF−1(ABT)=AdF(ABT−1)=AdF(BAT)
速度线矢量的伴随变换
由于速度线矢量即一般线矢量的倒置, 因此将一般伴随矩阵按块转置即可得到速度线矢量的伴随矩阵
AdV(ABT)=AdV[D(BpAo)]AdV(ABR)=[I0[BpAo]I][ABR00ABR]=[ABR0[BpAo]ABRABR]
有逆变换
AdV−1(ABT)=AdV−1(ABR)AdV−1[D(BpAo)]=[ABRT00ABRT][I0−[BpAo]I]=[ABRT0([BpAo]ABR)TABRT]
微分运动
微分旋转算子
仅考虑刚体做纯转动, 而没有平动 (此处纯转动特指转轴过原点的转动)
假设刚体在极短的时间间隔 Δt 内以轴 k 旋转了微元角度 δθ
由绕任意轴旋转的旋转算子可得, 忽略高阶无穷小, 该旋转变换可表示为矩阵
其中 δ 表示了一个与 k 同向的, 长度为 δθ 的微元矢量, 满足 kδθ=δ, δ=kδθ=δθ→0
R(k,δθ)=1kzδθ−kyδθ−kzδθ1kxδθkyδθ−kxδθ1=1δz−δy−δz1δxδy−δx1
对于刚体在时刻 t 的姿态 R(t) 与时刻 t+Δt 的姿态 R(t+Δt) 间存在旋转运动 Rt (使用下标 t 表示进入下一姿态的旋转), 该旋转运动在观察坐标系 s 与运动坐标系 b 下分别满足 (显然, 描述的参考系不同, sRt=bRt)
R=sRtR(t)=R(t)bRt
而根据求导的定义, 姿态矩阵 R(t) 关于时间 t 的导数 R˙(t) 满足
R˙(t)=Δt→0limΔtΔR(t)=Δt→0limΔtR(t+Δt)−R(t)
因此两次旋转之间的姿态微元差满足
ΔR(t)=R(t+Δt)−R(t)={[sR(sk,δθ)−I]R(t)R(t)[bR(bk,δθ)−I]
注意, 根据绕任意轴旋转微小角度 δθ 的矩阵可得, 运算 Rt−I 的结果为一个交叉积矩阵, 满足
[δ]=0δz−δy−δz0δxδy−δx0
因此姿态微元差满足 ΔR(t)=[sδ]R(t)=R(t)[bδ]
称其中 [δ] 为微分旋转算子, 通过将姿态矩阵 R 乘以微分旋转算子, 相当于取出该姿态的微分量
[sδ] 与 [bδ] 分别表示观察坐标系与运动坐标系下的微分旋转算子, 二至并不相等
角速度矩阵
微元矢量 δ 代表了绕轴旋转的微小的角度, 而角速度矢量 ω 则代表了这个微小角度相对于时间间隔 Δt 的比值, 也即角速度本身
根据微元矢量 δ 与微元转动 δθ 的定义可得, 对于时间间隔 Δt 与角速度矢量 ω 满足
ω=Δtδ=Δtkδθ=kθ˙
因此姿态矩阵 R(t) 关于时间的导数 R˙(t) 满足
R˙(t)=ΔtR(t)={Δt[sδ]R(t)=[sω]R(t)ΔtR(t)[bδ]=R(t)[bω]
由此可得, 物体在不同坐标系观察下的角速度也是不同的
- 称 sω 为刚体的空间角速度, [sω] 则表示空间角速度矩阵
- 称 bω 为刚体的物体角速度, [bω] 则表示物体角速度矩阵
实际使用中, 若坐标系 {C} 固连在大地上, 坐标系 {B} 固连在刚体上, 则有
- 空间角速度满足 sω=CωB 以及求导 BCR˙=[CωB]BCR
- 物体角速度满足 bω= B′ωB 以及求导 BCR˙=BCR[ B′ωB] (部分情况也简记为 Bω)
- 需要进一步说明
- 角速度符号 CωB 表面该角速度是物体 B 的角速度, 观察坐标系为 {C}
- 物体角速度 B′ωB 应当理解为在时刻 t 下的刚体位姿 {Bt} 观察下, 刚体由位姿 {Bt}→{Bt+dt} 的运动角速度
- 由于 {B} 固连在刚体上, 因此直接求导只能得到 0
- 因此类似运动坐标系, 此时将假设坐标系 {Bt′} 固连在大地上, 并以此描述刚体进入下一个位姿的运动
根据二者与 R˙(t) 之间的关系可得 (其中步骤见交叉积与姿态矩阵的有关性质)
R(t)[bω][bω]bω=[sω]R(t)=RT(t)[sω]R(t)=RT(t)sω
使用坐标系 {C} 与 {B} 时可表示为 BωB(t)=BCRT(t)CωB(t)
纯转动的质点速度
对于刚体中的任意一个质点 N, 其在刚体中的坐标始终为常矢量 qN, 即 B0qN(0)=BtqN(t)=qN
在 t 时刻下, 根据运动算子与坐标变换的关联, T(t) 也描述了初始姿态 {B0} 观察下, t 时刻的刚体姿态, 有 T(t)=BtB0T
因此该点在初始姿态 {B0} 观察下的坐标则变为
B0qN(t)=BtB0TBtqN(t)=T(t)qN
该矢量根据时间求导即可得出点 N 在初始姿态 {B0} 观察下的速度 B0vN 满足
注意, 由于是纯转动, 此处将表示位姿的 T 视同仅表示姿态的 R 处理
B0vN(t)=dtdB0qN(t)=R˙(t)qN={[sω]R(t)qN=sω×B0qN(t)R(t)[bω]qN=BtB0R[bω×qN]
由此也引出了纯转动刚体上的质点的两种表示形式
- 称 B0vN(t)=svN(t)=sω×B0qN(t) 为质点 N 的空间速度
- 称 BtvN(t)=bvN(t)=bω×qN 为质点 N 的物体速度
微分运动算子
同时考虑刚体的转动与平动运动
假设刚体在极短的时间间隔 Δt 内以轴 k 旋转了微元角度 δθ, 并以方向 n 移动了微元距离 dp
其中 d 表示了一个与 n 同向的, 长度为 dp 的微元矢量, 满足 ndp=d, d=ndp=dp→0
根据运动算子的一般形式, 这 Δt 内的运动可以表示为变换矩阵
T=D(n,dp)R(k,δθ)=1δz−δy0−δz1δx0δy−δx10dxdydz1
根据微分旋转算子相同的思路可得到结论 (使用下标 t 表示 Tt 是进入下一姿态的运动)
ΔT(t)=T(t+Δt)−T(t)={[sTt−I]T(t)T(t)[bTt−I]
定义微分算子矩阵 Δ 满足
Δ=Tt−I=0δz−δy0−δz0δx0δy−δx00dxdydz0
通过将位姿矩阵 T 乘以微分算子矩阵 Δ, 相当于取出该位姿的微分量
sΔ 与 bΔ 分别表示观察坐标系与运动坐标系下的微分算子矩阵, 二至并不相等
注意到, 微元矢量 d 与 δ 的组合 D=[dTδT]T 能够得到一种类似于速度线矢量的形式
因此将矢量 D 称为微分运动矢量, 并规定该矢量与微分算子矩阵 Δ 之间存在关系 (注意, 以下运算虽然使用了交叉积矩阵的符号, 但并不是交叉积矩阵, 也不存在有关性质)
Δ=[D]=[[δ]0d0]Δ∨=D
同样, sD 与 bD 分别表示观察坐标系与运动坐标系下的微分运动矢量
速度线矢量与速度矩阵
以角速度矩阵类似的方式可得微分运动矢量与速度线矢量之间存在关系
D=ΔtV
位姿矩阵 T(t) 关于时间的导数 T˙(t) 满足
T˙(t)=ΔtT(t)={[sV]T(t)T(t)[bV]
由此可得, 物体在不同坐标系观察下的角速度也是不同的
- 称 sV 为刚体的空间速度线矢量, [sV] 则表示空间速度矩阵
- 称 bV 为刚体的物体速度线矢量, [bV] 则表示物体速度矩阵
实际使用中, 若坐标系 {C} 固连在大地上, 坐标系 {B} 固连在刚体上, 则有
- 空间速度线矢量满足 sV=CVB=[Crω×CωBCωB]T 以及求导 BCT˙=[CVB]BCT
- 物体速度线矢量满足 bV=BVB=[BvB0 B′ωB]T 以及求导 BCT˙=BCT[BVB]
- 需要进一步说明
- 与角速度矩阵类似, 其中 BvB0 为被视为绝对坐标系的 {Bt} 观察下 BtpB0→ Bt+dtpB0 的运动
因此 BCT−1(t)CvB0(t)=BvB0(t)=Bp˙B0=0 - 注意速度线矢量中的速度矢量 v=r×ω 是当前旋转运动在观察坐标系原点上产生的平动速度, 不是实际速度, 假设旋转轴上一点 N
- 对于物体速度线矢量 BVB, 有 Brω=BrB0N, 由于物体即绕该转轴旋转, B0 为物体上一点, 因此可以认为是参考系 {B} 原点的平动速度, 有 BvB0=Brω×BωB
- 对于空间速度线矢量 CVB, 有 Crω=CrC0N, 则空间线矢量的速度项满足 Crω×CωB
该速度与 {C} 观察下 {B} 的原点 B0 的速度满足关系 CvB0=(CrC0N−CrC0B0)×CωB
在实际使用 BCT˙=[CVB]BCT 时注意
对于空间坐标系 {C} 与物体坐标系 {B} 以及刚体上一点 M 在使用时有
CpMCvMCvMCvMCvMCvM=BCTBpM=BCT˙BpM=[CVB]BCTBpM=[[CωB]0Crω×CωB0][BCR0CpB01]BpM=[[CωB]BCR0Crω×CωB+ CωB×CpB00]BpM=[[CωB]BCR0CvB00]BpM=[CωB]BCRBpM+CvB0(笛卡尔坐标系)
根据二者与 T˙(t) 之间的关系可得 (其中使用了性质 T[V]T−1=[AdV(T)V], 此处不做证明)
T(t)[bV][bV]bV=[sV]T(t)=T(t)−1[sV]T(t)=AdV[T(t)−1]sV
类似纯转动的质点速度对于刚体上的质点速度满足
- 质点 N 的空间速度满足 B0vN(t)=svN(t)=[sV]B0qN(t)
- 质点 N 的物体速度 BtvN(t)=bvN(t)=[bV]qN