Back to Apollo

README Cn

collection/prediction/README_cn.md

11.0.013.1 KB
Original Source

预测模块概述

预测模块是Apollo自动驾驶系统的重要组成部分,负责预测感知输出的障碍物未来的运动轨迹。

轨迹预测的上游模块是感知,定位,场景,地图,规划模块,预测模块通过消息队列进行数据和信息的获取:

感知 :预测模块必需的信息,提供障碍物的位置,长宽高等基本的特征。

定位 :获取本车的位置信息,并处理成序列,作为普通的一条轨迹,参与到障碍物的轨迹预测中。

场景 :获取场景信息,不同的场景对应不同的评估器和预器。

地图 :提供道路信息的编码。

规划 :规划信息,参与到障碍物车辆的轨迹预测中,部分场景下有效。

预测模块的下游模块是规划模块。预测内部有容器(Container),场景(Scenario)、评估器(Evaluator)和预测器(Predictor)等子模块。在容器内,获取相关模块的消息后,需要对各个模块的消息进行加工,feature.proto中定义了预测模块需要完成的数据结构;在评估器(Evaluator)和预测器(Predictor)中是行为/轨迹预测的pipline,通过各种神经网络(Vectornet、Semantic LSTM、RNN、MLP等)对障碍物未来行为/轨迹进行预测,输出障碍物未来N秒的轨迹点。

Channel+消息格式

输入消息

消息名称通道名称功能
apollo::localization::LocalizationEstimate/apollo/localization/pose定位消息通道
apollo::perception::PerceptionObstacles/apollo/perception/obstacles感知输出障碍物消息通道
apollo::planning::ADCTrajectory/apollo/planningplanning消息通道
apollo::storytelling::Stories/apollo/storytelling场景消息通道

输出消息

消息名称通道名称功能
apollo::prediction::ADCTrajectoryContainer/apollo/prediction/adccontainer主车container通道
apollo::prediction::SubmoduleOutput/apollo/prediction/container子模块container通道
apollo::prediction::SubmoduleOutput/apollo/prediction/evaluator子模块evaluator通道
apollo::perception::PerceptionObstacles/apollo/prediction/perception_obstacles障碍物消息通道
apollo::prediction::PredictionObstacles/apollo/prediction障碍物未来轨迹通道

参数

glags文件路径:modules/prediction/common/prediction_gflags.cc

