课程简介
Baidu Apollo(阿波罗) 是百度发布的自动驾驶计划,包括开放平台及企业版解决方案。Apollo开放平台面向所有开发者提供最开放、完整、安全的自动驾驶开源平台。当前教程主要介绍Apollo中的核心模块之一 Cyber RT。
1.内容简介
关于CyberRT主要介绍如下内容:
章节 | 内容 |
---|---|
第1章 Cyber RT概述与环境搭建 | CyberRT简介、安装、VsCode安装以及使用、Bazel、Protobuf。 |
第2章 Cyber RT通信机制 | 话题、服务、参数、组件等相关概念以及例程实现。 |
第3章 Cyber RT开发工具 | CyberRT 中的常用工具:cyber_monitor、cyber_recorder和诸多命令行工具。 |
第4章 常用API | CyberRT中常用API汇总,包括时间以及定时器相关API。 |
2.学习成果
该教程学习完毕之后,可以掌握如下内容:
可以独立安装 Apollo 的开发环境;
可以以编码方式实现 Cyber RT 中的各种通信模型;
可以使用 CyberRT 内置工具,提高开发、调试效率;
可以熟悉 CyberRT 的常用API。
该教程最终目的是打牢基础,为Apollo的进阶学习做好准备。
3.答 疑
Q1.当前教程学习需要哪些知识储备?
答:关于储备知识,建议如下:
操作系统: 了解 Linux,会一些简单的操作命令。
课程中使用的是VirtualBox虚拟机安装的ubuntu20.04,操作系统已经安装完毕了,另外,课程采用的是 Apollo 6.0 版,建议对应的操作系统使用ubuntu20.04 或 ubuntu18.04。
编程语言:了解 C++ 与 Python。
Apollo 中使用了 C++ 和 Python 双语编程,课程中案例大部分也会分别使用C++和Python实现。需要说明的是 Python 接口的实现思路是在 C++ 实现的基础上,做了一层 Python 的封装,由 Python 来调用 C++ 的实现函数。Cyber Python Wrapper 的实现没有使用 swig 等第三方工具,完全自主实现,以此保证代码的高可维护性和可读性。
另外课程中会涉及到 docker、bazel、protobuf、dag 等内容,相关内容最好提前了解,不了解也可以,课程中会有相关介绍,虽然比较简短,但基本能够满足学习需要。
Q2.需要有ROS基础吗?
答:不需要,如果有那么更好。该课程设计的初衷是要与ROS脱钩的,但是鉴于CyberRT中的许多概念与ROS是高度相似的且在CyberRT之前,Apollo就是使用的ROS,所以如果了解ROS,更方便该课程的学习。
如果想要学习ROS,请移步:https://www.bilibili.com/video/BV1Ci4y1L7ZZ
Q3.需要硬件支持吗?
答:该课程涉及的内容暂不需要。
4.参考资料
Apollo 官网:https://apollo.auto/
Apollo github:https://github.com/ApolloAuto/apollo
Apollo gitee:https://gitee.com/ApolloAuto/apollo
Apollo开发者社区:https://apollo.auto/developer/index_cn.html#/
最后,课程如果有不当之处,欢迎指正,共同学习,共同进步,为国内无人驾驶事业贡献一份力量。