• Aucun résultat trouvé

Interface Homme-Machine (IMH) et robotique

N/A
N/A
Protected

Academic year: 2022

Partager "Interface Homme-Machine (IMH) et robotique"

Copied!
11
0
0

Texte intégral

(1)

Objectifs pédagogiques :

✓ Identifier le rôle des capteurs et des actionneurs

✓ Réaliser par programmation une IMH répondant à un cahier des charges précis

Nous allons nous intéresser aux interfaces Homme-Machine (IHM). Une IHM permet à un utilisateur d'interagir avec une machine, la souris et le clavier sont des exemples d'IHM, mais il en existe bien d'autres (par exemple les écrans tactiles des smartphones). Par "machine", on entend bien évidemment "ordinateur", comme dans le cas du duo clavier-souris, mais pas seulement. En effet, les "machines" peuvent aussi être des objets connectés, des systèmes embarqués ou encore des robots. Nous allons justement nous intéresser ici à cette dernière catégorie : les robots.

1. Les robots

1.1. Qu’est-ce qu’un robot ?

D’après Wikipédia : « Un robot est un dispositif mécatronique (alliant mécanique, électronique et informatique) accomplissant automatiquement soit des tâches qui sont généralement dangereuses, pénibles, répétitives ou impossibles pour les humains, soit des tâches plus simples mais en les réalisant mieux que ce que ferait un être humain. »

Le mot robot a été utilisé pour la première fois par l’écrivain tchécoslovaque Karel Čapek dans sa pièce de théâtre

"Rossum's Universal Robots" en 1920, il a pour origine le mot russe "rabota" qui signifie travail, corvée. La notion de robot a été ensuite développée par l'écrivain américano-russe Isaac Asimov dans son recueil de nouvelles "Les Robots"

(1950).

Les robots peuvent être décomposés en trois éléments distincts : capteurs, unité de calcul et actionneurs.

Les capteurs sont utilisés pour « percevoir » le milieu environnant. Le robot utilise ces capteurs pour produire des données sur sa localisation et sur ce qu’il fait. Différents capteurs peuvent être utilisés pour détecter des conditions différentes, y compris la luminosité, la température, les collisions, les ultrasons, les ondes infrarouges ... la liste est longue ! Pensez aux différents sens que possèdent les humains et comment un robot peut les dupliquer. Les capteurs sont considérés comme entrées de données, car les données qu’ils produisent sont envoyées vers le cerveau du robot.

L’unité de calcul est constituée d’un ordinateur de bord que le robot utilise pour traiter les informations en provenance de ses capteurs. Cela peut être aussi petit que quelques circuits intégrés ou aussi grand qu’un ordinateur personnel. La capacité de calcul requise par le robot dépend du niveau de complexité des tâches requises.

La dernière composante distincte d’un robot, ce sont ses actionneurs. Les « actionneurs » sont des « pièces qui font des choses ». Ceux-ci peuvent être des moteurs dans les roues, ou des moteurs qui font bouger des bras. Ça pourrait également être des pistons hydrauliques ou des vérins pneumatiques. Les actionneurs sont une forme de sortie, tout comme les lampes et les haut-parleurs. L’ordinateur du robot ordonne ces sorties de faire des tâches différentes.

◼ De manière générale, les capteurs fournissent des informations à l’ordinateur qui prend des décisions et qui dit aux moteurs ce qu’ils doivent faire.

Interface Homme-Machine (IMH) et robotique

Actionneurs Unité de

calcul Capteurs

informations informations

(2)

Activité 1ère NSI – Architectures matérielles et systèmes d’exploitation

Au niveau IHM, il est possible d'interagir avec le robot avec une simple télécommande : l'opérateur donne des ordres au robot par l'intermédiaire de cette télécommande ("aller à gauche", "avancer de 3 mètres", "prendre un objet avec une pince"...), par exemple, les robots qui interviennent dans des milieux dangereux (centrale nucléaire) sont télécommandés à distance par des opérateurs.

