1.安装
安装的时候完全参考官方就好,很稳,不过官网肯定是最新,如果需要旧版本困难还需要找一下
首先需要安装好Ubuntu和NVIDIA驱动,我这里使用的是Ubuntu20.04,RTX3070+CUDA11.3
Apollo 6.0+ 依赖于 Docker 19.03+。安装 Docker 引擎,参见 Install Docker Engine on Ubuntu。
Ubuntu 上的 Docker-CE 也可以通过 Docker 提供的官方脚本安装:
curl https://get.docker.com | sh sudo systemctl start docker && sudo systemctl enable docker
基于 Apollo 的 CUDA 的 docker 镜像需要依赖于 NVIDIA Container Toolkit。
运行以下命令安装 NVIDIA Container Toolkit:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get -y update sudo apt-get install -y nvidia-docker2
安装完成后,重启 Docker 以使改动生效。
sudo systemctl restart docker
前提条件
-
确保已按照【必备软件安装指南】中的完成必备软件的安装。
-
确保 Docker 正在运行。
执行
systemctl status docker
以检查 Docker 守护进程的运行状态,并根据需要键入systemctl start docker
以启动 Docker。
步骤一:下载安装包
在 官网首页 下载安装包。
步骤二:解压安装包
选择合适的路径解压。解压后的文件夹将作为 Apollo 的根目录。
tar -xvf apollo_v6.0_edu_amd64.tar.gz
步骤三:安装 Apollo
-
执行以下命令,进入 Apollo,
cd /apollo
-
在该目录中执行以下命令进入 Apollo 环境,
./apollo.sh
在第一次执行该脚本时,会自动在同级目录下创建一些文件夹用于在容器中挂载, 目录结构如下:
. ├── apollo.sh ├── data │ ├── bag │ ├── core │ └── log ├── modules │ ├── calibration │ │ └── data │ └── map │ └── data └── scripts ├── apollo_base.sh ├── apollo.bashrc ├── docker_base.sh ├── runtime_into.sh └── runtime_start.sh
其中,
-
modules/calibration/data
用来保存车辆数据, -
modules/map/data
用来保存地图数据,用户可将自己的车辆或地图文件拷贝到这两个文件夹使用。
脚本执行成功后,将显示以下信息,您将进入 Apollo 的运行容器:
[user@in-runtime-docker:/apollo]$
在容器内可以直接使用 Apollo 提供的功能,无需执行构建过程。
2.进入docker
第一次安装的时候会下载大量的镜像文件
安装完之后运行 docker ps -a会有容器(我去年装过一个,所以会有两个)
之后进入apollo环境的时候也可以在apollo中,执行./apollo.sh
3.使用CyberRT播放数据
-
下载数据
-
在 Apollo Docker 环境中下载数据包。
wget https://apollo-system.cdn.bcebos.com/dataset/6.0_edu/demo_sensor_data.tar.xz
-
解压数据包。
tar -xvf demo_sensor_data.tar.xz
由于文件较大,而且只有 sensor_rgb.record
一个大文件,所以吃单核,解压需要一点时间
-
播放数据包
解压后,在 Apollo Docker 环境中执行如下命令运行 cyber_recorder
。
cyber_recorder play -f sensor_rgb.record -loop
选项 --loop 用于设置循环回放模式。
-
查看数据channel信息
-
新开一个终端,通过docker exec进入容器中
docker exec -it container_id /bin/bash
也可以在apollo安装包的目录执行 ./apollo.sh(我还是不太会用docker,有空的时候要细学一下,实验室用的lxc进行管理,逻辑上差不太多,但还是有些区别)
然后执行
source cyber/setup.bash cyber_monitor
正常的话就可以看到如下输出了
也可以使用 -c参数,监测某个指定channel的信息
-
使用CyberVisualizer查看原始感知数据
这次使用./apollo.sh进入容器
会得到一个图形化界面
下拉左侧的channelname可以显示列表
根据工具栏的按钮,还可以 show 点云、图形数据
还可以同时添加点云和图像数据(应该是不需要自己对齐时间的)
看上去也不怎么吃配置
-
点云场景支持两种类型的虚拟相机:自由型和目标型(从上面的弹出对话框中选择类型)。
-
自由型相机:对于点云场景中的这种类型的相机,您可以按住鼠标左键或右键并移动来改变相机的姿态。要更改相机的间距,您可以滚动鼠标滚轮。
-
目标类型相机:对于点云场景中的这类相机,要改变相机的视角,可以按住鼠标左键再移动。要更改相机到观察点的距离(默认观察点为坐标系原点 (0,0,0)),可以滚动鼠标滚轮。 也可以直接在对话框中修改相机信息,改变相机在点云场景中的观察状态。Step 是对话框中的步长值。
-
-
将鼠标放在摄像机 channel 的图像上,可以双击左键在左侧菜单栏突出显示对应的channel。右击图像,可以弹出删除摄像机通道的菜单。
-
播放和暂停:单击 Play 时,将显示所有频道。当单击 Stop 时,所有 channel 信息将停止显示。
end