{"id":6276,"date":"2019-12-17T12:04:23","date_gmt":"2019-12-17T11:04:23","guid":{"rendered":"https:\/\/blog.generationrobots.com\/?p=6276"},"modified":"2023-03-29T10:43:37","modified_gmt":"2023-03-29T08:43:37","slug":"ros2-quest-ce-qui-change-par-rapport-a-ros","status":"publish","type":"post","link":"https:\/\/www.generationrobots.com\/blog\/fr\/ros2-quest-ce-qui-change-par-rapport-a-ros\/","title":{"rendered":"ROS2 : qu\u2019est-ce qui change par rapport \u00e0 ROS ?"},"content":{"rendered":"\n<html>\n <body>\n  <p>\n   Il n&rsquo;existe, aujourd\u2019hui, que deux versions du middleware ROS : ROS et ROS2. La premi\u00e8re version de ROS est parfois appel\u00e9e ROS1. Dans cet article nous appellerons cette premi\u00e8re version \u00ab\u00a0ROS\u00a0\u00bb, et la deuxi\u00e8me version \u00ab\u00a0ROS2\u00a0\u00bb.\n  <\/p>\n  \n  \n  <p>\n   Il nous semble important de rappeler que ROS2 est actuellement en cours de d\u00e9veloppement. Certains packages ont d\u00e9j\u00e0 \u00e9t\u00e9 publi\u00e9s mais la plupart d&rsquo;entre eux ne sont pas encore compatibles. De plus, certaines fonctionnalit\u00e9s de ROS2 ne sont pas encore disponibles.\n  <\/p>\n  \n  \n  <p>\n   Nous vous recommandons de vous tenir inform\u00e9s sur les nouvelles fonctionnalit\u00e9s de ROS2, et de le tester, en vue de la disponibilit\u00e9 prochaine d\u2019une version stable et compl\u00e8te.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-retour-en-arriere-qu-est-ce-que-ros\">\n   Retour en arri\u00e8re : qu\u2019est-ce que ROS ?\n  <\/h2>\n  \n  \n  <p>\n   Robot Operating System (ROS) est un ensemble de biblioth\u00e8ques logicielles et d&rsquo;outils open source qui vous aident \u00e0 cr\u00e9er des applications robotiques. Des pilotes aux algorithmes de pointe, en passant par les puissants outils de d\u00e9veloppement, ROS a ce qu&rsquo;il vous faut pour votre prochain projet robotique.\n  <\/p>\n  \n  \n  <p>\n   Pour plus d&rsquo;informations, vous pouvez lire notre pr\u00e9c\u00e9dent\n   <a class=\"blog\" href=\"\/blog\/fr\/ros-robot-operating-system-3\/\" title=\"ROS Tutoriel\">\n    article \u00e0 propos de ROS\n   <\/a>\n   , il vous donnera un aper\u00e7u de ce qu&rsquo;est ROS, de ses protocoles de communication et des outils disponibles pour optimiser vos d\u00e9veloppements.\n  <\/p>\n  \n  \n  <p>\n   Pour tester ROS2, il vous faudra d&rsquo;abord installer Ubuntu (si ce n&rsquo;est pas d\u00e9j\u00e0 fait). Attention \u00e0 la version de Ubuntu que vous installez, en fonction de cette version, la distribution ROS\/ROS2 changera :\n  <\/p>\n  \n  \n  <figure class=\"wp-block-table\">\n   <table>\n    <tbody>\n     <tr>\n      <td>\n       <strong>\n        Version Ubuntu\n       <\/strong>\n      <\/td>\n      <td>\n       <strong>\n        Distribution ROS\n       <\/strong>\n      <\/td>\n      <td>\n       <strong>\n        Distribution ROS2\n       <\/strong>\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       Ubuntu 16.04 &#8211;\n       <a class=\"catalogue\" href=\"https:\/\/tutorials.ubuntu.com\/tutorial\/tutorial-install-ubuntu-desktop-1604#0\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"Ubuntu Xenial Installation\">\n        Xenial\n       <\/a>\n      <\/td>\n      <td>\n       <a class=\"catalogue\" href=\"http:\/\/wiki.ros.org\/kinetic\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS Kinetic Installation\">\n        Kinetic\n       <\/a>\n      <\/td>\n      <td>\n       <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Releases\/Release-Bouncy-Bolson\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Bouncy Installation\">\n        Bouncy\n       <\/a>\n       &amp;\n       <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Releases\/Release-Crystal-Clemmys\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Crystal Installation\">\n        Crystal\n       <\/a>\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       Ubuntu 18.04 &#8211;\n       <a class=\"catalogue\" href=\"https:\/\/tutorials.ubuntu.com\/tutorial\/tutorial-install-ubuntu-desktop#0\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"Ubuntu Bionic Installation\">\n        Bionic\n       <\/a>\n      <\/td>\n      <td>\n       <a class=\"catalogue\" href=\"http:\/\/wiki.ros.org\/melodic\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS Melodic Installation\">\n        Melodic\n       <\/a>\n      <\/td>\n      <td>\n       <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Releases\/Release-Crystal-Clemmys\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Crystal Installation\">\n        Crystal\n       <\/a>\n       &amp;\n       <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Releases\/Release-Dashing-Diademata\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Dashing Installation\">\n        Dashing\n       <\/a>\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       Ubuntu 19.04 &#8211; Disco\n      <\/td>\n      <td>\n       X\n      <\/td>\n      <td>\n       X\n      <\/td>\n     <\/tr>\n    <\/tbody>\n   <\/table>\n  <\/figure>\n  \n  \n  <p>\n   Dans les diff\u00e9rents liens ci-dessus, vous trouverez d&rsquo;autres tutoriels pour installer\n   <strong>\n    ROS\n   <\/strong>\n   .\n   <br\/>\n   Si vous souhaitez essayer des versions pr\u00e9c\u00e9dentes ou plus r\u00e9centes, vous pouvez utiliser\n   <strong>\n    <a class=\"catalogue\" href=\"https:\/\/hub.docker.com\/r\/osrf\/ros\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS\/ROS2 Image Docker\">\n     Docker images\n    <\/a>\n   <\/strong>\n   .\n  <\/p>\n  \n  \n  <p>\n   Docker facilite la cr\u00e9ation, le d\u00e9ploiement et l&rsquo;ex\u00e9cution des applications en utilisant des\n   <strong>\n    conteneurs\n   <\/strong>\n   . Les conteneurs permettent d&#8217;empaqueter une application avec des biblioth\u00e8ques et d&rsquo;autres\n   <strong>\n    d\u00e9pendances\n   <\/strong>\n   .\n  <\/p>\n  \n  \n  <p>\n   Docker fonctionne un peu comme une\n   <strong>\n    machine virtuelle\n   <\/strong>\n   . Mais plut\u00f4t que de cr\u00e9er un syst\u00e8me d&rsquo;exploitation virtuel complet, Docker permet aux applications d&rsquo;utiliser le m\u00eame noyau Linux que le syst\u00e8me sur lequel elles fonctionnent. Un conteneur Docker ex\u00e9cute une image Docker, qui est un fichier, compos\u00e9 de plusieurs couches de biblioth\u00e8ques et d\u00e9pendances.\n  <\/p>\n  \n  \n  <p>\n   Nous vous conseillons de travailler sur les images ROS2 Docker lors de vos tests, afin de ne pas risquer de d\u00e9stabiliser votre environnement ROS. Une fois que votre ordinateur fonctionne sous Ubuntu et que ROS est pr\u00eat \u00e0 \u00eatre utilis\u00e9, rendez-vous sur\n   <a class=\"catalogue\" href=\"http:\/\/wiki.ros.org\/ROS\/Tutorials\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS Tutorial\">\n    ROS tutorials\n   <\/a>\n   pour d\u00e9buter.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-l-histoire-de-ros-pour-expliquer-ros2\">\n   L\u2019histoire de ROS pour expliquer ROS2\n  <\/h2>\n  \n  \n  <p>\n   L&rsquo;environnement ROS a \u00e9t\u00e9 d\u00e9velopp\u00e9 par Willow Garage pour son robot PR2, un robot humano\u00efde capable de naviguer de fa\u00e7on autonome dans un environnement connu.\n  <\/p>\n  \n  \n  <p>\n   A cette \u00e9poque, ses cr\u00e9ateurs savaient que PR2 ne serait pas le seul robot sur le march\u00e9. Plut\u00f4t que de d\u00e9velopper un programme sp\u00e9cifique pour le PR2, ils ont d\u00e9vid\u00e9 d&rsquo;impl\u00e9menter un logiciel g\u00e9n\u00e9raliste et adaptable pour pouvoir l&rsquo;am\u00e9liorer ou le modifier ult\u00e9rieurement. Ils ont donc travaill\u00e9 sur un middleware, ROS, en d\u00e9finissant des niveaux d&rsquo;abstraction utilisables sur d&rsquo;autres robots.\n  <\/p>\n  \n  \n  <p>\n   Ils se sont bas\u00e9s pour cela sur certaines des caract\u00e9ristiques du robot PR2 :\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    Un seul robot\n   <\/li>\n   \n   \n   <li>\n    Pas d&rsquo;exigences en temps r\u00e9el\n   <\/li>\n   \n   \n   <li>\n    Excellente connectivit\u00e9 r\u00e9seau\n   <\/li>\n   \n   \n   <li>\n    Flexibilit\u00e9 maximale (fonctionne aussi bien sur des bases mobiles que sur des humano\u00efdes par exemple)\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   Aujourd&rsquo;hui, ROS est utilis\u00e9 non seulement sur des robots PR2 et des robots similaires, mais aussi sur des\n   <a class=\"catalogue\" href=\"\/fr\/533-robots-mobiles-autonomes\" title=\"robots mobiles autonomes\">\n    robots mobiles\n   <\/a>\n   de toutes tailles, des\n   <a class=\"catalogue\" href=\"\/fr\/191-humanoides-et-interaction-homme-robot\" title=\"Humano\u00efdes et interaction homme-robot\">\n    humano\u00efdes\n   <\/a>\n   , des\n   <a class=\"catalogue\" href=\"\/fr\/213-robots-collaboratifs\" title=\"Robots collaboratifs\">\n    bras industriels\n   <\/a>\n   , des\n   <a class=\"catalogue\" href=\"\/fr\/352-robots-mobiles-outdoor\" title=\"Robots mobiles outdoor\">\n    v\u00e9hicules terrestres ext\u00e9rieurs\n   <\/a>\n   et des v\u00e9hicules a\u00e9riens.\n  <\/p>\n  \n  \n  <p>\n   <strong>\n    Depuis, ROS a \u00e9t\u00e9 adopt\u00e9 dans de multiples domaines, au-del\u00e0 de la communaut\u00e9 de recherche universitaire \u00e0 laquelle il s\u2019adressait initialement.\n   <\/strong>\n  <\/p>\n  \n  \n  <p>\n   De plus en plus de robots bas\u00e9s sur ROS sont propos\u00e9s sur le march\u00e9 par des fabricants sp\u00e9cialis\u00e9s et les agences gouvernementales investissent sur ROS pour une utilisation dans leurs syst\u00e8mes.\n  <\/p>\n  \n  \n  <p>\n   Tous ces usages ont fini par se heurter aux limites de ROS, con\u00e7u en fonction des caract\u00e9ristiques de PR2 (voir ci-dessus). Ainsi, la communaut\u00e9 a estim\u00e9 pouvoir d\u00e9velopper une meilleure plate-forme en ad\u00e9quation avec les nouvelles exigences des robots :\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    Flottes de robots en collaboration\n   <\/li>\n   \n   \n   <li>\n    Logiciel embarqu\u00e9 sur de petites cartes \u00e9lectroniques\n   <\/li>\n   \n   \n   <li>\n    Syst\u00e8mes en temps r\u00e9el\n   <\/li>\n   \n   \n   <li>\n    R\u00e9seaux instables\n   <\/li>\n   \n   \n   <li>\n    Environnements de production\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   Une autre raison d&rsquo;impl\u00e9menter ROS2 est de profiter de l&rsquo;opportunit\u00e9 d&rsquo;am\u00e9liorer les API orient\u00e9es utilisateur. Ainsi, il sera possible de cr\u00e9er de nouvelles API incorporant le meilleur de l&rsquo;exp\u00e9rience communautaire avec les API de premi\u00e8re g\u00e9n\u00e9ration.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-pourquoi-ne-pas-juste-ameliorer-ros\">\n   Pourquoi ne pas juste am\u00e9liorer ROS ?\n  <\/h2>\n  \n  \n  <p>\n   Les changements d\u00e9crits ci-dessus pourraient effectivement \u00eatre int\u00e9gr\u00e9s dans le noyau de code existant. Cette option a d&rsquo;ailleurs \u00e9t\u00e9 envisag\u00e9e, mais compte tenu de la nature intrusive des changements, la modification du syst\u00e8me actuel de ROS risquerait de causer de graves\n   <strong>\n    dysfonctionnements dans les applications d\u00e9velopp\u00e9es par les nombreux membres de la communaut\u00e9.\n   <\/strong>\n  <\/p>\n  \n  \n  <p>\n   ROS devrait donc rester le m\u00eame, tandis que ROS2 sera construit sous la forme d&rsquo;un ensemble de packages qui pourront \u00eatre install\u00e9s en parall\u00e8le et sans interf\u00e9rer avec ROS.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-qui-devrait-passer-sous-ros2-des-a-present\">\n   Qui devrait passer sous ROS2 d\u00e8s \u00e0 pr\u00e9sent ?\n  <\/h2>\n  \n  \n  <p>\n   <strong>\n    Chercheurs\n   <\/strong>\n   A moins que votre publication ne porte sur les performances ou les fonctionnalit\u00e9s de ROS2, vous devriez vous en tenir \u00e0 ROS pour l&rsquo;instant.\n  <\/p>\n  \n  \n  <figure class=\"wp-block-table\">\n   <table>\n    <tbody>\n     <tr>\n      <td>\n       <strong>\n        Etudiants\n       <\/strong>\n      <\/td>\n      <td>\n       Vous devriez continuer \u00e0 travailler avec ROS pour l&rsquo;instant en raison du manque de packages compatibles et de la stabilit\u00e9 globale.\n       <br\/>\n       ROS2 sera pr\u00eat \u00e0 \u00eatre adopt\u00e9 en masse dans un avenir proche.ROS et ROS2 partageant de nombreux concepts, vous pourrez mettre \u00e0 profit vos acquis lors du passage \u00e0 ROS2.\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        Enseignants\n       <\/strong>\n      <\/td>\n      <td>\n       Vous devriez continuer \u00e0 enseigner ROS pour l&rsquo;instant, tout en restant au fait des nouveaut\u00e9s de ROS2.\n       <br\/>\n       Nous vous recommandons toutefois de vous familiariser avec ROS2 au moyen des diff\u00e9rents tutoriels disponibles, afin d\u2019\u00eatre pr\u00eats lorsque la version d\u00e9finitive de ROS2 sera publi\u00e9e.En terme d&rsquo;\u00e9quipement, la plate-forme TurtleBot 3 peut constituer une option int\u00e9ressante, du fait de sa compatibilit\u00e9 avec ROS et ROS2.\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        Chercheurs\n       <\/strong>\n      <\/td>\n      <td>\n       A moins que votre publication ne porte sur les performances ou les fonctionnalit\u00e9s de ROS2, vous devriez vous en tenir \u00e0 ROS pour l&rsquo;instant.\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        Entreprises\n       <\/strong>\n      <\/td>\n      <td>\n       Vous devriez vraiment envisager de passer \u00e0 ROS2 pour r\u00e9duire la quantit\u00e9 de transfert de code \u00e0 l&rsquo;avenir. Confiez le projet \u00e0 des utilisateurs exp\u00e9riment\u00e9s de ROS.\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        Fabricants\n       <\/strong>\n      <\/td>\n      <td>\n       C&rsquo;est le bon moment pour changer. ROS2 Dashing est la premi\u00e8re version de LTS, il est donc maintenant possible de commencer \u00e0 porter les pilotes sans craintes.\n      <\/td>\n     <\/tr>\n    <\/tbody>\n   <\/table>\n  <\/figure>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-quelques-differences-importantes-entre-ros-et-ros2\">\n   Quelques diff\u00e9rences importantes entre ROS et ROS2\n  <\/h2>\n  \n  \n  <figure class=\"wp-block-table\">\n   <table>\n    <tbody>\n     <tr>\n      <td>\n       <strong>\n        Applications\n       <\/strong>\n      <\/td>\n      <td>\n       <strong>\n        ROS\n       <\/strong>\n      <\/td>\n      <td>\n       <strong>\n        ROS2\n       <\/strong>\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        Plates-formes\n       <\/strong>\n      <\/td>\n      <td>\n       Test\u00e9 sur Ubuntu\n       <br\/>\n       Maintenu sur d&rsquo;autres versions de Linux ainsi que sur OS X\n      <\/td>\n      <td>\n       Actuellement test\u00e9 et support\u00e9 sur Ubuntu Xenial, OS X El Capitan ainsi que Windows 10\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        C++\n       <\/strong>\n      <\/td>\n      <td>\n       C++03 \/\/ n\u2019utilise pas pas les capacit\u00e9s de C++11 dans ses API\n      <\/td>\n      <td>\n       Utilise principalement C+++11Commencez et pr\u00e9voyez d&rsquo;utiliser C++14 &amp; C+++17\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        Python\n       <\/strong>\n      <\/td>\n      <td>\n       Cible Python 2\n      <\/td>\n      <td>\n       &gt;= Python 3.5\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        Middleware\n       <\/strong>\n      <\/td>\n      <td>\n       Format de s\u00e9rialisation personnalis\u00e9 (protocole de transport + m\u00e9canisme de d\u00e9couverte central)\n      <\/td>\n      <td>\n       Actuellement, toutes les impl\u00e9mentations de cette interface sont bas\u00e9es sur le standard DDS\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        Synchroniser la dur\u00e9e et les mesures de temps\n       <\/strong>\n      <\/td>\n      <td>\n       La dur\u00e9e et les types de temps sont d\u00e9finis dans les biblioth\u00e8ques clientes, ils sont cod\u00e9s en C++ et Python\n      <\/td>\n      <td>\n       Ces types sont d\u00e9finis comme des messages et sont donc coh\u00e9rents d&rsquo;un langage de programmation \u00e0 l&rsquo;autre\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        Composants avec cycle de vie\n       <\/strong>\n      <\/td>\n      <td>\n       Chaque n\u0153ud a g\u00e9n\u00e9ralement sa propre fonction principale.\n      <\/td>\n      <td>\n       Le cycle de vie peut \u00eatre utilis\u00e9 par des outils comme roslaunch pour d\u00e9marrer un syst\u00e8me compos\u00e9 de nombreux composants de mani\u00e8re d\u00e9terministe\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        Mod\u00e8le multi-threads\n       <\/strong>\n      <\/td>\n      <td>\n       Le d\u00e9veloppeur ne peut choisir qu&rsquo;entre une ex\u00e9cution mono-thread ou multi-thread.\n      <\/td>\n      <td>\n       Des mod\u00e8les d&rsquo;ex\u00e9cution plus fins sont disponibles et des ex\u00e9cuteurs personnalis\u00e9s peuvent \u00eatre facilement impl\u00e9ment\u00e9s.\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        Noeuds multiples\n       <\/strong>\n      <\/td>\n      <td>\n       Il n&rsquo;est pas possible de cr\u00e9er plus d&rsquo;un n\u0153ud dans un processus.\n      <\/td>\n      <td>\n       Il est possible de cr\u00e9er plusieurs n\u0153uds dans un processus.\n      <\/td>\n     <\/tr>\n     <tr>\n      <td>\n       <strong>\n        roslaunch\n       <\/strong>\n      <\/td>\n      <td>\n       Les fichiers de roslaunch sont d\u00e9finis en XML avec des capacit\u00e9s tr\u00e8s limit\u00e9es.\n      <\/td>\n      <td>\n       Les fichiers de lancement sont \u00e9crits en Python ce qui permet d&rsquo;utiliser des logiques plus complexes comme les conditionnels, etc.\n      <\/td>\n     <\/tr>\n    <\/tbody>\n   <\/table>\n  <\/figure>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-quel-dds-pour-ros2\">\n   Quel DDS pour ROS2\n  <\/h2>\n  \n  \n  <p>\n   ROS2 utilise un DDS (Data Distribution Service) pour la publication et la souscription au lieu d&rsquo;un gestionnaire de messages personnalis\u00e9. Cela permet une am\u00e9lioration des performances de transmission avec les mises \u00e0 jour du DDS. Le DDS pouvant affecter le comportement de ROS2, il vous faudra choisir la version correspondant aux sp\u00e9cifications de votre projet parmi les diff\u00e9rents DDS existants.\n  <\/p>\n  \n  \n  <p>\n   Voici quelques entit\u00e9s DDS :\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    FastRTPS \/ eProsima\n   <\/li>\n   \n   \n   <li>\n    Vortex OpenSplice \/ ADLINK Technology\n   <\/li>\n   \n   \n   <li>\n    Connext \/ RTI\n   <\/li>\n   \n   \n   <li>\n    CoreDX \/ Twin Oaks\n   <\/li>\n   \n   \n   <li>\n    Cyclone DDS \/ Eclipse\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   Des informations compl\u00e9mentaires sur les DDS sont disponibles dans l\u2019article Rover Robotics et sur ROS2 on DDS (voir ci-dessous).\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-gestion-des-noeuds-dans-ros2\">\n   Gestion des noeuds dans ROS2\n  <\/h2>\n  \n  \n  <p>\n   L&rsquo;une des principales caract\u00e9ristiques de ROS2, la gestion des cycles de vie des noeuds, permet un meilleur contr\u00f4le de l&rsquo;\u00e9tat du syst\u00e8me ROS. En effet, il permettra \u00e0 roslaunch de s&rsquo;assurer que tous les composants ont \u00e9t\u00e9 instanci\u00e9s correctement avant de permettre \u00e0 un composant de commencer \u00e0 ex\u00e9cuter son comportement. Il permettra \u00e9galement de red\u00e9marrer ou de remplacer les n\u0153uds durant l\u2019ex\u00e9cution.\n   <br\/>\n   C&rsquo;est une caract\u00e9ristique essentielle pour la s\u00e9curit\u00e9 du robot.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-mise-en-oeuvre-de-ros2-plateforme-tutoriels\">\n   Mise en \u0153uvre de ROS2 &#8211; Plateforme\/Tutoriels\n  <\/h2>\n  \n  \n  <p>\n   Chaque robot et composant compatible avec ROS sera compatible avec ROS2 d\u00e8s que les pilotes, les packages et le SDK seront disponibles pour les impl\u00e9mentations ROS2.\n  <\/p>\n  \n  \n  <p>\n   <a class=\"catalogue\" href=\"\/fr\/81_robotis\" title=\"Robotis\">\n    Robotis\n   <\/a>\n   est l&rsquo;une des premi\u00e8res entreprises \u00e0 s&rsquo;\u00eatre lanc\u00e9e dans ROS2. Dans le pass\u00e9. Ses roboticiens ont d&rsquo;ailleurs d\u00e9velopp\u00e9 des tutoriels de qualit\u00e9 pour apprendre ROS sur le premier TurtleBot.\n  <\/p>\n  \n  \n  <p>\n   Avec les\n   <a class=\"catalogue\" href=\"\/fr\/402707-turtlebot3-burger.html\" title=\"Turtlebot3 Burger ROS\/ROS2\">\n    TurtleBot 3 Burger\n   <\/a>\n   et\n   <a class=\"catalogue\" href=\"\/fr\/402886-turtlebot-3-waffle-pi.html\" title=\"Turtlebot3 Waffle Pi ROS\/ROS2\">\n    Turtlebot 3 Waffle Pi\n   <\/a>\n   , Robotis a travaill\u00e9 sur un tutoriel pour d\u00e9couvrir ROS 2 et mettre en oeuvre la navigation des robots :\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/ros2-industrial-workshop.readthedocs.io\/en\/latest\/_source\/navigation\/ROS2-Turtlebot.html\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 TurtleBot3 Tutorial Installation\">\n     TurtleBot 3 &#8211; Installation\n    <\/a>\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/github.com\/ROBOTIS-GIT\/turtlebot3\/tree\/ros2\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 TurtleBot3 GitHub\">\n     TurtleBot 3 &#8211; GitHub\n    <\/a>\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   Robotis a d\u00e9velopp\u00e9 son propre package pour le TurtleBot 3. Sur leur GitHub, ils ont li\u00e9 les pages wiki et les codes open source. TurtleBot 3 constitue ainsi une tr\u00e8s bonne plateforme pour appr\u00e9hender ROS2, aussi bien en tant qu\u2019utilisateur d\u00e9butant que d\u00e9veloppeur aguerri.\n  <\/p>\n  \n  \n  <p>\n   Si vous avez encore un TurtleBot 2 \u00e0 votre disposition, vous pouvez aussi utiliser ROS2. En effet, Robotis a publi\u00e9 une\n   <a class=\"catalogue\" href=\"https:\/\/github.com\/ros2\/turtlebot2_demo\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 TurtleBot2 Demo Tutorial\">\n    demo ROS2 pour TurtleBot2\n   <\/a>\n   .\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-comment-migrer-depuis-ros-vers-ros2\">\n   Comment migrer depuis ROS vers ROS2\n  <\/h2>\n  \n  \n  <p>\n   Il existe deux types diff\u00e9rents de migrations de package ROS :\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    Migrer le code source d&rsquo;un package existant de ROS \u00e0 ROS2 avec l&rsquo;intention qu&rsquo;une partie significative du code source reste identique ou au moins similaire.\n   <\/li>\n   \n   \n   <li>\n    Impl\u00e9menter la m\u00eame fonctionnalit\u00e9 ou une fonctionnalit\u00e9 similaire d&rsquo;un package ROS pour ROS2 mais en supposant que le code source sera significativement diff\u00e9rent.\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   Au moment de la r\u00e9daction de cet article, le premier type de migration du code source est encore tr\u00e8s peu document\u00e9.\n  <\/p>\n  \n  \n  <p>\n   Veuillez consulter cet\n   <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Contributing\/Migration-Guide\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS to ROS2 Migration Guide\">\n    article\n   <\/a>\n   qui se concentre sur le second cas et d\u00e9crit les \u00e9tapes \u00e0 suivre pour migrer un paquet ROS vers ROS2. Cependant, il ne s&rsquo;agit pas d&rsquo;une instruction de migration pas \u00e0 pas, mais plut\u00f4t d\u2019indications destin\u00e9es \u00e0 des utilisateurs exp\u00e9riment\u00e9s.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-ressources-pour-le-middleware-ros2\">\n   Ressources pour le middleware ROS2\n  <\/h2>\n  \n  \n  <p>\n   Vous souhaitez aller plus loin ?\n   <br\/>\n   Voici quelques ressources utiles pour passer \u00e0 l&rsquo;\u00e9tape suivante !\n  <\/p>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-ressources-officielles\">\n   Ressources Officielles\n  <\/h3>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Main Page\">\n     Page principale\n    <\/a>\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Tutorials\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Tutorials\">\n     Tutoriels\n    <\/a>\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Features\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Features Status\">\n     Statut des fonctionalit\u00e9s\n    <\/a>\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Releases\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Distribution Releases\">\n     Distributions\n    <\/a>\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Installation\/Crystal\/Linux-Install-Binary\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Installation\">\n     Installation\n    <\/a>\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/ubuntu.com\/blog\/ros-2-command-line-interface\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Command Line\">\n     Commands\n    <\/a>\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/github.com\/fkromer\/awesome-ros2#packages\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Awesome Links\">\n     Github\n    <\/a>\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/github.com\/ros2?page=2\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 GitHub\">\n     ROS2 GitHub\n    <\/a>\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/github.com\/piappl\/ros2_benchmarking\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Benchmarking\">\n     ROS2 Benchmarking\n    <\/a>\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/github.com\/ApexAI\/performance_test\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Performances\">\n     ROS2 test performances\n    <\/a>\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/www.osrfoundation.org\/wordpress2\/wp-content\/uploads\/2015\/04\/ROSCON-2014-Why-you-want-to-use-ROS-2.pdf\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"PDF ROS2 Pr\u00e9sentation\">\n     Pr\u00e9sentation\n    <\/a>\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/design.ros2.org\/articles\/ros_on_dds.html\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 DDS\">\n     ROS on DDS\n    <\/a>\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-tutoriels-pour-ros2\">\n   Tutoriels pour ROS2\n  <\/h3>\n  \n  \n  <p>\n   L\u2019entreprise Rover Robotics a travaill\u00e9 sur ROS2, ils ont post\u00e9 sur leur blog un\n   <a class=\"catalogue\" href=\"https:\/\/blog.roverrobotics.com\/navigation2-now-were-getting-somewhere\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Tutorial Rover Robotics\">\n    tutoriel\n   <\/a>\n   sur leurs derni\u00e8res r\u00e9alisations pour impl\u00e9menter la navigation sur ROS2.\n   <br\/>\n   Dans cet article, vous trouverez de nombreuses informations utiles sur les derniers dysfonctionnements de ROS2, les avantages et inconv\u00e9nients des diff\u00e9rents DDS, comment lancer leur d\u00e9mo et d&rsquo;autres conseils d&rsquo;impl\u00e9mentation.\n  <\/p>\n  \n  \n  <p>\n   Vous pouvez \u00e9galement consulter le\n   <a class=\"catalogue\" href=\"https:\/\/www.theconstructsim.com\/category\/ros2-tutorials\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 The Construct Website\">\n    site\n   <\/a>\n   \u00ab\u00a0The Construct\u00a0\u00bb, o\u00f9 sont publi\u00e9s quelques articles sur la configuration de ROS2.\n  <\/p>\n  \n  \n  <p>\n   <a class=\"catalogue\" href=\"http:\/\/gazebosim.org\/tutorials?tut=ros2_overview\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Gazebo Tutorial\">\n    Gazebo\n   <\/a>\n   , l&rsquo;environnement de simulation bien connu, est disponible sur ROS2. Vous trouverez des informations sur cet\n   <a class=\"catalogue\" href=\"https:\/\/www.infoq.com\/articles\/ros-2-gazebo-tutorial\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Gazebo Tutorial\">\n    article\n   <\/a>\n   .\n  <\/p>\n  \n  \n  <p>\n   Enfin, vous pouvez consulter le\n   <a class=\"catalogue\" href=\"https:\/\/github.com\/ros-simulation\/gazebo_ros_pkgs\/wiki\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Gazebo GitHub\">\n    GitHub de Gazebo\n   <\/a>\n   .\n  <\/p>\n  \n <\/body>\n<\/html>","protected":false},"excerpt":{"rendered":"<p>Il n&rsquo;existe, aujourd\u2019hui, que deux versions du middleware ROS : ROS et ROS2. La premi\u00e8re version de ROS est parfois appel\u00e9e ROS1. Dans cet article nous appellerons cette premi\u00e8re version \u00ab\u00a0ROS\u00a0\u00bb, et la deuxi\u00e8me version \u00ab\u00a0ROS2\u00a0\u00bb. Il nous semble important de rappeler que ROS2 est actuellement en cours de d\u00e9veloppement. Certains packages ont d\u00e9j\u00e0 \u00e9t\u00e9[&#8230;]<br \/> <a class=\"button\" href=\"https:\/\/www.generationrobots.com\/blog\/fr\/ros2-quest-ce-qui-change-par-rapport-a-ros\/\" style=\"float:right;\">Read this article &gt;&gt;<\/a><\/p>\n","protected":false},"author":188,"featured_media":7000,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10529],"tags":[],"class_list":["post-6276","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-actualites-robotiques"],"_links":{"self":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/6276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/users\/188"}],"replies":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/comments?post=6276"}],"version-history":[{"count":48,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/6276\/revisions"}],"predecessor-version":[{"id":13003,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/6276\/revisions\/13003"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/media\/7000"}],"wp:attachment":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/media?parent=6276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/categories?post=6276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/tags?post=6276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}