0、 预备知识:齐次坐标

齐次坐标是整个系列的基础。如果不理解齐次坐标系的概念,强烈建议先阅读https://zhuanlan.zhihu.com/p/74597564

1、机器人位姿表示

二维情况下,机器人的位姿可以用(x,y,θ)来表示。注意此处θ为顺时针的旋转角度。在图形学中,右手坐标系中旋转以逆时针为正。然而SLAM中默认以比较贴近生活的顺指针为正,这个很容易混淆。
假设世界坐标系W,机器人坐标系为A,机器人在坐标系W中的坐标为(x,y,θ),则机器人坐标系A到世界坐标系W的转换矩阵为TAWT^W_ATAW​ 。也就是说,如果已知机器人A坐标系表示的点PAP_APA​,则该点在世界坐标系中的坐标为 PW=TAWPAP_W=T^W_AP_APW​=TAW​PA​。其中:

仔细观察这个矩阵会发现,这不就是逆时针旋转θ(顺时针旋转-θ),再平移t的矩阵变换吗!
那么同样的,要得到世界坐标系W到机器人坐标系A的转换矩阵,只需要将矩阵求逆即可(注意R是正交矩阵,有R−1=RTR^{-1}=R^TR−1=RT):
所以,这一部分最重要的收获是:所谓B坐标系到A坐标系的表示,实际上就是一个矩阵变换TBAT^A_BTBA​ 。

2、相对坐标转换

考虑机器人发生了旋转、平移运动到了新的坐标系B,在W中的坐标为(x,y,θ)。同理我们有:

在实际应用中,我们更希望知道:A是通过什么样的变换方式(实质就是一个矩阵)变换到B的?例如说,在A的自身坐标系中右转90度、前进1米,到达B,这样显然更有意义。也就是说,我们希望求出 TABT^B_ATAB​ 。
显然,我们已知B在W中的表示 ,那么再将其做一次转换,求其在A坐标系中的表示不就行了吗?即:

在上一节我们已经求出了TWAT^A_WTWA​ 。带入上式可得:

这个矩阵看上去非常复杂,实际上考虑到三角函数公式,可以化简如下:

矩阵中的R部分为A到B的旋转变化,这很好理解。如何理解这复杂的t部分呢?

如图所示,红色为A坐标系(原点设为A),绿色为B坐标系(原点设为B)。 TBAT^A_BTBA​ 中的t的本质是向量AB在A坐标系中的表示。因此考虑将B投影到A的x轴(图中B1),将B沿世界坐标系的Y轴做延长线,A在沿世界坐标系的X轴做延长线,交点计为B3。B3再沿A坐标系的Y轴做延长线,B点沿A坐标系的X轴做延长线,交点计为B2。B2-B3与A坐标系X轴交于C。
此时,B在A坐标系X方向的投影长度为|AC|+|CB1|。观察直角三角形△ACB3、△BB2B3,容易得知:
刚好得到TBAT^A_BTBA​ 中t的x偏移值。这可不是巧合!
同样的方法也可以求出t的y偏移值。只不过此时,B在A坐标系Y方向的投影长度为|AC|-|CB1|。

同时你会发现,t的结果跟B的旋转角度没有关系。
这就是坐标系B在坐标系A中表示的矩阵的几何意义。

