Apollo 10.0
自动驾驶开放平台
|
Planning 模块在自动驾驶系统中扮演着至关重要的角色,它在遵守交通规则的前提下,将车辆从当前位置沿着路由线路导航到终点位置。
Planning 进行轨迹规划时,需要满足的基础要求有三个:
同时,Planning 模块还要考虑在满足基础要求的前提下,尽量提高车辆的舒适性,避免加减速变化过于突兀,方向盘角度变化过快等不舒适的情况。
planning 模块根据上游模块输入的感 知周围环境信息,地图定位导航信息,以及全局路径信息,为自动驾驶车辆规划出一条运动轨迹(包含坐标,速度,加速度,jerk加加速 度,时间等信息),然后将这些信息传递给控制模块。
Apollo 规划模块功能的实现是基于场景(scenario-based)实现的,针对不同的场景,规划模块通过一系列独立的 任务(task) 组合来完成轨迹的规划。开发者可以根据自己的使用需求,调整支持运行的场景列表,或者场景中支持的任务类型来满足自己的需求。
Apollo 规划架构示意图如上,其中部分重要模块如下:
Planning 模块目前支持的功能列表如下:
功能名称 | 功能描述 | 功能相关代码包 | 功能图示 |
---|---|---|---|
lane follow | 车辆沿指令中的路由线路行驶,从地图中查询路由中的车道信息,规划沿车道线行驶的轨迹。 | LaneFollowScenario LaneFollowPath | |
nudge | 如果道路前方有静止或低速障碍物占据车道,但当前车道内还有足够空间,车辆可以在当前车道内绕过障碍物行驶。 | LaneFollowScenario LaneFollowPath | |
lane change | 车辆沿RoutingResponse中的路由线路行驶的过程中,从一个车道切换到相邻车道。 | LaneFollowScenario LaneChangePath | |
lane borrow | 如果道路前方有障碍物长时间停留阻塞道路,车辆无法通过在当前车道内绕过,需要往相邻车道借道,绕过当前障碍物。当车辆经过障碍物之后,车辆会立即回到原车道行驶。 | LaneFollowScenario LaneBorrowPath | |
pull over | 当车辆接近终点时,可以通过配置选择是否在终点处靠边停车。如果使能终点靠边停车,车辆在终点附近查找一个可以停车的位置,并将车辆停在这个位置上。如果这个位置前后有其他障碍物,车辆可以通过 OpenSpace 的泊车算法,将车辆停在这个位置。 | PullOverScenario PullOverPath | |
park and go | 如果车辆停车位置不在道路上,再次启动的时候,车辆会先从当前位置使用OpenSpace规划算法(如有必要)先行驶到车道线上,然后再正常沿道路行驶。 | ParkAndGoScenario | |
crosswalk | 当车辆行驶到人行道前时,如果有行人通过,车辆会停车等待行人通过后再通行。 | Crosswalk | |
bare intersection | 车辆行驶到无交通灯和停止标志的交通路口,因为对向车辆没有明确通行指示,所以需要车辆根据路口交通情况决定是否通行。 | BareIntersectionUnprotectedScenario | |
traffic light protected/unprotected | 车辆经过有红绿灯的交通灯路口时,如果交通灯有左转/右转通行箭头,车辆在红灯亮起时停止,绿灯亮起时通行;如果交通灯不是箭头指示灯,车辆在通过路口时可能还有对向车辆经过,这时就需要在通过路口前减速慢行,没有冲突时再通过路口。 | TrafficLight TrafficLightProtectedScenario TrafficLightUnprotectedLeftTurnScenario TrafficLightUnprotectedRightTurnScenario | |
stop sign | 当车辆前方有停止标志时,先停车观察,没有其他行人或车辆冲突时再通行。 | StopSign StopSignUnprotectedScenario | |
yield sign | 当车辆在没有交通灯的路口,有让行标志时,优先让其他对向车辆通行后自车再通行。 | YieldSign YieldSignScenario | |
keep clear area | 车辆经过Keep Clear Area区域时,不能在这个区域内停车。 | KeepClear | |
rerouting | 如果车辆在道路上被阻塞超出一段时间后,planning发出重新路由的请求以便脱困。 | Rerouting | |
valet parking | 给定地图上某一个停车位的id,车辆从当前位置导航到停车位,并泊车入库。 | ValetParkingScenario | |
emergency pull over | 在车辆行驶过程中,可以接收外部命令紧急靠边停车。 | EmergencyPullOverScenario |
如果您在使用文档的过程中,遇到任何问题,请到我们在【开发者社区】建立的 反馈意见收集问答页面,反馈相关的问题。我们会根据反馈意见对文档进行迭代优化。