当前位置:   article > 正文

autoware概述以及主要框架各个模块的介绍_autoware cutin_predictor

autoware cutin_predictor

 

一、autoware主体框架

autoware主要包括sensing、computing(perception、decision、planning)、actuation等几个部分,如下图所示。

  1. 其中sensing模块对应的是各类传感器对真实世界中各类数据的采样,例如camera采样图像、LiDAR采样激光点云等,采样数据属于未处理的原始数据,需要输入到computing模块进行计算处理
  2. computing模块主要是为了对传感器采样的原始数据进行加工处理,最后以为实现安全高效的导航为目的,将规划结果输出给actuation模块。其中computing模块主要分为三个小模块
    1. perception(感知模块),这部分要处理localization(通过车辆当前采集传感器数据和已有地图进行自身定位,ps若无地图需要通过SLAM构建地图),然后detection模块负责检测周围与车辆有场景交互的非自身个体(车辆、行人等),prediction模块会对检测初得物体进行未来预测估计,以便提前规划防止碰撞。
    2. decision(决策模块),根据之前感知的结果,Autoware决策一个由有限状态机表示的驾驶行为,以便可以选择适当的计划功能。当前的决策方法是基于规则的系统。
    3. planning(规划模块),主要是根据决策和起始点和目标点,采用mission和motion模块可以计算出一条kinodynamic的路径
  3. actuation模块,表示驱动器模块,如YMC驱动器等,接收planning模块出来的规划结果,经历驱动器实现驱动控制。

其各个模块都有对应不同的ros节点,如下图所示

二、各个模块节点的功能简介

1、localization(自定位)

  • lidar_localizer使用来自LiDAR的扫描数据和预先安装的3D地图信息,计算车辆在全球坐标中的自我定位(x,y,z,侧倾,俯仰,偏航)位置。对于与3D地图匹配的LiDAR扫描,我们建议使用正态分布变换(NDT)算法,同时还支持ICP算法。
  • gnss_localizer将NMEA消息从GNSS接收器转换到(x,y,z,roll,pitch,yaw)位置。该结果可以单独用作自我车辆的位置,也可以用于初始化和补充lidar_localizer的结果。
  • dead_reckoner主要使用IMU传感器预测自我车辆的下一帧位置,并内插lidar_localizergnss_localizer的结果。

2、detection(检测)

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

3、prediction(预测)

  • object_predictor使用上述对象跟踪的结果来预测运动对象(例如汽车和乘客)的未来轨迹。
  • crash_predictor使用object_predictor的结果来预测自我车辆是否与运动中的物体发生碰撞。除了对象跟踪的结果之外,还需要自我车辆的航路轨迹和速度信息作为输入数据。
  • cutin_predictor使用与collision_predictor相同的信息来预测相邻车辆是否在自我车辆的前方切入。

4、Decision(决策)

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

4.1 Intelligence

  • Decision_maker订阅了大量与感知结果、地图信息和当前状态有关的topic,以便发布下一刻的状态topic。状态更改将激活适当的planning功能。

4.2 state

  • state_machine预先定义的规则范围内改变状态,编排decision_maker

5、planning(规划)

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

5.1 mission

  • route_planner搜索到目的地的全局路线。路线由路网中的一组交叉路口表示。
  • lane_planner确定要使用哪些车道以及route_planner发布的路线。车道由一组路标表示,即,多个路标(每个路标对应于一个车道)由此程序包发布。
  • waypoint_planner可以替代地用于生成到目的地的一组路标。该程序包与lane_planner的不同之处在于,它发布的是单条路线的中间点,而不是中间点的数组。
  • waypoint_maker是保存和加载手工waypoint的实用工具。要将航路点保存到指定的文件,您可以在激活localization后手动驾驶车辆,并且Autoware会使用速度信息记录行驶路径的waypoint。以后可以从指定的文件中加载已记录的waypoint,以使运动规划模块订阅它们以遵循该路径。

5.2 motion

  • velocity_planner更新从lane_plannerwaypoints_plannerwaypoints_maker *订阅的waypoint的速度计划,以加快/加速周围车辆和道路要素( 例如停车线和交通信号灯)的速度。请注意,嵌入在给定航路点中的速度信息是静态的,而此程序包会根据驾驶场景更新速度计划。
  • astar_planner实现了混合状态A *搜索算法,该算法生成从当前位置到指定位置的可行轨迹。该软件包可用于避开障碍物和在给定的waypoint上急转弯,以及在诸如停车场等自由空间中进行选路。
  • adas_lattice_planner实现了状态格规划算法,该算法基于样条曲线,预定义的参数表和ADAS map(也称为矢量地图)信息在当前位置之前生成多个可行轨迹。该软件包主要用于避障和变道。
  • waypoint_follower实现了Pure Pursuit算法,该算法生成一组扭曲的速度和角速度(或正角度),以通过匀速圆周运动将自我车辆移动到给定航路点上的目标waypoint。该软件包应与velocity_plannerastar_planner和/或adas_lattice_planner结合使用。所发布的速度和角速度(或角度)的扭曲集合将由车辆控制器或线控界面读取,并且最终自动控制自主车辆。

三、参考:

https://github.com/Autoware-AI/autoware.ai/wiki/Overview

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/132018
推荐阅读
  

闽ICP备14008679号