8 Introduction
Qu’il s’agisse d’un robot de qualité industrielle ou d’un robot amateur que vous avez construit, il est difficile d’éviter le codage ou la programmation. Le codage ou la programmation est la manière dont vous donnez des instructions à un robot pour accomplir une tâche. En robotique, vous rencontrerez de nombreux langages de programmation différents, notamment des langages tels que C++, Python et des langages scientifiques tels que MATLAB®. Bien que de nombreux exemples dans ce livre sont basés sur Python, il y aura des occasions où nous utiliserons des extraits de code en C/C++ MATLAB®. Même si nous ne supposons aucune connaissance préalable en programmation, une expérience de codage préalable sera certainement utile pour progresser plus rapidement.
La section suivante présentera brièvement certaines des structures de programmation essentielles. En aucun cas, elles ne sont exhaustives. Il s’agit tout simplement d’introduire quelques concepts de programmation de base qui vous seront utiles pour commencer si vous n’avez pas encore d’expérience en programmation. Nous débuterons avec quelques outils de programmation indispensables tels que les organigrammes et le pseudocode, avant d’aborder les composants de base de la programmation. Si vous possédez déjà une certaine expérience en programmation, vous pouvez ignorer cette section.
Dans les sections suivantes, nous discuterons de deux outils logiciels importants qui se révèleront extrêmement utiles dans la programmation de robots : le contrôle de version et la conteneurisation. Bien que ce soient de bons points de départ, la meilleure façon de renforcer votre confiance et vos compétences est de pratiquer et de vous plonger dans le codage. Ainsi, tout au long du livre, nous proposerons de nombreux exemples pratiques et extraits de code que vous pourrez suivre et essayer, ainsi qu’un ensemble complet de projets à la fin du livre. Une fois que vous avez acquis un certain niveau de confiance, il est important d’explorer de nouveaux problèmes de codage pour développer vos compétences.
Penser au codage
Comme vous l’avez probablement remarqué, nous utilisons les termes « programmation » et « codage » de manière interchangeable, car ils impliquent tous deux de demander à votre robot de réaliser quelque chose de logique. Avant de commencer à programmer, il est essentiel de comprendre le problème que vous souhaitez résoudre et de développer un plan d’action pour construire le code. Les organigrammes et le pseudocode sont deux outils utiles qui vous aideront dans cette phase de planification. Une fois que vous avez établi les grandes lignes du programme, vous devrez choisir le langage de programmation approprié pour la tâche. Pour les tâches où la rapidité d’exécution est importante ou si du matériel de bas niveau est impliqué, un langage tel que C ou C++ est généralement préférable. Cependant, si vous recherchez une approche de prototypage rapide, un langage comme Python peut être plus pratique. Les chercheurs en robotique, quant à eux, ont souvent recours à des langages tels que MATLAB® qui sont orientés vers la programmation mathématique. MATLAB® est un langage propriétaire développé par MathWorks1 qui propose une variété de boîtes à outils contenant des algorithmes couramment utilisés, des outils de visualisation de données, qui permettent de tester des algorithmes complexes avec un minimum de codage. En plus de ces langages basés sur le code, de nombreux langages de programmation visuels tels que Max/MSP/Jitter, Simulink, LabVIEW, LEGO NXT-G sont régulièrement utilisés par les roboticiens, les artistes et les passionnés pour programmer des robots et des systèmes robotiques. Quel que soit le langage que vous choisissez, les concepts fondamentaux de programmation restent les mêmes.
Peu importe le langage de programmation utilisé, il est courant de considérer un programme comme un ensemble d’entrées qui doivent être traitées pour obtenir la sortie souhaitée (Figure 1). En robotique, un cadre similaire est utilisé, appelé la boucle détecter-penser-agir, que nous explorerons en détail dans le chapitre 7.
Figure 1 : Un programme simple passe de l’entrée à la sortie après traitement au milieu
Organigrammes
Les organigrammes sont un excellent moyen de réfléchir et de visualiser le déroulement de votre programme et de la logique. Ce sont des formes géométriques reliées par des flèches (voir les Figures 1 et 2). Les différentes formes géométriques représentent les diverses tâches à effectuer, tandis que les flèches indiquent l’ordre d’exécution, appelé (ligne de flot). Généralement, les organigrammes suivent une disposition de haut en bas et de gauche à droite. Les organigrammes sont un outil pratique pour débuter en programmation. Ils fournissent une représentation visuelle du programme sans avoir besoin de se soucier de la syntaxe spécifique au langage. Cependant, ils peuvent devenir trop encombrants pour les programmes complexes.
|
Début Fin (Terminal) |
Indique le début et la fin d’un programme. |
|
Entrée/Sortie |
Indique les opérations d’entrée et de sortie. Par exemple, il peut s’agir d’une entrée sensorielle ou d’une entrée par clavier et d’une sortie d’affichage ou d’une commande vers un moteur. |
|
Traitement |
C’est là que les informations à venir sont traitées. |
|
Décision |
Indique quand une décision logique doit être prise. Elle contient une entrée et deux sorties. |
|
Ligne de flux |
Ordre de l’opération. |
Figure 2 : Éléments communs de l’organigramme
Dans les sections suivantes, nous explorerons plus en détail la signification de ces symboles.
Pseudocode
Le pseudocode est un autre outil que vous pouvez utiliser pour planifier votre code. Vous pourriez considérer que le pseudocode remplace simplement les formes géométriques évoquées dans la section précédente des organigrammes en utilisant des instructions simples en anglais Contrairement à un langage de programmation spécifique, le pseudocode est un code de programmation sans syntaxe fixe. Par conséquent, le pseudocode est un excellent moyen d’écrire les étapes de votre programme en utilisant un code- similaire, sans référence à une langue de programmation particulière. Par exemple, l’idée d’entrée, de traitement et de sortie pourrait être présentée sous forme de pseudocode simple, comme illustré dans la Figure 3. Dans cet exemple, nous avons étendu le programme précédent en englobant le bloc de lecture, de traitement et de sortie dans une structure de boucle répétitive, abordée plus loin dans le chapitre. Dans cette variante du programme, la séquence d’entrée, de traitement et de sortie se répète en boucle jusqu’à ce que l’utilisateur quitte le programme. L’organigramme équivalent est illustré à la Figure 4.
Programme entrée_traitement_sortie |
répéter lire les données d’entrée traiter les données d’entrée sortir les données traitées jusqu’à sortie utilisateur |
Figure 3 : Un exemple de pseudocode simple avec une lecture répétitive, traitement, boucle de sortie
Figure 4 : Organigramme d’une boucle simple lecture, traitement, sortie
Figure : L’entrée, le traitement et la sortie présentés sous forme de pseudocode