Comment un étudiant en informatique doit-il commencer à s’initier à la robotique ?


J'ai d'abord une bonne nouvelle pour vous : la robotique concerne autant le logiciel que le matériel. Vous n'avez pas besoin de fabriquer le robot - certaines personnes ayant une bonne formation en EE ou ME le feront mieux que vous, mais pour que ce matériel fasse de bonnes choses de manière autonome, vous avez besoin d'un logiciel complexe qui s'occupe de tous les capteurs et actionneurs, fusionne leurs informations pour donner un sens aux données à un niveau sémantique, puis les retransforme en commandes pour les actionneurs. Et croyez-moi, que vous le regardiez au niveau du lop de décision de bas niveau ou au niveau de la prise de décision de haut niveau, c'est une tâche difficile.


Ma formation est également en CS : Vérification & validation, Représentation des connaissances et Inférence étaient les sujets que j'ai étudiés plus en profondeur jusqu'à ce que je me déplace dans les architectures robotiques pour mon doctorat.

Les logiciels robotiques sont un grand domaine qui rassemble de différents domaines liés à la CS.


Le plus naturel et souvent directement applicable est la théorie du contrôle : dans ce domaine, vous tentez d'implémenter une loi de contrôle qui fermera la boucle de bas niveau entre les informations que vous avez (position et vitesse 6 DOF d'un drone par exemple) dans les commandes qui permettent au mieux de suivre une trajectoire. Il y a beaucoup d'optimisation linéaire impliquée ici et une bonne connaissance des mathématiques est nécessaire. Tout robot qui se déplace - que ce soit un véhicule ou un bras - aura à son niveau inférieur une boucle de contrôle qui prend ses racines dans ce domaine.

Le traitement stochastique et le raisonnement sont là-haut aussi. Comme les données de détection sont souvent bruyantes et que le résultat des commandes est incertain, l'utilisation de la représentation stochastique au niveau intermédiaire, soit pour ancrer une perception bruyante dans des concepts fondés, soit pour décider de l'action la moins risquée/la plus prometteuse pour éviter un échec/atteindre un objectif local, est une nécessité. Intelligence Artificielle : Programmation d'une voiture robotique, le cours de S. Thrun sur son propre site Web est entièrement consacré à ce sujet - toutes les techniques qu'il présente sont liées d'une manière ou d'une autre au processus gaussien et à l'inférence stochastique. Ce cours est également destiné aux personnes ayant une bonne formation en CS, donc vous devriez être à l'aise avec lui.

Avoir l'un ou l'autre de ces 2 vous rend bien équipé sur la façon dont l'industrie perçoit un robot automatisé/"autonome" de nos jours. Pour aller plus loin, vous devrez explorer les problèmes de prise de décision de plus haut niveau ou l'architecture logicielle pour les systèmes robotiques. La prise de décision à un niveau plus élevé implique que certains concepts présentés dans le cours de Thrun soient généralement plus abstraits. Par exemple, la planification de trajectoire qu'il présente reste assez simple car une voiture a relativement peu de liberté. Si vous essayez de faire de la planification de trajectoire sur un système plus complexe tel qu'un bras robotique ou même un robot humanoïde, vous devez explorer des techniques plus avancées. Le livre de Steve Lavalle est un bon matériel pour cela (Planning Algorithms / Motion Planning qui est disponible gratuitement sur le lien). Attention cela commence à être un matériel avancé fragile cependant et ne traite pas le problème sur l'intégration de telles techniques dans une boucle de contrôle.

Ma préférence personnelle va à la planification et l'exécution de tâches de plus haut niveau car c'est mon propre domaine :). Cela inclut la planification classique de préférence avec représentation du temps et des ressources ou la planification probabiliste qui traite de représentations similaires à celle fournie par Thrun. La plupart des travaux sont liés aux algorithmes de recherche, peut-être un peu de théorie des jeux et beaucoup d'architecture logicielle. C'est encore assez loin pour être vraiment utile à côté de l'expérimentation de niveau doctorat cependant.

J'espère que cela aidera.

EDIT : Je dois mentionner que les domaines que j'ai donnés sont liés à mes propres intérêts avec un niveau d'abstraction croissant de la boucle de contrôle de bas niveau à la prise de décision de haut niveau avec un fort accent sur la prise de décision. Il y a d'autres domaines plus liés à la perception qui sont pertinents pour la robotique : le traitement du signal, l'apprentissage automatique, la fusion d'informations (stochastique ou autre) qui peut se rapporter au SLAM et la liste pourrait être longue alors que je les connais à haut niveau, je préfère laisser d'autres personnes donner des pointeurs plus précis.