Logo Viscera
Logo Main Pomme

Manipulateurs robotiques

mercredi 30 mars 2011

À propos de la conception d'un manipulateur robotique

La conception d'un manipulateur robotique commence par suivre une procédure de design rigoureuse. L'objectif principal de cette procédure est de s'assurer que le manipulateur répond à des critères de performance définis par le concepteur. Par ailleurs, en suivant une procédure bien structurée, il sera plus aisé de modifier le design du manipulateur, dans l'éventualité où les critères de performance ne seraient pas pleinement atteints. De plus, la conception d'un manipulateur robotique fait appel à des talents variés, autant dans le domaine des mathématiques que celui de la physique. Ainsi, l'équipe chargée de la conception du manipulateur sera composée de plusieurs membres dont les connaissances sont complémentaires.

La première étape du design d'un manipulateur robotique, qui sera globalement couverte par cet article, consiste à spécifier les tâches qui auront à être effectuées par le manipulateur, et les critères de performance à atteindre. Les autres étapes consisteront, sommairement, à établir un plan du manipulateur, à choisir le matériel adapté, à analyser mathématiquement le manipulateur et à effectuer des tests de performance. Enfin, la production et la commercialisation du manipulateur robotique seront possibles.

Un manipulateur robotique est toujours conçu en vue d'une application précise. Il faut comprendre qu'il serait impossible de créer un manipulateur universel. Certains compromis seront toujours nécessaires. Le travail du concepteur consiste à choisir les caractéristiques et les compromis adéquats, de façon à créer un manipulateur qui soit capable d'effectuer une variété de tâches similaires.

Les spécifications les plus évidentes à déterminer sont la charge maximale, la précision, la vitesse, la portée et la rigidité. Il faut remarquer que ces spécifications sont interdépendantes. Par exemple, un accroissement de la vitesse du manipulateur résultera probablement en une perte de précision. D'autres spécifications sont utiles à définir, comme la durée de vie estimée, le temps de réparation, la masse, le volume, la facilité à opérer, le coût et l'alimentation électrique. Le fait de négliger une caractéristique peut résulter, éventuellement, en des problèmes de performance et d’adaptabilité.

D'autres considérations sont importantes lors de la conception d'un manipulateur. Il faut s'attendre à ce que des forces ou des torques soient appliqués sur le bras robotique ; celui-ci doit être capable de les accommoder. Il peut être nécessaire que le manipulateur puisse percevoir son environnement, visuellement ou tactilement par exemple. Le manipulateur doit être capable de communiquer des informations avec un système informatique et des ouvriers. Il doit être sécuritaire en toutes circonstances.

À la lumière de ces considérations, on comprend que la conception de manipulateurs robotiques soit devenue un processus méticuleux. Quoique ce processus peut paraître long et ardu au premier coup d'œil, il est logique et bien orienté. Pour toute personne intéressée par le sujet, la compréhension du processus de conception d'un manipulateur robotique complète parfaitement la compréhension de son fonctionnement.

B. ANDEEN Gerry (1988), Robot Design Handbook, New York, McGraw Hill, p.2.1 - 3.2.

Les circuits logiques

Pour terminer en beauté mes interventions sur ce blogue, laissez-moi vous entretenir des circuits logiques. Nous les étudions dans le cadre d’une partie sur le contrôle des manipulateurs pour notre travail car ils sont omniprésents dans tout système informatique.

Un circuit logique est en fait un assemblage de portes logiques. Chaque porte logique est un assemblage précis de transistors et de résistances qui applique une fonction logique sur au moins deux entrées, et qui donne comme résultat une sortie. Or, dans les circuits logiques, les entrées et les sorties ne peuvent prendre que deux valeurs : 0 ou 1, distinguées par une différence de voltage dans les réalisations électroniques de circuits logiques qui seront présentées ici.

Les principaux types de portes logiques sont les suivants. Il faut noter que les images ont été prises sur le site http://cpuville.com/logic_gates.htm.

