Quels langages informatiques devons-nous connaître pour la robotique?

Meilleure réponse

La réponse la plus simple serait C ++ et Python .

Tous les projets de robotique avec lesquels jai travaillé fonctionnent sur lune ou lautre de ces plates-formes, dune manière ou dune autre. Cependant, ce serait une réponse incomplète sans vous montrer limage réelle de ce qui se passe dans la robotique.

Système dexploitation:

  • C ++ et Python sont certainement le langage de programmation que vous utilisez à la fin. Cependant, les codes de la plupart des robots vivent de nos jours dans un système dexploitation appelé ROS (Robot Operating System). ROS fournit une architecture logicielle élégante pour un contrôle et une planification plus faciles du robot. Vous écrivez ces différents programmes de nœuds qui peuvent publier certaines informations qui peuvent être utilisées par dautres nœuds vivant à lintérieur de ROS . Par exemple, le nœud de localisation qui estime la position dun drone dans le monde 3D publiera ces informations pour que dautres nœuds les utilisent. Un nœud de planificateur de trajectoire peut alors sabonner à ces nœuds pour obtenir ces données afin dévaluer le prochain chemin du drone. Chacun de ces nœuds est de simples codes C ++ ou Python .

Programmation pour la recherche en robotique:

  • Simulation : presque toutes les simulations et tests rigoureux dans la phase de recherche sont effectués en premier sur MATLAB avant sa conversion en un code C ++ ou Python . Cela est dû aux outils de visualisation élégants et aux fonctions pré-écrites pratiques quoffre la plate-forme. Les codes MATLAB peuvent également être intégrés avec ROS .

Programmation pour la cognition visuelle:

  • Modèles dapprentissage automatique : si le robot utilise des techniques dapprentissage automatique ou dapprentissage en profondeur, il est dabord formé avec des plates-formes telles que Tensorflow, Keras, PyTorch , etc. les modèles sont transférés vers ROS en tant que nœud. Par exemple, un drone de recherche et de sauvetage utiliserait un modèle de détection humaine comme nœud ROS qui sabonne au nœud dimage brute de la caméra et publie toute détection humaine.
  • Traitement dimage : OpenCV est un outil de traitement dimage largement utilisé qui peut être intégré avec C ++ ou Python à lintérieur de ROS . Un robot de football par exemple aurait besoin de ce module pour détecter toutes les balles colorées sur limage.

Programmation pour le matériel robotique:

  • Programmation matérielle : pour le niveau matériel FPGA programmation, verilog ou VHDL est utilisé.
  • Micrologiciel ou microcontrôleurs : AVR programmation pour ATMEGA les puces sont largement utilisées si vous souhaitez avoir un contrôle plus efficace et sophistiqué du matériel. Une option plus simple consiste à utiliser le micro-contrôleur Arduino qui utilise un wrapper autour du langage C . Il est assez simple de programmer dans Arduino pour faire fonctionner un servomoteur ou pour contrôler un pilote de moteur.
  • Ordinateurs monocarte : Si vous avez besoin de plus mémoire et puissance de traitement supérieures à celles fournies par Arduino ou Atmega , vous optez pour Raspberry Pi ou Beagle Board . Les deux prennent en charge Ubuntu intégré avec Python ou C ++ dans ROS , ce qui vous simplifie la vie!

À la fin, tout se résume à Python, C ++ et MATLAB dans une plateforme ROS . ROS vient de conquérir le domaine de la robotique à tel point que la plupart des nouveaux outils de programmation robotiques sont nés sous le nom de ROS packages.

Réponse

Peut-être que la feuille de route que jai créée vous aidera dans votre parcours dapprentissage de la robotique. Je vois que cette question est souvent posée.

La feuille de route comporte 4 niveaux et chaque niveau se concentre sur 4 concepts fondamentaux.

Niveau déchauffement

  1. Apprendre codage: commencez à choisir au moins un langage de programmation pratique. Arduino IDE est bon.Python est génial. C / C ++ sera fantastique. Ma suggestion serait Python . Il y a plusieurs raisons à cela et plus tard dans la feuille de route, vous verrez pourquoi.
  2. Apprenez lélectronique: Commencez à créer des composants électroniques de base circuits . Cela peut être aussi simple que dallumer une LED. Ensuite, allumez plus de LED. Faites un simple feu de signalisation. Mettre en œuvre des commutateurs. Apprenez les idées théoriques sur le fonctionnement de la tension, du courant, des résistances, des transistors, des circuits série et parallèle. Explorez également les capteurs et les servomoteurs!
  3. Apprenez lassemblage de base: En tant quenfants, nous aimions fabriquer des jouets et des objets de construction. Faites la même chose ici. Apprenez à fabriquer des structures de base en utilisant du bois, de lacrylique, de la fibre ou du plastique.
  4. Intégration avec le microcontrôleur: Avec la connaissance de ce qui précède concepts, vous devriez essayer de les tester sur un micro-contrôleur de base. Après tout, vous voulez que votre circuit «réagisse». Le choix le plus populaire parmi les amateurs et les débutants est d’utiliser Arduino . Arduino a vraiment simplifié le processus de codage et de mise en œuvre des circuits réactionnaires de base.

(Ressources: YouTube, Khan Academy, Code, Coursera, Udemy)