参数类型参数名默认值含义
doubleprediction_trajectory_time_length6.0预测轨迹时间长度
doubleprediction_trajectory_time_resolution0.1预测轨迹时间分辨率
doublemin_prediction_trajectory_spatial_length100.0最小空间长度
boolenable_trajectory_validation_checkfalse是否验证轨迹的有效性
boolfree_move_predict_with_acceleratefalsefreemove predictor是否使用加速度
doublevehicle_max_linear_acc4.0车辆线性加速度的上边界
doublevehicle_min_linear_acc-4.0车辆线性加速度的下边界
doublevehicle_max_speed35.0车辆最大速度
doublemax_tracking_time0.5障碍物最大tracking时间
doublemax_tracking_dist3.0障碍物最大tracking距离
doublelane_search_radius3.0lane搜索半径
doublelane_search_radius_in_junction15.0junction内的lane搜索半径
doublejunction_search_radius1.0junction搜索半径
doublepedestrian_nearby_lane_search_radius5.0判断是否行人在lane附近的搜索半径
int32road_graph_max_search_horizon20用来构建路网的最大搜索深度
doublesurrounding_lane_search_radius3.0周围lane的搜索半径
doublebase_image_half_range100.0base image的一半距离
boolenable_draw_adc_trajectorytrue是否在semantic map中绘制主车轨迹
boolimg_show_semantic_mapfalse是否展示semantic map图像
doublejunction_distance_threshold10.0junction距离阈值
boolenable_all_junctionfalse是否使用junction_mlp_model处理所有的junction
boolenable_all_pedestrian_caution_in_frontfalse如果true,主车前方所有行人都是caution
boolenable_rank_caution_obstaclestrue是否对所有caution级别的障碍物进行排序
boolenable_rank_interactive_obstaclestrue是否对交互的障碍物进行排序
int32caution_obs_max_nums6caution目标最大数量
doublecaution_distance_threshold60.0caution目标的距离阈值
doublecaution_search_distance_ahead50.0前方搜索caution目标的距离阈值
doublecaution_search_distance_backward50.0后方搜索caution目标的距离阈值
doublecaution_search_distance_backward_for_merge60.0merging时后方搜索caution目标的距离阈值
doublecaution_search_distance_backward_for_overlap30.0overlap时后方搜索caution目标的距离阈值
doublecaution_pedestrian_approach_time3.0caution行人通过时间
int32interactive_obs_max_nums6交互目标最大数量
doubleinteraction_distance_threshold60.0交互目标距离阈值
doubleinteraction_search_distance_ahead50.0交互目标前方搜索距离
doubleinteraction_search_distance_backward50.0交互目标后方搜索距离
doubleinteraction_search_distance_backward_for_merge60.0mergeing时后方搜索距离
doubleinteraction_search_distance_backward_for_overlap30.0overlap时后方搜索距离
int32ego_vehicle_id-1主车id
doublescan_length80.0目标搜索区域的长度
doublescan_width12.0目标搜索区域的宽度
doubleback_dist_ignore_ped-2.0忽略行人的背后障碍物
uint64cruise_historical_frame_length5cruise模型的历史帧数
boolenable_kf_trackingfalse是否使用卡尔曼滤波
doublemax_angle_diff_to_adjust_velocityM_PI / 6.0最大的角度差来调整速度朝向
int32min_still_obstacle_history_length4静止目标最小的历史帧数
int32max_still_obstacle_history_length10静止目标最大的历史帧数
doublestill_obstacle_speed_threshold0.99静止目标的速度阈值
doublestill_pedestrian_speed_threshold0.2静止行人的速度阈值
doublestill_unknown_speed_threshold0.5静止unknown目标的速度阈值
doubleslow_obstacle_speed_threshold2.0低速障碍物的速度阈值
doublemax_history_time7.0最大的历史时间
doubletarget_lane_gap2.0两个lane点的距离
doubledense_lane_gap0.2用于构建密集路网的两个lane点的距离
int32max_num_current_lane2当前lane最大数量
int32max_num_nearby_lane2附近lane的最大数量
doublemax_lane_angle_diffM_PI / 3.0lane最大角度差
int32max_num_current_lane_in_junction3junction中当前lane最大数量
int32max_num_nearby_lane_in_junction2junction中附近lane最大数量
doublemax_lane_angle_diff_in_junctionM_PI / 4.0junction中lane最大角度差
doublepedestrian_max_speed10.0行人最大速度
doublepedestrian_max_acc2.0行人最大加速度
doublestill_speed0.01静止速度阈值
doublemax_num_obstacles300容器中最大目标数量
doublevalid_position_diff_threshold0.5有效位置差异阈值
doublevalid_position_diff_rate_threshold0.075有效位置差异率阈值
booladjust_velocity_by_obstacle_headingtrue通过目标heading来调整速度朝向
booladjust_velocity_by_position_shiftfalse调整速度朝向为lane heading
booladjust_vehicle_heading_by_lanetrue通过lane来调整主车朝向
uint64max_num_lane_point20最大lane点数
doubledistance_threshold_to_junction_exit1.0离开junction的距离阈值
doubleangle_threshold_to_junction_exitM_PI * 0.25离开junction的角度阈值
uint32junction_historical_frame_length5junction模型的历史帧数
doubledefualt_junction_range10.0junction默认距离
doubledistance_to_slow_down_at_stop_sign80.0停止线减速距离阈值

包列表

包名说明
prediction预测模块包