目标
本文演示了如何使用敏捷开发环境 (ADE) 来开发 Autoware.Auto 应用程序。
安装 ADE
ADE 是一个基于 Docker 的模块化工具,可确保项目中的所有开发人员拥有一个通用、一致的开发环境。
按照 安装说明进行操作,为方便起见,此处复制了这些说明:
- 验证是否满足 此处列出的要求。 特别是,如果之前没有使用过 docker,可能需要通过 docker post-install 步骤。
- 从项目的 Releases 页面 为您的平台下载最新的静态链接二进制文件 ade-cli
- 命名二进制文件 ade 并将其安装在 PATH . 在 Ubuntu 上, /usr/local/bin 建议用于系统范围的安装,否则选择例如 ~/.local/bin 不需要 sudo 权限的本地安装。
- 使二进制可执行文件: chmod +x ade
- 检查它是否已安装:
$哪个ade
/路径/到/ade
$ ade --version
<版本> |
设置 ADE 主页和项目结帐
ADE 需要主机上的目录,该目录作为容器内的用户主目录挂载。 该目录由点文件填充,并且必须与容器 外 的用户主目录不同。 如果 ADE 用于多个项目,建议 adehome 为每个项目使用专用目录。
ADE 查找包含一个文件的目录,该文件以 .adehome 当前工作目录开头并继续父目录,以标识要挂载的 ADE 主目录。
$ mkdir -p ~/adehome
$ cd ~/adehome
$ 触摸 .adehome |
要使 ADE 发挥作用,必须对其进行正确配置。 Autoware.Auto 提供了一个.aderc 文件,该文件预计存在于当前工作目录或任何父目录中。 此外,可以通过设置环境变量来覆盖默认配置值。 有关使用环境变量定义配置的更多信息,请参阅 ade --help 输出。
$ cd ~/adehome
$ git clone https://gitlab.com/autowarefoundation / autoware.auto/AutowareAuto.git |
如果您希望使用稳定版本,请 通过签出相应的标签或发布分支来签出最新版本。当不签出任何特定标签时, master 将使用最新的分支,其中可能包含仍在开发中的功能。 例如:
$ cd AutowareAuto $ git checkout tags/1.0.0 -b release-1.0.0 |
在主机系统和 ADE 之间共享文件(可选)
与 ADE 共享主机上的点文件或实用程序等文件可能会派上用场。 如果您只有一个 adehome 目录,有一种方法可以在不复制它们的情况下做到这一点:将它们移动到 adehome 目录中,然后在主机系统中创建一个符号链接到它们的常规位置。 例如,
$光盘~
$ cp ~/.bashrc ~/.bashrc.bak
$ mv ~/.bashrc ~/adehome/.bashrc
$ ln -s ~/adehome/.bashrc |
然后它将出现 ~/.bashrc 在主机系统和 ADE 中。
另一种选择是将实用程序放入 ~/adehome/.local/bin 符号链接中。 相反的方向是行不通的,Docker 容器中的文件不能是外部的符号链接。
笔记 程序必须是独立的! 它们不应该依赖于从例如加载库 /usr/lib 。 存在出错的风险(启动终端时,符号链接会被破坏并且 .bashrc 不会被加载)。 在这种情况下,您应该删除符号链接并将 .bashrc 移回原始目录。
进入开发环境
启动默认环境:
$ ade 开始 --update --enter |
通过指定 ADE rc 文件,有几个预配置的环境可供选择。 要查看可用的内容,请运行
选择一个,然后启动:
ade --rc .aderc-amd64-foxy 开始 --update --enter |
恭喜! 现在你应该在 ADE 中有一个终端:
接下来的步骤是继续 使用,或按照贡献者指南中的 描述处理 Autoware.Auto 代码本身 。
ADE里面在哪里?
进入后,ADE输出用于创建环境的图像; 例如
$ ade 输入 使用以下图像输入 ade: 阿德福克斯| 8b1e0efdde07 | 大师 | registry.gitlab.com/autowarefoundation/autoware.auto/ autowareauto/amd64/ade-foxy:master 二进制foxy | 0e582f863d4c | 大师 | registry.gitlab.com/autowarefoundation/autoware.auto/ autowareauto/amd64/binary-foxy:master 狡猾 | 2020.06 | 2020.06 | registry.gitlab.com/autowarefoundation/autoware.auto/ade-lgsvl/foxy:2020.06 |
图像安装在 /opt :
@ade:~$ ls /opt
AutowareAuto # image: binary-foxy:master
lgsvl # 图片:ade-lgsvl/foxy:2020.06
ros # 图片:ade-foxy:master |
中的代码 /opt/AutowareAuto 是从 Autoware.Auto 的主分支的特定版本构建的。 在 CI 中一天会多次构建 master 分支; 查看 容器注册表 。 使用 ade ... --update ,下载每个图像的最新可用版本。
清理
ADE 使用 Docker,随着时间的推移,未使用的映像、容器和卷开始使硬盘变得混乱。 按照以下步骤清理陈旧图像的 Docker 文件系统。
启动相关 Docker 资源
首先,验证 ADE 是否正在运行:
$ cd ~/adehome/AutowareAuto
$ ade 开始 |
如果 ADE 用于多个项目,请验证所有 ADE 实例都在运行; 相同的规则适用于应保留的任何其他非 ADE Docker 容器。
笔记 未启动/运行的 Docker 资源 将被删除 !
Docker 磁盘使用情况
要评估磁盘使用情况,请运行以下命令:
$ 泊坞窗系统 df
类型 可回收的总活动规模
图片 13 11 14.03GB 916.9MB (6%)
容器 11 0 2.311MB 2.311MB (100%)
本地卷 17 15 5.411GB 17.8MB (0%)
构建缓存 0 0 0B 0B |
删除未使用的 docker 项目
用于 docker system prune 删除当前运行的容器未使用的任何 Docker 项:
$ docker system prune -a --volumes |
故障排除
以下是一些特定错误的解决方案:
错误 - 启动 ADE 时“尝试在不支持的硬件上向前兼容”
在 ade 为 NVIDIA 图形启用 GPU 支持开始时,您有时可能会收到以下错误:
docker:来自守护进程的错误响应:OCI 运行时创建失败: container_linux.go:349: 启动容器进程导致 “process_linux.go:449: 容器初始化导致\”process_linux.go:432 : 运行预启动挂钩0导致\\\ “错误运行钩子:退出状态 1, 标准输出: ,标准错误:nvidia-container-cli:初始化错误:cuda 错误:在不支持的 hw\\\\n\\"\"" 上尝试向前兼容 : 未知。
错误:命令返回非零退出代码(见上文):125 |
这通常表示已安装新的 NVIDIA 图形驱动程序(通常通过 apt ),但系统尚未重新启动。 如果图形驱动程序不可用,例如由于挂起后恢复,可能会出现类似的消息。
解决方案
安装新的 NVIDIA 驱动程序后重新启动系统。
ade$ 退出
$ ade停止
$ ade 开始 --update --enter |
|