前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Self-Driving干货铺4:坐标转换

Self-Driving干货铺4:坐标转换

作者头像
Defry
发布2022-04-19 18:02:22
5780
发布2022-04-19 18:02:22
举报
文章被收录于专栏:Vehicle攻城狮Vehicle攻城狮

1、何为坐标转换?

如下图所示,无人车上有很多传感器,每个传感器都部署在车上不同的位置,但传感器采集的数据都是基于自身坐标系的数据。

而车辆的控制中心却并不一定在传感器上,因此需要将传感器所采集的信息转换到基于汽车控制中心坐标系上的信息。

举个例子,例如某个小车有其自身坐标系,在它的几何中心上,以robot_base表示,该小车上有个图像传感器,该传感器的坐标系为camera_center其安装点坐标系为mounting_point,在小车移动过程中,传感器采集的信息都是基于camera_center的,而实际控制是基于robot_base的,因此需要将camera_center的坐标系信息转换到robot_base上。

上面所述的就涉及坐标变换:指采用一定的数学方法将一种坐标系的坐标变换为另一种坐标系的坐标的过程。在三轴坐标系中,一般定义绕Z轴、Y轴、X轴的旋转角度,如果用Tait-Bryan angle表示,分别为Yaw、Pitch、Roll。即

· 绕 Z轴 旋转,称之为 航向角,使用Yaw表示

· 绕 X轴 旋转,称之为 横滚角,使用Roll表示

· 绕 Y轴 旋转,称之为 俯仰角,使用Pitch表示

2、坐标转换原理

有了上面这些基本概念我们再以一个例子来说明下坐标转换原理:比如某小车上有一激光雷达传感器,其坐标系为hokuyo link,而小车运动中心的坐标系为base link,当激光雷达传感器探测到空间中某点p后,其会通过下式将该点在hokuyo link坐标系的描述信息变换到base link坐标系下的描述。

ROS中处理坐标变换除了采用欧拉角和RPY固定角外,主要采用四元数方式,因为它是一种紧凑、易于迭代且不会出现奇异值的表示方法。一个物体的三维位姿可由含有9个分量的3*3矩阵表示(即旋转矩阵),但占空间,也可由只有三个参数的欧拉角来表示但会出现奇异值,而四元数用含有一个实部和三个虚部的形式表示,不仅省空间还可无奇异的表示各种姿态,其形式如下:

旋转矩阵、欧拉角与四元数之间可以相互转换,其中下式表示四元数到欧拉角的转换。

基于上述理论,ROS有现成的tf库(坐标转换库—Transform Library),它会通过单层多叉树的树状结构实现了系统中任意一点在所有坐标系中的转换。该树结构特点为单亲,一个子坐标系只有父坐标系。如下是个示例:

Autoware的无人车系统也是参考ROS现有的东西来实现的坐标系转换,如下:

自动驾驶领域经常有矩阵、概率相关的数学知识,线性代数和概率统计是最主要的,还得好好看呐

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Vehicle攻城狮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、何为坐标转换?
  • 2、坐标转换原理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档