移动机器人学(一) 运动学

刚体变换基础

  1. 齐次坐标:我们将每一个点的坐标增加额外的一个分量表示比例因子,通常规定其为1.
    r ~ = [ x w y w z w 1 ] \tilde{r} = \begin{matrix} [ \frac{x}{w} & \frac{y}{w} & \frac{z}{w} & 1] \end{matrix} r~=[wxwywz1]
  2. 齐次变换算子:
    将齐次向量绕 x/y/z 轴逆时针旋转 ϕ / θ / ψ \phi/\theta/\psi ϕ/θ/ψ 度得到同一坐标系下的新向量:
    R o t x ( ϕ ) = [ 1 0 0 0 0 c ϕ − s ϕ 0 0 s ϕ c ϕ 0 0 0 0 1 ] Rotx(\phi) = \left [ \begin{matrix} 1 & 0 & 0 & 0 \\ 0 & c\phi & -s\phi & 0 \\ 0 & s\phi & c\phi &0 \\ 0 & 0 & 0 &1 \end{matrix} \right ] Rotx(ϕ)= 10000cϕsϕ00sϕcϕ00001
    R o t y ( θ ) = [ c θ 0 s θ 0 0 1 0 0 − s θ 0 c θ 0 0 0 0 1 ] Roty(\theta) = \left [ \begin{matrix} c\theta & 0 & s\theta & 0 \\ 0 & 1 & 0 & 0 \\ -s\theta & 0 & c\theta &0 \\ 0 & 0 & 0 &1 \end{matrix} \right ] Roty(θ)= cθ0sθ00100sθ0cθ00001
    R o t z ( ψ ) = [ c ψ − s ψ 0 0 s ψ c ψ 0 0 0 0 1 0 0 0 0 1 ] Rotz(\psi) = \left [ \begin{matrix} c\psi & -s\psi & 0 & 0 \\ s\psi & c\psi & 0 & 0 \\ 0 & 0 & 1 &0 \\ 0 & 0 & 0 &1 \end{matrix} \right ] Rotz(ψ)= cψsψ00sψcψ0000100001
    将向量平移 ( u , v , w ) (u,v,w) (u,v,w) 得到新向量:
    T r a n s ( u , v , w ) = [ 1 0 0 u 0 1 0 v 0 0 1 w 0 0 0 1 ] Trans(u,v,w) = \left [ \begin{matrix} 1 & 0 & 0 & u \\ 0 & 1 & 0 & v \\ 0 & 0 & 1 & w \\ 0 & 0 & 0 &1 \end{matrix} \right ] Trans(u,v,w)= 100001000010uvw1
    算子具有坐标轴固定的内涵:初始点和结果都是在原始坐标系中表示。
  3. 我们主要关注齐次变换用于坐标变换,具体为确定任意点在两个坐标系之间的坐标关系。设初始坐标系为 a ,移动后的坐标系为 b。
    r p b \boldsymbol{r}_p^b rpb 表示任意一点 p 相对于坐标系 b 的原点的位置,该向量可以写成坐标系 b 中的单位向量以及原点的加权和形式:
    r p b = x p b ( b i b ) + y p b ( b j b ) + z p b ( b k b ) + ( b o b ) \boldsymbol{r}_p^b=x_p^b(^{b}\boldsymbol{i}_b)+y_p^b(^{b}\boldsymbol{j}_b)+z_p^b(^{b}\boldsymbol{k}_b)+(^{b}\boldsymbol{o}_b) rpb=xpb(bib)+ypb(bjb)+zpb(bkb)+(bob)
    x i y ^{x}\boldsymbol{i}_y xiy可以理解为坐标系 y 的原点和坐标轴在坐标系 x 下的表达。
    从坐标系 a 的角度看过去:
    r p a = x p b ( a i b ) + y p b ( a j b ) + z p b ( a k b ) + ( a o b ) \boldsymbol{r}_p^a=x_p^b(^{a}\boldsymbol{i}_b)+y_p^b(^{a}\boldsymbol{j}_b)+z_p^b(^{a}\boldsymbol{k}_b)+(^{a}\boldsymbol{o}_b) rpa=xpb(aib)+ypb(ajb)+zpb(akb)+(aob)
    进行基变换(隐含算子表达了两个坐标系之间的关系): r p a = x p b ( I b a b i b ) + y p b ( I b a b j b ) + z p b ( I b a b k b ) + ( I b a b o b ) \boldsymbol{r}_p^a=x_p^b({\boldsymbol{I}_b^{a}}^{b}\boldsymbol{i}_b)+y_p^b({\boldsymbol{I}_b^{a}}^{b}\boldsymbol{j}_b)+z_p^b({\boldsymbol{I}_b^{a}}^{b}\boldsymbol{k}_b)+({\boldsymbol{I}_b^{a}}^{b}\boldsymbol{o}_b) rpa=xpb(Ibabib)+ypb(Ibabjb)+zpb(Ibabkb)+(Ibabob)
    基矩阵的变化实现任意一点坐标变化:
    r p a = I b a r p b \boldsymbol{r}_p^a={\boldsymbol{I}_b^{a}}\boldsymbol{r}_p^b rpa=Ibarpb
  4. 算子/变换的对偶性: T b a \boldsymbol{T}_b^a Tba 将坐标系 a 移动到与坐标系 b 一致,这一过程也可以视为将点的坐标按相反方向移动——从坐标系 b 变换到坐标系 a(从 3 中运算过程较易看出
  5. 基本变换:
    坐标系 a 绕 x/y/z 轴逆时针旋转 ϕ / θ / ψ \phi/\theta/\psi ϕ/θ/ψ 度得到坐标系 b ,齐次向量在坐标系 a 下的表示左乘基本变换矩阵可得坐标系 b 下的表示:
    r o t x ( ϕ ) = [ 1 0 0 0 0 c ϕ s ϕ 0 0 − s ϕ c ϕ 0 0 0 0 1 ] rotx(\phi) = \left [ \begin{matrix} 1 & 0 & 0 & 0 \\ 0 & c\phi & s\phi & 0 \\ 0 & -s\phi & c\phi &0 \\ 0 & 0 & 0 &1 \end{matrix} \right ] rotx(ϕ)= 10000cϕsϕ00sϕcϕ00001
    r o t y ( θ ) = [ c θ 0 − s θ 0 0 1 0 0 s θ 0 c θ 0 0 0 0 1 ] roty(\theta) = \left [ \begin{matrix} c\theta & 0 & -s\theta & 0 \\ 0 & 1 & 0 & 0 \\ s\theta & 0 & c\theta &0 \\ 0 & 0 & 0 &1 \end{matrix} \right ] roty(θ)= cθ0sθ00100sθ0cθ00001
    r o t z ( ψ ) = [ c ψ s ψ 0 0 − s ψ c ψ 0 0 0 0 1 0 0 0 0 1 ] rotz(\psi) = \left [ \begin{matrix} c\psi & s\psi & 0 & 0 \\ -s\psi & c\psi & 0 & 0 \\ 0 & 0 & 1 &0 \\ 0 & 0 & 0 &1 \end{matrix} \right ] rotz(ψ)= cψsψ00sψcψ0000100001
    平移变换:
    t r a n s ( u , v , w ) = [ 1 0 0 − u 0 1 0 − v 0 0 1 − w 0 0 0 1 ] trans(u,v,w) = \left [ \begin{matrix} 1 & 0 & 0 & -u \\ 0 & 1 & 0 & -v \\ 0 & 0 & 1 & -w \\ 0 & 0 & 0 &1 \end{matrix} \right ] trans(u,v,w)= 100001000010uvw1
  6. 齐次变换求逆:
    [ R p 0 T 1 ] = [ R T − R T p 0 T 1 ] \left [\begin{matrix} R & p \\ 0^T & 1 \\ \end{matrix} \right ] = \left [\begin{matrix} R^T & -R^Tp \\ 0^T & 1 \\ \end{matrix} \right ] [R0Tp1]=[RT0TRTp1]
    变换具有坐标系改变的内涵:每一次的变化都是将变换作用于上一个坐标系。
  7. 算子与变换之间的关系
    r o t x ( ϕ ) = R o t x ( − ϕ ) rotx(\phi)=Rotx(-\phi) rotx(ϕ)=Rotx(ϕ)
    r o t y ( θ ) = R o t y ( − θ ) roty(\theta)=Roty(-\theta) roty(θ)=Roty(θ)
    r o t z ( ψ ) = R o t z ( − ψ ) rotz(\psi)=Rotz(-\psi) rotz(ψ)=Rotz(ψ)
    t r a n s ( 0 , 0 , v ) = T r a n s ( 0 , 0 , − v ) trans(0,0,v)=Trans(0,0,-v) trans(0,0,v)=Trans(0,0,v)
    r o t x ( ϕ ) = R o t x ( ϕ ) − 1 rotx(\phi)=Rotx(\phi)^{-1} rotx(ϕ)=Rotx(ϕ)1
    r o t y ( θ ) = R o t y ( θ ) − 1 roty(\theta)=Roty(\theta)^{-1} roty(θ)=Roty(θ)1
    r o t z ( ψ ) = R o t z ( ψ ) − 1 rotz(\psi)=Rotz(\psi)^{-1} rotz(ψ)=Rotz(ψ)1
    t r a n s ( 0 , 0 , v ) = T r a n s ( 0 , 0 , v ) − 1 trans(0,0,v)=Trans(0,0,v)^{-1} trans(0,0,v)=Trans(0,0,v)1
    算子和变换两种方法是互补的,约定采用算子形式

机构运动学

机构运动学研究的是进行关节运动的机器人,代表是机械臂。区别于刚体运动,引起整体的移动或转动,而关节运动引起车体质量分布的变化。

  1. 正运动学建模
    对一系列相连关节序列进行建模的常用规则:
    a. 按顺序给连杆分配固联坐标系,使移动每一个坐标系与其下一个坐标系重合的操作,是一个合理的关节变量(舵机旋转角度)函数。
    b. 按照从左到右的顺序,写出对应这些操作的正交算子矩阵。
  2. DH 法:在机器人学中,很多场合都会用4个基本算子的某个特定乘积作为一个基础单元。所获得的单一矩阵可以表示低副机构中里两个固联坐标系之间的一般性空间关系。这一方法与分配固联坐标系的几个规定一起,称为 DH 法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

u小鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值