Projet open source
ros/meta-ros avatar
ros/meta-ros

meta-ros : analyse pratique fondée sur le README

Ce projet transforme « OpenEmbedded Layers for ROS 1 and ROS 2. meta-ros This is a series of OpenEmbedded layers designed to add support for the Robot Operating System (ROS) for embedded Linux releases by the Yocto Project. » en une solution open source exploitable, avec une chaîne d’outils réutilisable et des moyens d’intégration pour des cas d’usage concrets.

485 étoiles287 forksBitBakeMIT
GitHub

En bref

De quoi s’agit-il ?
OpenEmbedded Layers for ROS 1 and ROS 2. meta-ros This is a series of OpenEmbedded layers designed to add support for the Robot Operating System (ROS) for embedded Linux releases by the Yocto Project.
À qui s’adresse-t-il ?
meta-ros s'adresse aux utilisateurs dont le besoin correspond précisément à la fonction documentée du dépôt. Il convient moins à ceux qui attendent des garanties absentes du README.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement BitBake, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Ajouter ROS aux systèmes Linux basés sur Yocto

meta-ros est une série de couches OpenEmbedded qui ajoutent le support du Robot Operating System (ROS) aux distributions Linux embarquées construites avec le projet Yocto. Selon le README, cela permet aux développeurs de créer des systèmes robotiques personnalisés basés sur Linux, combinant les capacités de ROS et la flexibilité de Yocto. La description du dépôt l'identifie comme 'couches OpenEmbedded pour ROS 1 et ROS 2', et le langage principal est BitBake selon les métadonnées du dépôt.

Combinaisons prises en charge et dates de fin de vie

Le README contient un tableau des distributions Yocto et ROS 2 prises en charge avec leurs dates de fin de vie. Les combinaisons non affichées dans le tableau sont présumées non prises en charge. Le tableau liste des distributions Yocto telles que Wrynose (LTS) et Scarthgap (LTS), et des distributions ROS 2 comme Humble (LTS), Jazzy (LTS), Kilted et Lyrical (LTS). Certaines entrées sont barrées, indiquant des dates de fin de vie passées. Par exemple, l'intersection de Wrynose et Humble affiche mai 2027. Le README n'explique pas comment ces dates sont déterminées.

Niveaux de support

Le README définit quatre niveaux de support. 'full' signifie que la configuration est entièrement prise en charge. 'unsupported' signifie que la configuration n'est jamais construite et n'est mise à jour que pour corriger des changements cassants introduits en amont, par exemple un renommage de branche de dépôt ou le remplacement de git:// par https://. 'best-effort' s'applique lorsque la configuration contient une distribution ROS ou une série de versions OpenEmbedded en fin de vie, ce qui signifie qu'un 'best effort' sera fait pour que tous les paquets se construisent. 'contrib' signifie que la configuration a été contribuée et n'est pas construite. Ces définitions apparaissent dans un tableau du README.

Commencer avec Kirkstone et Humble

Le README recommande de commencer avec la combinaison de Kirkstone (projet Yocto) et Humble (ROS 2) comme moyen le plus simple de démarrer. Il indique que l'outil kas peut être utilisé pour cloner les dépôts git nécessaires et lancer la construction. Les instructions sont fournies dans un README séparé dans la branche build du dépôt, lié depuis le README principal. Le README ne contient pas de commandes spécifiques pour le processus de construction.

Structure du dépôt et branches

Le dépôt a plusieurs types de branches. La branche master suit la série de versions Yocto actuellement en développement. Les branches nommées d'après les versions Yocto suivent les mises à jour pendant leur cycle de vie de support et ont un historique de commits linéaire. Les branches -next contiennent des commits en attente de fusion et peuvent être réécrites à mesure que les patchs sont testés et révisés. La branche build contient l'outil mcf pour créer un environnement à l'aide de fichiers de configuration .mcf, situés dans les répertoires files, files-contrib et files-unsupported. Les couches spécifiques à ROS incluent meta-ros-common, qui fournit des recettes communes à toutes les distributions ROS, et des couches par distribution contenant des fichiers de configuration bitbake décrivant la distribution et ses paquets. Les recettes générées par superflore sont stockées dans les répertoires recipes-*, et les modifications des recettes générées sont effectuées via des fichiers bbappend dans recipes-bbappends.

Historique et génération de recettes

L'implémentation originale de meta-ros pour ROS 1 Indigo a été transférée de bmwcarit/meta-ros le 2019-06-25. Le port initial de ROS 2 a été entrepris par Erle Robotics et intégré en amont. Le projet a depuis été converti pour utiliser des recettes générées par l'outil superflore. L'implémentation originale est conservée dans la branche legacy. Le README note également que les versions antérieures de jalons sont documentées sur le wiki meta-ros, le dernier jalon officiel étant le jalon 17 du 2022-06-05. Les jalons suivent le format <BRANCH>/milestones/<N> et fournissent des mises à jour pour toutes les combinaisons prises en charge.

Contribuer et communauté

Le README énumère plusieurs façons de contribuer : signaler des erreurs de construction, rédiger de la documentation, ajouter le support de paquets ROS actuellement ignorés, et ajouter des tests de construction et d'exécution. Les bogues peuvent être signalés comme issues, et les pull requests sont les bienvenus. Le fichier CONTRIBUTING.md fournit des informations supplémentaires. Les discussions communautaires ont lieu dans la catégorie OpenEmbedded du forum ROS Discourse, et il y a une réunion bimensuelle du groupe de travail ROS OpenEmbedded avec des procès-verbaux et des invitations liés. Le README ne spécifie pas de processus de contribution au-delà de ces indications.

Conclusion éditoriale

meta-ros s'adresse aux utilisateurs dont le besoin correspond précisément à la fonction documentée du dépôt. Il convient moins à ceux qui attendent des garanties absentes du README. Commencez par le scénario propre au projet décrit dans la dernière section, puis vérifiez les sorties et les journaux avant toute donnée sensible.

Sources officielles

  1. Official README
  2. Project repository
  3. Release notes
Notes de la communauté

Notes de la communauté