一、视觉
1.图像处理
image_processor
图像校正image_rectifier
图像旋转image_rotator
2.检测
vision_darknet_detect
模型包括单阶段的YOLOv2和YOLOv3,并提供COCO数据机上训练的权重
要求安装Nidia gpu &cuda
vision_ssd_detect
模型是单阶段的SSD
基于Caffe
vision_lane_detect
基于OpenCV实现的车道线检测
基于Google的实现opencv-lane-vehicle-track
trafficlight_recognizer
交通信号灯识别
将地图中交通信号灯投影到图像上,然后用SSD等模型识别
3、分割
vision_segment_enet_detect
模型是ENet,一个计算量小,参数少的高效网络
基于Caffe
4、跟踪
vision_beyond_track
多目标跟踪方法BeyondPixels
二、Lidar点云
点云处理
point_downsampler
点云降采样(distance filter,random filter,ring filter,voxel grid filter)
points_preprocessor
cloud_transformer:点云坐标转换
compare_map_filter:对比激光雷达点云和点云地图,然后提取或者去除一致的点
points_concat_filter:合并点云
ray_ground_filter:地面滤波
ring_ground_filter:地面滤波
space_filter:点云裁切
三、配准
1、
ndt_cpu在cpu上运行ndt算法
ndt_gpu在gpu上运行ndt算法
ndt_tku
pcl_omp_registration
2、检测
lidar_euclidean_cluster_detect
从点云中检测独立目标,根据邻近程度,将点聚类并发布出去
lidar_native_i_shape_detect
L-Shape fitting算法,对聚类的点云拟合边界框
lidar_shape_estimation
L-shape fitting算法
lidar_apollo_cnn_seg_detect
基于百度Aplool的object segmenter
lidar_point_pillars
模型是Point Pillars进行3D目标检测
四、跟踪
1、
imm_ukf_pda_track/ lidar_imm_ukf_pda_track
要求
eucledian_cluster节点
ray_groud_filter节点
/tf话题
vectormap中的wayarea信息
2、lidar_kf_contour_track
基于kalman Filter的目标跟踪
三种跟踪选项
五、检测融合
pixel_cloud_fusion将图像色彩信息赋予点云(数据级融合):将点云投影到图像,提取到图像RGB信息,反投影到LiDAR空间,发布着色点云。
要求:相机内参,相机-激光雷达外参,校正图像
range_vision_fusion
匹配图像2D检测和点云3D检测,将2D检测类别信息赋予3D检测(决策级融合)
输入:相机内参,相机=激光雷达外参,相机和激光雷达的检测结果
五、定位模块
GNSS数据
定位模块使用的传感器包括gnss、lidar、车身can
lidar_localizer
使用来自LiDAR的扫描数据和预先安装的3D地图信息,计算车辆在全球坐标中的自我定位。
gnss_localizer
将NMEA消息从GNSS接收器转换到x,y,z,roll,pitch,yaw位置。该结果可以单独用作自我车辆的位置。也可以用于初始化和补充lidar_localizer的结果。
ekf_localizer
融合lidarlocalizer系统的姿态/ndt_pose和车odom反馈的车速/can_twist,状态变量为x,y,yaw,yaw_bias,vs,wz,通过EKF滤波输出组合后的位姿。
六、NDT Matching原理
基于一种成称为正态分布变换NDT的技术,用于空间数据表示和配准的技术。连续空间划分为若干个小的网格。
七、决策规划模块解析
1、决策
2、路径规划
3、轨迹生成
4、执行与反馈
5、core_planning 包含了Decision和规划Planning
决策模块在感知perception和规划planning模块中间。
6、decision_maker
位于文件夹src/autoware/core_planning下,主要是车辆的逻辑决策、包括状态转换,针对交叉路口与紧急情况的处理逻辑,车辆位置和路线判断相关的逻辑。
enteryMisssionInitState和updateMissonInitState。包含了等待和处理基于车道行点的任务指令逻辑,显示了与任务管理和执行相关的复杂交互。
7、Mission任务-decision_maker_node_state_mission.cpp:
mission层处理长期规划和车辆行程的总体目标。如人物初始化和等待人物指令。
文件中逻辑可能包括处理任务的开始和结束,比如检测和管理基于车道的航点信息,以及在接收到新任务时更新状态。
8、Behavior行为-decision_maker_node_state_motion.cpp
专注于车辆在特定情景下即时行为和决策。
9、Motion运动-decision_maker_node_state_motion.cpp
设计车辆的具体控制和即时运动调整,如准备驾驶状态,处理紧急状态和执行驾驶操作。
10、op_global_planner
路径规划系统的一部分,专门负责生成车辆从当前位置到目标位置的全局路径。
11、Freespace Planner提供了全局规划器节点,这些节点能够存在静态/动态障碍物的空间中规划航点。
aster_navi是基于astat_search包中的混合A*搜索算法的全局路径规划器,该节点以恒定周期执行规划并发布lane_waypoins_array
12、waypoint_planner模块是核心规划系统的一个关键组成部分,专门负责生成和管理车辆的行使路线。{接收全局路径,生成细化的Waypoints,速度规划,适应性调整,平滑路径跟踪,动态速度控制,与环境互动,支持复杂驾驶任务、状态空间扩展,启发式函数,碰撞检测,高效性,适应性,灵活性}
13、waypoint_planner模块的输入和输出
14、mpc_follower模型预测控制算法,是一种高级的过程控制策略,应用于工业和汽车控制系统。{1、动态模型2、预测3、优化4、控制输入的应用5、回馈和循环}