« Robot humanoïde » : différence entre les versions

De Kernel Fablab Lannion
Aucun résumé des modifications
Aucun résumé des modifications
 
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 219 : Ligne 219 :




=== Tête du robot ===


La tête du robot est la partie contenant les capteurs intéressants et qui permettent au robot de pouvoir intéragir avec son milieu extérieur.
Les points d'intérêts de cette partie du corps est la présence d'yeux qui vont pouvoir servir à détecter des personnes, des mouvements, etc... Et aussi à gérer la profondeur et l'emplacement des objets proches.


==== Motricité ====
La motricité est très semblable à la motricité de la tête humaine. Nous allons mettre des servos moteurs qui ont pour but d'imiter les articulations humaines : ainsi la tête pourra bouger de gauche à droite et de haut en bas grâce à 2 servos. Un situé dans la tête pour les mouvements gauche-droite et un autre situé au niveau du buste pour les mouvements haut-bas.
Nous avons aussi un servo au niveau des yeux afin de pouvoir déplacer les yeux afin de pouvoir effectuer un suivi du regard.




==== Vision ====
Pour simuler la vision nous utilisons deux caméras placés à un entraxe de 7cm l'une de l'autre. Nous obtiendrons deux images, une de l'oeil gauche et une de l'oeil droit qui vont permettre, une fois appariés de determiner une profondeur à l'aide de mesures optiques.
Nous allons devoir nous servir d'un algorithme pour apparier les deux images afin de faire correspondre les pixels.
===== Calibration =====
Chaque caméra possède des propriétés intrinsèques. Elles varient en fonction de la qualité des composants et donc même en provenant du même lot nous avons à faire à deux capteurs différents.
Chaque caméra possède : une distance focale, une distortion et un centre optique qui lui est propre.
La focale est la caractéristique de la lentille placée devant la caméra. Elle influe sur la place des plans images et donc entre directement en jeu lorsqu'il s'agit de mesurer des distances. Entre deux lots de lentilles différentes nous pouvons nous attendre à avoir des focales différentes.
La distortion est le fait d'obtenir une image tordue alors qu'elle devrait être rectiligne. Avec un traitement adéquat nous pourrons redresser les images qui ne le sont pas afin de pouvoir comparer efficacement les images gauches et droites.
===== Calcul de profondeur =====
Une fois que nous aurons apparié les deux photos nous pourrons mesurer la distance entre les deux pixels et donc déterminer la distance entre ces deux points, qu'on appellera disparité.
On établit une carte des disparités et cette carte permettra d'obtenir différents niveaux de profondeur et ainsi on aura une carte 3D de la scène.
Avec les propriétés intrinsèques des caméras on obtiendra une estimation de la distance de l'objet.


== Scenarii d'utilisation ==
== Scenarii d'utilisation ==

Version actuelle datée du 23 octobre 2015 à 13:40

Robot-312208 640.jpg

Présentation

Projet en partenariat avec l'ENSSAT visant la construction d'une plateforme robotique humanoid communautaire à Lannion. Débuté en Septembre 2014 et poursuivi sur l'année 2015. Cette page présente un état de l'art des robots humanoïdes.

Le projet du robot en est sur sa deuxième année et l'idée poursuivie est de réaliser un robot InMoov (www.inmoov.fr). Pour plus de détails sur l'avancement technique et l'étude menée sur le robot en lui même se reporter à la section étude de la plateforme InMoov.

Etat d'avancement

Mars 2015

File:dossier_compte_rendu_RAVARD_Sylvain_2014_2015.rar

Octobre 2015

Le nouveau binôme en charge du projet se charge de la conception de la tête du robot InMoov. Les idées qui vont être implémentées sont présentées dans la section dédiée à l'étude du robot InMoov.


Etat de l'art des robots humanoïdes

Presentation de différentes solutions robotiques humanoïdes

Poppy

Poppy-3d-printed-robot-3.jpg

Poppy est un robot humanoïde totalement open source (hardware y compris) et peu entièrement être construit sur une imprimante 3D. Son buste mobile le rend assez souple pour la marche. Ce robot n’est pas autonome, un ordinateur sert de microcontrôleur (via usb) et l’alimentation est externe sur le modèle de base. Les deux caméras PS eye permettent à poppy de reconnaître son environnement et interagir avec lui. De nombreuses variantes de ce robot on déjà été créé sur le site https://forum.poppy-project.org.

