Apollo进阶课程⑭ | Apollo自动定位技术——三维几何变换和坐标系介绍

目录

1.三维几何变换---旋转

2.三维几何变换----平移

2.1刚体的位置和朝向

3. 坐标系

3.1 ECI地心惯性坐标系

3.2 ECFF地心地固坐标系

3.3当地水平坐标系

3.4 UTM坐标系

3.5 车体坐标系

3.6IMU坐标系

3.7 相机坐标系

3.8 激光雷达坐标系

3.9 无人车定位信息中涉及的坐标系


原文链接:进阶课程⑭ | Apollo自动定位技术——三维几何变换和坐标系介绍

上周阿波君为大家详细介绍了「进阶课程 ⑬ | Apollo无人车自定位技术入门」

详细讲解了什么是无人车的自定位系统,以及无人车为什么需要精准的定位系统。最后详细讲解了激光定位、视觉定位和惯性导航。由于单一定位方式有缺陷,因此产生了以卡尔曼滤波器为中心的多传感器融合定位系统。

本周阿波君将与大家分享Apollo自动定位技术——三维几何变换和坐标系介绍。下面,我们一起进入进阶课程第14期。


本节主要介绍自定位的一些基础知识,主要包括三维几何变换和几个坐标系。

根据各个轴位置关系的不同,空间中的坐标系可以分为左手坐标系和右手坐标系。如下图所示。

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        空间坐标系

1.三维几何变换---旋转

旋转是指在一个坐标系下,把一个点旋转到另一个位置的几何变换。

                                                                                                        二维旋转

如上所示:将P旋转θ角到P'的位置,在二维坐标系下,由一个2×2的矩阵表示,如图中的R(θ)。点的旋转其实也可以理解为两个坐标系的一个旋转。对于三维而言,多了一个维度,可以用3×3矩阵来表示。

分解来看,可以通过X轴Y轴Z轴分别去旋转,对应的分量分别是RX,RY和RZ。三维旋转矩阵可以由对应三个方向的基本旋转矩阵相乘来表示。三维旋转矩阵存在九个元素,对九个元素进行优化是非常复杂。通常情况下会使用是欧拉角或者四元数的方式进行优化,如下图所示。

                                                                                                        三维旋转


2.三维几何变换----平移

平移是当前点相对于坐标原点的位置变化,通常由当前位置的坐标表示,由一个3x1的向量表示,如下所示。

                                                                                        ​​​​​​​        ​​​​​​​        三维平移

2.1刚体的位置和朝向

                                                                                                        刚体的位置和朝向

刚体是一种有限尺寸,可以忽略形变的固体。自然界不存在完美的刚体,但物体通常可以假定为完美刚体。自动驾驶中汽车可以认为是一个刚体。

刚体坐标系通常是取刚体内的一点P为原点建立的局部坐标系。刚体的位置可以看作刚体原点P相对于参考坐标系原点O所做的平移,可以使用三维平移向量表示。刚体的朝向可以由刚体原点P的朝向来表示。


3. 坐标系

下面介绍一下定位里面常用的坐标系。

3.1 ECI地心惯性坐标系

ECI地心惯性坐标系,也称i系,这个坐标系如下图所示:

                                                                                                        地心惯性坐标系ECI

它圆心就是地球的原点,Z轴沿地轴方向朝向北极, X轴和Y轴位于赤道平面内,与Z轴满足右手法则,并且X轴和Y轴分别指向两个恒星。也就是说不随着地球的自转而发生变化。它是一个非常固定的坐标系。IMU测量得到的加速度,角速度都是相对于这个坐标系的。


3.2 ECFF地心地固坐标系

ECEF地心地固坐标系也称为e系,它的原点也是地球的原点, Z轴指向北极, 它与前面的ECI的区别就在于它的XY随着地球的自转而转动,它是以地球为基准的。它的X轴指向格林威治的子午面的交线, Y轴在赤道平面内与X轴、Z轴满足右手系法则,常用的如WGS84坐标系。其特点是与地球固定在一起,随地球一起转动。

                                                                                                        地心地固坐标系ECEF  


3.3当地水平坐标系

当地水平坐标系,一般也称为L系。如下图所示,它的原点位于载体所在的地球表面,X轴和Y轴在当地水平面内,分别指向东向和北向,Z轴垂直向上,与X轴和Y轴满足右手法则。在导航解算过程中通常也把该坐标系选取为导航坐标系(n系),也称为“东-北-天(E-N-U)”坐标系。

                                                                                                        当地水平坐标系


3.4 UTM坐标系

UTM(UNIVERSAL TRANSVERSE MERCARTOR GRIDSYSTEM,通用横轴墨卡托格网系统)坐标是一种平面直角坐标,这种坐标格网系统及其所依据的投影已经广泛用于地形图。其投影是一种“等角横轴割圆柱投影”,椭圆柱割地球与南纬80度,北纬84度两条等高圈,投影后两条相割的经线上没有变形,而中央经线上长度比为0.9996。该投影方法按经度把地球划分成了60个区域,那么每6度一个区域,例如北京其实在第50区。南北又做了划分,相当于把地球划分成很多块。

                                                                                                        UTM投影


