用于多车队机器人管理的 Open-RMF 平台。
Open-RMF 是软件包的集合,其中一些软件包具有 ROS 2 依赖项。为了方便起见,我们与 ROS 2 一起分发和安装 Open-RMF,目前支持以下 ROS 2 发行版:
humble
)iron
)jazzy
)rolling
)我们主要支持Ubuntu
上的 Debian 软件包,并为amd64
和aarch64
架构的RHEL/Fedora
选择 RPM 软件包。
安装 Open-RMF 的选项:
如果您想尝试 Open-RMF,我们建议您安装二进制文件。从源代码构建更适合希望添加新功能或修复错误的开发人员。
以下说明针对Ubuntu
。
首先,请按照安装说明从上面列出的支持distro
中选择安装 ROS 2。建议通过二进制 debians 安装 ROS 2。
注意:为了安装 Open-RMF 二进制文件,设置您的计算机以安装 ROS 软件包非常重要。这是安装 ROS 2 debian 二进制文件时的先决步骤。
安装 Open-RMF 包的所有非 ROS 依赖项,
sudo apt update && sudo apt install ros-dev-tools -y
rosdep
帮助跨各种发行版安装 ROS 软件包的依赖项,并将与ros-dev-tools
一起安装。然而,更新它很重要。
sudo rosdep init # run if first time using rosdep.
rosdep update
如果您之前没有更新过colcon mixin
,请更新它。
colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
colcon mixin update default
首先按照“设置”部分中的说明进行操作。最后安装所选发行distro
的 Open-RMF debian 软件包。
sudo apt update && sudo apt install ros- < distro > -rmf-dev
注意:这将安装运行 Open-RMF 所需的所有 debian 软件包,但 rmf_demos 中的软件包除外(出于本期所述原因)。
要从源代码构建rmf_demos
,请首先确定与您的发行版的最新二进制版本相对应的rmf_demos
版本。例如,如果您安装了 Open-RMF 的humble
二进制文件,则可以在此存储库的humble-release
分支的rmf.repos
文件中找到此版本的rmf_demos
版本,例如此处。
接下来创建 ROS 2 工作区并从源代码构建rmf_demos
。将下面的2.0.3
标签替换为适合您的发行版的rmf_demos
版本。
mkdir ~ /rmf_ws/src -p
cd ~ /rmf_ws/src
git clone https://github.com/open-rmf/rmf_demos.git -b 2.0.3
cd ~ /rmf_ws
colcon build
要在模拟中运行 Open-RMF 的一些演示,请参阅 rmf_demos 中的自述文件。
首先按照“设置”部分中的说明进行操作。
由于源代码中存在较新的更改,二进制文件安装的旧头文件可能会出现冲突和编译错误。因此,在继续之前,请确保卸载将用于构建的 ROS 2 发行版的所有 Open-RMF 二进制文件。
sudo apt purge ros- < distro > -rmf * && sudo apt autoremove
Open-RMF 是多个存储库/包的集合。 rmf.repos 提供了这些包的快照。该存储库存储该文件的不同版本,具体取决于 ROS 2 发行版和发行版本。根据使用案例,您可以选择从此存储库中的以下分支之一下载此文件:
main
:所有软件包的最新版本,可能有也可能没有二进制版本。建议将其用于开发和错误修复。<distro>
:特定 ROS 2 发行版的最新版本的软件包。这可能与main
不同,因为合并到main
中的新 API/ABI 破坏功能不会向后移植到<distro>
分支中。从<distro>
下载的软件包可能具有二进制文件中尚未提供的更改。<distro>-release
:其中<distro>
是受支持的 ROS 2 发行版(例如, humble
)。此处的软件包版本将与该发行版可用的最新二进制文件的版本相对应。release-<distro>-YYMMDD
:特定<distro>
的标签,其中包的版本与YYMMDD
上可用的二进制文件的版本相对应。有关每个版本的其他信息,请参阅版本。如果用户想从旧版本构建软件包,这非常有用。设置新的 ROS 2 工作区并使用vcs
引入演示存储库。将main
替换为您选择的分支。
mkdir -p ~ /rmf_ws/src
cd ~ /rmf_ws
wget https://raw.githubusercontent.com/open-rmf/rmf/main/rmf.repos
vcs import src < rmf.repos
更新您的 rosdep 定义并通过rosdep
安装依赖项。
cd ~ /rmf_ws
sudo apt update
rosdep update
source /opt/ros/humble/setup.bash # replace humble with preferred ROS 2 distro.
rosdep install --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y
注意:我们强烈建议使用clang
作为编译器和lld
作为链接器来编译 Open-RMF 包。
sudo apt update
sudo apt install clang clang-tools lldb lld libstdc++-12-dev
获取所选的 ROS 2 发行版后编译工作区。
cd ~ /rmf_ws
export CXX=clang++
export CC=clang
colcon build --mixin release lld
注意:第一次构建时,将从 Gazebo Fuel 下载许多模拟模型,以在模拟运行时填充场景。因此,第一次构建可能需要很长时间,具体取决于服务器负载和您的互联网连接(可能长达一个小时)。要在不下载模型的情况下进行构建,请将
--cmake-args -DNO_DOWNLOAD_MODELS=On
附加到colcon build
要在模拟中运行 Open-RMF 的一些演示,请参阅 rmf_demos 中的自述文件。
我们还为 Open-RMF 提供了 docker 镜像。
从open-rmf/rmf
github 注册表中提取 docker 映像(设置请参阅此处)。
docker pull ghcr.io/open-rmf/rmf/rmf_demos:latest
docker tag ghcr.io/open-rmf/rmf/rmf_demos:latest rmf:latest
运行它!
docker run -it --network host rmf:latest bash -c " export ROS_DOMAIN_ID=9; ros2 launch rmf_demos_gz office.launch.xml headless:=1 "
这将以无头模式运行rmf_demos
。
(实验)用户还可以通过摇杆以“非无头”图形形式运行rmf_demos
。
Open-RMF 的演示如 rmf_demos 所示。
整个 Open-RMF 项目(包括和超出rmf_traffic
)的近期路线图可以在此处的用户手册中找到。
有关如何将您的系统与 Open-RMF 集成的说明可以在此处找到。
许多商业机器人、基础设施系统、工作单元和设备已与 Open-RMF 集成,并且在 Awesome_adapter 存储库中提供了其适配器的链接
帮助我们添加到这个列表!
将您的舰队与 RMF 集成的一个有用的起点是舰队_适配器_模板。
如果您的机器人/舰队公开本机 ROS 导航端点,则它可以轻松与 free_fleet 集成。
有关开发和发布过程的更多信息可以在此处找到