国际青年赛百度阿波罗前四题代码修改位置以及思路
赛题序号 | 赛题名称 | 赛题描述 | 评分标准 |
---|---|---|---|
赛题一 | 车辆靠边启动 | 主车在道路旁停车位启动时,如遇车辆前方存在障碍物,为保证行驶安全,主车需要与障碍车至少保持1.0米距离 | 主车与障碍车距离小于1.0米,本场景扣40分 |
赛题二 | 红绿灯路口-行人避让 | 当主车在监测到前方的红灯时, 主车停车在停止线前1.5-2.0米处,不得超过停止线。当红灯变为绿灯后,主车可以继续行驶,但需要注意人行横道上可能仍有行人通行。在这种情况下,主车必须等待行人安全通过后才能继续前行 | 主车未避让行人,本场景记0分,主车停止距离未达到1.5-2.0m距离内,本场景扣20分,速度每超速1m/s, 本场景每帧扣2分。 |
赛题三 | 路口--减速通行 | 主车行驶至路口时,需降低车辆速度至5米/秒通过路口,并在通过路口后恢复正常速度 | 若主车未在指定区域内限速,每超出1m/s的速度,场景每帧扣2分 |
赛题四 | 人行道--跟车行驶 | 在本场景中,主车跟车行驶,当前方道路存在人行道时且有行人在人行道上通行,车辆需要停车避让,为了保证安全,主车需要与前车保持2-2.5米的停车距离,等待行人完全通过人行道时再通过该路口;当有行人在人行道上通行时主车应在障碍车后方停车,不得借道绕行 | 当遇到前方障碍物车辆遇到行人通过人行道时,会减速停车停止在停止线前,主车遇到这种情况时,应在障碍车后方停车,不得借道绕行,如绕行该场景得0分;主车距离前车大于2.5m,或小于2m,本场景扣20分 |
赛题五 | 道路施工,换道行驶 | 主车前方道路施工,导致该段道路无法通行。主车应重新规划路线选取旁边匝道通过该区域 | 主车前方道路施工,导致该段道路无法通行。主车应重新规划路线选取旁边匝道通过该区域 |
赛题六 | 自主泊车--障碍物堵塞 | 在此情景中,主车需驶回主车的固定停车位。当主车驶入停车场,若发现前方有障碍物阻挡其前进路径,并且附近泊车位空无一车时,主车可以选择绕过这些空置的泊车位,直接前往主车的固定停车位中 | 主车在规定时间内未成功回到车位,本场景分计0分 |
赛题一
修改部分
OpenSpaceRoiDecider
用于在开放空间算法中生成可行驶边界,根据规划场景的不同,如:泊车、靠边停车、驶入主路,以当前车辆位置为坐标原点,生成不同的可行驶边界与目标点。
看这里的空间规划可以得知,膨胀自车box
让车辆旁边的开放空间足够变道到道路参考线上,因此修改这里
主车需要与障碍车至少保持1.0米
距离,虽然这里没触发后面修改障碍物处理逻辑应该也可以
赛题二
-
监测到前方的红灯时, 主车停车在停止线前
1.5-2.0米
处根据文档可以找到信号灯的规则于
modules/planning/traffic_rules/traffic_light
这个停止距离直接修改该规则的配置
stop_distance
即可
-
当红灯变为绿灯后,主车可以继续行驶,但需要注意人行横道上可能仍有行人通行。
这个则修改
modules/planning/traffic_rules/crosswalk
,斑马线规则先看配置文件能改多少
stop_distance
最小停车距离
max_stop_deceleration
最大减速度
min_pass_s_distance
最小安全距离
expand_s_distance
安全边界
stop_strict_l_distance
严格L方向距离
stop_loose_l_distanc
放松L方向距离
stop_timeout
停车超时设定
(不过后面这些配置被我拿来用另一个逻辑用了就是了)
审阅代码后找到停止与启动的处理逻辑
原有逻辑是在判断行人在马路上的基础上加上了行人速度方向是否是向着车辆方向的判断
导致当行人不在车辆前方,同时走过了车辆后,车辆直接结束了stop,启动。
因此把该部分的逻辑注释后就可以让车辆等待行人超出L方向
一定的安全距离后再走
同时,因为这里的红灯规则构造的停止墙构造的太早,导致减速太慢了,会超时
因为控制速度的规划改起来太麻烦,直接改了一下墙生成的条件
traffic_light_overlap.start_s - adc_front_edge_s
判断距离然后直接把墙生成包裹起来
等车辆靠近到8米再构建墙就会寸止,这样就会急刹车,就不会超时了(
赛题三
特定区域降低车辆速度至5米/秒
直接在规则里面改会比较方便,直接把轨迹速度更换,借用了一下Crosswalk规则
的启动位置直接加了
reference_line_info->reference_line().map_path().crosswalk_overlaps()
拿到路口位置
直接使用AddSpeedLimit
可以根据车道的s坐标直接更改速度限制
赛题四
- 主车需要与前车保持2-2.5米的停车距离
遇到障碍物的停止规则都在modules/planning/planning_base/common/obstacle.cc
里面生成的
MinRadiusStopDistance
根据半径来生成停止墙,我直接把这个动态生成的改为固定的2.3米
-
不得借道绕行
在
modules/planning/scenarios/lane_follow/lane_follow_stage.cc
场景控制变道可以追到
has_drivable_reference_line
控制是否进入变道方法在这里遍历拿到人行道和障碍物的信息,
if
存在障碍物的话就不变道即可
Comments NOTHING