planning base是 planning 模块的主要流程和⼊⼝ package ,包含 planning 模块的整体架构和流程。 planning 模块根据上游模块输⼊的感知周围环境信息,地图定位导 航信息,以及全局路径信息,为⾃动驾驶⻋辆规划出⼀条运动轨迹(包含坐标,速度,加速度, jerk 加加速度,时间等信息),然后将这些信息传递给控制模块。 Apollo Planning模块是自动驾驶系统的关键组件,负责为自动驾驶车辆规划安全且高效的行驶轨迹。该模块接收来自上游模块的数据,包括环境感知信息(如障碍物位置、动态等)、地图定位导航信息和全局路径信息,综合考虑这些因素后生成一条包含坐标、速度、加速度、jerk(加加速度)和时间信息的运动轨迹。生成的轨迹随后被传递给控制模块,以执行实际的车辆控制。 Planning模块主要由以下几个package组成: 1. **planning_base**: 这是Planning模块的核心,包含了对外接口类、Planning接口父类、主流程框架以及一些基础算法库。它是整个模块的入口点,处理模块的初始化和主要流程控制。 2. **pnc_map**: 该包用于生成路径参考线。根据输入的Planning导航指令或地图信息,pnc_map生成参考线数据,为局部路径规划提供路线参考。 3. **scenarios**: 这里包含了一系列支持的场景插件,每个目录下有一个独立的场景插件包,定义了scenario和stage类。场景插件是Planning模块适应不同驾驶条件的关键,例如LaneFollow、PullOver、BareIntersectionUnprotected等。 4. **tasks**: tasks包包含了Planning模块支持的任务插件,每个目录下有独立的任务插件包,定义了task类。任务插件负责处理特定的规划任务,如路径规划、避障、速度规划等。 5. **traffic_rules**: 交通规则插件包提供了通用的交通规则,应用于所有运行的场景中。它们确保车辆在行驶过程中遵循交通法规,如停车、让行、遵守交通灯等。 Apollo从3.5版本开始采用双层状态机的场景机制,分为Scenario状态机(Top Layer)和Stage状态机(Bottom Layer)。Scenario状态机负责场景的切换,而Stage状态机处理场景内的具体阶段。目前支持的场景包括: - **LaneFollowScenario**: 车辆沿道路行驶的默认场景,会根据路况进行车道内避障或借道行驶。 - **PullOverScenario**: 在到达目的地附近时启动,完成车辆靠边停车。 - **BareIntersectionUnprotectedScenario**: 对于无保护的交叉路口,车辆会在进入路口前切换到该场景。 - **TrafficLightProtectedScenario**: 有交通灯指示的路口,车辆按照信号灯进行行驶。 - **TrafficLightUnprotectedLeftTurnScenario**: 无保护左转的交通灯场景,车辆需要在转向前减速并观察对向来车。 - **TrafficLightUnprotectedRightTurnScenario**: 无保护右转的交通灯场景,车辆同样需要减速并确保安全后再右转。 - **StopSignUnprotectedScenario**: 无保护的停止标志路口,车辆需要遵守停车标志。 这些场景和阶段的设计确保了Planning模块能够灵活地应对各种复杂的驾驶环境,保证自动驾驶车辆的安全和合规行驶。Planning模块的实现主要使用C++编程语言,这使得它能够在性能和实时性方面满足自动驾驶系统的需求。
剩余19页未读,继续阅读
- 粉丝: 44
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 10、安徽省大学生学科和技能竞赛A、B类项目列表(2019年版).xlsx
- 9、教育主管部门公布学科竞赛(2015版)-方喻飞
- C语言-leetcode题解之83-remove-duplicates-from-sorted-list.c
- C语言-leetcode题解之79-word-search.c
- C语言-leetcode题解之78-subsets.c
- C语言-leetcode题解之75-sort-colors.c
- C语言-leetcode题解之74-search-a-2d-matrix.c
- C语言-leetcode题解之73-set-matrix-zeroes.c
- 树莓派物联网智能家居基础教程
- YOLOv5深度学习目标检测基础教程