Aller au contenu


Arnaldo

Inscrit(e) (le) 21 août 2018
Déconnecté Dernière activité janv. 15 2019 09:20
-----

#101565 Horus Mk. I

Posté par Arnaldo - 15 janvier 2019 - 09:17

Bonjour à tous,

 

J'ai bien avancé sur le torse et la tête. Toutes les pièces sont fabriquées et j'ai obtenus les premiers mouvements grâce à une RPi sous Python.

 

Bientôt des photos et videos... Je m'attaque maintenant aux bras !

 

 

Horus_Torso_Head_1_20180115.jpg




#98914 Horus Mk. I

Posté par Arnaldo - 09 septembre 2018 - 07:11

Bonjour à tous, 

Un nouveau post sur mon blog (http://www.avbotics.com) dédié au contrôle des articulations par des PID. J'explique également comment utiliser les capteurs d'efforts  pour émuler une articulation sur ressort/amortissseur. Cela peut intéresser les roboticiens qui s'intéressent aux interfaces haptiques (sens du toucher, retour d'effort).

 

Voici une vidéo qui montre comment cela fonctionne sur la cheville de Horus Mk. I. J'avais utilisé une Arduino Due, qu'on voit sur la vidéo, et ça fonctionnait très bien.

 




#98743 Horus Mk. I

Posté par Arnaldo - 29 août 2018 - 08:25

J'ai survolé ton blog qui est très bien fait avec beaucoup de détails sur la conception de ton bipède.
Mais pourrais-tu nous donner quelques références et liens pour les moteurs et leur réducteur, ainsi que les potentiomètres.

Petite question. Pourquoi des PIC et non pas des Arduino ?

 

Quelques infos sur les références utilisées :

-Les motoréducteurs proviennent de MFA COMODRILL https://www.mfacomodrills.com/

      . avec des réducteurs épicycloïdaux 1:5 pour les actionneurs linéaires et à vis sans fin (série 940 D)

      . avec réducteurs épicycloïdaux 1:100 pour les actionneurs avec couples coniques (série 940D)

 

Les moteurs étaient initialement de RE 385 (diamètre 27.5 mm) en 12V

 

Lorsque j'ai voulu installer des encodeurs, il me fallait des moteurs avec l'axe dépassant à l'arrière, que je n'ai trouvé qu'en 24V (En chine...)

J'ai donc remplacé les moteurs et renforcé ceux des axes x2 (voir https://avbotics.com...out-structure/)avec des moteurs de taille RE 540 (diamètre 37 mm)

 

Concernant les capteurs de force, j'ai utilisé des capteurs de balance/pèse-personne (voir https://avbotics.com/force-sensors/)que j'ai trouvés chez RobotShop (ref. RB-Pho-119) Ces capteurs fonctionnent avec des jauges de contraintes et nécessitent une amplification du signal (fait par une puce spécialisée INA125 U) avant d'être convertis sur une entrée analogique du dsPIC.

 

les potentiomètres sont des Vishay-Sfernice P11 10kOhms, ils ont des pistes en céramique et sont de bonne qualité même si je voudrais les remplacer par des capteurs de position à effet hall sans contact (12 ou 14 bits) qui me semblent très prometteurs (type AMS ou Bourns). Les potentiomètres sont bruités et ne sont pas très linéaires. Ils nécessitent d'être étalonnés (à minima sur la pente tension V = f(position) car elle varie beaucoup d'un pot. à l'autre). 




#98737 Horus Mk. I

Posté par Arnaldo - 29 août 2018 - 08:23

C'est super sympa comme projet. Très belle réalisation.

 

Aucun problème avec le compilo dsPIC ? J'ai eu de très mauvaises expériences avec des PIC16F et 18F lorsque j'étais étudiant donc je m'en suis toujours méfié, peut être à tort..

Non pas de problèmes particuliers hormis au tout début lorsqu'il faut installer et se familiariser avec MPLAB.

J'utilise une Pickit3 pour la programmation et la dernière version du compilateur adapté aux dsPIC33,  le XC16.

 

Pour ceux qui sont familiarisés avec MATLAB/SIMULINK, il existe une toolbox dsPIC gratuite pour SIMULINK. Elle est utilisable sans limitation à quelques références de dsPIC (dont celui que j'utilise) et il est également facile de compiler les modèles Simulink et de les flasher directement.




#98728 Horus Mk. I

Posté par Arnaldo - 28 août 2018 - 05:28

C'est très intéressant ce dsPIC. Je connaissais pas. Je me sers souvent des petits arduino pour piloter les moteurs justement.

On peut changer la fréquence des canaux pwm sur les arduino 32bits ceux à base de ARM Cortex. Et ce sans toucher à la clock générale :)  On peut aussi augmenter la résolution (jusqu'à 32 bit) sur la Due. Mais leur format est bien plus gros que ce que je vois sur les PIC. Donc plus difficile à intégrer.

Quant à la lecture directe des encodeurs A/B, tu parles de lire les interruptions venant d'encodeurs en quadrature ? Il y a la gestion d'interruptions sur arduino. De 2 à qq'unes. Et tous les pins peuvent servir d'interruption sur la Due.

Oui les encodeurs A/B sont biens des encodeurs à quadrature. J'avais utilisé une Arduino Due mais à l'époque je n'utilisais pas encore les encodeurs. J'imagine que sur une Arduino on utilise deux entrées numériques avec interruptions pour détecter les changements d'état / position. Les dsPIC disposent directement d'un registre compteur 16bits qui enregistre la position, avec en plus des registres de paramétrage (remise à zéro, échelle, filtrage, inversions, interruption en cas d'erreur, etc...). Il suffit d'aller lire le registre de position quand on en a besoin.

La PWM est basée sur une fréquence d'horloge de 40 MHz, soit une période de 25ns. On peut "répartir" la fréquence d'horloge en fréquence du signal PWM et en résolution du signal :

Par ex. 20 kHz x codage largeur d'impulsion de 0 (0%) à 2000 (100%) = 40 MHz, ou encore codage largeur d'impulsion sur 12 bits (4096) = fréquence de PWM de 9,76 kHz

 

je ne sais pas combien coûte désormais une Arduino Due mais ma carte dsPIC me revient complète à environ 15-20€, hors pont en H bien sûr. Il m'en fallait une dizaine. Bon, il faut souder les composants...




#98692 Horus Mk. I

Posté par Arnaldo - 27 août 2018 - 04:30

Magnifique !

Justement, Thermo_Nono a lancé un projet collaboratif sur la création d'un servo moteur I2C, http://www.robot-maker.com/forum/topic/12252-presentation-du-projet-servomoteur-a-rotation-continue-adressable-en-ic-et-encore/

Merci !

J'ai conçu une carte de contrôle qui fonctionne sous I2C. Sa description est sur mon blog (schéma dispo) : https://avbotics.com...control-boards/

Je vais publier prochainement un post sur le programme de contrôle.

Dans les grandes lignes, outre le contrôle PID, j'ai ajouté  des fonctionnalité permettant de modifier à n'importe quel moment les paramètres internes (gains, raideurs, etc...).

Avec les capteurs de forces, je peux donner de la "compliance" en émulant une sortie ressort/amortisseur. Je m'en sers par exemple en programmant une raideur très faible des articulations de la cheville lorsque le pied est levé et se pose sur le sol.  




#98668 Horus Mk. I

Posté par Arnaldo - 27 août 2018 - 12:23

Je l'ai fait tout seul. 

On peut vraiment dire que c'est un projet d'étude mais strictement personnel. J'avais envie de me mesurer à un sujet difficile et les robots bipèdes m'ont toujours passionnés.

 

En fait j'ai procédé en plusieurs étapes et ça fait 4 ans que je travaille dessus :

1- Construction d'un modèle de simulation dynamique pour voir si j'étais capable de comprendre la physique des robots bipèdes... Ca a s'est étalé sur un an.

2-Conception des actionneurs : premiers protos, essais avec Arduino et RPi pour obtenir un contrôle en position performant. J'ai ensuite ajouté la mesure d'efforts...

3-Conception et construction d'une jambe : vérifier que j'arrive à contrôler les articulations en même temps, que les actionneurs avaient les performances requises sous charge...

4-Fabrication de la 2ème jambe jusqu'aux premiers pas... Il m'a fallu 3 mois entre la fin de réalisation et les premiers pas... beaucoup de travail de programmation pour pouvoir simplifier la mise au point. 




#98663 Horus Mk. I

Posté par Arnaldo - 27 août 2018 - 10:08

Je vous présente mon robot bipède, Horus Mk. I.

 

Horus_Mk1_Front_20180726.jpg

 

Il marche depuis quelques mois et je travaille à l'amélioration de son équilibre et de sa vitesse. Il peut déjà avancer en avant, en arrière et tourner.

 

Video : 

 

Il est doté de 12 articulations de ma conception pilotées par des dsPIC. J'utilise des capteurs de position (encodeurs et potentiomètres) et des capteurs de force (qui contribuent notamment au contrôle de l'équilibre).

 

La supervision globale est assurée par un mini PC. 

 

Je viens d'ouvrir un Blog que j'enrichis progressivement pour décrire la conception du robot : http://www.avbotics.com

 

Il est en anglais mais je me ferais une joie de répondre à vos questions en Français.