Il est aussi possible d'interagir avec un robot non pas directement, mais en le programmant afin de lui donner une certaine autonomie. La programmation consiste à donner au robot la marche à suivre en fonction des situations rencontrées : "si le capteur X détecte quelque chose alors arrête les moteurs". C’est plutôt cette voie que nous empruntons lors des activités expérimentales.

1.2. Pourquoi avons-nous besoin des robots ?

Les robots sont utilisés dans la société pour plusieurs raisons, chacun correspondant à un besoin particulier. La question peut également être posée ainsi : « Quels sont les avantages réalisés en utilisant des robots dans certaines situations ? »

Les robots sont généralement utilisés pour faire des tâches ennuyeuses, sales ou dangereuses.

Dans un cadre industriel, l’utilisation de robots permet d’effectuer des tâches répétitives avec une grande précision. Les robots peuvent généralement effectuer des tâches simples beaucoup plus rapidement que les humains.

Cela conduit à une productivité accrue et à un meilleur contrôle de la qualité des marchandises. Certains types de robots, en particulier ceux qui ont besoin de ramasser et de déposer des objets fragiles, sont si précis qu’ils peuvent manipuler des objets et effectuer des déplacements en s’arrêtant à l’endroit prévu avec une précision correspondant à l’épaisseur d’un cheveu. Les robots médicaux bénéficient de cette précision et permettent aux médecins d’opérer sur des patients qui sont dans une autre ville ou à l’autre bout du monde.

Les robots d’exploration et les robots militaires sont conçus pour éloigner les personnes des situations dangereuses. Les opérateurs du robot peuvent le conduire dans des zones dangereuses et utiliser les capteurs et les caméras à bord pour recueillir des informations. Ceci est particulièrement utile pour les missions de recherche et de sauvetage dans les zones sinistrées, où il peut être dangereux pour l’homme d’aller à la recherche de survivants.

Les robots de divertissement représentent une autre catégorie et offrent beaucoup de plaisir et d’intérêt pour les gens. Les situations amusantes dans lesquelles sont impliqués les robots peuvent facilement être vues à la télévision.

La gamme de sophistication va des robots humanoïdes très complexes comme ASIMO et NAO, aux jouets comme RoboSapien © et le système Mindstorms de LEGO ®. Les robots ménagers tels que le robot aspirateur Roomba © de la société iRobot ont été les premiers à être commercialisés comme robots domestiques avec les versions ultérieures qui ont été développées pour laver les planchers et nettoyer les gouttières. Le rêve d’un robot majordome qui ramasse nos vêtements et fait nos corvées n’est pas loin.

1.3. Les lois de la robotique

Les Trois lois de la robotique, formulées par l’écrivain de science-fiction Isaac ASIMOV, sont des règles auxquelles tous les robots « positroniques » qui apparaissent dans ses romans doivent obéir. Exposés pour la première fois en 1942 ces lois sont :

1. Un robot ne peut porter atteinte à un être humain, ni, en restant passif, permettre qu’un être humain soit exposé au danger ;

2. Un robot doit obéir aux ordres qui lui sont donnés par un être humain, sauf si de tels ordres entrent en conflit avec la première loi ;

3. Un robot doit protéger son existence tant que cette protection n’entre pas en conflit avec la première ou la deuxième loi.

Isaac ASIMOV (1920-1992), était un écrivain américano-russe (naturalisé américain en 1928) et un professeur de biochimie à l'Université de Boston, surtout connu pour ses œuvres de science-fiction et ses livres de vulgarisation scientifique. Dans plusieurs de ces ouvrages il introduit les 3 lois de la robotique.

(3)

Pour pallier aux insuffisances de ces lois dans certaines circonstances, l’écrivain Roger MacBride Alen à énoncé les nouvelles lois de la robotique :

1. Un robot ne peut porter atteinte à un être humain.

2. Un robot doit coopérer avec les êtres humains, sauf si une telle coopération est en contradiction avec la Première Loi.

3. Un robot doit protéger son existence, si cette protection n’est pas en contradiction avec la Première ou la Deuxième Loi.

4. Un robot peut agir à sa guise, hormis si ses actions sont en contradiction avec la Première, la Deuxième ou la Troisième Loi.