Dimensions H:84 W:25 T:10 (cm) poids : 3.5 kg Prix : 7500€ voir détail pour la partie électronique et petite mécanique : https://docs.google.com/spreadsheet/ccc?key=0Avq9MlqcWxlNdGpjY1RwbDMtSDJJSlVpM1VhRkVLVUE&usp=sharing#gid=1

Son prix est en grande partie due à ses servomoteurs de haute précision nécessaire à l’équilibre d’un humanoïde. 21x Robotis Dynamixels MX-28 (190€ l’unité) 2x Robotis Dynamixels MX-64 (280€ l’unité)

temps de construction : 2 à 3 jours

Idées d’amélioration : Le principal problème de Poppy est son lien obligatoire avec un ordinateur (il n’y a pas de microcontrôleur). L’ajout d’un microcontrôleur (une Raspberry Pi par exemple) et d’une batterie pourrai le rendre autonome. Cette modification risque de réduire la mobilité du robot avec certaines modifications mécaniques au niveau du buste ou de la tête. L’ajout de pinces sur les mains pourrait rendre le robot capable de manipuler des objets.


InMoov

Inmoov.jpg

Ce robot semi-humanoïde (homme-tronc) open source (y compris hardware) est constructible à l’aide d’une imprimante 3D. Malgré son manque de mobilité ce robot a l’avantage d’être très habile grâce à ses mains composées de 5 doigts. L’ensemble des servomoteurs dans le coup et les bras permet à Inmoov de regarder et de suivre un objet du doigt. Pour rendre le système moins fragile et plus puissant, les doigts sont articulés par des moteurs situés dans les avant-bras du robot. l’ensemble du robot est piloté par deux arduino Mega et possède un système de caméra et micro pour pouvoir communiquer. l’équilibre n’étant pas un problème pour ce robot le coût à donc pu être réduit (de 1000 à 1300€) en mettent des servomoteur moins performants.

http://www.inmoov.fr/project/

DARwIn-OP

Darwin-op.jpg

DARwIn-OP est un petit robot (45 cm) humanoïde open source (y compris hardware). Il dispose d’un équipement quasiment aussi complet que le Nao avec son ensemble de camera, microphone, haut parleur pour la communication et différents capteurs pour s’orienter dans son environnement (capteur de sol au pied, gyroscope et accéléromètre). Ce robot en alluminium est autonome grâce à son microcontrôleur ARM Cortex M3 et d’un PC intégré. Coté software, beaucoup d’informations sont disponibles sur le site ros.org. Son prix avoisine lui aussi les 8500€ en grande parti à cause des servomoteurs mx 28.

http://www.romela.org/main/DARwIn_OP:_Open_Platform_Humanoid_Robot_for_Research_and_Education

NimbRo-OP

Erreur lors de la création de la vignette : Fichier avec des dimensions supérieures à 12,5 Mp

NimbRo-OP est un robot humanoïde de quasiment 1 mètre open source (y compris hardware). Ce robot conçu initialement pour jouer au football dispose de jambes puissantes (6 servomoteurs MX-106 par jambes). Ce robot dispose comme la plupart des humanoïde d’un accéléromètre, gyroscope et caméra pour se repérer et d’un processeur dual core avec une carte wifi et une batterie pour son autonomie. Le prix de ce robot en alluminium coûte environ 20 000 € à cause de ses servomoteurs puissants.

http://www.nimbro.net/OP/

Nao

220px-NAO-Robot.jpg

taille : 58 cm poids : 4,8 kg système d’exploitation compatible : Linux, Mac OS, Windows Processeur : Intel ATOM 1,6 GHz (V4) ou AMD Geode 550Mhz (V3.3 ...)

Le Nao est un robot humanoïde autonome open source (seulement pour la partie software) connu de tous. Son design et son équipement très évolué (zones tactiles sur les mains et la tête et bumpers aux pieds) le rend très intéressant mais aussi très peu modulable car sa partie hardware est sous licence.

