当前位置: 首页 > news >正文

机器人位姿变换的坐标系相对性:左乘法则与右乘法则解析​

文章目录

设机器人当前位姿(位置和姿态)表示为齐次变换矩阵 Tcurrent\boldsymbol{T}_{current}Tcurrent,该矩阵将局部坐标系(机器人自身坐标系)的点坐标映射到世界坐标系:
Pworld=Tcurrent⋅Plocal\boldsymbol{P}_{world} = \boldsymbol{T}_{current} \cdot \boldsymbol{P}_{local} Pworld=TcurrentPlocal其中,Plocal\boldsymbol{P}_{local}Plocal 是点在局部坐标系中的坐标,Pworld\boldsymbol{P}_{world}Pworld 是其在世界坐标系中的坐标。

1. 全局坐标系下机器人位姿更新的左乘法则​

若变换基于全局坐标系(例如,沿世界坐标系X轴平移3米),则增量变换 ΔT\Delta \boldsymbol{T}ΔT 的定义需满足:ΔT\Delta \boldsymbol{T}ΔT 的旋转轴/平移方向由​​世界坐标系的轴向​​决定,与机器人当前姿态无关

因此,先将局部坐标 Plocal\boldsymbol{P}_{\text{local}}Plocal 通过 Tcurrent\boldsymbol{T}_{current}Tcurrent 映射到世界坐标系,得 Pworld\boldsymbol{P}_{world}Pworld。再在世界坐标系中应用全局变换 ΔT\Delta \boldsymbol{T}ΔT,得到新坐标 ΔT⋅Pworld\Delta \boldsymbol{T} \cdot \boldsymbol{P}_{world}ΔTPworld。即有:
ΔT⋅(Tcurrent⋅Plocal)=(ΔT⋅Tcurrent)⋅Plocal⇒Tnew=ΔT⋅Tcurrent\Delta \boldsymbol{T} \cdot (\boldsymbol{T}_{current} \cdot \boldsymbol{P}_{\text{local}}) = (\Delta \boldsymbol{T} \cdot \boldsymbol{T}_{current}) \cdot \boldsymbol{P}_{\text{local}} \Rightarrow \boldsymbol{T}_{new} = \Delta \boldsymbol{T} \cdot \boldsymbol{T}_{current} ΔT(TcurrentPlocal)=(ΔTTcurrent)PlocalTnew=ΔTTcurrent此即左乘公式​​,表明新位姿是全局变换与当前位姿的左乘组合

2. 局部坐标系下机器人位姿增量更新的右乘法则​

如果机器人需执行一个在当前局部坐标系(例如机器人自身坐标系)中描述的运动变换 ΔT\Delta \boldsymbol{T}ΔT。例如:

  • 沿自身 X 轴移动 3 米:ΔT=[1003010000100001]\Delta \boldsymbol{T} = \begin{bmatrix} 1 & 0 & 0 & 3 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}ΔT=1000010000103001
  • 绕自身 Z 轴旋转 90°:ΔT=[0−100100000100001]\Delta \boldsymbol{T} = \begin{bmatrix} 0 & -1 & 0 & 0 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}ΔT=0100100000100001

则执行该运动后的机器人新位姿 Tnew\boldsymbol{T}_{\text{new}}Tnew 为当前位姿 Tcurrent\boldsymbol{T}_{\text{current}}Tcurrent 右乘该增量变换:
Tnew=TcurrentΔT\boldsymbol{T}_{\text{new}} = \boldsymbol{T}_{\text{current}} \Delta \boldsymbol{T} Tnew=TcurrentΔT对于在运动前的局部坐标系中定义的任意点 Plocal\boldsymbol{P}_{\text{local}}Plocal,应用变换 Tnew\boldsymbol{T}_{\text{new}}Tnew 将其映射到世界坐标系的结果,等同于先在原局部坐标系中应用增量变换 ΔT\Delta \boldsymbol{T}ΔT 得到 ΔTPlocal\Delta \boldsymbol{T} \boldsymbol{P}_{\text{local}}ΔTPlocal,然后将该结果再通过原当前位姿 Tcurrent\boldsymbol{T}_{\text{current}}Tcurrent 映射到世界坐标系。即:
TnewPlocal=Tcurrent(ΔTPlocal)\boldsymbol{T}_{\text{new}} \boldsymbol{P}_{\text{local}} = \boldsymbol{T}_{\text{current}} (\Delta \boldsymbol{T} \boldsymbol{P}_{\text{local}}) TnewPlocal=Tcurrent(ΔTPlocal)

3. 相对位姿的计算

