[TOC]
王博Kings:无人驾驶系列知识入门到提高7-高精度地图 V2X HD MAP
CSDN self_drive car_学习笔记–第7课:HD MAP高精地图 & V2X
1. OverView
HD AMP
- 元素信息
- 点云信息
- HD地图 = 元素地图 + 点云地图
HD Map VS Navigation Map
LOCALIZATION
Perception 感知
Planning
Apollo HDMap
SLAM
2. OPENDRIVE 开放协议
制图过程和V2X
3. Cloud Point Mapping
3.1 Lidar & Image
3.2 点云匹配
1)依赖库说明
—-OpenCV3:目前最常用也是用途最广的图像处理依赖库,熟悉基本操作,比如cv::Mat、imread
—-Eigen:C++下最常用的矩阵运算库,类似于Matlab,对矩阵的描述和计算都非常方便,任何计算都是矩阵
—-PCL:Point Cloud Library,点云计算库,方便对点云进行操作和可视化
2)安装方法:
—-Eigen库使用源码拷贝的方式或者apt-get安装
—-Opencv安装可以用ppi源来安装,也可以用源码编译安装
—-在Ubuntu下使用apt-get安装PCL
3)使用说明
代码库:JointMapping
–cmake .
–make
–./joinMap
–pcl_viewer ./map.pcd
3.3 基础概念
- 相机内参
- 相机外参
- 像素坐标系
- 刚体运动
- 坐标系转换
- 旋转坐标
- 平移坐标
- 齐次坐标系,变换矩阵
- 欧拉角
- 四元数
3.4 相机模型
1)相机成像的原理是针孔相机模型:
—-P表示物理世界中的一个点;P’表示成像中模型中的位置;坐标分别为XYZ和X’Y’Z’
—-相似三角形关系:
2)相机内参
将成像坐标P’切换到像素坐标系中,要进行两步转换:缩放和原点平移
假设P’的像素坐标为[u v]T(表示列矩阵),变换坐标就是:
把这个形式切换到齐次坐标系:
这里的K就是我们说的内参矩阵,也就是每个相机需要校准的内参
3)相机外参
注意一下,这里的P是相机坐标系下的位置,而其世界坐标系下的坐标Pw,可以根据旋转平移来得到:
$$
ZP_{w} = K(RP_w + t) = KTP_{w}
$$
—-这里有齐次变换到非齐次坐标的变换
—-因此,相机姿态R,T(t?是不是指的是上面公式的)又称为相机外参
—-外参会随着车辆移动而移动,因此我们高精地图构建过程中就是需要去估计这个外参,同时也是车辆移动轨迹
4)数据结构
–PGM数据格式:Portable Gray Map,最简单的灰度图数据格式,这里我们拿来表示把点云压成平面的深度信息(0-65535),其中0表示没有检测到深度
–png:RGB信息的常用格式
–pose:5组7状态,txt文档,[x y z qx qy qz qw],平移向量和旋转四元数
5)代码示例:
–根据相机内参计算RGB和点云的对应关系
–根据各图相机外参把点云和RGB融合进行图片融合,构成全局地图
【源码是老师的,没有放到云端,下面就是部分截图,仅供参考】
todo
通过该函数,可以获取得到点云图
【下面偷个小懒,截个图算了,哈哈哈】