http://www.aldebaran.com/fr

bioloid/Hovis

Bioloid.jpg

Le bioloid est un robot autonome qui peut avoir différentes formes (humanoïde, chien-robot, araignée-robot, …). Ce robot possède l’équipement minimum nécessaire à le rendre autonome avec pour motorisation seulement des servomoteurs ax 12a. La détection de l’environnement est réduite au stricte minimum avec un capteur gyroscopique 2 axes et 3 détecteurs infrarouges. Ce robot est piloté par un microcontrôleur CM 530 (ARM cortex). Ce petit robot (<35 cm) coute environ 1000 € grâce à son équipement rudimentaire.


http://bioloid-france.bbfr.net/

Hovis est un robot assez similaire à bioloid http://www.dongburobot.com/jsp/cms/view.jsp?code=100795

Software

http://anubis.onucs.org/ : A Natural User Bot Interface System

Hardware

Actuateurs

Lien à voir (depuis hackaday): http://www.hizook.com/blog/2015/01/13/twisted-string-actuators-surprisingly-simple-cheap-and-high-gear-ratio

Types de moteurs

Thèse proposant une méthode pour faire marcher un robot humanoïde avec des moteurs ayant un faible couple http://download.springer.com/static/pdf/620/chp%253A10.1007%252F3-540-45603-1_7.pdf?auth66=1411800907_0c36e0a2082c87abf738d512e442c63f&ext=.pdf

il faut compter une vingtaines de moteurs pour créer un humanoïde.

La gamme ax semble présenter un meilleur rapport qualité/prix que la gamme mx. attention la gamme ax ne possède pas de pid intégré.

servomoteur ax-12a :

  • couple : 1.5N.m
  • prix : 35,40 €

File:AX-12 User Guide.pdf

servomoteur ax-18a (moteur le plus puissant de la serie ax) :

  • prix : 78,40 €
  • couple : 1.8N.m

File:AX18 User Guide.pdf

gamme mx : plus puissant et 3 à 4 fois plus précis et d'autres avantages (mineur?) à utiliser en dernier recours à cause du prix.

servomoteur MX-28t : couple : 2.3N.m prix : 192,00 € File:MX28 User Guide.pdf

Le prix élevé d'un servomoteur peut conduire à une autre solution : Utiliser un moteur à courant continu et réaliser son asservissement PID (ou RST?) ceci développerait un nouveau domaine de travail.

Types de cartes

Les cartes Beaglebone black et cubieBoard ont l'avantage d'avoir de nombreuse broches d'entrée/sortie et capacité de calcul supérieur aux PIC ou Arduino.

Beaglebone black
CubieBoard
Raspberry Pi
Arduino mega
Arduino Yun
Galileo Gen 2

/ carte mère ITX / PIC (conso)

Types de batteries

Les batteries de type LiPo on été choisies pour leur rapport poids/puissance.

Batterie LiPo

Batterie LiPo 11.1V LBS-10 : CM 510, CM 530, CM 700, bioloid Batterie LiPo 11.1V LBS-11 : darwin-op

  • Poids : 83g
  • Dimensions : 70 x 35 x 15 mm
  • Alimentation : 11.1 V
  • Courant de fonctionnement : 1000 mAh
  • 31,90 €

http://www.francerobotique.com/alimentations-batteries/36-lipo-batterie-111v-lbs-10.html

Batterie LiPo 11.1V 1800mAh LB-12

  • Poids : 106g
  • Dimensions : 88 x 35 x 26mm
  • Tension d'alimentation : 11.1V
  • Alimentation : 1800mAh
  • non compatible bioloid ( taille de connecteurs)
  • 40,68 €

http://www.francerobotique.com/alimentations-batteries/301-batterie-lipo-111v-1800mah-lb-12.html

Batterie LiPo 7.4V 3000mAh

  • gamme Hovis
  • 60€

http://www.francerobotique.com/alimentations-batteries/230-batterie-lipo-74v-3000mah.html

Types de liaisons radio

