apollo_logo
14
0

科创赛事丨赛题解析之左转绕行

场景描述

当自动驾驶汽车在规划的左转道上正常行驶时,原左转道被意外被其他障碍物占用,自动驾驶车辆无法正常左转,此时,要求自动驾驶车辆重新规划绕行线路,实现左转行驶。

场景图示

评判标准

在规定时间90秒内,自动驾驶车辆没有绕行或绕行失败(如:驶出马路、碰撞等行为),本场景计0分, 绕行成功,本场景计100分。其中:

碰撞检测规范:如果主车到障碍物的距离<=0.1,视为发生碰撞。

在路检测规范:要求主车在行驶过程中必须在路(白线范围内),超出白色则视为非在路。

评测参考

https://studio.apollo.auto/offlineview/?locale=zh-cn&id=62d0317d0005025defaa779a&num=cuikaixin_10&map=6b6ce49f1809b513825ef23f

解题思路

在省赛的赛题中,有一道静态障碍物绕行的题目,只需要进行简单的调参就可以通过借道逻辑来实现障碍物的绕行。那么左转遇障绕行这道题有什么不同之处呢?从该题的场景图例可知,车辆要想要实现十字路口左转,只有两条车道可选,然而这两条车道都被静态障碍物给占用了,因此通过借道逻辑是无法计算得到绕行轨迹的,但障碍物旁边有一片空旷的区域,因此可以考虑在这个junction范围内使用Open Space算法来实现绕行。Open Spac在apollo中主要用于靠边停车与泊车场景,对于Open Spac我们做简单的了解:

打开planing>config>scenario>pull_over_config.pb.txt文件中找到:

stage_config: {
stage_type: PULL_OVER_RETRY_PARKING
enabled: true
task_type: OPEN_SPACE_ROI_DECIDER
task_type: OPEN_SPACE_TRAJECTORY_PROVIDER
task_type: OPEN_SPACE_TRAJECTORY_PARTITION
task_type: OPEN_SPACE_FALLBACK_DECIDER
task_config: {
task_type: OPEN_SPACE_ROI_DECIDER
open_space_roi_decider_config {
roi_type: PULL_OVER
perception_obstacle_buffer: 0.5
}

其中:

OPEN_SPACE_ROI_DECIDER:表示自动驾驶车辆在开放空间可行驶的区域。
OPEN_SPACE_TRAJECTORY_PROVIDER :表示给自动驾驶车车辆产生一条在开放空间中可行驶的轨迹。
OPEN_SPACE_TRAJECTORY_PARTITION:表示对轨迹的前进和后退进行分割。
OPEN_SPACE_FALLBACK_DECIDER:表示对规划失败后的处理机制。

因此大家可以考虑采用以下两种方法来解题。

方法一:

Apollo中关于十字路口左转处理机制是在TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN场景中,该场景有3个默认的stage,如下图所示,其中,APPROACH的作用是接近十字路口并停车,CREEP的作用是放慢车辆速度,并判断当前是否可以安全通过十字路口,CRUISE的作用是如果周围环境安全的话,就按照巡航速度通过十字路口。参赛者可在该场景中增加一个stage,该stage用于处理当自动驾驶车辆在十字路口,左转道路被占用的情况下调用Open Space的算法来实现绕行,绕行成功后,即可进入CRUISE阶段。

方法二:

参考已有的场景去自行新建一个左转绕行的场景,以此来处理遇到十字路口左转场景下遇到障碍物堵路的情况。

视频教程

https://www.bilibili.com/video/BV11g411k7gP?spm_id_from=333.999.0.0&vd_source=efa4eb7b7d7a71f75a6eb025eafd92d7

如果各位同学对于本题还有疑问,可在下方评论区域提问,预祝各位比赛顺利。

来自专栏
带你玩转自动驾驶竞赛查看专栏 >
原创声明,本文由作者授权发布于Apollo开发者社区,未经许可,不得转载。
发表评论已发表 0 条评论
登录后可评论,请前往 登录
暂无评论~快去发表自己的独特见解吧!
目录
场景描述
场景图示
评判标准
评测参考
解题思路
视频教程