Q1. Qu’est-ce qu’une IMH ?

Q2. Au niveau IMH, quels sont les deux modes d’action permettant d’interagir avec un robot ? Q3. Citez quelques applications des robots.

Q4. Quels éléments principaux constituent un robot ? Q5. Qui a introduit les lois de la robotique ?

2. Le robot LEGO Mindstorm EV3 © 2.1. Présentation

Le lycée dispose de plusieurs kits du robot "LEGO Mindstorms EV3". Ces kits permettent un apprentissage ludique et rapide des bases de la programmation d’un robot et en particulier des interactions capteurs - actionneurs. L’interface visuelle de programmation utilise des blocs d’instruction à l’instar de ceux que l’on trouve dans SCRATCH.

Le robot que nous allons utiliser est doté dans sa version RILEY-ROVER :

• d’un capteur d’ultrasons dirigé vers l’avant

• d’un capteur de couleur dirigé vers le sol

• de deux actionneurs (moteurs entrainant les roues)

2.2 Blocs d’instructions

La combinaison des différents blocs d’instructions sous une forme visuelle permet de créer simplement des programmes assignant au robot des tâches à réaliser.

◼ Les blocs "ACTION"

Les blocs Action contrôlent les actions du programme. Ils commandent la rotation du moteur, mais également l’image, le son et la lumière sur la brique EV3.

(4)

Activité 1ère NSI – Architectures matérielles et systèmes d’exploitation

Les blocs "CAPTEUR"

Les blocs Capteur permettent au programme de lire les données en provenance du capteur de couleur, du capteur infrarouge, du capteur tactile et d’autres composants.

Les blocs "FLUX"

Les blocs Flux contrôlent le déroulement du programme. Tous les programmes que l’on créé commencent par le bloc de début.

◼ Les blocs "OPÉRATIONS SUR LES DONNÉES"

Les blocs Opérations sur les données permettent d’écrire et de lire des variables, de comparer des valeurs et bien plus encore.

◼ Les blocs "AVANCÉ"

Les blocs Avancé permettent de gérer les fichiers, les connexions Bluetooth et bien plus encore.

(5)

2.3. Focus sur les blocs « déplacement » et « direction » de la rubrique ACTION

Pour effectuer la programmation des déplacements basiques du robot, il faut bien connaître le bloc « Déplacement et direction » qui se trouve dans la palette des blocs d’action (verte). La figure ci-dessous montre le bloc Déplacement et direction en soulignant les différentes entrées du bloc.

Le bloc Déplacement et direction dispose de plusieurs parties différentes comme illustré ci-dessous.

Le Sélecteur de Port identifie les ports auxquels les moteurs sont connectés. Si vous utilisez le modèle RileyRover, assurez-vous que le moteur gauche est connecté au port B et que le moteur droit est connecté au port C (câbles en croisé). Si ce n’est pas fait correctement, alors notre robot va tourner à gauche quand nous lui disons de tourner à droite et vice versa.

Le sélecteur de mode sélectionne la façon dont vous souhaitez contrôler la durée de rotation des roues : activé, désactivé, activé pendant un certain nombre de secondes, activé pendant une rotation d’un certain nombre de degrés ou d’un certain nombre de rotations.

(6)

Activité 1ère NSI – Architectures matérielles et systèmes d’exploitation

2.4. Entrées des blocs

Les entrées des blocs changent en fonction du mode qui a été choisi.

Direction : Vous pouvez soit entrer une valeur, soit faire glisser le curseur. « 0 » signifie tout droit, « -100 » signifie tourner à gauche de façon serrée et « 100 » tourner à droite de façon serrée. Les valeurs entre ces limites vous donneront divers virages, des virages très progressifs jusqu’à des virages très serrés.

Puissance : Là encore, vous pouvez saisir un numéro ou faire glisser le curseur. « 100 » signifie « aussi vite que possible en avant », « -100 » signifie « aussi vite que possible en arrière » et « 0 » signifie puissance nulle (effectivement un arrêt). Des valeurs entre ces limites feront déplacer le robot à des vitesses différentes en avant ou en arrière.