XBee fréquence porteuse : 2.4Ghz portées variées : assez faible pour les XBee 1 et 2 (10 - 100m), grande pour le XBee Pro (1000m) faible débit : 250kbps faible consommation : 3.3V @ 50mA entrées/sorties : 6 10-bit ADC input pins, 8 digital IO pins sécurité : communication fiable avec une clé de chiffrement de 128-bits faible coût : ~ 25€

Wifi Le Wifi semble plus adapter pour communiquer avec un robot humanoïde car ce type de communication présente un bon débit pour une portée moyenne dans un rayon d'environ 10 mètres : 54 Mbit/s théoriques, 27 Mbit/s réels utile pour la vidéo (reconnaissance faciale, ...) car la carte embarquée risque de ne pas être assez puissante pour ce type de calcul

Bluetooth faible débit : 3 Mbit/s

Types de capteurs

Vision

kinect http://www.xboxygen.com/News/Divers/La-fiche-technique-de-Kinect

PS eye

Mouvement

accéléromètre (40€)/gyroscope (15€)/


audio

microphones directionnels (pour détection de personnes ?)

FabLabs français réalisant un Robot Humanoïd

Inmoov (via http://www.inmoov.fr/builders-near-you/)

Avec Bioloid
Autre


Ressources logicielles



Etude et réalisation du robot InMoov

Tête du robot

La tête du robot est la partie contenant les capteurs intéressants et qui permettent au robot de pouvoir intéragir avec son milieu extérieur. Les points d'intérêts de cette partie du corps est la présence d'yeux qui vont pouvoir servir à détecter des personnes, des mouvements, etc... Et aussi à gérer la profondeur et l'emplacement des objets proches.

Motricité

La motricité est très semblable à la motricité de la tête humaine. Nous allons mettre des servos moteurs qui ont pour but d'imiter les articulations humaines : ainsi la tête pourra bouger de gauche à droite et de haut en bas grâce à 2 servos. Un situé dans la tête pour les mouvements gauche-droite et un autre situé au niveau du buste pour les mouvements haut-bas. Nous avons aussi un servo au niveau des yeux afin de pouvoir déplacer les yeux afin de pouvoir effectuer un suivi du regard.


Vision

Pour simuler la vision nous utilisons deux caméras placés à un entraxe de 7cm l'une de l'autre. Nous obtiendrons deux images, une de l'oeil gauche et une de l'oeil droit qui vont permettre, une fois appariés de determiner une profondeur à l'aide de mesures optiques. Nous allons devoir nous servir d'un algorithme pour apparier les deux images afin de faire correspondre les pixels.


Calibration

Chaque caméra possède des propriétés intrinsèques. Elles varient en fonction de la qualité des composants et donc même en provenant du même lot nous avons à faire à deux capteurs différents. Chaque caméra possède : une distance focale, une distortion et un centre optique qui lui est propre. La focale est la caractéristique de la lentille placée devant la caméra. Elle influe sur la place des plans images et donc entre directement en jeu lorsqu'il s'agit de mesurer des distances. Entre deux lots de lentilles différentes nous pouvons nous attendre à avoir des focales différentes. La distortion est le fait d'obtenir une image tordue alors qu'elle devrait être rectiligne. Avec un traitement adéquat nous pourrons redresser les images qui ne le sont pas afin de pouvoir comparer efficacement les images gauches et droites.


Calcul de profondeur

Une fois que nous aurons apparié les deux photos nous pourrons mesurer la distance entre les deux pixels et donc déterminer la distance entre ces deux points, qu'on appellera disparité. On établit une carte des disparités et cette carte permettra d'obtenir différents niveaux de profondeur et ainsi on aura une carte 3D de la scène.

Avec les propriétés intrinsèques des caméras on obtiendra une estimation de la distance de l'objet.

Scenarii d'utilisation

En plus de tous ces scénarios les différents robot proposé sont avant tous des plateformes de travaille évolutives qui demande de nombreuse compétences.

Liens

lien pour impression 3D :


les fichier à imprimer sur le lien suivant main sont : wristsmallV3.stl et WristlargeV4.stl

les fichier à imprimer sur le lien suivant poignetsont : rotawrist2.slt WristGearsV4.stl rotawrist1V3.stl rotawrist3V2.stl et cableholderwristV4.stl