Pourquoi la robotique fait de vous un meilleur ingénieur logiciel

Des années à enseigner la robotique au HKDI ont changé ma façon de penser le logiciel. Voici ce que la planification de mouvement m’a appris sur la conception des systèmes.


La discipline des contraintes

La robotique oblige à penser en termes de contraintes. Un servo a des limites. Un capteur a du bruit. Une boucle temps réel a une échéance. Ce ne sont pas des excuses: c’est l’espace de conception.

En logiciel, on peut souvent être trop permissif. On ajoute de la mémoire, on lance un autre serveur ou on capture simplement l’exception. La robotique ne pardonne pas aussi facilement cette manière de penser.

Ce que j’ai appris en enseignant au HKDI

Quand j’enseignais au Hong Kong Design Institute, je voyais des étudiants bloqués sur des concepts logiciels abstraits les comprendre immédiatement dès qu’on les reliait à un système physique. Voir un bras robotique échouer à cause d’une erreur de machine à états rend la machine à états bien réelle.

Comment je l’applique au code

Aujourd’hui, quand je conçois un logiciel, je pense à:

  • Délais: que se passe-t-il si c’est lent?
  • État: à quoi ressemble le système à un instant donné?
  • Modes de panne: quand ça casse, comment ça casse?

Ces questions viennent naturellement de la robotique et elles produisent un logiciel plus fiable.