Rotations / degrés / secondes : Cette entrée (visible selon le mode choisi) détermine dans quelle mesure les roues du robot vont tourner. Par exemple « 2 » en mode « rotations » fera tourner les roues du robot de deux rotations, « 4,5 » en mode « secondes » fera tourner les roues du robot pendant quatre secondes et demie.

Freiner à la fin : Quand le robot a terminé son mouvement, il peut soit appliquer immédiatement les freins pour les moteurs (VRAI) soit laisser les moteurs en roue libre (FAUX).

Exemples :

(7)

2.5. Faire tourner le robot

ATTENTION : si vous souhaitez faire tourner le robot autour d’un cercle complet (360 degrés), beaucoup d’entre vous vont simplement taper 360 degrés avant d’exécuter le programme. Lorsqu’il est exécuté, cependant, si vous utilisez le RileyRover, vous allez constater que le robot ne tourne pas de 360 degrés, mais en réalité beaucoup moins.

Cela se produit parce que le bloc Déplacement et direction est conçu pour contrôler la roue du robot, et non l’ensemble du robot. Si nous observons la roue, nous constaterons qu’elle a effectivement tourné d’exactement 360 degrés, tout comme on lui a dit de le faire. L’angle de rotation du robot dépend de plusieurs facteurs dont la taille des roues et la distance entre les roues.

Pour trouver la durée requise pour faire tourner le robot de 360 degrés il est préférable de faire des expériences.

Chaque conception du robot est légèrement différente, de sorte que le nombre de degrés nécessaires pour faire tourner complètement un robot peut varier considérablement, même avec des robots qui se ressemblent beaucoup.

2.6. Travail préparatoire au mini-projet

Vous trouverez des tutoriels vidéo sur les fonctionnalités de base (déplacement et capteurs) d’un robot LEGO EV3 sur cette chaîne YouTube : https://www.youtube.com/playlist?list=PL0-6C7BmJayv1hnXiVCdwfwY1enHYYIWh

Q6. Programmer le robot EV3 pour qu’il avance en ligne droite pendant 3 s, s’arrête, puis recul pendant 1s.

Q7. Programmer le robot EV3 pour qu’il décrive un rectangle.

Q8. Programmer le robot EV3 pour qu’il effectue une rotation sur lui-même correspondant à un tour complet.

Q9. Programmer le robot EV3 pour qu’il avance en ligne droite jusqu’à ce qu’il détecte un obstacle devant lui. Si tel est le cas il s’arrête.

Q10. Programmer le robot EV3 pour qu’il avance en ligne droite jusqu’à ce qu’il détecte un obstacle devant lui. Si tel est le cas il s’arrête puis tourne vers la gauche de 90° puis avance à nouveau en ligne droite jusqu’à détecter un nouvel obstacle.

Q11. Programmer le robot EV3 pour qu’il avance en ligne droite jusqu’à ce qu’il détecte le bord de la table (afin de ne pas tomber). Si tel est le cas il s’arrête puis recul doucement.

Q12. Programmer le robot EV3 pour qu’il avance en suivant une ligne noire (suiveur de ligne).

(8)

Activité 1ère NSI – Architectures matérielles et systèmes d’exploitation

3. Mini-Projet : ROVER – LEGO EV3 (3 à 4 séances de 2 H 00) 3.1. Contexte

« L’ESO (European Southern Observatory) basé dans le désert chilien a confirmé la découverte en Août 2016 d’une exoplanète baptisée PROXIMA b, orbitant dans la zone habitable de son étoile à seulement 4,24 années-lumière de nous. C’est l’une des découvertes astrophysique les plus importantes de 2016 !

https://www.dailymotion.com/embed/video/x4qsvo3

Le CNES (Centre National d’Etude Spatiale) est à la recherche d’un nouveau "ROVER" planétaire pour explorer la planète PROXIMA b qui vient d’être découverte. Vous devez construire et tester un robot qui est capable de suivre un ensemble de commandes pour explorer la surface de cette planète. Avant que le robot ne soit déployé, il doit être testé en profondeur pour vérifier qu’il fonctionnera comme prévu.

