Version:

ROS 2 项目配置

要求

  • 带有 ROS 2 Humble 的 Ubuntu 22.04 或带有 ROS 2 Jazzy 的 Ubuntu 24.04。其他 Ubuntu 版本、ROS 2 版本和 Linux 发行版也可以工作,但不受支持。
    重要:
    ROS 2 Gem 不适用于 Windows。
  • O3DE 在 Linux 上从源代码构建.
  • ROS 2的 最新版 。此说明假定已安装desktop版本。否则,可能会缺少某些包。

设置

ROS 2 生态系统

获取您的 ROS 2 工作区

要使用 ROS 2 Gem 构建或运行项目,您必须在控制台中 source your ROS 2 workspace 。确保 ROS 2 始终是来源的最好方法是将以下行添加到~/.profile文件中:

source /opt/ros/<distro>/setup.bash

<distro> 替换为 ROS 2 分配名称(例如 humble)。 然后,您必须注销并从 Ubuntu 登录,更改才能生效。

自定义软件包

Gem 完全支持 工作区叠加 。 在 ROS 2 安装的基础上获取您的工作区以包含自定义软件包。

Gem 附带了许多已包含和链接的 ROS 2 包,但您可能希望在项目中包含其他包。 为此,在你的项目的Gem/CMakeLists.txt中使用 target_depends_on_ros2 功能:

target_depends_on_ros2_packages(<your_target> <ros_package1> <ros_package2>)

使用多个 ROS 版本

如果您安装了多个 ROS 2 版本,请确保您 source 是您想要使用的那个。您可以通过检查ROS_DISTRO环境变量 (echo $ROS_DISTRO) 的值来检查控制台中的版本来源。

如果项目之前是使用其他 ROS 版本构建的,您当前需要重新构建项目。

需要额外的 ROS 2 软件包

  • gazebo_msgs: ros-${ROS_DISTRO}-gazebo-msgs
    • gazebo_msgs 用于机器人生成(不依赖于 Gazebo)。
  • Ackermann messages: ros-${ROS_DISTRO}-ackermann-msgs
  • Control messages ros-${ROS_DISTRO}-control-msgs
  • XACRO ros-${ROS_DISTRO}-xacro
  • Vision msgs ros-${ROS_DISTRO}-vision-msgs

如果选择了 ROS 2 发行版的desktop安装,则其他所有内容都应该在那里。

使用这个有用的命令来安装:

sudo apt install ros-${ROS_DISTRO}-ackermann-msgs ros-${ROS_DISTRO}-control-msgs ros-${ROS_DISTRO}-nav-msgs ros-${ROS_DISTRO}-gazebo-msgs ros-${ROS_DISTRO}-xacro ros-${ROS_DISTRO}-vision-msgs

克隆 Gem 存储库

ROS 2 Gem 位于 ‘o3de/o3de-extras’ 存储库中。将 GitHub 存储库克隆到您的计算机上:

git clone https://github.com/o3de/o3de-extras

注册 Gem

要在任何 O3DE 项目中使用 ROS 2 Gem,您需要在 O3DE 中注册它。

为方便起见,请设置几个环境变量: O3DE_HOME到 O3DE 所在的位置 和 O3DE_EXTRAS_HOME 添加到克隆的 o3de-extras 存储库的路径中,例如:

export O3DE_HOME=${HOME}/o3de
export O3DE_EXTRAS_HOME=${HOME}/o3de-extras

运行以下命令以注册 ROS 2 Gem:

${O3DE_HOME}/scripts/o3de.sh register --gem-path ${O3DE_EXTRAS_HOME}/Gems/ROS2

注册机器人项目模板

机器人项目模板可以帮助您快速启动仿真项目。我们建议您注册机器人项目模板 Gem 及其资产 Gem,这些 Gem 是使用o3de-extras存储库下载的。

要注册机器人模板和资产:

  1. 启用 Git Large File Storage (LFS)(如果尚未启用)。 Asset Gem 使用 LFS 存储大型文件。
    cd ${O3DE_EXTRAS_HOME}
    git lfs install && git lfs pull
    
  2. 从 o3de-extras 注册以下模板和资产。
    ${O3DE_HOME}/scripts/o3de.sh register --all-gems-path ${O3DE_EXTRAS_HOME}/Gems/
    ${O3DE_HOME}/scripts/o3de.sh register --all-templates-path ${O3DE_EXTRAS_HOME}/Templates/
    

有关更多信息,请参阅 添加和删除 Gem注册 Gem

创建一个新的机器人模拟项目

机器人项目模板

工程模板是塑造初始工程的有用工具。 使用模板创建时,新项目可以从特定配置开始。包括某些已启用的 Gem 和起始关卡。

机器人项目模板旨在帮助您快速开始使用 ROS 2 在 O3DE 中模拟机器人。

ROS 2 项目模板

机器人有三个模板:

  • ROS 2 项目模板 :
    • 一个多功能、轻量级的模板,非常适合启动项目,包括一个带差动驱动的机器人。
  • Warehouse 项目模板 :
    • 带有 Proteus 机器人的照片级逼真仓库,易于定制和扩展(多机器人)。
  • Manipulation 项目模板 :
    • 包括两个带有机器人机械臂的级别:一个专注于码垛,另一个专注于研发。

:bulb: 模板存储库还包括一些示例,您可以按照其 README 文件进行试用。

使用模板创建新项目

要使用模板创建项目,您可以使用 GUI 或命令行。 最快的方法是运行以下命令 (调整 PROJECT_NAME, PROJECT_PATH 和您想要的模板):

export PROJECT_NAME=MySimulationProject
export PROJECT_PATH=${HOME}/projects/${PROJECT_NAME}
${O3DE_HOME}/scripts/o3de.sh create-project --project-path $PROJECT_PATH --template-path ${O3DE_EXTRAS_HOME}/Templates/Ros2ProjectTemplate 

有关更多信息,请参阅 项目创建

构建

ROS 2 Gem 是在启用 ROS 2 Gem 的情况下构建 O3DE 项目时构建的。

在构建之前,请确保 source your ROS 2 workspace

为方便起见,下面是一个参数化 CMake 调用的示例:

cd $PROJECT_PATH
cmake -B build/linux -G "Ninja Multi-Config" -DLY_DISABLE_TEST_MODULES=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DLY_STRIP_DEBUG_SYMBOLS=ON
cmake --build build/linux --config profile --target ${PROJECT_NAME} Editor ${PROJECT_NAME}.Assets 
注意:

在版本 24.09.0 之前,PhysX 5 是实验性的,并在引擎的源代码编译过程中进行编译。 如果您使用的是版本 23.10.3 或更早版本,则需要指定一个附加标志:-DAZ_USE_PHYSX5:BOOL=ON :

cmake -B build/linux -G "Ninja Multi-Config" -DLY_DISABLE_TEST_MODULES=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DLY_STRIP_DEBUG_SYMBOLS=ON -DAZ_USE_PHYSX5:BOOL=ON 

在 O3DE 编辑器中启动您的项目

构建项目后,运行以下命令以启动 Editor:

${PROJECT_PATH}/build/linux/bin/profile/Editor