autoware各模块节点功能简介

 

目录

 

Autoware主要流程:

各节点功能简介

        lidar_localizer

        gnss_localizer

        dead_reckoner

Detection(检测)

        lidar_detector

        vision_detector

        vision_tracker

        fusion_detector

        fusion_tools

        lidar_tracter

Prediction(预测)

        naive_motion_predict

​​​​​​​Decision(决策)

        Decision_maker

        state_machine

​​​​​​​Mission Planning(任务规划)

        route_planner

        lane_planner

        waypoint_planner

        waypoint_maker

​​​​​​​Motion Planning(运动规划)

        velocity_planner

        astar_planner

        adas_lattice_planner

        waypoint_follower


autoware各模块节点功能简介_第1张图片

Autoware主要流程:

1.Sensing模块利用各种传感器采集真实世界的各类数据

2.首先基于3D点云地图,利用雷达等传感器采集到的数据通过localization模块进行定位,然后detection模块主要检测当前场景下存在的障碍物,如车辆、行人等,然后predition模块对检测到的障碍物预测未来运动,以达到提前避让的效果

3.decision(决策模块)根据感知模块感知的结果,Autoware决策一个由有限状态机表示的驾驶行为,可以根据当前状态选择合适的计划功能

4.planning(规划模块)根据当前决策的起始点和目标点,采用mossion模块和motion模块计算出一条路径

5.Actuation模块表示驱动器模块,接受planning模块计算出的结果,然后经过驱动器控制小车运动

各节点功能简介

Localization(自定位)

        lidar_localizer

lidar_localizer使用LIDAR的扫描数据和预先构建的地图信息,计算车辆当在全局坐标的当前位置(x,y,z,roll,pitch,yaw)。autoware使用正态分布变换(NDT)算法来匹配激光雷达当前帧和3D map。

        gnss_localizer

gnss_localizer将NMEA消息从GNSS接收器转换到(x,y,z,roll,pitch,yaw)位置。该结果可以单独用作车辆的位置,也可以用于车辆的初始化位置和对lidar_localizer车辆位置的补充修正。

        dead_reckoner

dead_reckoner主要使用IMU传感器预测车辆的下一帧位置,也可以用来对lidar_localizar和gnss_localizar的结果进行插值。

Detection(检测)

        lidar_detector

从激光雷达单帧扫描读取点云信息,提供基于激光雷达的目标检测。主要使用欧几里德聚类算法,从地面以上的点云得到聚类结果。除此之外,可以使用基于卷积神经网络的算法进行分类。

        vision_detector

读取来自摄像头的图片,提供基于图像的目标检测。主要的算法包括R-CNN,SSD和YOLO,可以进行多类别(汽车,行人等)实时目标检测。

        vision_tracker

对vision_detector的检测结果完成目标跟踪功能。算法基于Beyond Pixels,图像上的目标跟踪结果被投影到3D空间,结合lidar_detector的检检测结果输出最终的目标跟踪结果。

        fusion_detector

输入激光雷达的单帧扫描点云或者摄像头的图片信息,在3D空间中实现更准确的目标检测。激光雷达的位置和摄像头的位置需要提前进行联合标定,现在主要是基于MV3D算法来实现。

        fusion_tools

将lidar_detector和vision_detector的检测结果进行融合,将vision_detector的识别类别信息添加到lidar_detector的聚类结果上。

        lidar_tracter

预测检测目标的下一步位置,跟踪的结果可以被进一步用于目标行为分析和目标速度分析。跟踪算法主要是基于卡尔曼滤波器。

​​​​​​​Prediction(预测)

        naive_motion_predict

使用lidar_tracter的结果来进一步预测物体的运动方向和预测的道路。 

​​​​​​​Decision(决策)

        Decision_maker

Decision_maker订阅了大量的感知结果、地图信息和当前状态有关的话题,以便发布下一时刻的状态,状态更改将影响planning规划结果

        state_machine

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

​​​​​​​Mission Planning(任务规划)

        route_planner

用于寻找从起始点到目标点的全局路径,该路径由道路网中的一系列十字路口组成。

        lane_planner

根据route_planner发布的一系列十字路口结果,确定全局路径是由哪些lane组成,lane是由一系列的waypoint点组成。

        waypoint_planner

用于产生到达目标点的一系列waypoint点,它与lane_planner不同的地方在于,它发布的是单一到达目标点的waypoint路径,而lane_planner是发布到达目标点的一系列 waypoint数组。

        waypoint_maker

是一个用于保存和加载手动制作的waypoint路径点文件的工具。车辆行驶过程中的路径分解成一系列的定位点信息和速度信息,储存汇总成为一个路径文件,加载该路径文件可以发布路径点信息给规划模块,使车辆沿着该路径行驶。

​​​​​​​Motion Planning(运动规划)

        velocity_planner

更新车辆速度信息,注意到给定跟踪的waypoint里面是带有速度信息的,这个模块就是根据车辆的实际状态进一步修正速度信息,以便于实现在停止线前面停止下来或者加减速等等。

        astar_planner

实现Hybrid-State A查找算法,生成从现在位置到指定位置的可行轨迹,这个模块可以实现避障,或者在给定waypoint下的急转弯,也包括在自由空间内的自动停车。

        adas_lattice_planner

实现了State Lattice规划算法,基于样条曲线,事先定义好的参数列表和语义地图信息,在当前位置前方产生了多条可行路径,可以被用来进行障碍物避障或车道线换道。

        waypoint_follower

这个模块实现了 Pure Pursuit算法来实现轨迹跟踪,可以产生一系列的控制指令来移动车辆,这个模块发出的控制消息可以被车辆控制模块订阅,或者被线控接口订阅,最终就可以实现车辆自动控制。

你可能感兴趣的:(算法,自动驾驶)