Le robot sera transporté par une sonde spatiale et le processus de son déploiement sera similaire à celui du Rover Curiosity sur Mars : https://youtu.be/Ki_Af_o9Q9s

3.2. Construction du ROVER

Le modèle de robot Lego Mindstorms EV3 retenu utilisera comme base celle du modèle "RileyRover - EV3 Classroom Design" proposé par Danien KEE. Les instructions d’assemblage sont disponibles ici :

http://physics4geeks.fr/IMG/pdf/notice_rileyrover.pdf

http://physics4geeks.fr/IMG/pdf/notice_montage_capteurs.pdf

Nous utiliserons pour le projet une déclinaison de ce modèle comportant une combinaison d’un capteur de couleurs et d’un capteur d’ultrasons :

RileyRover – EV3

(9)

3.3. Défis

◼ Cahier des charges se déplacer (niveau débutant)

• Le ROVER devra être capable de détecter les obstacles situés devant lui à l’aide d’un capteur à ultrasons et modifier sa trajectoire en conséquence.

• Le ROVER devra être capable de détecter le bord d’une falaise située devant lui à l’aide d’un capteur de couleurs et modifier sa trajectoire en conséquence.

• Le ROVER devra être capable de sortir d’un "labyrinthe" élémentaire. L’algorithme de « Pledge » ne pourra pas être utilisé complètement ici car il faudrait disposer de deux capteurs d’ultrasons orthogonaux.

Pour vous aider, voici quelques algorithmiques que vous pourrez modifier / adapter aux situations rencontrées : Déplacements contrôlés par le détecteur d’ultrasons

Version 1 Version 2

Déplacements contrôlés par le détecteur de couleurs

Version 1 Version 2

(10)

Activité 1ère NSI – Architectures matérielles et systèmes d’exploitation

◼ Cahier des charges se déplacer et prospecter (niveau expert)

LE ROVER doit être capable de se déplacer dans une zone géologique, éviter les obstacles, localiser un minerai en annonçant qu’il a été trouvé. Le minerai sera simulé par une feuille cartonnée dont la couleur (verte par exemple) sera différente de celle du sol environnant.

Modifiez le programme pour qu’une fois un gisement minéral ait été détecté, le robot continue à avancer pour chercher le gisement minéral suivant et ainsi de suite.

Les équipes du CNES sont très impressionnées par votre ROVER, mais elles constatent qu’avec votre programme précédent, pendant que le robot cherche le bord d’une falaise, il ne fait plus de prospection. Est-il possible de faire les deux en même temps ?

(11)

3.4. Ressources

Yannick DUPONT vous propose sur sa chaîne YouTube des tutoriels vidéo concernant la programmation de la brique intelligente LEGO Mindstorms EV3.

Tutoriel 08 - Robotique Zone01 - Blocs de déplacement

Tutoriel 09 - Robotique Zone01 - Erreur possible avec le bloc de déplacement Tutoriel 10 - Robotique Zone01 - le bloc attendre

Tutoriel 13 - Robotique Zone01 - le capteur angulaire Tutoriel 14 - Robotique Zone01 - le capteur distance Tutoriel 15 - Robotique Zone01 - le capteur couleurs

Tutoriel 16 - Robotique Zone01 - faire un choix de couleurs

Références

Documents relatifs

Article numérisé dans le cadre du programme Numérisation de documents anciens

- Si O est un ordre maximal régulier de S, si dans (9 tout idéal maximal contient un unique idéal premier minimal, alors Ô est un ordre d'Asano de S. Soit en effet Jf> un

Il s’agit d’ordres de grandeur à mémoriser avec rarement plus d’un chiffre significatif, mais pas de valeurs précises à prendre comme des références.. Wikipédia est là

[r]

[r]

[r]

De nombreuses copies sont bien présentées et les efforts de rédaction sont notables ; à l’inverse, les candidats qui n’encadrent ni ne soulignent les résultats, et

premiers éléments pour programmer en TI Basic : se référer au cours distribué.