相对位姿描述了两个坐标系之间的变换关系,包括旋转和平移,是机器人导航、三维重建、多传感器融合等领域的核心问题。

T1\boldsymbol{T}_1T1T2\boldsymbol{T}_2T2 分别表示相机在时刻 t1t_1t1t2t_2t2 位姿变换矩阵。现从两个角度计算 T1\boldsymbol{T}_1T1T2\boldsymbol{T}_2T2 的相对位姿 ΔT\Delta \boldsymbol{T}ΔT

3.1. 基于世界坐标系(全局变换)

相对位姿 ΔTglobal\Delta \boldsymbol{T}_{\text{global}}ΔTglobal 在世界坐标系中定义,其数学表达为:
ΔTglobal=T2−1T1\Delta \boldsymbol{T}_{\text{global}} = \boldsymbol{T}_2^{-1} \boldsymbol{T}_1 ΔTglobal=T21T1其中,ΔTglobal\Delta \boldsymbol{T}_{\text{global}}ΔTglobal 的平移和旋转方向由世界坐标系的轴向决定。
推导如下:
世界坐标系中的点 Pw\boldsymbol{P}_wPwt1t_1t1t2t_2t2 时刻相机坐标系中的位置分别为 p1\boldsymbol{p}_1p1p2\boldsymbol{p}_2p2,根据位姿定义:
Pw=T1p1=T2p2\boldsymbol{P}_w = \boldsymbol{T}_1 \boldsymbol{p}_1 = \boldsymbol{T}_2 \boldsymbol{p}_2 Pw=T1p1=T2p2则有:
p2=T2−1Pw=T2−1T1p1⇒ΔTglobal=T2−1T1\boldsymbol{p}_2 = \boldsymbol{T}_2^{-1} \boldsymbol{P}_w = \boldsymbol{T}_2^{-1} \boldsymbol{T}_1 \boldsymbol{p}_1 \Rightarrow \Delta \boldsymbol{T}_{\text{global}} = \boldsymbol{T}_2^{-1} \boldsymbol{T}_1 p2=T21Pw=T21T1p1ΔTglobal=T21T1T1=[R1t10T1]\boldsymbol{T}_1 = \begin{bmatrix} \boldsymbol{R}_1 & \boldsymbol{t}_1 \\ \boldsymbol{0}^T & 1 \end{bmatrix}T1=[R10Tt11]T2=[R2t20T1]\boldsymbol{T}_2 = \begin{bmatrix} \boldsymbol{R}_2 & \boldsymbol{t}_2 \\ \boldsymbol{0}^T & 1 \end{bmatrix}T2=[R20Tt21],则有:
ΔTglobal=T2−1T1=[R2T−R2Tt20T1][R1t10T1]=[R2TR1R2Tt1−R2Tt20T1]\Delta \boldsymbol{T}_{\text{global}} = \boldsymbol{T}_2^{-1} \boldsymbol{T}_1 = \begin{bmatrix} \boldsymbol{R}_2^T & -\boldsymbol{R}_2^T \boldsymbol{t}_2 \\ \boldsymbol{0}^T & 1 \end{bmatrix} \begin{bmatrix} \boldsymbol{R}_1 & \boldsymbol{t}_1 \\ \boldsymbol{0}^T & 1 \end{bmatrix} = \begin{bmatrix} \boldsymbol{R}_2^T \boldsymbol{R}_1 & \boldsymbol{R}_2^T \boldsymbol{t}_1 -\boldsymbol{R}_2^T \boldsymbol{t}_2 \\ \boldsymbol{0}^T & 1 \end{bmatrix} ΔTglobal=T21T1=[R2T0TR2Tt21][R10Tt11]=[R2TR10TR2Tt1R2Tt21]

3.2. 基于 t1t_1t1 时刻相机的局部坐标系(局部变换)

