Autoware

参考https://github.com/autowarefoundation/autoware/wiki/Overview

概述

图片.png

感知

Autoware的感知能力由本地化,检测和预测组成。通过3D地图和SLAM算法结合GNSS和IMU传感器实现定位。检测使用具有传感器融合算法和深度神经网络的相机和LiDAR。预测基于本地化和检测的结果。以下是Autoware提供的突出显示的软件包和功能。

定位

1.lidar_localizer使用来自LiDAR的扫描数据和预先安装的3D地图信息,计算自我车辆在全局坐标中的(x,y,z,滚动,俯仰,偏航)位置。我们建议使用正态分布变换(NDT)算法进行LiDAR扫描与3D地图的匹配,同时还支持迭代衣柜点(ICP)算法。
2.gnss_localizer将NMEA消息从GNSS接收器转换为(x,y,z,roll,pitch,yaw)位置。该结果可以单独用作自我载体的位置,同时它也可以用于初始化和补充lidar_localizer的结果。
3.dead_reckoner主要使用IMU传感器来预测自我车辆的下一帧位置,并插入lidar_localizer和gnss_localizer的结果。

感知

1.lidar_detector从3D激光扫描仪读取点云数据,并提供基于LiDAR的物体检测功能。基本性能来自欧几里德聚类算法,该算法在地面上找到LiDAR扫描(点云)的聚类。为了对集群进行分类,还支持基于DNN的算法,例如VoxelNet和LMNet。
2.vision_detector从摄像机读取图像数据,并提供基于图像的对象检测功能。主要算法包括R-CNN,SSD和Yolo,它们旨在执行单个DNN以实现实时性能。支持多种检测,例如汽车和乘客。
3.vision_tracker提供的结果的跟踪功能vision_detector。该算法基于Beyond Pixels。通过fusion_tools投影在图像平面上的跟踪结果并将其与2D空间中的lidar_detector的结果相结合。
4.fusion_detector读取来自激光扫描仪的点云数据和来自摄像机的图像数据,并在3D空间中实现更精确的物体检测。必须事先校准激光扫描仪和相机的位置。当前实现基于MV3D算法,与原始算法相比具有较小的网络扩展。
5.fusion_tools结合了lidar_detector和vision_tracker的结果。由vision_detector标识的类信息被添加到lidar_detector检测到的点云集群中。
6.object_tracker预测由上述包检测和识别的对象的运动。跟踪的结果可以进一步用于预测对象行为和估计对象速度。跟踪算法基于卡尔曼滤波器。另一种变体也支持粒子滤波器。

预测

1.object_predictor使用上述对象跟踪的结果来预测移动物体(例如汽车和乘客)的未来轨迹。
2.collision_predictor使用object_predictor的结果来预测自我车辆是否涉及与移动物体的可能碰撞。除了目标跟踪的结果之外,还需要航点轨迹和自我车辆的速度信息作为输入数据。
3.cutin_predictor使用与collision_predictor相同的信息来预测邻居汽车是否在自我车辆的前方切割。

决策

Autoware的决策模块跨越感知和规划模块。根据感知结果,Autoware决定由有限状态机表示的驾驶行为,以便可以选择适当的计划功能。目前的决策方法是基于规则的系统。

1.decision_maker订阅与感知结果,地图信息和当前状态相关的大量主题,以便发布下一时刻的状态主题。此状态更改将激活适当的计划功能。
2.state_machine
更改预定义规则中的状态,用decision_maker进行编排。

规划

Autoware的最后一项计算是计划模块。该模块的作用是根据感知和决策模块的结果制定全球任务和局部(时间)运动的计划。通常在自我车辆启动或重新启动时确定全局任务,而根据状态变化更新本地运动。例如,如果Autoware的状态被设置为“停止”,则计划在具有安全裕度的物体前面或在停止线处将自我车辆的速度变为零。另一个例子是,如果Autoware的状态被设置为“避免”,则计划自我车辆的轨迹绕过障碍物。规划模块中包含的主要包包括以下内容。

任务

1.route_planner搜索到目的地的全局路由。路线由道路网络中的一组交叉点表示。
2.lane_planner确定要与route_planner发布的路由一起使用的通道。这些车道由一个航点阵列表示,即多个航路点,每个航路点对应一条车道,由该航天器公布。
3.waypoint_planner可以替代地用于生成到目的地的一组航路点。这个包与lane_planner的不同之处在于它发布了一个航路点,而不是一个航点数组。
4.waypoint_maker是一个实用工具,用于保存和加载手工制作的航点。要将航点保存到指定文件,您可以在激活本地化时手动驾驶车辆,并且Autoware会使用速度信息记录行驶路径的航点。记录的航点可以稍后从指定的文件加载,以使运动规划模块订阅它们以遵循该路径。

运动

1.velocity_planner更新从lane_planner, waypoints_planner或waypoints_maker * 订购的航路点上的速度计划,以便加速/升级周围的车辆和道路功能,如停车线和交通灯。注意,嵌入在给定航点中的速度信息是静态的,而该包根据驾驶场景更新速度计划。
2.astar_planner实现混合状态A *搜索算法,该算法生成从当前位置到指定位置的可行轨迹。该套件可用于避障和在给定航点上的急转弯以及在诸如停车场的自由空间中的路线。
3.adas_lattice_planner实现State Lattice规划算法,该算法基于样条曲线,预定义参数表和ADAS Map(又名矢量图)信息在当前位置之前生成多个可行轨迹。该包装主要用于避障和车道变换。
4.waypoint_follower实现Pure Pursuit算法,该算法生成一组扭曲的速度和角速度(或仅角度),以通过均匀的圆周运动将自我车辆移动到给定航路点上的目标航路点。此包应与velocity_planner,astar_planner和/或adas_lattice_planner结合使用。公布的扭曲速度和角速度(或仅角度)组将由车辆控制器或线控接口读取,最后自动控制自我车辆。

输出

Autoware的计算输出是一组速度,角速度,车轮角度和曲率。这些信息作为命令通过车辆接口发送给线控控制器。控制转向和节流阀需要由线控控制器来处理。

你可能感兴趣的:(Autoware)