Projets:B.R.A.V.O
Description du projet
L'objectif du projet B.R.A.V.O (Bras Robotisé Auxiliaire de Vie Opensource) est de prototyper un bras robotisé open-source adapté pour une personne en fauteuil roulant. Les études de ce projet comportent de la mécanique, l'électronique, la programmation et la documentation. Le projet est porté par Nicolas POUSSET, bénévole à l'association My Human Kit.
Cahier des charges
Aspects techniques
- Faire un état d’art de cette technologie.
- Réaliser une étude statique/dynamique afin de caractériser le bras robot et de déterminer le choix des composants électroniques.
- Modéliser le système sur un logiciel 3D (Catia, 3DExperience et etc.).
- Prototyper et expérimenter le système.
Aspects collaboratifs
- Travail avec une personne en situation de handicap considérée comme le porteur de projet.
- Collaboration avec le fablab spécialisé en France dans le prototypage d’aides techniques au handicap, le Humanlab de My Human Kit.
- Diffusion en open-source des résultats de recherche.
Analyse de l'existant
Equipe
Le projet est réalisé en collaboration entre My Human Kit et le PMT de l'université de Rennes 1.
- Porteur de projet : Nicolas POUSSET
- Responsable du projet : Hugues AUBIN (@hugobiwan)
- Équipes techniques :
- Mécanique : Maxime LAMETRIE et Matthéo LEMARCHAND
- Électronique : Ménélik EPINAT et Gaëtan PARISOT
Matériel nécessaire
- Logiciels:
- 3DExperience
- Arduino Software
- Électroniques:
- Arduino UNO (facultatif car la carte Arbotix M embarque la totalité d'une arduino)
- ArbotiX-M
- 6 Servomoteurs Dynamixel AX-12+
- Câble FTDI
- Secteur d'alimentation 12V
- Un module de communication bluetooth (HC-06 par exemple) en vue du pilotage du prototype par Nicolas Pousset via un smartphone sous android (par exemple avec l'application Arduino Bluetooth controller).
- Machines:
- Imprimante 3D
- Découpeuse jet d'eau
- Plieuse tôle manuelle
Partie Mécanique
Dimensionnement mécanique
Modélisation 3D
Prototypage
Partie Électronique
Montages électroniques
- Principe de base (attention, il y a un petit peu de technique).
Il s'agit de relier une chaîne d'actuateurs dynamixels (ici AX12 pour les tests, mais le principe sera le même pour des modèles plus gros de la gamme dynamixels) montés dans un dispositif de bras robot à une carte de contrôle Arbotix M programmable avec l'IDE arduino.
Cette carte peut être programmée avec un ordinateur via câble ftdi, puis alimentée par une tension de 12V et un ampérage suffisant pour le nombre de moteurs.
Une fois la carte alimentée, chaque moteur dynamixel émet et reçoit à une vitesse de 1Mb/s un train d'informations paramétrable et permettant de connaître et de choisir, pour tous ou chaque moteur ciblé : vitesse, angle cible, couple, allumage de led témoin, rotation angulaire ou continue, voltage consommé, angles tolérés mécaniquement, etc...
Une librairie arduino ax12.h (voir bas de page), permet à la carte Arbotix M de lire et écrire dans la chaîne d'actuateurs (= servos intelligents) les instructions nécessaires. On peut câbler sur la carte Arbotix M tout capteur (bouton, joystick...) pour piloter le robot.
Le montage électronique est donc carte capteurs -> Arbotix M -> robot.
- Interface Homme Machine via téléphone mobile et bluetooth
Le montage pourra être complété par un module de communication bluetooth compatible avec arduino (par exemple HC-06) en branchant ce module sur les broches disponibles sur la carte arbotix M, en ajoutant deux résistances (50 et 100 ohms) pour faire un pont diviseur de tension entre la broche tx de l'arbotix M et la broche rx du module pour arriver à 3.3V. Aucune modification additionnelle n'est nécessaire pour la broche tx du module bluetooth qui se branche sur la rx de l'Arbotix M. A ce stade, si le prototype fonctionne, il sera possible de contrôler le robot via tout smartphone sous android jumelé avec le module bluetooth et envoyant des caractères à la carte Arbotix via le module bluetooth. Nicolas Pousset utilise couramment le joystick de son fauteuil électrique jumelé avec son téléphone pour naviguer sur internet ou utiliser des applications diverses. L'idée est qu'il puisse s'appuyer sur cette interface pour manipuler une télécommande virtuelle sous la forme d'une application pilotant la carte arbotix via bluetooth.
- Cavalier d'alimentation de la carte Arbotix M
L'alimentation de la carte Arbotix M, du robot, et du module bluetooth se fait directement par le positionnement d'un cavalier de tension sur la position Vin (courant d'entrée). Une fois le dispositif branché, les ordres et les informations sont transmis par la carte Arbotix au terminal de contrôle et vice-versa au protocole serial.
- Précautions particulières
La documentation de Trossen Robotics, revendeur de la carte Arbotix M est mal traduite en anglais. Il faut faire très attention à la tension d'alimentation de la carte Arbotix M : la régulation de tension ne concerne que l'alimentation des broches fournissant 5V en sortie (typiquement sur les triplets de broches D0 D1 D2 etc.). Il est écrit que l'on peut alimenter la carte jusqu'à 30 V, or la documentation de Nootrix spécifie que l'alimentation fournie au bornier bleu et visant les moturs synamixels est directement envoyée sur ceux-ci ! Il ne faut donc alimenter la carte qu'avec une tension comprise entre 11 et 12 V sous peine de griler les moteurs ! Autre précision, les moteurs sont puissants et donc peuvent demander jusqu'à un ampère. Il est prudent de se rapprocher autant que possible de l'alimentation propriétaire fournie par Robotis pour les moteurs synamixels (Alimentation SMPS) soit 12 V 5 A ! Un moteur, à lui seul, vaut plus cher que la carte Arbotix M alors attention !
Programmation
- Arduino
La carte Arbotix M se programme à l'aide d'une librairie et de l'Environnement de Développement Intégré Arduino, via un câble ftpdi 5V indispensable pour facilement brancher la carte sur un ordinateur via USB.
Voir les liens en bas de page pour télécharger librairie et documentation des fonctions.
- Protocole Dynamixel
Les moteurs dynamixels émettent et recoivent en permanence des valeurs contenues dans un tableau contenant des octets. Il est possible d'utiliser les fonctions de la librairie arduino, mais aussi d'écrire et de lire directement ces valeurs pour contrôler tout paramètre en live. Ceci est notamment possible va un terminal serie et un câble USB2Dynamixel ou via un contrôlleur propriétaire CM5, CM510, CM700 de chez Robotis en mode esclave (mode "Manage", liaison par défaut à 57600 en serial 8N1) avec un câble USB-> RS485 -> Jack. En tapant "HELP" un index des commandes apparait en mode console.
- C, C++, ROS, Matlab, Python...
Le protocole dynamixel est très bien documenté et le choix des langages, terminaux, programmes permettant de piloter ces moteurs est large ainsi que la communauté des utilisateurs, essentiellement regroupée en Europe sur les forums des sites Trossen Ronotics et Robosavvy.
Exemples
By @hugobiwan - 29/11/2018
Script de déplacement aléatoire du bras robot + pince ¨+ retour à position de sécurité [1]
Script de déplacement d'un bras robot par joystick + pince avec bouton [2]
Coût
Version de développement au 12/12/2018 :
- 6 dynamixels AX12+ (40 € pièce)
- 1 carte électronique ARBOTIX M (environ 40 €)
- Frame en aluminium ou en plexyglas découpée (à l'eau via le fablab de Rennes, le Labfab pour l'alu, à la découpe laser pour le plexy, au Humanlab). Environ 20 €
Soit environ 300 € de matériel de développement.
Fichiers ressources
- Rapports des étudiants en master 2 mécatronique à l'université de Rennes 1: (en cours de réalisation)
Bibliographie
- L'association My Human Kit : Site web
- Pôle mécanique et de technologie (PMT) - UFR SPM - Université de Rennes 1 : Site web
- Site officiel Arduino : Site web
- Boutique électronique - Trossen Robotics : Site web
- Tutoriels ArbotiX-M Robocontroller : Site web
- Tutoriel - Programmez vos premiers montages avec Arduino : Site web
- Introduction to Dynamixel Motor Control Using the ArbotiX M Robocontroller [3]
- Arbotix Manual and documentation [4]
- Arbotix library [5]
- Contrôle de vitesse des AX12 avec la librairie ax12h [6]
- Documentation de Nootrix [7]