提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
TODO:写完再整理
提示:以下是本篇文章正文内容
传感器和计算机的规格在很大程度上取决于功能自动驾驶要求【防盗标记–盒子君hzj】
(1)摄像头(Camera)信息
全方位覆盖360度视野,用来检测运动物体,【防盗标记–盒子君hzj】用来检测运动物体识别红绿灯
(2)激光雷达(lidar)信息
Velodyne激光雷达传感器、Ibeo激光雷达传感器、Hokuyo激光雷达传感器、毫米波雷达和惯性测量装置通常是自动飞行器的首选
摄像机和激光雷达传感器通常在10到100赫兹的频率下运行【防盗标记–盒子君hzj】,每个任务自动驾驶必须在一定条件下进行时间限制
点云库(PCL)是主要用于管理激光雷达扫描和三维地图数据
(3)惯导系统(IMU)信息
(4)定位系统(GNSS)信息
定位系统RTK传感器信息、定位系统gnss传感器信息
接收来自卫星的全球定位信息【防盗标记–盒子君hzj】,通常与陀螺IMU传感器和里程表相结合,以确定位置信息。
采集、建图、处理数据部分是有一辆数据采集车【防盗标记–盒子君hzj】独立执行的
(1)低成本移动激光测量进行数据采集的方案
在小车等移动载体上采集得到激光雷达高精度点云数据、甚至是相机数据、GPS/IMU航迹里程计数据
通过在每次扫描时注册3D点云数据,创建并更新3D地图。这通常被称为SLAM【防盗标记–盒子君hzj】,基于实时定位与建图(SLAM)技术,把道路上的路标、障碍物等信息数字化,精确的描绘出来
高精度地图的输出格式是怎样的?
https://github.com/ApolloAuto/apollo/blob/master/modules/map/data/README.md
参考README 所示,xml, bin, txt, lb1 都是不同的文件格式,适配不同的读取器,内容是一致的
矢量数据结构是通过记录坐标的方式,尽可能精确地表示点线多边形等地理实体,自然地理实体的位置是用其在坐标参考系中的空间位置来定义的,坐标空间设为连续,允许任意位置长度和面积的精确定栅格图是由组成图形的大量像素点来确定,【防盗标记–盒子君hzj】栅格结构表示的是不连续的,离散的数据,其最明显的特点是属性明显,定位隐含
矢量地图也称为高清地图,矢量地图包含自主导航模块需要用来理解周围环境的数据,矢量地图或道路网络地图包含的所有离散信息,例如交通信号灯,交通标志,十字路口,停车线等的位置
(无人驾驶场景)车道线路径规划+巡航+道路级的任务规划(换道,返航,停障等等)
将栅格地图或其他格式的地图数据转换为矢量地图数据的过程叫做地图矢量化,通过arcmap或者mapinfo等工具,将栅格数据的地图路网和POI数据进行矢量化绘制,以不同图层的形式加载显示,地图矢量化以后精度更高,路网拓扑更清晰,【防盗标记–盒子君hzj】数据量也更小,缩放不会失真。
将栅格数据或者其他格式的数据通过一定的方式转换为矢量数据的过程就叫矢量化。通俗点可以这样理解,在一张地图图片上,描绘出点线面文件…
基于先验完全信息的算法,在高精度地图中绘制出矢量地图,矢量地图包含了人工设定的多条可行路径和交通规则(使用autowere的方法)
步骤如下:
(1)使用点云制图软件制作高精度地图
(2)手动方式制作矢量地图的工具
工具一:vector map builder的使用
工具二:ztlidar的使用
1、介绍
Autoware ADAS Map的矢量地图的格式是Vector map格式,Vector map中定义的地图元素多样,每种元素的属性字段各异,各个元素之间通过特殊字段链接起来,【防盗标记–盒子君hzj】且元素均采用.csv格式独立保存
用于储存矢量地图所需的要素,Autoware将激光点云数据进行分类和下采样完成后,把所有的点按照其定义的类型重新组织,其中point代表点云中某点,Autoware对每个点进行唯一编号,包含经纬高blh和平面xy坐标。【防盗标记–盒子君hzj】之后根据分类好的元素,按照line、vector、area分别组织数据
2、元素分类
定义于src/autoware/core_planning/lane_planner/include/lane_planner/lane_planner_vmap.hpp。用于储存决策规划所需要的部分矢量地图要素数据
struct VectorMap
{
std::vector<vector_map::Point> points;
std::vector<vector_map::Lane> lanes;
std::vector<vector_map::Node> nodes;
std::vector<vector_map::StopLine> stoplines;
std::vector<vector_map::DTLane> dtlanes;
};
Autoware将激光点云数据进行分类和下采样完成后,把所有的点按照其定义的类型重新组织
1)vector_map::Point【位于src/autoware/messages/vector_map_msgs/msg/Point.msg】
2)vector_map::Lane【位于src/autoware/messages/vector_map_msgs/msg/Lane.msg】
3)vector_map::Node【位于src/autoware/messages/vector_map_msgs/msg/Node.msg】
4)vector_map::StopLine【位于src/autoware/messages/vector_map_msgs/msg/StopLine.msg】
5)vector_map::DTLane【位于src/autoware/messages/vector_map_msgs/msg/Line.msg】
1、点元素(point.csv\node.csv\dtlane.csv)
(1)点元素(point.csv)格式说明
point.csv中存储了地图中所有点元素的几何位置属性,【防盗标记–盒子君hzj】包括路径节点node、路径特征补充节点dtlane、线状面状端点
格式说明如下:
point点的属性如下:
1、通常point点相隔1米分布
2、point点为属性变更点或者多条lane规划线的链接节点
(2)点元素(node.csv)格式说明
Node是地图生成车道lane的元素,是车道lane元素的节点,【防盗标记–盒子君hzj】node节点相连形成了车道lane。在绘制地图时,绘制一个node后会在point.csv中存储几何及位置信息,node.csv与point.csv通过PID相链接
(3)点元素(dtlane.csv)格式说明
Dtlane是对车道元素lane的几个形状特征的补充元素,在绘制地图时【防盗标记–盒子君hzj】,绘制一个Dtlane后会在point.csv中存储几何及位置信息,node.csv与point.csv通过PID相链接
2、车道元素(lane.csv)
(1)车道元素(lane.csv)格式说明
lane是车道元素,地图中的lane代表小车形式的轨迹路径,一般是道路的中心线,在显示道路中是没有的,是靠人为规划出来的
其中,node为路径lane的节点,【防盗标记–盒子君hzj】所以每段lane的长度即是before node和forward node之间的距离
lane代表了地图中所有可通行的路径,在绘制时要把所有可以通行的情况绘制清楚
3、线元素(line.csv\whiteline.csv\stopline.csv)
(1)线元素(line.csv)格式说明
line.csv储存了所有线元素的基本属性
(2)线元素(whiteline.csv)格式说明
Whiteline是车道线,即是真是存在的线,如道路上的白线、黄线、双黄线、虚白线(导流线)等等
4、杆元素
5、面元素(area.csv/crosswalk.csv/road_surface_mark.csv)
(1)面元素(area.csv)格式说明
area储存了所有的面元素的基本属性,area由点point和线line组成,端点信息储存在point.csv中,边线信息储存在line.csv中【防盗标记–盒子君hzj】
其中,面元素包括:人行横道区域(crosswalk.csv)、斑马线区域(zebrazone.csv)、道路标志(road surface_mark.csv)、下水井盖区域(gutter.csv)
格式说明如下:
(2)面元素(crosswalk.csv)格式说明
格式说明如下:
(3)面元素(road surface_mark.csv)格式说明
格式说明如下:
3、元素关系图例
(1)点元素和lane元素的关系
Point、node、dtlane、lane是矢量地图vector的四个必要元素,缺一不可。使用该四种元素就可以构建一个最简单的高精度地图,【防盗标记–盒子君hzj】把地体导入autoware系统中进而实现路径规划仿真极真车操作但由于元素比较少,对于道路的停止线、红绿灯、等更复杂的路面无法满足自动驾驶的操作,还需要更多的元素
(1)全局地图的建立(用于路径巡航)
三维雷达通过SLAM建立三维稠密点云全局地图,通过arcmap或者mapinfo等工具,将栅格数据的地图路网、POI数据和三维稠密点云地图进行矢量化绘制在矢量地图,【防盗标记–盒子君hzj】矢量地图提供相关.csv文件给全局规划用,一般用于巡航
(2)局部地图的建立(用于轨迹规划)
三维雷达建立稠密点云局部地图,局部点云地图生成八叉树代价地图给三维局部规划,点云地图压缩成二维点云地图进而生成栅格代价地图给局部规划,【防盗标记–盒子君hzj】一般用于道路级的任务规划(换道,返航,停障,避障等等)
Lane.csv文件经过多层处理得到的结果是约1米的waypoint,waypoint包含位置和速度两个信息【防盗标记–盒子君hzj】
方法一:Rosbag store中有很多传感器数据集需要付费进行使用,复杂开发的时候要给钱了
方法二:自己搭ros的仿真环境,【防盗标记–盒子君hzj】获取传感器数据