Платформа Open-RMF для управления несколькими парками роботов.
Open-RMF — это набор пакетов, некоторые из которых имеют зависимости от ROS 2. Для удобства мы распространяем и устанавливаем Open-RMF вместе с ROS 2, и в настоящее время он поддерживается для следующих дистрибутивов ROS 2:
humble
)iron
)jazzy
)rolling
) В первую очередь мы поддерживаем пакеты Debian в Ubuntu
и выбираем пакеты RPM для RHEL/Fedora
как для архитектур amd64
, так и для aarch64
.
Варианты установки Open-RMF:
Если вы хотите попробовать Open-RMF, мы рекомендуем установить двоичные файлы. Сборка из исходного кода лучше подходит разработчикам, которые хотят добавить новые функции или исправить ошибки.
Инструкция ниже предназначена для Ubuntu
.
Сначала следуйте инструкциям по установке, чтобы установить ROS 2 для выбранного distro
из поддерживаемых версий, перечисленных выше. Рекомендуется устанавливать ROS 2 через двоичный файл Debian.
Примечание. Чтобы установить двоичные файлы Open-RMF, важно настроить компьютер для установки пакетов ROS. Это обязательный шаг при установке двоичных файлов Debian ROS 2.
Установите все зависимости пакетов 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
Сначала следуйте инструкциям в разделе «Настройка». Наконец, установите пакеты Debian Open-RMF для выбранного distro
.
sudo apt update && sudo apt install ros- < distro > -rmf-dev
Примечание. При этом будут установлены все необходимые пакеты Debian для запуска Open-RMF, за исключением тех, которые находятся в rmf_demos по причинам, описанным в этой проблеме.
Чтобы собрать rmf_demos
из исходного кода, сначала определите версию rmf_demos
, соответствующую последней двоичной версии вашего дистрибутива. Например, если вы установили humble
двоичные файлы Open-RMF, версию rmf_demos
для этого выпуска можно найти в файле rmf.repos
в ветке humble-release
этого репозитория, например здесь.
Затем создайте рабочую область 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 в моделировании, см. README в rmf_demos.
Сначала следуйте инструкциям в разделе «Настройка».
Из-за новых изменений в исходном коде могут возникнуть конфликты и ошибки компиляции со старыми файлами заголовков, установленными двоичными файлами. Следовательно, прежде чем продолжить, обязательно удалите все двоичные файлы Open-RMF для дистрибутива ROS 2, который будет использоваться для сборки.
sudo apt purge ros- < distro > -rmf * && sudo apt autoremove
Open-RMF — это набор из нескольких репозиториев/пакетов. rmf.repos предоставляет моментальный снимок этих пакетов. В этом репозитории хранятся разные версии этого файла в зависимости от дистрибутива ROS 2 и версии выпуска. В зависимости от варианта использования вы можете загрузить этот файл из одной из следующих веток этого репозитория:
main
: Последняя версия всех пакетов, которые могут иметь или не иметь двоичную версию. Рекомендуется для разработки и исправления ошибок.<distro>
: последняя версия пакетов для конкретного дистрибутива ROS 2. Это может отличаться от main
, поскольку новые функции взлома API/ABI, объединенные в main
не будут перенесены в ветки <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
ПРИМЕЧАНИЕ. Мы настоятельно рекомендуем компилировать пакеты Open-RMF, используя clang
в качестве компилятора и lld
в качестве компоновщика.
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 в моделировании, см. README в rmf_demos.
Мы также предоставляем образ докера для Open-RMF.
Извлеките образ докера из реестра github open-rmf/rmf
(настройку см. здесь).
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 является файл flow_adapter_template.
Если ваш робот/парк предоставляет собственные конечные точки навигации ROS, его можно легко интегрировать с free_fleet.
Более подробную информацию о процессе разработки и выпуска можно найти здесь.