求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
目录
Autoware.Auto
安装
系统依赖性和目标环境
使用 ADE 安装
使用 ADE 安装 arm64 系统
没有使用 ADE 安装
SVL 仿真器
使用
自动代客泊车示范
F1Tenth 演示1
F1Tenth 演示2
启动和测试行为计划
启动和测试全局计划
地图创建
初始化 NDT 定位器
运行 EKF 过滤器进行本地化
3D感知堆栈
记录/回放计划
使用rosbag进行本地化演示
Autoware Auto启动场景仿真器
建立
设计
Autoware Auto常见的设计-1
Autoware Auto常见的设计-2
Autoware.Auto 控制器设计
Autoware.Auto 驱动程序设计
Autoware.Auto 设计融合
Autoware.Auto 本地化
Autoware.Auto 的地图
Perception设计
Autoware.Auto 的 设计计划
Autoware.Auto 的 设计跟踪
Autoware.Auto 的 预测
Autoware.Auto 的系统
Autoware.Auto 的工具
Autoware.Auto 提供的指南
 
 
建立
李澎涛,俎涛 翻译(火龙果软件工程)
727 次浏览
6次  

需求

您需要在 ADE 容器中,或者手动安装了依赖项。 请参阅 安装

如果您还没有这样做,请使用以下方式获取源代码

$ cd AutowareAuto
$ vcs import < autoware.auto.$ROS_DISTRO.repos

或者,您可以选择默认 Cyclone DDS 以外的 DDS 实现: 选择 DDS 供应商

如果运行测试或演示,还请使用以下命令提取二进制文件

$ git lfs pull --exclude="" --include="*"

使用 colcon 默认值

强烈建议使用 Autoware.Auto 提供的 colcon 默认文件,以确保二进制文件始终使用相同的标志构建。

通过键入以下内容测试所需的环境变量 COLCON_DEFAULTS_FILE 是否已正确设置:

$ 回声 $COLCON_DEFAULTS_FILE

如果输出为空,请按照以下说明进行配置。

ADE内部

根据使用 ADE 安装 创建一个全新的 ADE 主页后 , .bashrc 将填充 以设置 COLCON_DEFAULTS_FILE 环境变量。

要将 colcon 默认配置文件与现有 ADE 主页一起使用,请在 ADE 中键入以下内容

ade$ echo "export COLCON_DEFAULTS_FILE=/usr/local/etc/colcon-defaults.yaml" >> ~/.bashrc

ADE外部

获取 Autoware.Auto 源代码检查附带的默认文件并将其添加到您的 shell 启动中; 例如

$ echo "export COLCON_DEFAULTS_FILE=/path/to/AutowareAuto/tools/ade_image/colcon-defaults.yaml" >> .bashrc

或者在发出编译命令的终端中手动导出变量; 例如

$ export COLCON_DEFAULTS_FILE=/path/to/AutowareAuto/tools/ade_image/colcon-defaults.yaml

如何构建代码

要在 Autoware.Auto 中构建所有包,请导航到 AutowareAuto 目录并运行

ade$ colcon 构建

始终 colcon build 从存储库根目录运行很重要。 如果一切顺利,您应该 不会 在屏幕上看到“失败”,尽管“包有标准错误输出”是可以的。

有关影响代码构建方式的更多详细信息, 请参阅 编译优化和调试参数。

要验证一切是否按预期工作,请查看所有测试是否通过:

ade$ colcon 测试
ade$ colcon 测试结果 --verbose

第一个命令将运行附加到工作区中的包的测试。 第二个命令为您提供了测试通过哪些测试失败的详细输出。

高级选项

ROS 2 使用 colcon 构建系统。 有关选项和标志的更多信息和详细信息,请查看

colcon 构建 --help

并查看 colcon 文档 。 下面列出了一些最有用的选项。 请注意, colcon 选项用下划线而不是破折号拼写——这是拼写错误的常见原因。

选择要构建的包

只构建一个包:

colcon build --packages-select <package_name>

请注意,这不会自动递归地构建或重建其依赖项。 要做到这一点:

