目录
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
1.Sensing模块利用各种传感器采集真实世界的各类数据
2.首先基于3D点云地图,利用雷达等传感器采集到的数据通过localization模块进行定位,然后detection模块主要检测当前场景下存在的障碍物,如车辆、行人等,然后predition模块对检测到的障碍物预测未来运动,以达到提前避让的效果
3.decision(决策模块)根据感知模块感知的结果,Autoware决策一个由有限状态机表示的驾驶行为,可以根据当前状态选择合适的计划功能
4.planning(规划模块)根据当前决策的起始点和目标点,采用mossion模块和motion模块计算出一条路径
5.Actuation模块表示驱动器模块,接受planning模块计算出的结果,然后经过驱动器控制小车运动
Localization(自定位)
lidar_localizer使用LIDAR的扫描数据和预先构建的地图信息,计算车辆当在全局坐标的当前位置(x,y,z,roll,pitch,yaw)。autoware使用正态分布变换(NDT)算法来匹配激光雷达当前帧和3D map。
gnss_localizer将NMEA消息从GNSS接收器转换到(x,y,z,roll,pitch,yaw)位置。该结果可以单独用作车辆的位置,也可以用于车辆的初始化位置和对lidar_localizer车辆位置的补充修正。
dead_reckoner主要使用IMU传感器预测车辆的下一帧位置,也可以用来对lidar_localizar和gnss_localizar的结果进行插值。
从激光雷达单帧扫描读取点云信息,提供基于激光雷达的目标检测。主要使用欧几里德聚类算法,从地面以上的点云得到聚类结果。除此之外,可以使用基于卷积神经网络的算法进行分类。
读取来自摄像头的图片,提供基于图像的目标检测。主要的算法包括R-CNN,SSD和YOLO,可以进行多类别(汽车,行人等)实时目标检测。
对vision_detector的检测结果完成目标跟踪功能。算法基于Beyond Pixels,图像上的目标跟踪结果被投影到3D空间,结合lidar_detector的检检测结果输出最终的目标跟踪结果。
输入激光雷达的单帧扫描点云或者摄像头的图片信息,在3D空间中实现更准确的目标检测。激光雷达的位置和摄像头的位置需要提前进行联合标定,现在主要是基于MV3D算法来实现。
将lidar_detector和vision_detector的检测结果进行融合,将vision_detector的识别类别信息添加到lidar_detector的聚类结果上。
预测检测目标的下一步位置,跟踪的结果可以被进一步用于目标行为分析和目标速度分析。跟踪算法主要是基于卡尔曼滤波器。
使用lidar_tracter的结果来进一步预测物体的运动方向和预测的道路。
Decision_maker订阅了大量的感知结果、地图信息和当前状态有关的话题,以便发布下一时刻的状态,状态更改将影响planning规划结果
state_machine预先定义的规则范围内改变状态,编排decision_maker。
用于寻找从起始点到目标点的全局路径,该路径由道路网中的一系列十字路口组成。
根据route_planner发布的一系列十字路口结果,确定全局路径是由哪些lane组成,lane是由一系列的waypoint点组成。
用于产生到达目标点的一系列waypoint点,它与lane_planner不同的地方在于,它发布的是单一到达目标点的waypoint路径,而lane_planner是发布到达目标点的一系列 waypoint数组。
是一个用于保存和加载手动制作的waypoint路径点文件的工具。车辆行驶过程中的路径分解成一系列的定位点信息和速度信息,储存汇总成为一个路径文件,加载该路径文件可以发布路径点信息给规划模块,使车辆沿着该路径行驶。
更新车辆速度信息,注意到给定跟踪的waypoint里面是带有速度信息的,这个模块就是根据车辆的实际状态进一步修正速度信息,以便于实现在停止线前面停止下来或者加减速等等。
实现Hybrid-State A查找算法,生成从现在位置到指定位置的可行轨迹,这个模块可以实现避障,或者在给定waypoint下的急转弯,也包括在自由空间内的自动停车。
实现了State Lattice规划算法,基于样条曲线,事先定义好的参数列表和语义地图信息,在当前位置前方产生了多条可行路径,可以被用来进行障碍物避障或车道线换道。
这个模块实现了 Pure Pursuit算法来实现轨迹跟踪,可以产生一系列的控制指令来移动车辆,这个模块发出的控制消息可以被车辆控制模块订阅,或者被线控接口订阅,最终就可以实现车辆自动控制。