3.5 车体坐标系

车体坐标系原点在载体质量中心与载体固连处(相对于车载,选取原点位于后轴中心位置),X轴沿载体轴向指向右,Y轴指向前,Z轴与X轴和Y轴满足右手法则指向天向。该坐标系通常称为“右-前-上(R-F-U)”坐标系。它是一个局部坐标系,它与N系或者导航坐标系、当地水平坐标系之间的旋转关系表示现在车的姿态。

                                                                                                        车体坐标系


3.6IMU坐标系

IMU坐标系其实和车体坐标系基本上是一样,它的原点在陀螺仪和加速度计的坐标原点,XYZ三个轴方向分别与陀螺仪和加速度计对应的轴向平行。在不考虑安装误差角的情况下,载体坐标系和IMU坐标系是一样的。

                                                                                                        IMU坐标系特点


3.7 相机坐标系

相机坐标系以相机光心为原点,Xc轴和Yc轴与成像平面坐标系的x轴和y轴平行,Zc轴为摄像机的光轴,和图像平面垂直。由点O与Xc、Yc、Zc轴组成的坐标系成为相机的坐标系,如下图右边所示。通常情况下并不会将相机坐标系和其他的全局坐标系直接连接起来,因为已经选IMU作为汽车原点。通过一个外参,把相机和IMU关联起来,也就是标定的外部参数。当知道IMU在世界坐标系的姿态和位置就可以得到相机坐标系到世界坐标系的转换。

                                                                                                        相机坐标系


3.8 激光雷达坐标系

下图为激光雷达坐标系以及其俯视图,从图中可以看出激光雷达坐标系的坐标原点位于多线束中点旋转轴的交点处,Z轴沿轴线向上,X和Y轴如俯视图所示。其测量的点坐标是在激光雷达坐标系下的三维坐标。

要转换到世界坐标系,可以使用相机坐标系下点转换到世界坐标系的类似方法。通过IMU坐标系到激光雷达坐标系的外參,以及IMU坐标系的姿态,得到激光雷达坐标系到世界坐标系的转换。

                                                                                                激光雷达坐标系及其俯视图


3.9 无人车定位信息中涉及的坐标系

下图给出了定位模块中输出的各个坐标系下的信息以及不同坐标系之间的关系。

                                                                                        ​​​​​​​        ​​​​​​​        ​​​​​​​无人车定位信息中涉及的坐标系

定位输出信息主要包括UTM坐标系的XY,IMU的姿态四元数, ENU坐标系下的速度。另外还输出一些和车体相关信息,例如车体姿态的四元数,车体坐标系下的加速度和角速度。这些输出的信息可以给感知和PNC使用。各个坐标系之间是一些基本的旋转关系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一步步编写操作系统 09 写个mbr

有点不好意思了,说了好久,才说到实质性的东西,好了,赶紧给客官上菜。 代码2-1(c2/a/boot/mbr.S)1 ;主引导程序2 ;------------------------------------------------------------3 SECTION MBR vstart0x7c…

【2019牛客暑期多校训练营(第二场)- F】Partition problem(dfs,均摊时间优化)

题干: 链接:https://ac.nowcoder.com/acm/contest/882/F 来源:牛客网 Given 2N people, you need to assign each of them into either red team or white team such that each team consists of exactly N people and the total competi…

Apollo进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术

目录 1.百度无人车定位进化历程 2.百度自动驾驶应用的定位技术 2.1GNSS定位技术 2.2载波定位技术 2.3激光点云定位技术 2.4视觉定位技术 原文链接:进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术 定位的目的是让自动驾驶汽车找到自身确切位置的方法…

一步步编写操作系统 10 cpu的实模式

cpu的实模式 由于mbr在实模式下工作……什么?什么是实模式?这时候有同学打断了我。我心想,这下好办了……哈哈,没有啦,开个玩笑而已。我们这里所说的实模式其实就是8086 cpu的工作环境、工作方式、工作状态&#xff0…

Ubuntu系统中使用搜狗输入法

今天介绍如何在Ubuntu中使用搜狗输入法。(Ubuntu版本为16.04) 1)登陆搜狗官网选择对应系统的搜狗输入法:http://pinyin.sogou.com/linux。 2)打开下载目录,命令行输入以下命令: sudo dpkg -i …

【2019牛客暑期多校训练营(第三场)- B】Crazy Binary String(思维,01串,前缀和)

题干: 链接:https://ac.nowcoder.com/acm/contest/883/B 来源:牛客网 ZYB loves binary strings (strings that only contains 0 and 1). And he loves equal binary strings\textit{equal binary strings}equal binary strings more, wh…