colcon build --packages-up-to <package_name>

这些选项也被 colcon test .

编译优化和调试参数

为所有包添加编译器标志,例如启用未定义的行为清理程序:

colcon build --cmake-args -DCMAKE_CXX_FLAGS="-fsanitize=undefined"

在构建 Autoware.Auto 时,以下是编译构建类型的一些常见选项:

  • Release :优化和快速
  • Debug :带有调试标志但速度较慢,因为并非应用了所有编译优化
  • RelWithDebInfo : 快速并且允许调试到相当程度

笔记

使用 Autoware.Auto 附带的 colcon 默认配置文件 时,默认构建类型为 RelWithDebInfo .

colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Debug
colcon build --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo

警告

如果未设置优化标志,则 Autoware.Auto 堆栈可能太慢而无法使用。 例如,当 CMake 构建类型已 Debug 设置或根本未设置时,可能会发生这种情况。

编辑 colcon 默认配置文件 -cmake-args 以 永久传递 extra colcon build 或选择不同的默认构建类型。 这些设置可以通过将命令行参数传递给 colcon .

autoware_auto_cmake.cmake Autoware.Auto 中的 C++ 目标是使用由 in 中的指令和该 autoware_set_compile_options() 文件中定义的函数 集中设置的附加选项构建的。 设置通过依赖于 autoware_auto_cmake 包中的包导入到包中 package.xml

< buildtool_depend > autoware_auto_cmake </ buildtool_depend >

并将构建依赖项导入 CMakeLists.txt

ament_auto_find_build_dependencies()

请参阅 查看编译器命令 以检查编译器标志。

笔记 无论发布类型如何,少量目标 都会停用优化标志,以减少构建时间。 要覆盖它,请调用 colcon build --cmake-args -DAUTOWARE_OPTIMIZATION_OF_SLOW_TARGETS=ON .

编译数据库生成

为了让 IDE 分析构建依赖和符号关系, 可以使用以下标志生成 编译数据库:

colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=1

配置变量

Autoware 构建系统定义了可以设置以更改构建配置的全局变量。 例如,要在构建时启用下载工件:

colcon build --cmake-args -DDOWNLOAD_ARTIFACTS=ON

请参阅 CMake 变量

清理构建输出

colcon 不擅长无状态,因此当您构建、进行更改并再次构建时,有时会得到与从头开始构建时不同的结果。 为了确保你得到一个全新的包,只需做

rm -rf {构建,安装}/my_package

删除与该包关联的所有构建工件。 或者,如果您不想删除旧的二进制文件,您可以指定自定义构建和安装目录:

colcon build --build-base build_mybranch --install-base install_mybranch

查看编译器命令

要查看包的编译器和链接器调用,请使用

VERBOSE=1 colcon build --packages-up-to <package_name> --event-handlers console_direct+

从一张白纸开始

构建 Autoware.Auto 的大多数问题是由过时的软件或旧的构建文件引起的。 要更新 ade 和它管理的 Docker 容器以及清除旧版本,请在您的 adehome/AutowareAuto 文件夹中运行以下命令:

$ ade停止
$ sudo ade 更新-cli
$ ade 开始 --update --enter
ade$ cd AutowareAuto
ade$ rm -rf build/ install/ log/ src/external/
ade$ git pull
ade$ vcs import < autoware.auto.$ROS_DISTRO.repos

如果您在 之外使用 Autoware.Auto ade ,请尝试更新您的系统并在您的文件夹中运行以下命令 AutowareAuto 并重新构建( $ROS_DISTRO 当前发行版在哪里,例如 foxy ):

$ rm -rf 构建/安装/日志/src/external/
$ git拉
$ 源 /opt/ros/$ROS_DISTRO/setup.bash
$ vcs import < autoware.auto.$ROS_DISTRO.repos

如果在运行这些命令后您仍然遇到问题,请参阅 支持指南 以了解在哪里提问。

 


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



727 次浏览
6次
欢迎参加课程:
MBSE(基于模型的系统工程)
系统思维与系统工程
系统工程方法与实践