Programmation des robots, outils et frameworks
De nombreux environnements et outils de programmation sont en concurrence pour animer les robots. Même Microsoft, le créateur de Visual Studio, s'intéresse à ce marché et offre un produit dans la ligne de ses outils de développements.
Outils de programmation et simulation de la robotique
Gazebo
OSRF, gratuit et open source. Linux.
Développé par l'OSRF (Open Source Robotics Foundation), Gazebo a son propre site. C'est une interface à un monde robotique virtuel permettant de contrôler une population de robots. Il fournit un bibliothèque de composants de mondes virtuels.
RDS
Microsoft. Gratuit. Windows.
Robotics Developer Studio est produit par Microsoft depuis quelques années et est devenu gratuit en mai 2010. Il a à cette époque 60000 utilisateurs actifs.
Le langage de développement visuel VPL (Visual Programming Language) permet de créer des applications par glisser-déposer de composants prédéfinis. Un runtime, CCR (Concurrency and Coordination Runtime), gère en mode asynchrone les échanges entre le matériel, bras, senseurs, etc. et le logiciel qui le commande.
L'environnement de simulation VSE (Visual Simulation Environment) est le point fort de cet outil, car il permet d'expérimenter dans un monde virtuel en 3D l'interaction du robot avec des objets, des décors, et la programmation devient ainsi comme un jeu.
Liste de robots supportés
ROS
Willow Garage et OSRF. Gratuit et open source. Windows, Linux, Mac.
Le Robot Operating System est un système qui commande le robot sur lequel on peut implémenter des applications. Il fonctionne plutôt sur Linux et semble incomplet sous Windows, dans la mesure ou il comporte de nombreux outils fonctionnant sous UNIX.
Il veut centraliser des frameworks existants en un logiciel unique. Ce n'est pas en lui-même un outil en temps réel, mais on peut lui adjoindre un module pour ce faire.
Les langages de programmation utilisés sont C++ et Python, d'autres étant en développement.
Meka
Arduino
Gratuit et open source.
Arduino est une plateforme électronique open source et un environnement de développement, basé sur Processing, pour toutes sortes d'actuateurs de robots ou matériels automatisés.
Le langage de développement Arduino (basé sur Wiring) est proche du langage C.
On développe en Arduino de façon textuelle et non visuelle comme avec RDS.
LabView
National Instruments. 1250$.
Destiné à l'industrie, il offre une interface pour programmer toutes les sortes d'instruments automatisés et compris les systèmes robotiques.
Des widgets de contrôle servent d'interfaces aux données. Des pilotes (comme ceux des cartes graphiques) servent à reconnaître les différents matériels. Différents langages à représentation graphique, formés d'objets à combiner dans des schémas, sont traduits en langage C pour fonctionner sur différentes plateformes.
Frameworks
Interfaces entre robots et logiciels.
- Carmen. Logiciel de contrôle de robot mobile.
- Orocos. Framework de contrôle de robot.
- Player. Interface de contrôle de robots et senseurs. C'est un concurrent à ROS tandis que d'autres frameworks sont incorporés à ce dernier.
- Robotnav offre une bibliothèque pour le déplacement.
JavaScript
- Brain. Réseau neuronal, facile à utiliser.
Vision et reconnaissance d'objets
- FastCV. Vision par ordinateur pour la réalité augmentée.
- LibCCV. Librairie pour la reconnaissance d'objets.
- OpenCV. Vision par ordinateur open source, bibliothèque avec multiple interfaces, dont C++ et Java. Très populaire mais a des limitations.
Apprentissage
- Waffles. Boite à outils en ligne de commande pour l'apprentissage par des machines.
- NuPic. Bibliothèque d'apprentissage automatique, en C++, fonctionne sur Linux/Unix.