内存尽量大,100G + ,交换空间也要大一些16G,或者12G,按照教程流程基本可以安装好。
主要包括四个部分:最底层的车辆认证平台,往上一层的硬件开发平台,第三层的核心开源软件平台以及最上层的云服务层。
Ubuntu 18.04安装Apollo 6.0:从零开始到启动Demo(超多细节)
包括高精地图(HD Map);仿真服务(Simulation);量产服务组件(Production component);Apollo数据管道(Apollo data Pipeline);安全(Security);OTA(空中下载技术),通过移动通信的接口实现对软件进行远程管理,传统的做法到4S店通过整车OBD对相应的ECU进行软件升级。);V2X(Vehicle-to-Everything,车路协同),根据不同的协同要素,V2X主要分为车与车之间(V2V)、车与路之间(V2I)、车与人之间(V2P)、车与网络之间(V2N)四大应用版块。
核心开源软件层又可以细分为三层:
最下面的是RTOS实时操作系统,在Apollo中,我们使用打补丁的方式来实现实时的效果。
运行时框架:是Apollo的操作环境,是ROS的定制版即机器人操作系统。为了使ROS适应无人车,Apollo团队改进了共享内存的功能和性能、去中心化和数据兼容性。
应用程序模块层(框架为Apollo Cyber RT):Apollo软件平台具有各种模块,这些模块包括 MAP引擎、定位、感知、规划、控制、端到端驾驶以及人机接口(HMI)。每个模块都有自己的算法库。
代码结构
结构
cyber_visualizer
cyber_monitor
和 cyber_recorder
运行:
1.前提:安装环境,
source /apollo/cyber/setup.bash
2.然后:并进入docker容器
cd apollo
bash docker/scripts/dev_start.sh
bash docker/scripts/dev_into.sh
3.下载数据包
#下载
wget https://apollo-system.cdn.bcebos.com/dataset/6.0_edu/demo_sensor_data.tar.xz
#解压
tar -xvf demo_sensor_data.tar.xz
cyber_recorder play -f /path/to/your_record
#此处
cyber_recorder play -f sensor_rgb.record -loop
打开新的终端,注意:进入另个容器的时候,不能再dev_start.sh,只用dev_into.sh就可
5.查看channel数据
cyber_monitor
步骤五:运行Cyber_visualizer
重新打开一个终端,在 Apollo Docker 环境中执行如下命令运行 cyber_visualizer:
cyber_visualizer
四个步骤:
bazel优势:精细,对依赖的管理更好。
bazel文件类型:
WORKSPACE :bazel相对根目录,工作区存放了所有源代码和Bazel编译输出的文件。
Bazel工程的根目录下,必须包含一个文件名为Workspace的文件,它用来指明构建的根目录,Workspace采用类似于Python的语法。
Workspace下包含多个Package,而每个Package又包含多个编译目标Target。
BUILD: 编译文件,文章理解
cc_library,cc_binary, cc_test 三种规则
.bzl:rules文件,bazel扩展
.bazelrc:配置文件,可指定
bazelignore:忽略的目录
一个 bazel demo网址
依赖非bazel文件的方法:
local_repository
(
name= "coworkers_project",
path=" ",
)
new_local_repository(
build_file ="Myworker.BUILD",
#build_file指定要在现有项目上叠加BUILD文件
cc_libary(
name="mylib",
srcs=["mylib.so"],
hdrs=["mylib.h"],
)
#可通过@mylib来引用
分为动态库和静态库,动态库用的多,后缀是.so。
使用命令ldd
可以查看动态库的链接。
启动Cyber_RT(默认情况下,cyber的日志信息是写出到磁盘文件中,并不会在终端输出,为了方便查看运行结果,我们需要修改cyber的配置文件,使其能够将日志消息输出到终端上)
第一步:启动docker容器
cd apollo
bash docker/scripts/dev_start.sh
第二步:进入docker
bash docker/scripts/dev_into.sh
第三步 修改文件
vim cyber/setup.bash
#参数GLOG_alsologtostderr的默认值为0,修改为1
#加载资源
source setup.bash
第四步:编译cyber
./apollo.sh build
or
bazel build cyber
个人理解
Docker解决的问题就是环境的问题。一个比方,docker把操作系统,代码,配置全部放到集装箱里。再打包放到鲸鱼上,由鲸鱼给我们送到服务器上,在我的机器上怎么运行,在别的机器上也怎么运行。不会有任何的问题。
常用命令
docker pull
docker push
docker stop
docker restart
docker run
docker ps:列出容器
docker start
docker stop
docker restart
docker run
制作docker镜像
Dokerfile:通过编译dockerfile可以用来制作docker容器
docker build -f dockerfile -t tag