1. La porte AND (ET en français) est représentée par le symbole suivant, et donne les sorties suivantes selon les valeurs de l’entrée A et de l’entrée B :

Elle porte donc logiquement sont nom : elle ne retourne 1 que si les deux entrées sont 1.

2. Voici maintenant la porte OR (OU en français) :

En voilà une autre qui porte logiquement son nom. Dès que A ou B est 1, la sortie est 1 également.

3. Le type XOR (soit OU exclusif) est déjà un tantinet plus complexe :

Il ne donne 1 comme résultat que si les deux entrées sont différentes.

Les types suivants seront des négations des trois premiers. Vous allez comprendre pourquoi :

4. Voici ainsi le type NAND (NON-ET en français) :


En effet, la porte NAND donne l’inverse de la sortie d’une porte AND. Si on ne branche qu’une seule entrée à la porte NAND, elle se contentera de donner l’inverse de cette entrée (par exemple, 0 devient 1 et vice-versa. Bref).

5 et 6. Le principe est le même pour la porte NOR, ainsi que pour la porte XNOR.


Chacune donne l’inverse de la sortie de son homologue sans N dans le nom (si vous voyez ce que je veux dire).

Il est bien beau de savoir reconnaître individuellement chacune des portes logiques, mais il est bien plus excitant de créer des circuits de portes logiques et de contempler ce qui arrive !

Par exemple, saviez-vous qu’il est possible de réaliser tous les types de portes logiques de base en utilisant seulement des portes NAND ou des portes NOR ? Voici la réalisation d’une porte OR qui utilise seulement des portes NAND. Mais ne la regardez pas si vous voulez essayer de la trouver par vous-mêmes, juste pour le plaisir.



En tout cas, voici la réponse :

Imaginez le trajet des 0 et des 1, vous allez voir, ça ne peut pas échouer.

Pour finir, voici le circuit d’un additionneur complet tel que les ordinateurs en utilisent pour additionner des nombres binaires (représentés justement par des 0 et des 1). Il n’a aucun rapport direct avec les manipulateurs robotiques, mais sachez qu’il vous a servi plus d’une fois dans votre vie :

L’image de l’additionneur complet vient de http://en.wikipedia.org/wiki/File:Full_Adder.svg