Niveau débutant

  1. Apprendre la programmation orientée objet: Il est non seulement important de coder en robotique, mais aussi comment bien coder . La programmation orientée objet (POO) est un énorme muscle à développer et plus tôt vous pourrez le faire, plus vous vous remercierez à lavenir. La POO nest pas exclusive à Python. Cependant, en Python, vous pouvez les implémenter facilement et vous entraîner. Grâce à la POO, vous en apprendrez davantage sur les classes, les méthodes, lhéritage, etc. et cest une excellente technique pour écrire des codes fonctionnels, modulaires et efficaces.
  2. Learn physique, probabilités et algèbre linéaire: Alors que vous passez de robotique infantile à adolescent, il est important que vous sachiez également comment la robotique est écrite, lue et parlée par les autres membres de la communauté. Ce langage de robotique utilise beaucoup la physique, les probabilités et lalgèbre linéaire. Oui, vous nappréciez peut-être pas ces matières à lécole ou à luniversité, mais croyez-moi, vous en avez besoin si vous lêtes sérieux au sujet de la robotique. Vous ne pouvez pas faire de vision par ordinateur sans connaître les matrices. Vous ne pouvez pas planifier de chemin sans connaître la physique. Vous ne pouvez pas faire dintelligence artificielle ou dapprentissage automatique sans connaître les probabilités.
  3. Des compétences informatiques plus impliquées: Maintenant, quest-ce que je veux dire par là? Beaucoup de nouveaux arrivants en robotique sont perplexes (moi aussi!) Quils ont besoin dapprendre ce nouveau système dexploitation à laspect extraterrestre qui a un pingouin quelque part à côté. Je parle du système dexploitation Linux . Il est impératif que pour quelquun qui cherche à approfondir la robotique se familiarise avec Linux. De nombreuses bibliothèques, packages et logiciels développés pour la robotique sont distribués très facilement et efficacement sur les environnements Linux. Choix populaire du système dexploitation Linux: Ubuntu
  4. Systèmes intégrés: Maintenant que vous avez développé une meilleure connaissance du codage, des circuits, des concepts théoriques et une familiarité avec Linux, nous devons les implémenter sur un ordinateur plus petit que notre ordinateur portable. Alors allez-y et essayez les concepts de niveau déchauffement ainsi que les concepts de ci-dessus sur un mini-ordinateur comme Raspberry Pi ou le BeagleBone. Accrochez des capteurs, des servos et une caméra à lun de ces mini-ordinateurs, et écrivez du code pour détecter, déplacer et détecter des choses!

(Ressources: YouTube, Khan Academy, Code, Coursera, MIT OCW)

Niveau intermédiaire

  1. Développer les bases théoriques: Ici en fonction de quel domaine de la robotique vous intéresse, vous devez en apprendre davantage sur la théorie qui la sous-tend. En savoir plus sur la manipulation du bras robotique (cinématique et contrôle), perception (vision par ordinateur, algèbre linéaire , matrices), apprentissage automatique / intelligence artificielle (probabilités, statistiques, mathématiques). Voyez-vous comment certains des concepts précédents sont fondamentaux pour ces domaines de robotique?
  2. Utilisez des bibliothèques avancées: Vous devez maintenant implémenter la machine apprentissage et / ou algorithmes de vision par ordinateur sur votre robot. Après tout, le robot devrait être capable de voir, de penser et dapprendre, non?Sur Python, il existe détonnantes bibliothèques écrites pour implémenter des algorithmes dapprentissage automatique et de vision par ordinateur, par exemple. flux tensoriel et OpenCV. De même, beaucoup dIA peuvent également être pratiquées sur Python. Bien sûr, vous pouvez faire la même chose en C / C ++. Cependant, jessaie de rester cohérent ici.
  3. Familiarisez-vous avec ROS: Avec la connaissance de tout ce qui précède, un excellent le middleware que lon devrait apprendre est le Système dexploitation du robot (ROS). Cela peut être un peu difficile à saisir au début. Cependant, ROS vous ouvre les portes pour tester des algorithmes avancés et des simulations sur des robots que vous n’avez même pas! Envie de piloter un quadcopter? Ou naviguer dans un robot de manière autonome sur une carte? Que diriez-vous de faire ramasser un objet par un bras industriel? Vous pouvez le faire dans ROS via son environnement de simulation nommé Gazebo.
  4. Plus de CAO: Vous pourriez être intéressé par le développement et la conception de robots complexes. Commencez à apprendre les logiciels de conception 3D tels que Blender ou SolidWorks afin de pouvoir concevoir vos propres robots.

Niveau Expert

  1. Continuez à apprendre et à grandir: Chaque concept mentionné ci-dessus est sans fin par sa propre vertu, et pour devenir un expert en robotique, vous devrez investir du temps et continuer à apprendre. Vous vous rendrez compte que vous devez apprendre plus de classificateurs ou de modèles pour mieux détecter les objets / images. Vous devrez peut-être en savoir plus sur les algorithmes de contrôle pour optimiser vos solutions.
  2. Plus de logiciel / matériel: En fonction de votre domaine dintérêt et spécialisation, vous ferez de plus en plus de codage, de développement algorithmique, de ROS et / ou de conception robotique.

Enfin, je ne suis certainement pas un expert et je ne peux donc pas ajouter grand-chose à cela . Ce que je peux dire avec certitude, cest que même je ne sais pas ce que je ne sais pas. Une chose importante à retenir est la suivante: commencer et être cohérent =)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *