一起自学SLAM算法:12.3 autoware导航系统

连载文章,长期更新,欢迎关注:


写在前面

第1章-ROS入门必备知识

第2章-C++编程范式

第3章-OpenCV图像处理

第4章-机器人传感器

第5章-机器人主机

第6章-机器人底盘

第7章-SLAM中的数学基础

第8章-激光SLAM系统

第9章-视觉SLAM系统

第10章-其他SLAM系统

第11章-自主导航中的数学基础

第12章-典型自主导航系统

        12.1 ros-navigation导航系统

        12.2 riskrrt导航系统

        12.3 autoware导航系统

        12.4 导航系统面临的一些挑战

第13章-机器人SLAM导航综合实战


上面介绍的ros-navigation和riskrrt导航系统主要都是用于机器人的低速导航,并且大多基于2D地图。而autoware导航系统主要用于无人驾驶汽车的高速导航,并且基于3D地图。除了所导航速度高一点和采用3D地图外,autoware的原理几乎与ros-navigation一样,因此下面主要针对autoware的架构做简单分析,其他内容就不再深入展开了。

虽然autoware导航系统主要应用于无人驾驶汽车领域,但整个框架也依然是基于ROS开发的,autoware框架同样也是由定位、感知识别、路径规划等主要模块组成,如图12-15所示。定位模块借助多种定位算法以及传感器融合来提供混合定位信息;感知识别模块利用计算机视觉或深度神经网络对3D激光雷达和相机中的目标物体进行识别(比如车辆识别、行人识别、交通信号灯识别等),并基于卡尔曼滤波算法对识别出来的物体进行目标跟踪;路径规划模块利用3D地图、定位、目标识别等信息进行路径规划,路径规划过程还需要考虑一些先验规则(比如交通规则),规划器输出的线速度和角速度控制量直接用于控制车辆运动。

图12-15  autoware系统框架

其中感知识别模块的内部结构如图12-16所示,首先利用计算机视觉或者深度神经网络从3D激光雷达以及相机中识别出目标物体(比如车辆、行人、交通信号灯等),然后利用3D地图信息、定位信息、目标物体等进行融合实现对目标物体的追踪,并实时输出被追踪目标物体在地图中的位姿、状态、移动速度等信息。

图12-16  感知识别模块

定位模块的内部结构如图12-17所示,无人汽车的全局位姿由多种定位算法融合而来,这些定位算法包括激光SLAM(即NDT)、视觉SLAM(ORB_SLAM)、组合导航(GNSS+IMU)等。不管是激光SLAM还是视觉SLAM,都需要先运行SLAM建图模式构建出一张地图,然后再载入该地图进行SLAM重定位。对于轮式里程计(odometer)、IMU、GNSS、相机、激光雷达等传感器,除了在SLAM中进行融合外,它们之间也有一些特殊的融合处理过程,也就是说多传感器融合的形式很丰富。

图12-17  定位模块

路径规划模块的内部结构如图12-18所示,其实也就是全局路径规划和轨迹跟踪。只不过需要额外考虑一些约束,比如交通规则约束、避让车辆、避让行人等。对于电动汽车来说,路径规划模块输出的线速度和角速度控制量可以直接用于操控汽车。而对于燃油汽车的话,就需要有一套电子控制转机械控制的中间装置,负责将路径规划模块输出的线速度和角速度控制量转换成汽车的方向盘和油门控制量。

图12-18  路径规划模块 

对于autoware的应用来说,也与ros-navigation类似。先通过源码方式编译安装autoware,然后按照官方教程配置启动。autoware运行起来的定位、感知识别、路径规划以及轨迹跟踪的效果,分别如图12-19、12-20和12-21所示。

 图12-19  定位效果

 图12-20  感知识别效果

 图12-21  路径规划与轨迹跟踪效果

源码仓库

参考文献

【1】 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.

猜你喜欢

转载自blog.csdn.net/m0_68732180/article/details/128794181
今日推荐