Apalone ardent (ardent)

Bienvenue dans la première version non bêta du logiciel ROS 2 nommée Ardent Apalone !

Plates-formes prises en charge

Cette version de ROS 2 est prise en charge sur trois plates-formes :

  • Ubuntu 16.04 (Xénial)

  • Mac macOS 10.12 (Sierra)

  • Windows 10

Des packages binaires ainsi que des instructions sur la façon de compiler à partir des sources sont fournis pour les 3 plates-formes (voir instructions d'installation ainsi que documentation).

Caractéristiques

Nouvelles fonctionnalités de cette version de ROS 2

  • Découverte distribuée, publication/abonnement, demande/réponse communication

    • Fourni par une API C

    • Mis en œuvre à l’aide de différents fournisseurs :

      • Fast RTPS d’eProsima ainsi que OpenSplice d’ADLINK (à partir du binaire et de la source)

      • RTI Connext (uniquement depuis la source)

    • Nombreux paramètres de qualité de service pour gérer les réseaux non idéaux

    • Prise en charge de la sécurité DDS (avec Connext et Fast RTPS)

  • Bibliothèques clientes C++ et Python 3

    • Partage de code commun en C pour unifier l’implémentation

    • Modèle d’exécution séparé des nœuds, nœuds composables

    • Paramètres spécifiques au nœud (uniquement en C++ atm)

    • Cycle de vie (uniquement en C++ atm)

    • Eventuellement communication intra-processus utilisant la même API (uniquement en C++)

  • Définitions de message (avec des tableaux et des chaînes délimités ainsi que des valeurs par défaut)

  • Outils de ligne de commande (par exemple, ros2 run)

  • rviz avec quelques types d’affichage (la version Windows suivra probablement dans quelques semaines)

  • Index de ressources basé sur le système de fichiers (interrogation d’informations sans analyse récursive)

  • Chemins de code sécurisés en temps réel pour pub/sub (uniquement avec les implémentations DDS compatibles)

  • Pont entre ROS 1 et ROS 2

  • Démo HSR voir Beta 3

  • Démo Turtlebot voir Beta 2

Pour une description plus détaillée, veuillez consulter la page Features.

Modifications depuis la version bêta 3

Améliorations depuis la version bêta 3 :

  • ``viz””

  • Différentes options d’initialisation pour les structures de données de message en C++ (voir design doc)

  • Améliorations de l’API de journalisation, désormais également utilisées dans les démos

  • Prise en charge du temps en C++ avec différentes horloges

  • prise en charge de l’attente de service dans la bibliothèque cliente Python

  • Projet d’implémentation de REP 149 spécifiant le format 3 des fichiers manifestes du package

Problèmes connus

  • Performances RTPS rapides avec des données plus volumineuses comme la démo d’image

  • En utilisant Connext, il n’est actuellement pas autorisé que deux sujets avec le même nom de base mais des espaces de noms différents aient un type différent (voir issue).

  • La liste des noms de nœuds (par exemple, en utilisant ros2 node list) ne fonctionne pas dans certaines implémentations rmw.

  • Sous Windows, les fichiers de lancement Python peuvent se bloquer lors d’une tentative d’abandon à l’aide de Ctrl-C (voir issue). Afin de continuer à utiliser le shell qui est bloqué par la commande de suspension, vous souhaiterez peut-être mettre fin au processus Python de suspension à l’aide du moniteur de processus.