Vous avez l’habitude d’utiliser les systèmes d’exploitation destinés aux ordinateurs comme Windows, Mac OS, Linux (Ubuntu, RedHat, etc.) ? Vous connaissez aussi les systèmes d’exploitation les plus répandus sur les smartphones comme Android, iOS, Symbian, Windows Phone ? Mais finalement… Qu’est-ce qu’un système d’exploitation ?
Un système d’exploitation est un logiciel installé sur un matériel, qui permet d’exploiter ce matériel sans forcément bien le connaître, de manière optimisée et synchronisée (ordonnancement). Il y a cependant deux points de vue d’un système d’exploitation : Le point de vue utilisateur et le point de vue développeur.
Lorqu’un utilisateur lance une application, il n’a aucune idée de la façon dont sont gérés l’affichage et les calculs. Le niveau d’abstraction du système d’exploitation (OS) est donc très élevé. On est face à un écran qui execute ce qu’on lui demande… (vision très simplifiée, mais on n’a pas besoin d’être conscient de plus de choses lorsqu’on est utilisateur).
Le point de vue développeur est un peu plus complexe car le développeur, selon ce qu’il développe, doit être conscient du matériel sur lequel il travaille : Suis-je suis un serveur ? Suis-je suis un système embarqué ? Suis-je sur un ordinateur particulier ? En fonction du type de système, le développeur aura accès à des fonctionnalités variées et aura plus ou moins de libertés : C’est le système d’exploitation qui les met à disposition à travers ce que l’on appelle les pilotes et les couches applicatives.
Le système d’exploitation a pour rôle de faire cohabiter toutes les briques logicielles installées sur un système (pilotes, services, applications, etc.) avec différents degrés de priorité : Le mouvement du curseur sur l’écran est prioritaire par rapport à votre explorateur Internet par exemple. D’ailleurs, il est rare que le curseur se fige sur l’écran.
Une petite vidéo pour prendre l’exemple de l’utilisation du système d’exploitation Linux :
Le système d’exploitation ROS (Robot Operating System) développé pour les robots utilise le même principe. Il est possible de le relier avec différents pilotes (fournis ou non) pour contrôler le matériel, et on peut lui fournir des logiciels qu’il sera capable d’executer. Le développeur n’a pas forcément besoin de connaître le matériel en détail pour développer, ce qui lui permet de se concentrer sur les fonctionnalités principales de son application. Ce système d’exploitation est développé par la société américaine Willow Garage qui a utilisé son robot PR2 comme support de développement.
ROS fourni un ensemble de bibliothèques de développement et d’outils qui aident les développeurs à créer leurs propres applications. Il embarque un ensemble de pilotes universels, des vues, des piles de messages, un système de management, et plus encore ! ROS est entièrement open source (BSD) et libre pour toute utilisation commerciale ou non. Le premier objectif de ses développeurs est de fournir un support de développement rendant facile l’implémentation des applications sur les robots.
Pour comprendre ce qu’est le logiciel libre, je vous propose d’entendre son maître Richard Stallman :
Autant dire qu’ROS est le système d’exploitation parfait dès lors qu’on utilise un PC embarqué ! Mais comment ça marche ?!
Sur le site de Willow Garage, un wiki (tutoriel ou guide interactif) a été mis en ligne. Et Patrick Goebel, contributeur d’ROS à travers le projet Pi Robot, vient de publier un livre, ROS by Example, écrit avec une approche très pragmatique du système d’exploitation. (commandable ici)
Pour les novices de ROS, vous serez intéressés par la machine virtuelle VirtualBox d’ROS rendue disponible par NooTrix (ici).
Basés sur cet OS, nous retrouvons un projet qui vous fera rêver : La Brain Control Interface (BCI) ou l’interface de contrôle par la pensée qui utilise un casque EEG et ses 14 électrodes. (ici)
Et pour vous faire rêver un peu, le robot PR2 en action (cliquez ici pour plus d’informations et de vidéos de PR2) :
Source : Willow Garage
Accueil Ancien classement Je crée mon robot ROS, on vous explique comment marche le premier Système d'Exploitation pour robots...