Que peut apporter ROS à mes robots industriels ?

INTRODUCTION : C'EST QUOI ROS ?

The Robot Operating System

Ecosystème opensource pour créer des logiciels de pilotage de robots :

  • Bibliothèques de calcul de trajectoire, de communication, d'asservissement moteur ...
  • Applications de simulation physique, visualisation de capteurs, enregistrement et rejeu de données, débogage ...
  • Conventions de représentation de robots, de communication par type de capteurs ou d'actionneurs
  • Communauté : tutoriels et vidéos, composants opensource réutilisables, forums d'entraide ...

Historique de ROS

  • 2010 : Sortie de ROS 1 par Willow Garage pour le robot PR2 (ci-contre)
  • 2012 : ROS Industrial : sous-projet chargé de transférer ROS vers l'industrie
  • 2012 : Création de OSRF (Open Robotics)
  • Multiplication des robots compatibles
  • 2017 : Sortie de ROS 2 (version majeure)

Qui utilise ROS et pour quoi ?

  • A destination des concepteurs de robot
  • A destination de l'équipe d'ingénierie logicielle
  • Pour accélérer la création d'un nouveau logiciel de pilotage robotique
  • Pour des environnements non-prédictibles (s'adapter aux obstacles)
  • Pour les programmes robotiques avancés (analyse de capteurs, IA, trajectoires ou contrôle moteur complexe ...)
  • Pour créer un robot interopérable avec d'autres actionneurs, capteurs, et composants logiciels

ROS ne s'adresse pas à des utilisateurs de robots.
Non-adapté aux tâches d'automatisation simples (e.g. Pick-and-place).

Les avantages de ROS

  • Gagner du temps d'ingénierie en vous appuyant sur des briques existantes
  • Bénéficier de tout l'écosystème compatible (état de l'art)
  • Diminuer la dette technique avec une architecture modulaire interchangeable
  • Rendre votre système interopérable grâce aux standards créés par ROS
  • Faciliter son extension hardware et logicielle par les intégrateurs
  • Se libérer de la dépendance au logiciel spécifique (vendor-locking)
  • Bénéficier d'un support technique communautaire et professionnel

Les inconvénients de ROS

  • Des standards qui ne conviennent pas à toutes les situations
  • Une certaine complexité d'apprentissage
  • Une compatibilité limitée avec les OS non-Linux
  • Des cycles de développements rapides entrainant une obsolescence

Types de robots gérés

  • Robots à roues (AGV, AMR)
  • Robots volants (UAV)
  • Cobots manipulateurs
  • Robots à pattes et humanoïdes
  • Capteurs ou actionneurs indépendants

Pour qu'un robot soit compatible, il doit exister une intégration ROS pour lui, développée et maintenue par le constructeur, un laboratoire, ou la communauté.

PANORAMA DES OUTILS TECHNIQUES DE ROS

Les modules et outils que vous pouvez utiliser dans votre système robotique ...

La messagerie logicielle (RMW)

Le middleware (RMW) assure une communication logicielle robuste entre les composants logiciels via un réseau Ethernet ou Wifi.

Fonctionnalités optionnelles du RMW :

  • Qualité de service (QoS)
  • Authentification
  • Chiffrement

RViz (ROS Visualizer)

Le visualisateur 2D et 3D de ROS, qui permet de superposer différentes vues : robots, obstacles, images de caméras, nuages de points des capteurs, ...

Objectifs : aider au débogage / construire des IHM (Interface Homme-Machine).

Gazebo (Simulateur physique)

Le simulateur physique de ROS avec moteur physique interchangeable (ODE, Bullet, Dart, Simbody) pour les corps rigides ou souples.

D'autres simulateurs compatibles ROS : Webots, CoppeliaSim, Unity 3D ...

Objectif : valider le comportement du robot dans environnement proche du réel

Asservissement moteur

ROS Control est une interface d'abstraction pour le contrôle universel de moteurs.

Objectif : rendre le logiciel indépendant du modèle de moteur hardware

Moveit, le sous-projet de ROS pour les bras

Objectif : calculer les trajectoires et modèles

🖱️ moveit.ros.org

Exemple avec Franka Panda arm

Nav2, le sous-projet de ROS pour les robots roulants