2.1)深度学习笔记:深度学习的实践层面

目录 1)Train/Dev/Test sets 2)Bias/Variance 3)Regularization(重点) 4)Why regularization reduces overfitting(理解) 5)Dropout Regularization(重点…

一步步编写操作系统 12 代码段、数据段、栈和cpu寄存器的关系

先说下什么是寄存器。 寄存器是一种物理存储元件,只不过它是比一般的存储介质要快,能够跟上cpu的步伐,所以在cpu内部有好多这样的寄存器用来给cpu存取数据。 先简短说这一两句,暂时离开一下主题,咱们先看看相对熟悉一…

【2019牛客暑期多校训练营(第三场)- F】Planting Trees(单调队列,尺取)

题干: 链接:https://ac.nowcoder.com/acm/contest/883/F 来源:牛客网 The semester is finally over and the summer holiday is coming. However, as part of your universitys graduation requirement, you have to take part in some …

Apollo进阶课程⑯丨Apollo感知之旅——感知概貌

原文链接:进阶课程⑯丨Apollo感知之旅——感知概貌 上周阿波君为大家详细介绍了「进阶课程⑮| Apollo无人车自定位技术入门」。 我们人类天生就配备多种传感器,眼睛可以看到周围的环境,耳朵可以用来听,鼻子可以用来嗅,…

一步步编写操作系统 13 栈

栈到底是什么玩意 cpu中有栈段SS寄存器和栈指针SP寄存器,它们是用来指定当前使用的栈的物理地址。换句话说,要想让cpu运行,必须得有栈。栈是什么?干吗用的?本节将给大家一个交待。 还记得数据结构中的栈吗?那是逻辑…

【2019牛客暑期多校训练营(第二场)- E】MAZE(线段树优化dp,dp转矩阵乘法,线段树维护矩阵乘法)

题干: 链接:https://ac.nowcoder.com/acm/contest/882/E?&headNavacm 来源:牛客网 Given a maze with N rows and M columns, where bijb_{ij}bij​ represents the cell on the i-row, j-th column. If bi,j"1"b_{i, j} …

Apollo进阶课程⑰丨Apollo感知之旅——传感器选择和安装

目录 1.激光雷达 2.相机 3.Radar毫米波 4.安装传感器 原文链接:进阶课程⑰丨Apollo感知之旅——传感器选择和安装 上周阿波君为大家详细介绍了「进阶课程⑯ Apollo感知之旅——感知概况」。 传感器是一种检测装置,能感受到被测量的信息,…

一步步编写操作系统 14 CPU与外设通信——IO接口 上

介绍显卡之前,必须得和大家交待清楚,那么多的外部设备,cpu是如何与他们交流。 大家都学过微机接口技术吧?没学过也没关系,反正我也只是笼统地说说^_^,保证大家一定能看得懂。 按理说,如果硬件…

2.2)深度学习笔记:优化算法

目录 1)Mini-batch gradient descent(重点) 2)Understanding mini-batch gradient descent 3)Exponentially weighted averages 4)Understanding exponetially weighted averages 5)Bias c…

【POJ - 2019】Cornfields(二维st表,模板)

题干: FJ has decided to grow his own corn hybrid in order to help the cows make the best possible milk. To that end, hes looking to build the cornfield on the flattest piece of land he can find. FJ has, at great expense, surveyed his square fa…

虚拟机安装Linux(vmware + ubuntu)

VMWare 提取码:7zph 建议官网下载比较新,还快一点 https://www.vmware.com/products/workstation-pro.htmlubantu 下载地址 安装过程都差不多可以参考 VMware下安装Ubuntu系统图文详细教程_master-CSDN博客_vmware安装ubuntu系统 出现蓝屏问题可以参考…

Apollo进阶课程⑱丨Apollo感知之旅——传感器标定

目录 传感器标定 标定的目的 传感器标定算法 标定案例解析 3D标定间制作 Cmaera-to-Camera外参标定 Lidar-to-Camera外参标定 Lidar-to-Lidar外参标定 Lidar内参标定 Lidar-to-GPS外参标定 自然场景的Lidar-to-Camera外参标定 自然场景的Bifocal Camera外参标定 C…

一步步编写操作系统 15 CPU与外设通信——IO接口,下

既然都说到IO接口了,不知道各位有没有疑问,cpu是怎样访问到IO接口呢?肯定得有个链路吧?什么?有隐约听到有同学开玩笑说:cpu用无线访问其它设备。哈哈,不知道各位听说过没有,无线的终…

Telnet端口连接Linux服务器失败

在ubuntu写了个服务器端口号是666 ,ip地址是192.168.96.129 在windows用telnet无法连接上 首先检查windows telnet服务是否打开 Windows 10操作系统上使用telnet命令(图文)_时间-CSDN博客_windows使用telnet命令 测试网络是否通:…