一 全局路径规划
1.lane_planner(使用vector_map)
循环换道停障的规划方案【车道级规划-全局静态轨迹规划】
需lane_planner、waypoint_marker两个功能包配合
lane_planner功能包对应的节点
lane_navi
lane_rule
lane_select
lane_stop
waypoint_maker功能包对应的节点
waypoints_loader
waypoints_make_publish
lane_planner的功能是输出一条整体的全局路径/base_waypoints
(1)vector_map给定的全局路径的获取方式可以通过lane_planner中的lane_navi解析得到,
也可以通过waypoints_make中的waypoints_loader把path.txt解析出来,
还可以通过Astar等全局规划出来的waypoints得到(其他方案)
(2)得到/lane_waypoints_array就是我们之前给定的全局轨迹,可以仅有一条也可以有多条(主要看vector_map和path.txt提供了几条可供选择的候选路路径)
(3)waypoints_make中的waypoints_make_publish把/lane_waypoints_array话题可视化到rviz中
(4)lane_planner中的lane_rule根据红绿灯情况输出各种速度不同的路径轨迹,其中/red_waypoints_array的速度为0,/green_waypoints_array为正常的速度,/traffic_waypoints_array为交规指定的最终执行速度
(5)lane_planner中的lane_select根据vector_map地图中的左右转信息决定车辆换道,走那一条路线
经过上述一系列操作,最终输出一条可执行的base_waypoints,base_waypoints就是最终执行的全局路径,局部路径都是基于这条base_waypoints进行的
.
(2)规划代码解析及注释【重点】
从new_mission_planning.launch看起
(1)lane_navi
功能:
解析vector_map的路点信息
(2)lane_rule
功能:
根据红绿灯情况输出各种速度不同的路径轨迹,
其中
/red_waypoints_array的速度为0,
/green_waypoints_array为正常的速度,
/traffic_waypoints_array为交规指定的最终执行速度
(3)lane_select
功能:
1.接受多条路径
1.计算所有路径的当前位置的最近傍点
1.最近傍点的车道和现在行驶的路线设定
1.检测当前路径的左右路径
1.将当前路径最近傍点的车道变更标志作为该路径的车道变更标志保持
1.寻找最近邻右转或左转的标志点,生成艾尔米内插的路线,将该点和预定变更车道的车道的目标点定义为车道变更用的路径
1.不变更车道时,将当前路径、最近傍点、车道变更标志分别publish
1.更改车道时,分别对车道变更用的路径、与之相对的最近傍点、车道变更标志进行publish
发布/订阅的信息
1. Subscribed Topics
- traffic_waypoints_array (waypoint_follower/LaneArray)
- current_pose (geometry_msgs/PoseStamped)
- current_velocity (geometry_msgs/TwistStamped)
- state (std_msgs/String)
- config/lane_select (runtime_manager/ConfigLaneSelect)
1. Published Topics
- base_waypoints (waypoint_follower/lane)
- closest_waypoint (std_msgs/Int32)
- change_flag (std_msgs/Int32)
- lane_select_marker (visualization_msgs/MarkerArray) : for debug
修改的参数:
- Distance threshold to neighbor lanes<br>
表示检测当前路径周围有效车道时的阈值。距离这个阈值远的车道不识别为车道。
- Lane Change Interval After Lane Merge
表示进行了车道变更后跑了几米再能变更车道的值。
- Lane Change Target Ratio
将预定变更车道的车道上的目标点定义成与速度(m/s)成比例的距离时使用的值。
目标点探索的起点是在预定变更车道的车道上,有右转或左转的车道变更标志的点的最近傍点。
- Lane Change Target Minimum
表示到预定变更车道上的目标点为止的最低距离。
目标点探索的起点是在预定变更车道的车道上,有右转或左转的车道变更标志的点的最近傍点。
- Vector Length of Hermite Curve
表示用电子表格曲线补充时矢量的大小。
(4)lane_stop
功能:
实现在vector_map的红绿灯下停车