相对位姿 ΔTlocal\Delta \boldsymbol{T}_{\text{local}}ΔTlocal t1t_1t1 时刻相机自身的坐标系中定义,其数学表达为:
ΔTlocal=T1−1⋅T2\Delta \boldsymbol{T}_{\text{local}} = \boldsymbol{T}_1^{-1} \cdot \boldsymbol{T}_2 ΔTlocal=T11T2其中,ΔTlocal\Delta \boldsymbol{T}_{\text{local}}ΔTlocal 的平移和旋转方向由 t1t_1t1 时刻相机的朝向决定。
上述公式根据局部坐标系下机器人位姿增量更新的右乘法则​易得,且有:
ΔTlocal=T1−1⋅T2=[R1T−R1Tt10T1][R2t20T1]=[R1TR2R1Tt2−R1Tt10T1]\Delta \boldsymbol{T}_{\text{local}} = \boldsymbol{T}_1^{-1} \cdot \boldsymbol{T}_2 = \begin{bmatrix} \boldsymbol{R}_1^T & -\boldsymbol{R}_1^T \boldsymbol{t}_1 \\ \boldsymbol{0}^T & 1 \end{bmatrix} \begin{bmatrix} \boldsymbol{R}_2 & \boldsymbol{t}_2 \\ \boldsymbol{0}^T & 1 \end{bmatrix} = \begin{bmatrix} \boldsymbol{R}_1^T \boldsymbol{R}_2 & \boldsymbol{R}_1^T \boldsymbol{t}_2 - \boldsymbol{R}_1^T \boldsymbol{t}_1 \\ \boldsymbol{0}^T & 1 \end{bmatrix} ΔTlocal=T11T2=[R1T0TR1Tt11][R20Tt21]=[R1TR20TR1Tt2R1Tt11]

3.3. 两者区别

角度数学公式坐标系依赖乘法顺序
世界坐标系(全局)ΔTglobal=T2−1T1\Delta \boldsymbol{T}_{\text{global}} = \boldsymbol{T}_2^{-1} \boldsymbol{T}_1ΔTglobal=T21T1世界坐标系轴向固定左乘
t1t_1t1 相机坐标系(局部)ΔTlocal=T1−1T2\Delta \boldsymbol{T}_{\text{local}} = \boldsymbol{T}_1^{-1} \boldsymbol{T}_2ΔTlocal=T11T2依赖 t1t_1t1 时刻相机自身朝向右乘

文章转载自:
http://chartulary.isnyv.cn
http://bedsheet.isnyv.cn
http://anodyne.isnyv.cn
http://boart.isnyv.cn
http://californiana.isnyv.cn
http://ballistician.isnyv.cn
http://antifascist.isnyv.cn
http://bultery.isnyv.cn
http://actograph.isnyv.cn
http://centrepiece.isnyv.cn
http://amblygonite.isnyv.cn
http://capsulize.isnyv.cn
http://calomel.isnyv.cn
http://bistate.isnyv.cn
http://anonym.isnyv.cn
http://chauffer.isnyv.cn
http://affricate.isnyv.cn
http://ballasting.isnyv.cn
http://chromogram.isnyv.cn
http://campership.isnyv.cn
http://ambidexter.isnyv.cn
http://abjective.isnyv.cn
http://blemya.isnyv.cn
http://balsamic.isnyv.cn
http://abdomino.isnyv.cn
http://apologue.isnyv.cn
http://chelicera.isnyv.cn
http://adjunct.isnyv.cn
http://absent.isnyv.cn
http://agglomerative.isnyv.cn
http://www.dtcms.com/a/280251.html

相关文章:

  • Kafka与Flink打造流式数据采集方案:以二手房信息为例
  • 如何把手机ip地址切换到外省
  • 【机器人】REGNav 具身导航 | 跨房间引导 | 图像目标导航 AAAI 2025
  • 用TensorFlow进行逻辑回归(五)
  • 从0开始学习R语言--Day47--Nomogram
  • dockerfile 最佳实践
  • 微信小程序开发-桌面端和移动端UI表现不一致问题记录
  • Linux-【单体架构/分布式架构】
  • Web3 学习路线与面试经验
  • 免杀学习篇(1)—— 工具使用
  • 【origin画图】让非等距数值等距显示
  • 前端技术面试
  • git起步
  • linux 内核: 遍历当前所有进程
  • 【科研绘图系列】R语言绘制中国地图和散点图以及柱状图
  • Oracle学习专栏(六):高可用架构
  • 代码随想录八股文训练营总结
  • Ai推理助手易语言开源版
  • 【解决】联想电脑亮度调节
  • SAP学习笔记 - 开发45 - RAP开发 Managed App New Service Definition,Metadata Extension
  • c++图形题练习程序
  • 【工程篇】07:如何打包conda环境并拷贝到另一台服务器上
  • HAProxy双机热备,轻松实现负载均衡
  • 【开源】一款基于 .NET 和 Vue3 开源(Apache)的MES管理系统,您的新一代工厂管理助手!
  • 昆仑通态触摸屏脚本编程通讯设置和调试
  • 【亲测有效】ubuntu20.04服务器新建用户+vnc配置教程
  • Racknerd服务器Ubuntu
  • Ant Design预览多张图
  • AR眼镜颠覆医疗:精准手术零误差
  • HTML--教程