Blog

Comment apprendre la robotique avec ROS

Apprendre la robotique
Partager
Comment apprendre la robotique avec ROS

Vous souhaitez débuter l'apprentissage de la robotique par la programmation, mais vous ne savez pas par où commencer ?

La robotique est énorme, il y a tellement de choses à faire et à apprendre. Il peut être assez décourageant de voir tout ce que vous pouvez faire, mais seulement de commencer à apprendre en programmant le clignotement d'une LED.

Nous avons une bonne nouvelle pour vous : ROS est certainement ce que vous recherchez. Dans cet article, nous verrons ce qu'est ROS, ce que vous pouvez en apprendre, et vous donnerons quelques directives sur la façon de commencer à l'apprendre et de créer des applications robotiques sympas !

Qu’est-ce que le ROS ?

ROS (Système d'exploitation de robot), est un framework pour écrire des logiciels de robot. Ce projet a débuté en 2007 par Garage Willow, pour offrir aux roboticiens un ensemble standard de configuration et d'outils, pour qu'ils puissent écrire de meilleurs logiciels, plus rapidement.

ROS alimente désormais de nombreux types de robots, tels que des drones, des voitures autonomes, des robots ressemblant à des humains, des bras robotiques et bien d'autres encore… Découvrez Niryo One pour obtenir un exemple de bras robotique à 6 axes alimenté par ROS.

Voici un exemple de contrôle du robot, avec l'aide de ROS. ROS facilite l'envoi de commandes depuis une interface Web vers les moteurs (avec quelques étapes entre eux).

Pour utiliser ROS, vous aurez besoin d'un système d'exploitation Ubuntu exécuté sur votre ordinateur (certains autres systèmes d'exploitation sont pris en charge, mais il est préférable de commencer par Ubuntu) . Nous vous recommandons d'utiliser Ubuntu 16.04 avec ROS Kinetic (version 2016), car c'est, pour l'instant, la version la plus développée et maintenue.

 

https://youtu.be/jCbgf4Y_4ak

Pourquoi apprendre la robotique avec ROS ?

La robotique est difficile à développer, et les robots sont souvent des systèmes très complexes qui nécessitent une expertise dans de nombreux domaines. Le problème de la robotique est que les gens continuent de réinventer la roue. Disons que vous disposez d'un an pour construire un robot à partir de zéro (partie programmation). Vous passerez près de la moitié du temps à créer un système de communication et de calcul de base, et à la fin de votre projet, vous remarquerez que vous n'êtes pas allé plus loin que ce que tout le monde fait.

ROS est là pour vous fournir un ensemble d'outils et de la « plomberie » pour démarrer votre application à un niveau supérieur.. Vous n'avez pas à vous soucier de la manière dont les différentes parties communiqueront. De plus, vous bénéficierez d'outils intégrés gratuits, tels que la planification de mouvements, la reconnaissance d'objets, la navigation 2D, la cartographie de pièces en 3D, etc. tu n'as pas besoin de refaire ce qui a été fait auparavant par des centaines de développeurs, et vous pouvez restez au cœur de votre projet.

Ce que vous apprendrez avec ROS

La robotique concerne la mécanique, l'électronique et l'informatique. Avec ROS, vous en apprendrez surtout sur le dernier. Vous découvrirez :

  • La programmation (C++ / Python) pour développer votre application.
  • Administration système et réseau, pour installer et maintenir ROS sur différentes versions d'OS, gérer les packages sources/binaires, communiquer avec des appareils externes en utilisant divers protocoles (HTTP, WebSocket, I2C, SPI, …).
  • Notions de robotique, comme la cinématique inverse, la localisation, la cartographie 3D, intelligence artificielle, ...

En utilisant ROS, vous disposerez d'une base de base pour votre application robotique. Avec cela, et le nombre d'outils disponibles, vous pourrez :

  • Communiquez entre tous vos capteurs, contrôleurs, actionneurs, interfaces utilisateur, …
  • Gérer des systèmes robotiques volumineux et complexes. Il sera plus facile d’avoir une vision globale d’une énorme application robotique.
  • Élargissez vos connaissances en robotique. ROS alimente de nombreux types de robots. Même si vous programmez un drone, vous apprendrez des choses utiles qui pourront s’appliquer plus tard à un bras robotique par exemple.

Comment apprendre la robotique avec ROS – Les bases

La première partie consiste à apprendre les bases de ROS. C'est une partie assez difficile et vous ne saurez pas tout en une journée. Mais continuez à vous motiver, et au bout d'un moment vous ne regretterez pas le temps passé ! Nous vous donnons ici quelques ressources utiles qui vous aideront certainement dans votre parcours d’apprentissage :

  • Montres ROSCON 2012 sur Youtube. ROSCON est le lieu où les développeurs, les responsables et les utilisateurs se réunissent chaque année pour discuter des progrès passés et de la voie à suivre. Cette série de vidéos vous aidera à comprendre certains concepts fondamentaux et vous donnera des tonnes d'idées d'application.
  • Favoris Wiki ROS, où vous trouverez beaucoup de tutoriels pour les débutants. Ces didacticiels vous apprendront à configurer une application ROS de base tout en utilisant les concepts de communication de base.
  • Si vous avez hâte de voir des projets réels et puissants se dérouler dans la vraie vie, consultez robots existants alimentés par ROS avec du code open source, disponible pour que vous puissiez l'apprendre.

Tout d'abord, vous devrez comprendre Concepts ROS : comment Les sujetsNos Serviceset Actions fonctionnent (enfin, vous pouvez conserver les actions pour plus tard si vous vous sentez dépassé). Il est important de comprendre le notions de communication dans ROS au début, afin que vous puissiez commencer à réfléchir à l'architecture de votre projet. Après avoir compris comment Nodes communiquez entre vous, vous pourrez aller plus loin.

Ensuite, nous vous encourageons fortement à trouver un projet de robotique et à voir comment vous pouvez utiliser ROS pour responsabiliser votre robot. Avoir un projet personnel vous gardera motivé et vous permettra d’apprendre plus rapidement.

Comment apprendre la robotique avec ROS – Après les bases

Il est temps pour vous de faire un travail plus sérieux, avec des packages plus globaux et plus utiles ! La façon dont vous apprenez maintenant sera principalement cela dépend du type de robot que vous souhaitez programmer. Voici quelques packages et ressources que vous voudrez peut-être consulter :

  • URDF : une représentation de type XML de votre robot. Avec cela, vous pouvez facilement avoir un modèle global de votre robot dans votre système ROS et permettre à d'autres packages de l'utiliser.
  • Viz : un outil de simulation qui utilisera le format URDF de votre robot pour afficher une visualisation 3D.
  • Déplacez-vous : un cadre complet de planification de mouvement. Moveit utilisera certaines commandes que vous lui donnerez avec le fichier URDF et calculera une trajectoire complète pour votre robot.
  • Contrôle ROS : un ensemble de contrôleurs + une interface pour votre matériel, et vous pouvez également le brancher sur Moveit !
  • Rosbridge : un moyen de communiquer entre un système ROS et un système non-ROS, en utilisant le protocole WebSocket.
  • Messages IMUROS, pour interfacer vos données IMU (Inertial Measurement Unit) avec un système ROS.
  • Gazebo : un outil de simulation complet, incluant les contraintes physiques et l'environnement. Vous pouvez cartographier une pièce avec un drone sur Gazebo, et la reproduire exactement de la même manière dans la vraie vie !

Eh bien, nous pourrions écrire toute une série de livres sur ces parties. Il vous suffit de savoir que de très nombreux packages sont en cours de développement pour de nombreuses applications robotiques différentes. Lorsque vous avez besoin de développer une nouvelle pièce, vérifiez avant si quelqu'un a déjà travaillé dessus ! Cela vous fera gagner du temps et vous permettra de progresser plus efficacement.

ROS et la communauté – Vous n'êtes pas seul !

Ce qui est génial, quand on apprend quelque chose, c'est de partager ses progrès avec d'autres personnes et d'obtenir des réponses à partir de l'expérience des autres.

ROS a un communauté immense et grandissante. Lorsque vous apprenez la robotique avec ROS, nous vous garantissons que vous ne serez pas seul. Voici où trouver de l'aide et rencontrer de nouveaux passionnés de robotique :

  • Réponses du ROS, qui est le « débordement de pile » de ROS. De nombreuses questions et réponses existantes sont très utiles et vous aideront à comprendre certains concepts et à résoudre vos problèmes. Vous pouvez également poser toutes vos questions.
  • Dépôts ROS GitHub. Pour presque chaque forfait, vous pouvez trouver le code en ligne. Si vous rencontrez un problème et que vous pensez qu'il est lié au code du package, vous pouvez facilement ouvrir un ticket et démarrer une discussion avec les responsables du package. Vous pouvez également contribuer à ajouter de nouvelles fonctionnalités ! De cette façon, vous pouvez aider d'autres personnes en partageant votre travail et vos progrès.
  • Liste de diffusion ROS. Nous vous conseillons de vous y abonner, vous recevrez des informations sur les projets de robotique, les sorties, les questions des utilisateurs… Un excellent moyen de vous tenir au courant des développements de ROS et des nouvelles fonctionnalités/applications.

Nous avons donné ici un aperçu de ce que vous pouvez faire pour apprendre la robotique avec ROS.

ROS vous permettra d’arrêter de toujours réinventer la roue et de commencer à créer très rapidement des applications robotiques impressionnantes.

Si vous souhaitez apprendre ROS avec un vrai robot que vous pourrez manipuler vous-même (car la plupart du temps les robots industriels sont trop chers et on ne peut apprendre qu'avec des simulations 3D), alors Niryo One pourrait être parfait pour vous !