Objectif : calcul de trajectoires et cartographie

🖱️ navigation.ros.org

Exemple avec Clearpath Husky

Autoware, le sous-projet de ROS pour les véhicules autonomes

Objectifs : calcul de trajectoires, perception de la signalisation, des autres véhicules, des obstacles ...

🖱️ autoware.org

L'écosystème du drone

Standards industriels

  • MavLink
  • DroneCAN

Outils collaboratifs

  • Middleware ROS
  • QGroundControl

Autopilotes hardware et software

  • Pixhawk
  • Ardupilot
  • PX4

Mais aussi ...

  • Description universelle de toute sorte de robots (URDF)
  • Transformations géométriques datées (TF)
  • Enregistrement et rejeu de données (rosbag)
  • ...

Pour chaque problème technique de la robotique, il existe souvent plusieurs packages qui le résolvent en implémentant des algorithmes différents.

LA COMMUNAUTÉ ROS

Les acteurs industriels et académiques qui font de ROS une communauté ...

Qui développe et maintient ROS ?

Le développement est supervisé par la fondation Open Robotics (OSRF) avec un comité directeur technique ➡️

Des contributions à ce logiciel libre sont apportées par la communauté : entreprises, laboratoires, passionnés ...

Des frontières complexes à placer

Ce fonctionnement communautaire rend complexe l'énumération exhaustive des paquets ROS pour avoir une vision d'ensemble des fonctionnalités.

La conférence francophone annuelle ROSConFr

60% industriels, 30% académiques, 10% autres – 🖱️ roscon.fr📺 Replay

Les espaces communautaires en ligne

Les réseaux sociaux pour la veille sur ROS

TÉMOIGNAGE

REX INDUSTRIEL

NGX Robotics

  • GRLab : bureau d'études en robotique de service professionnelle
  • Génération Robots : revente de matériel robotique
  • Running Brains : Conception et commercialisation de robots de sécurité pour l'industrie
  • HumaRobotics : bras robots collaboratifs pour l'industrie

Pourquoi nous utilisons ROS

  • Génération Robots: beaucoup de clients académiques et recherche utilisateurs de ROS, sélection de composants compatibles ROS
  • GRLab:
    • projets d'intégration robotique: 100% ROS
    • projets de prototypage et développement robotique: quasi 100% ROS
  • HumaRobotics: usage dans certains projets avec de la vision avancée et de l'évitement d'obstacles
  • Running Brains: Accélération des phases de prototypage et de la transition vers du logiciel de production.
bottom:50%

ROS et bras manipulateurs

  • CEA : robot Serval pour le démantèlement nucléaire
  • Utilisation de ROS pour :
    • calcul de trajectoires optimisées avec obstacles
    • interface graphique
    • gestion de capteurs divers
    • gestion de joystick avec retour de force

ROS et bases mobiles

  • CRD : robot de ramassage et de collecte de lisier, robot repousse fourrage
  • Utilisation de ROS pour :
    • cartographie et localisation
    • planification de trajectoire et navigation
    • interface graphique
    • changement de capteurs

ROS et bases mobiles

  • Running Brains : robot de sécurité et de sûreté
  • Utilisation de ROS pour :
    • cartographie et localisation multi-capteurs
    • planification de trajectoire et navigation avec mobilité complexe (double Ackermann)
    • intégration avec algorithmes d'IA pour la vision

Avantages de ROS

  • Gain de temps sur les développements logiciels
  • Support de nombreux équipements (capteurs, actionneurs) et interchangeabilité
  • Outils de développement (RViz, rosbags, introspection)
  • Gestion native de la distribution réseau des composants logiciels
  • Disponibilité d'algorithmes robotiques à l'état de l'art

Inconvénients de ROS

  • Courbe d'apprentissage du middleware
  • Légère perte de performance par rapport à un code monolithique dédié
    • Perte généralement mineure si on utilise correctement les fonctionnalités de ROS (nodelets)
  • Qualité variable des packages fournis par la communauté
    • Initiatives telles que ROS-Industrial

Merci pour votre attention

Additionnellement, le RMW peut être connecté à des bus de terrain hardware (CANOpen, Modbus, ports série ...) avec des packages de conversion dédiés à cela.