Apollo的模块有哪些

这篇文章主要讲解了“Apollo的模块有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Apollo的模块有哪些”吧!

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

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

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

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

控制

简介

根据规划轨迹和汽车的当前状态, Control模块使用不同的控制算法来生成舒适的驾驶体验,Control模块可以在正常模式和导航模式下工作。

输入

  • 规划轨迹。

  • 汽车状态。

  • 定位。

  • 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描述车辆的当前状态(例如位置、速度、方向等)。

感谢各位的阅读,以上就是“Apollo的模块有哪些”的内容了,经过本文的学习后,相信大家对Apollo的模块有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是蜗牛博客,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram