Bêta 3 (r2b3)

Plates-formes prises en charge

Nous prenons en charge ROS 2 Beta 3 sur trois plates-formes : Ubuntu 16.04 (Xenial), macOS 10.12 (Sierra) et Windows 10. Nous fournissons à la fois des packages binaires et des instructions sur la façon de compiler à partir de la source pour les 3 plates-formes (voir instructions d'installation ainsi que la documentation).

Caractéristiques

Améliorations depuis la version bêta 2

  • Modèle d’exécution en Python, nombreux correctifs pour la gestion de la mémoire dans l’extension Python C

  • Réécriture expérimentale de ros_control

  • Exposition des symboles spécifiques à l’implémentation DDS aux utilisateurs (pour Fast RTPS et Connext) (voir exemple)

  • Journalisation API en Python

  • Correction de plusieurs fuites de mémoire et conditions de course dans divers packages

  • Reprise du support pour OpenSplice (sur Linux et Windows atm) fourni par PrismTech

  • Utilisez bloom (sans correctifs) pour créer des versions ROS 2

Nouvelle application de démonstration

  • Démo HSR

    • Contrôlez à distance un robot HSR à l’aide d’un contrôleur de joystick ROS 2

    • Exécution du ros1_bridge dans un conteneur Docker sur le HSR (puisque le robot exécute ROS 1 sur Ubuntu Trusty)

    • Exécutez une version de développement ROS 2 de rviz pour visualiser les données des capteurs du robot, etc. (voir video )

Fonctionnalités sélectionnées des versions alpha/bêta précédentes

Pour la liste complète, voir notes de version antérieures.

  • Implémentations C++ et Python des bibliothèques clientes ROS 2, y compris les API pour :

    • Publication et abonnement aux rubriques ROS

    • Demander et répondre aux services ROS (synchrone (C++ uniquement) et asynchrone)

    • Obtenir et définir les paramètres ROS (C++ uniquement, synchrone et asynchrone)

    • Rappels de minuterie

  • Prise en charge de l’interopérabilité entre plusieurs implémentations DDS/RTPS

    • eProsima Fast RTPS est notre implémentation par défaut et est inclus dans les packages binaires

    • RTI Connext est pris en charge : créez à partir de la source pour l’essayer

    • PrismTech OpenSplice : voir les limitations ci-dessous

  • Une API graphique pour les événements réseau

  • Découverte distribuée

  • Chemins de code sécurisés en temps réel pour la publication et l’abonnement avec une implémentation DDS compatible (uniquement Connext pour le moment)

    • Prise en charge des répartiteurs personnalisés

  • Nœud de pont dynamique ROS 1 <-> ROS 2

  • Modèle de thread d’exécuteur (C++ et Python)

  • Modèle de composant pour composer des nœuds à la compilation / au lien / à l’exécution

  • Composant géré à l’aide d’un cycle de vie standard

  • Format .msg étendu avec de nouvelles fonctionnalités :

    • Tableaux bornés

    • Les valeurs par défaut

Problèmes connus

  • 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.

  • La prise en charge d’OpenSplice n’est actuellement pas disponible pour MacOS. De plus, l’accès aux poignées natives n’est pas encore implémenté.

  • 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).