La plateforme Open-RMF pour la gestion de robots multi-flotte.
Open-RMF est un ensemble de packages, dont certains ont des dépendances ROS 2. Pour plus de commodité, nous distribuons et installons Open-RMF avec ROS 2 et est actuellement pris en charge pour les distributions ROS 2 suivantes :
humble
)iron
)jazzy
)rolling
) Nous prenons principalement en charge les packages Debian sur Ubuntu
et sélectionnons les packages RPM pour RHEL/Fedora
pour les architectures amd64
et aarch64
.
Options d'installation d'Open-RMF :
Si vous souhaitez essayer Open-RMF, nous vous recommandons d'installer les binaires. La construction à partir des sources convient mieux aux développeurs qui souhaitent ajouter de nouvelles fonctionnalités ou corriger des bugs.
Les instructions ci-dessous sont destinées à Ubuntu
.
Veuillez d'abord suivre les instructions d'installation pour installer ROS 2 pour la distro
de votre choix parmi les versions prises en charge répertoriées ci-dessus. Il est recommandé d'installer ROS 2 via Debians binaires.
Remarque : Afin d'installer les binaires Open-RMF, il est important de configurer votre ordinateur pour installer les packages ROS. Il s'agit d'une étape préalable à l'installation des binaires Debian de ROS 2.
Installez toutes les dépendances non-ROS des packages Open-RMF,
sudo apt update && sudo apt install ros-dev-tools -y
rosdep
aide à installer les dépendances pour les packages ROS sur diverses distributions et sera installé avec ros-dev-tools
. Il est cependant important de le mettre à jour.
sudo rosdep init # run if first time using rosdep.
rosdep update
Mettez à jour colcon mixin
si vous ne l’avez pas déjà fait.
colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
colcon mixin update default
Suivez d’abord les instructions de la section Configuration. Enfin, installez les packages Debian Open-RMF pour la distro
de votre choix.
sudo apt update && sudo apt install ros- < distro > -rmf-dev
Remarque : cela installera tous les packages Debian nécessaires pour exécuter Open-RMF, à l'exception de ceux de rmf_demos pour les raisons décrites dans ce numéro.
Pour créer rmf_demos
à partir des sources, déterminez d'abord la version de rmf_demos
qui correspond à la dernière version binaire de votre distribution. Par exemple, si vous avez installé les humble
binaires d'Open-RMF, la version de rmf_demos
pour cette version se trouve dans le fichier rmf.repos
dans la branche humble-release
de ce référentiel, par exemple ici.
Créez ensuite un espace de travail ROS 2 et créez rmf_demos
à partir des sources. Remplacez la balise 2.0.3
ci-dessous par la version de rmf_demos
pour votre distribution.
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
Pour exécuter des démonstrations d'Open-RMF en simulation, voir README dans rmf_demos.
Suivez d’abord les instructions de la section Configuration.
En raison de modifications plus récentes apportées au code source, il peut y avoir des conflits et des erreurs de compilation avec les anciens fichiers d'en-tête installés par les binaires. Par conséquent, avant de continuer, assurez-vous de désinstaller tous les binaires Open-RMF pour la distribution ROS 2 qui proviendront de la version.
sudo apt purge ros- < distro > -rmf * && sudo apt autoremove
Open-RMF est une collection de plusieurs référentiels/packages. Le rmf.repos fournit un instantané de ces packages. Ce référentiel stocke différentes versions de ce fichier en fonction de la distribution ROS 2 et de la version de la version. Selon le cas d'utilisation, vous pouvez choisir de télécharger ce fichier à partir de l'une des branches suivantes de ce référentiel :
main
: Dernière version de tous les packages qui peuvent ou non avoir encore une version binaire. Ceci est recommandé pour le développement et les corrections de bugs.<distro>
: La dernière version des packages pour une distribution ROS 2 spécifique. Cela peut être différent de main
car les nouvelles fonctionnalités de rupture API/ABI fusionnées dans main
ne seront pas rétroportées dans les branches <distro>
. Les packages téléchargés depuis <distro>
peuvent comporter des modifications qui ne sont pas encore disponibles dans les binaires.<distro>-release
: Où <distro>
est une distribution ROS 2 prise en charge (par exemple humble
). La version des packages ici correspondra à celles des derniers binaires disponibles pour cette distribution.release-<distro>-YYMMDD
: Une balise pour une <distro>
spécifique où la version des packages correspond à celles des binaires disponibles sur YYMMDD
. Voir Versions pour plus d’informations sur chaque version. Ceci est utile si les utilisateurs souhaitent créer des packages à partir d'une version antérieure. Configurez un nouvel espace de travail ROS 2 et extrayez les référentiels de démonstration à l'aide de vcs
. Remplacez main
par la branche de votre choix.
mkdir -p ~ /rmf_ws/src
cd ~ /rmf_ws
wget https://raw.githubusercontent.com/open-rmf/rmf/main/rmf.repos
vcs import src < rmf.repos
Mettez à jour vos définitions rosdep et installez les dépendances via 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
REMARQUE : Nous vous recommandons fortement de compiler les packages Open-RMF avec clang
comme compilateur et lld
comme éditeur de liens.
sudo apt update
sudo apt install clang clang-tools lldb lld libstdc++-12-dev
Compilez l'espace de travail après avoir recherché la distribution ROS 2 de votre choix.
cd ~ /rmf_ws
export CXX=clang++
export CC=clang
colcon build --mixin release lld
REMARQUE : lors de la première construction, de nombreux modèles de simulation seront téléchargés depuis Gazebo Fuel pour remplir la scène lors de l'exécution de la simulation. Par conséquent, la première build peut prendre beaucoup de temps en fonction de la charge du serveur et de votre connexion Internet (peut aller jusqu'à une heure). Pour construire sans télécharger de modèles, ajoutez
--cmake-args -DNO_DOWNLOAD_MODELS=On
à lacolcon build
Pour exécuter des démonstrations d'Open-RMF en simulation, voir README dans rmf_demos.
Nous fournissons également une image Docker pour Open-RMF.
Extrayez l'image Docker du registre github open-rmf/rmf
(la configuration se réfère ici).
docker pull ghcr.io/open-rmf/rmf/rmf_demos:latest
docker tag ghcr.io/open-rmf/rmf/rmf_demos:latest rmf:latest
Exécutez-le !
docker run -it --network host rmf:latest bash -c " export ROS_DOMAIN_ID=9; ros2 launch rmf_demos_gz office.launch.xml headless:=1 "
Cela exécutera rmf_demos
en mode sans tête.
(Expérimental) L'utilisateur peut également exécuter rmf_demos
sous une forme graphique « sans tête », via rocker.
Des démonstrations d'Open-RMF sont présentées dans rmf_demos.
Une feuille de route à court terme de l'ensemble du projet Open-RMF (y compris et au-delà de rmf_traffic
) peut être trouvée dans le manuel d'utilisation ici.
Des instructions sur la façon d’intégrer votre système à Open-RMF peuvent être trouvées ici.
Un certain nombre de robots commerciaux, de systèmes d'infrastructure, de cellules de travail et d'appareils ont été intégrés à Open-RMF et des liens vers leurs adaptateurs sont disponibles dans le référentiel Awesome_adapter.
Aidez-nous à compléter cette liste !
Un point de départ utile pour intégrer votre flotte à RMF est le Fleet_adapter_template.
Si votre robot/flotte expose des points de terminaison de navigation ROS natifs, il peut être facilement intégré à free_fleet.
Plus d'informations sur le processus de développement et de publication peuvent être trouvées ici