Bon, ça peut avoir l’air rébarbatif, mais rassurez-vous, le fonctionnement de cette chose est parfaitement compréhensible. Avant de lire ce qui suit, je vous conseille toutefois de vous assurer de connaître les principes de base du système de numération en binaire, ou base 2. Eh bien, ce n’est pas très complexe, alors voici une simple comparaison pour comprendre (j'ai utilisé l'astérisque (*) comme symbole de l'exponentiation) :

En décimal :

104 = 1 x 10*2 + 0 x 10*1 + 4 x 10*0 = 100 + 4 = 104

En binaire :

1101000 = 1 x 2*6 + 1 x 2*5 + 0 x 2*4 + 1 x 2*3 + 0 x 2*2 + 0 x 2*1 + 0 x 2*0 = 64 + 32 + 8 = 104

Bref, passons outre.

Pour imaginer ce circuit en marche, considérons un exemple simple où nous voulons additionner deux nombres binaires à trois bits chacun : 011 (soit 3) et 010 (soit 2). On s’attend logiquement à ce que le résultat soit 101, c’est-à-dire 5.

Pour chaque position de bit, il doit y avoir un circuit additionneur complet. On en a donc 3 ici. Dans chacun des 3, A et B sont les entrées pour cette position de bit et S est le bit de résultat pour cette même position. Cout est la valeur à retenir vers la position supérieur de bit ; elle est donc envoyée dans l’entrée Cin de l’additionneur de la position supérieure. On peut voir la fonction de Cout et Cin comme étant celle de la retenue dans l’addition.

Ainsi, pour le premier additionneur, A est 1 (le 1 au bout de 011), B est 0 (le 0 au bout de 010), et la valeur de Cin est 0 (car il n’y a pas eu d’addition à partir de valeurs précédentes). Ainsi, si on imagine les petits 0 et 1 qui se promènent dans le circuit, on arrive à S = 1, et Cout = 0.

Pour le second additionneur, A est 1 (deuxième chiffre de 011) et B est 1 (deuxième chiffre de 010). Cin est 0, car il est directement branché sur le Cout de l’additionneur, et le Cout de ce premier additionneur était 0. On arrive donc à S = 0, et Cout = 1.

Pour le troisième et dernier additionneur, voici les valeurs d’entrée : A = 0, B = 0, et Cin = 1 (car le Cout de l’additionneur précédent était 1, on s’en rappelle). En se concentrant très fort une dernière fois sur les entrées et les sorties des portes logiques du circuit, on arrive à S = 1 et Cout = 0.

Bref, en mettant les trois sommes bout à bout dans le bon ordre, on arrive effectivement au résultat voulu : 101.

La prochaine fois que vous utiliserez votre calculatrice, ayez donc une petite pensée pour l’armée d’additionneurs et d’autres unités logiques à votre service…

mardi 29 mars 2011

Sous-marin robotique

L'Economic Commission for Africa (ECA) a signé avec la Direction Générale de l'Armement en France pour un sous-marin qui sera contrôlé à distance. Ce sous-marin pourra atteindre une distance de 2000 mètres. Celui-ci sera utilisé pour la CEPHISMER (Cellule Plongée Humaine et Intervention Sous la Mer). Ce robot de 800 kg aura deux bras manipulateurs, ainsi que plusieurs caméras vidéo. Ce robot servira aux Français, par exemple, pour l'identification des épaves et la récupération des objets dans la mer.

Nouveau contrat de robotique sous-marine avec la Direction Générale de l’Armement

lundi 28 mars 2011

Une super souris robotique.

La micromouse robot competition est une compétition qui se produit tous les ans au Japon. La compétition est simple. Il s'agit de créer des petits robots d'un maximum de 250 millimètres qui doivent retrouver leur chemin dans un labyrinthe d'une grandeur de 2,88 mètres. Ce labyrinthe est subdivisé en 16 petites cellules. Le robot le plus rapide est celui qui gagne la compétition. Les robots peuvent retrouver leur chemin grâce à des algorithmes. Le premier est A* (A star) qui est un algorithme permettant de chercher son chemin. Lors du déplacement du robot, il va choisir le chemin qu'il croit être le plus rapide, même si ce n'est toujours pas le cas. Cependant, il garde tous les chemins possibles en mémoire, au cas où le robot serait dans une impasse. Le deuxième est la méthode de l’algorithme de remplissage par diffusion. Celui-ci va donner une valeur de base à chaque case selon la plus petite valeur pour parcourir le chemin, mais cette valeur ne prend pas en compte les obstacles. Par exemple, si le chemin le plus court est de 20 cases, alors toutes les cases sur le chemin auront une valeur de 20. Par la suite, le robot parcourt tout le labyrinthe pour évaluer les obstacles sur son chemin. Il va, par la suite, réévaluer son chemin selon les obstacles à parcourir.

Insolite : des robots-souris résolvent des labyrinthes complexes

dimanche 27 mars 2011

SmartBird et Bionic Handling Assistant

La compagnie Festo est un fournisseur mondial de technologies de l'automation et de programmes d'éducation et de formation dans le milieu industriel. 9.5 % de ses fonds sont consacrés à la recherche scientifique et au développement technologique. Une partie de cette recherche s'inspire de la nature ; c'est l'objet de son Réseau d'Apprentissage sur la Bionique (Bionic Learning Network). Celui-ci, en collaboration avec des universités, des institutions et d'autres compagnies, s'inspire de phénomènes naturels pour créer des applications industrielles innovatrices. On y découvre deux machines très intéressantes : le SmartBird et le Bionic Handling Assistant.

SmartBird est un oiseau mécanique, dont le design a été inspiré par le goéland. C'est un modèle léger, puissant et agile, qui possède d'excellentes qualités aérodynamiques et qui utilise un minimum de matériaux. Il peut décoller, voler et atterrir de façon autonome. De plus, ses ailes sont capables d'effectuer à la fois des mouvements de battement et de pivotement ; SmartBird parvient ainsi à avoir une excellente efficience en vol. Festo suppose que les techniques employées dans la création de SmartBird peuvent être transférées au développement et à l'optimisation de véhicules hybrides.



Le Bionic Handling Assitant est un système de manipulation qui possède une liberté de mouvement remarquable et dont l'inspiration provient de la trompe d'un éléphant. Il est capable d'entrer en contact direct avec des humains, sans aucun danger. Il serait ainsi utilisé, entre autres, en médecine, en réhabilitation, en soins des personnes handicapées, dans des maisons et dans des institutions publiques. Également, il peut servir en tant que manipulateur dans une chaîne de montage industrielle. La pneumatique et la mécatronique sont les deux technologies principales qui ont permis son développement, en plus de techniques modernes de production.



Ces deux trouvailles sont, à mon avis, très représentatives de la robotique. En effet, un objectif important de la robotique est la création de systèmes mécaniques qui sont capables d'égaler ou de surpasser des systèmes biologiques. L'inspiration de phénomènes naturels est certainement une voie pour atteindre cet objectif.

Site de Festo

SmartBird - Bird fly deciphered

Bionic Handling Assistant - Flexible and compliant movement

Un robot secoureur ?

Un nouveau robot secoureur a été construit en utilisant l'accessoire Kinect de la Xbox. Ce robot pourrait aller à des endroits dangereux d'accès pour un être humain après de grands séismes. Il est capable de détecter des mouvements grâce à une caméra infrarouge. De plus, il peut percevoir son environment en 3D et ainsi trouver des endroits où pourraient se trouver des survivants. Le robot possède aussi une vision en temps réel, ce qui pourrait aider les secouristes pour des sauvetages. Ce robot a été construit par des étudiants de l'université de Warwick.

Un robot Kinect : de jouet à héros

samedi 26 mars 2011

Séminaire au CIM de l'Université McGill

Au Québec, plusieurs universités apportent une contribution active et prépondérante à la recherche scientifique dans le domaine de la robotique. L'Université Laval, l'École Polytechnique de Montréal, l'École de Technologie Supérieure de Montréal, l'Université McGill et l'Université de Sherbrooke méritent d'être mentionnées. De temps à autre, les départements de robotique de ces universités présentent des publications, des actualités et des événements.

À ce sujet, le Centre pour des Machines Intelligentes de l'Université McGill (McGill Center for Intelligent Machines) présentera un séminaire lors du 31 mars prochain, dont l'objet sera l'analyse du mouvement des articulations humaines par ordinateur. Quoique ce sujet ne soit pas directement lié à la robotique, les techniques de programmation et de traitement des images employées par cette analyse peuvent certainement se transposer au domaine de la robotique.

Le séminaire est présenté par Vijay John, étudiant gradué du groupe de Vision par Ordinateur et de Traitement des Images de l'École de Programmation de l'université de Dundee (Computer Vision and Image Processing group of the School of Computing in University of Dundee). Ce séminaire expose ses recherches, en collaboration avec trois autres chercheurs, sur l'analyse par des vues multiples, sans utilisation de marqueurs, du mouvement des articulations humaines. L'objectif est de créer une solution alternative aux systèmes commerciaux de capture de mouvement, qui sont coûteux, encombrants et complexes à installer.

Trois algorithmes d'analyse du mouvement humain seront présentés, lesquels servent à suivre et à classifier ce mouvement. Les résultats obtenus par l'équipe de recherche montrent de très bonnes performances, comparables aux systèmes actuels. Éventuellement, les recherches réalisées trouveront une application dans la réhabilitation clinique et l'animation par ordinateur.

McGill Center for Intelligent Machines

Seminar : Markless, Multiview, Articulated Human Motion Analysis

Lablogatoire : Répertoire des compagnies et centres de recherches en robotique au Québec