技术文档丨Apollo控制、路由等模块

本文做者:Apollo开发者社区算法

控制模块:经过生成控制命令(如加速、刹车和转向)来执行规划模块提供的时空轨迹。控制模块将规划轨迹做为输入,并产生控制指令给Can总线。设计模式

 

路由模块:告诉自动驾驶车辆如何通过一系列车道或道路到达目的地。要计算出自动驾驶车辆通过的车道和道路,路由模块须要知道起点和终点。bash

 

数据:是计算机与外部物理世界链接的桥梁。数据采集模块由传感器、控制器等其它单元组成。架构

 

通用模块:该模块包含的代码并不是专门面向任何模块,但有助于提高Apollo的功能。app

 

 

 

  如下,ENJOY  函数

 

控制

 

简介

 

根据规划轨迹和汽车的当前状态, Control模块使用不一样的控制算法来生成温馨的驾驶体验,Control模块能够在正常模式和导航模式下工做。工具

 

输入

 

  • 规划轨迹。google

  • 汽车状态。spa

  • 定位。设计

  • Dreamview AUTO模式更改请求。

 

输出

 

  • 发送到底盘的控制命令 (转向、 油门、刹车)。

 

路由

 

简介

 

路由模块根据需求产生更加高级的导航信息。

 

路由模块依赖一个路由拓扑文件,在Apollo中一般以routing_map.* 方式命名。

可使用如下命令生成路由地图:

bash scripts/generate_routing_topo_graph.sh

 

输入

 

  • 地图数据

  • 路由需求(起始和终止位置)

 

输出

 

  • 路由导航信息

 

数据

 

本模块包含Apollo的数据解决方案, 包括进行数据收集、存储、处理等操做的工具和基础架构。

 

通用——模块

 

apollo_app

 

apollo_app编译目标定义抽象类ApolloApp,该类由全部模块实现,同时它还定义宏APOLLO_MAIN,用于启动每一个模块。

 

日志

 

log编译目标将google日志系统封装成特定于项目的宏,从而能够对日志记录级别进行更精确的控制。

 

macro(宏)

 

macro编译目标定义一些经常使用的特定于类的宏。

 

适配器

 

适配器用于不一样模块之间的通讯。AdapterManager类派生全部专用适配器并对其进行管理。适配器需使用宏REGISTER_ADAPTER进行注册。适配器类充当Apollo模块和I / O机制(例如ROS)之间的抽象层。

 

configs/data

 

车辆配置在文件configs/data中指定。

 

math

 

math实现许多有用的数学库。

 

monitor(监控)

 

monitor定义了日志记录系统。

 

proto

 

proto定义许多项目范围的protocol buffers。

 

status

 

status用于肯定某些功能可否成功执行。若是不能,status将提供有用的错误消息。

 

time

 

time是与时间相关的辅助函数。

 

util

 

util包含带有注册的工厂设计模式的实现,一些字符串解析函数,以及一些用于从文件中解析protocol buffers的函数。

 

vehicle_state

 

所述vehicle_state classs描述车辆的当前状态(例如位置、速度、方向等)。

原文连接地址:https://developer.baidu.com/topic/show/290446

相关文章
相关标签/搜索