SLAM的时候坐标变换有点乱---坐标变换弄明白,推个自己定义的说法

举报
月照银海似蛟龙 发表于 2022/07/29 23:23:24 2022/07/29
【摘要】 坐标变换弄明白,推个自己定义的说法 前言场景总结举个实际应用的例子 前言 这篇博客主要是 之前总是被坐标变换的 各种说法弄糊涂,这篇博客就不管别人怎么定义了 通过模拟场景 定义一个自己的说...

坐标变换弄明白,推个自己定义的说法

前言

这篇博客主要是 之前总是被坐标变换的 各种说法弄糊涂,这篇博客就不管别人怎么定义了
通过模拟场景 定义一个自己的说法,爱谁谁

首先坐标变换的数学计算实质就是 矩阵的计算,这里先安利一个 矩阵在线计算的网站 不用手动算了
矩阵在线计算的网站
这里面有很多的 矩阵的计算的在线求解 挺不错的
包含:矩阵乘法、线性方程组、矩阵的逆矩阵、行列式的值、特征值和特征向量、Cholesky分解、上三角下三角分解、奇异值分解(SVD)、QR分解、矩阵的秩、矩阵范数、最小二乘解、矩阵条件数

坐标变换说白了就是想把一个坐标系下的点,转换到另一个坐标系下,利用的是坐标系变换,计算很简单,就是点的坐标然后乘坐标系的变换矩阵就行了。但是谁在左边谁在右边?哪个坐标系到哪个坐标系呢? 来看下面场景

场景

定义而一个相当简单的场景。

在本地坐标系(frame_local)的x轴上有两个坐标系1_frame和2_frame
frame_1在x轴的1上面,frame_2在x轴的3上面。

像下面的图
在这里插入图片描述

注意从这里往下就是 我自己定义的叫法了

frame_1 相对于 frame_local 的坐标变换 也 叫做 frame_1到frame_local 的坐标变换
frame_2 相对于 frame_local 的坐标变换 也 叫做 frame_2到frame_local 的坐标变换

那么frame_1到frame_local 的坐标变换
在这里插入图片描述

frame_2到frame_local 的坐标变换
在这里插入图片描述

我们知道 两个坐标系直接求坐标变换就是一个矩阵的逆乘一个矩阵
那么我们先定义一个 frame_1 和 frame_2 直接有个变换矩阵 R ,具体谁到谁,点怎么计算先别管
这个R的计算 就是
在这里插入图片描述

通过上面的在线矩阵计算的网站 得的R的矩阵为:

在这里插入图片描述

这个R就是一个坐标变换矩阵,具体怎么个叫法,继续

frame_local 坐标系下有个点 point 在x轴的6上,即point的坐标为**(6,0,0)**
那么这个point 在 frame_1 坐标系下的坐标则为**(5,0,0)**
那么这个point 在 frame_2 坐标系下的坐标则为**(3,0,0)**

进行坐标变换的时候要把点的坐标进行转置,然后扩1维 增加一个1
我们把point 在 frame_1下的点叫point_frame_1
我们把point 在 frame_1下的点叫point_frame_2
则有:

在这里插入图片描述

经过验证呢:

在这里插入图片描述

也就是说 :
frame_2的点左乘****R,就是frame_1下的点

那么我们把R写成这样

在这里插入图片描述
然后呢我们把 R2->1 叫做 坐标系 frame_2 到 坐标系 frame_1 的坐标变换

总结

OK了,场景举完了,下面开始自己叫法的总结

坐标系 frame_1 到frame_local 的坐标变换 R1
坐标系 frame_2 到frame_local 的坐标变换 R2

那么
*坐标系 frame_2 到 坐标系 frame_1 的坐标变换 为 R21 = R1(逆)R2
*并且 P1=R21 P2

再深刻理解下
在最一开始的定义
坐标系 frame_1 到frame_local 的坐标变换 R1 的这个 R1按上面定义应该写成R1-local或者R10
并且
R10=R0(逆)*R1
并且
P0=R10 *P1

那R0是什么东西呢,就是frame_local 相对于源点的坐标变换,矩阵就是个单位矩阵

验证下对吗?

行了,以后不管别人怎么对矩阵变换做的定义,在我心中就是上面的定义了。呵呵

举个实际应用的例子

以上是通过简单的方式推导出了自己定义的叫法

下面通过上面的自己定义叫法,具有实际应用的例子

在lidar传感器建图的时候,里程计(odm)和lidar传感器的安装有一个偏差,那么lidar的点怎么转到local坐标系下呢?

Plocal = Rlidar->local*Plidar
但是Rlidar->local这玩意没法得到啊 ,在odom和lidar完全重合的时候,可以把odom的数据当做lidar的位姿。但是这里有个偏差。

也就是说lidar和odom有个旋转矩阵,这个矩阵可以通过测量或者标定得到。那么就有了下面
Podom=Rlidar->odomPlidar
Plocal = Rodom->local
Podom

两个方程联立下则有了

**Plocal= Rodom->localRlidar->odomPlidar **

其中
Rodom->local 可以由里程计的位姿数据构成
Rlidar->odom 就是lidar和里程计的外参矩阵 一般标定得到

文章来源: blog.csdn.net,作者:月照银海似蛟龙,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_32761549/article/details/120127723

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。