激光SLAM入门(1):坐标变换相关推荐

  1. 激光SLAM入门学习笔记

    激光SLAM入门学习笔记 激光SLAM入门学习笔记 一.推荐阅读书籍 二.推荐公众号.知乎.博客 1.公众号 2.知乎 3.博客 三.推荐阅读论文&代码(参考泡泡机器人) 2D激光SLAM 3 ...

  2. 激光SLAM入门笔记(一):概述

    概述 激光SLAM pipeline 1.数据处理(非常重要) 里程计标定 激光雷达运动畸变去除 2.帧间匹配(核心部分) 3.回环检测 4.后端优化 2D激光SLAM 数据处理(非常重要) 帧间匹配 ...

  3. 激光SLAM入门笔记(五):前端配准 II

    前端配准 II 1.爬山法(拟梯度法) 1.1 示意图 1.2 基本思想 1.3 得分函数定义 1.4 算法流程 1.5 伪代码 2.高斯牛顿优化方法 2.1 示意图 2.2 数学描述 2.3 优化方 ...

  4. 从零入门激光SLAM(一)——什么是SLAM

    大家好呀,我是一个SLAM方向的在读博士,深知SLAM学习过程一路走来的坎坷,也十分感谢各位大佬的优质文章和源码.随着知识的越来越多,越来越细,我准备整理一个自己的激光SLAM学习笔记专栏,从0带大家 ...

  5. 激光SLAM理论与实践-第五期 第一次作业(矩阵坐标变换)

    章节: 1.激光SLAM理论与实践-第五期 第一次作业(矩阵坐标变换) 2.激光SLAM理论与实践-第五期 第二次作业(里程计标定) 3.激光SLAM理论与实践-第五期 第三次作业(去运动畸变) 4. ...

  6. 激光SLAM基础(1) —— 激光SLAM框架和基本数学理论

    激光SLAM笔记(1)--激光SLAM框架和基本数学理论 1.SLAM分类 1.1.基于传感器的分类 1.2.基于后端的分类 13.基于图的SLAM 2.激光SLAM算法(基于优化的算法) 2.1.激 ...

  7. MULLS:一种基于多尺度线性最小二乘的激光SLAM算法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨paopaoslam 来源丨 泡泡机器人SLAM 标题:MULLS: Versatile LiD ...

  8. 一起做激光SLAM:常见SLAM技巧使用效果对比,后端

    本节目标 搭建一套700行代码的激光SLAM.通过对ALOAM进行修改实验,确定对激光SLAM最核心的技巧,并接上节里程计,完成后端,构建较大场景(轨迹约2km)地图. 预期效果: rosbag数据: ...

  9. 一起做激光SLAM:ICP匹配用于闭环检测

    编辑丨古月居 目标 利用ICP进行闭环检测,完成闭环. 预期效果:通过闭环检测完成起止闭环,下图为加入闭环前后. rosbag数据: https://pan.baidu.com/s/1o-noUxgV ...

最新文章

  1. Xamarin XAML语言教程ContentView视图作为自定义视图的父类
  2. (七)深入浅出TCPIP之深入浅出TCPIP之TCP重传机制
  3. python安装第三方库-常见错误解决
  4. 解决从github下载项目速度过慢
  5. 【Vegas原创】windows2008配置、安装Exchange2007证书(for OWA,RPC over HTTP)
  6. c语言编译器uwp版,哔哩哔哩UWP最新版下载 - 哔哩哔哩UWP版免费版(32位64位win10)安装下载v1.3.10.0 - QT软件园...
  7. 马哥python培训班靠谱吗
  8. 升级计算机的图形卡和驱动程序,Win10更新显卡驱动程序后无法开机怎么办?解决方案...
  9. Myeclipse10破解版安装包
  10. Jenkins+gitlab配置身份验证令牌
  11. 篮球——NBA球队队标
  12. 南邮 OJ 1160 繁杂的道路
  13. 从删库到跑路,DBA 如何防止被淘汰?
  14. ​基于STM32F407的五子棋游戏设计​
  15. 3.堆栈指针寄存器 SP 详解
  16. 指定Jboss的JDK
  17. cat 常用的日志分析架构方案_大众点评Cat--架构分析
  18. 如何撰写数据运营分析报告
  19. 博物馆逛不完、记不住?扩展现实(XR)技术来帮你!
  20. OpenLayer示例网址汇总

热门文章

  1. 一度智信:小白卖家掌握这五点技巧!轻松做电商!
  2. nxp电源管理芯片计划及功能介绍
  3. ADODB.Connection 错误 '800a0e7a' 处理
  4. 将Abp移植进.NET MAUI项目
  5. 单片机c语言 音阶,单片机C语言程序设计:演奏音阶 (1)
  6. Qt Qwt 只缩放横轴或纵轴(按键控制)
  7. SQL Server 安装报错找不到vc_red.msi
  8. 机器学习从理论到实践(常见算法)
  9. vue 适配屏幕分辨率,以及屏幕的缩放
  10. cad线性标注命令_CAD线性标注快捷键DLI,CAD标注快捷键大全