Aller au contenu


Photo

Glenn Robot Humanoide


  • Veuillez vous connecter pour répondre
994 réponses à ce sujet

#381 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 05 mars 2017 - 06:55

pour compléter j'avais aussi posté mes cours de l'estia sur le sujet si jamais vous l'aviez pas vu.  
Le mieux serait de prendre le temps de regrouper tous les liens sur un même sujet. Il me semble que cela a été commencé non ? 

Merci à path pour avoir reposter le lien au bon endroit ;) 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#382 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 05 mars 2017 - 08:54

Exact vu, faut que je me mette le nez dedans, j'ai plusieurs fichiers .pdf sur le sujet que certains membres avaient posté, et donc je m'y perd :/

 

Là, j'essaye de voir avec V-rep ce que ça peut donner (et se que je peux en faire surtout), vu que geogebra je n'arrive pas à grand chose. 

 

Mais bon on va bien voir.

 

Merci ^^


signature_01.png -->

 

Mon Tipeee
 


#383 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 20 mars 2017 - 07:53

Glop glop les maker's, j'aurais aimé votre avis sur les Quarternions, d'après ce que j'ai pu en lire ça peut être pas mal pour éviter l'effet au max du gimbal lock.
Je parle de ça pour l'utilisation d'un bras à 6 dof (comme nos bras j'ai envie de dire ^^).

 

Quelqu'un à déjà utilisé les quaternions et dans quel but ?

 

Bon là ce lien est basé sur le jeux vidéo mais le principe reste le même, non ?

 

https://jeux.develop...quaternions#Q47

 


signature_01.png -->

 

Mon Tipeee
 


#384 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 21 mars 2017 - 11:18

Je peux me tromper mais pour un bras je ne suis pas sûr qu'il soit nécessaire de mettre en place les quater....
 
Les cours de Jacques Gangloff devrait suffire............A valider...



#385 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 21 mars 2017 - 02:33

Certes pour un bras, mais il ne faut pas s'arrêter là, j'ai aussi la tête (3 dof) et un semblant de colonne (3 dof), et (peut être un jour) des jambes ^^, donc c'est la question que je me posé sur les quaternions dans ce type de montage (autant prévenir que guérir).

 

Bon allez, je retourne sur les cours en vidéo.

 

Merci Telson.


signature_01.png -->

 

Mon Tipeee
 


#386 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 22 mars 2017 - 04:19

bonne chance.....Et bon courage aussi......Il faut que je me penche aussi sur la question......



#387 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 22 mars 2017 - 10:33

Ouais le courage c'est clair lol, sinon hum en fait si je comprend bien les quaternions :

 

 https://fr.wikipedia...al_rotation.png

 

on fait pivoter nos trois axes en même temps autour d'un même axe (vecteur w) à part. (x, y, z, w)

 

Alors qu'en passant par les matrices (oui il y a aussi des matrices avec les quaternions), je dois effectuer les mouvements les uns après les autres, sauf, dans une matrice homogène réunissant, la rotation, la translation et (je n'y suis pas encore) la vitesse angulaire.

 

Svp pouvez vous m'en dire plus, suis je sur la bonne piste, des conseils .... ???

 

Merci.


signature_01.png -->

 

Mon Tipeee
 


#388 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 29 mars 2017 - 06:14

C'est frustrant, c'est frustrant, c'est frustrant !!!!!!!

 

Je sais bien que je me suis lancé sur un sujet pas évident du tout, mais ça me passionne, car croyez moi, il en faut pour se triturer autant le cerveau ^^

 

Pas mal de zone d'ombre encore pour moi, sur le pourquoi du comment, mais bon, j'ai l'impression d'avancer, (j'espère que ce n'est pas qu'une impression).

 

Je reste donc sur les matrices de rotations, et Euler oblige, mais les quaternions me chatouille pas mal ça revient souvent. (oui aussi Al Kashi :P )

 

Donc au final, pouvoir bouger un bras (6 ddl - rotoïdes), avec une (ou des) matrice(s) homogène(s) avec comme Point de position de départ le creux de la main à qui lorsque l'on donnera une position dans l'espace (x, y, z) activera tous sont ensemble de servomoteurs automatiquement pour atteindre la position désiré, je me pencherai plus tard sur la vitesse.

 

Un peu comme ce qu'a fait Ashira, mais avec 6 servos.

 

Désolé fallait que sa sorte :)

 

J'espère avoir été clair pour changer, (je crois que je me suis pété quelques neurones avec tous ça). ^^

 

Merci


signature_01.png -->

 

Mon Tipeee
 


#389 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 31 mars 2017 - 02:35

Mais pourquoi ce n'est pas en français :'( cela semble super intéressant.

 

http://www.robogrok.com/Flowchart.html


signature_01.png -->

 

Mon Tipeee
 


#390 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 03 avril 2017 - 08:02

Bon, j'ai réussi à faire un ptit truc, "Un grand pas pour Glenn, un ptit pas pour môa..." ^^

 

Je gère le servo qu'avec de la trigo, en lui donnant une position dans l'espace (rotation sur un axe), ça fonctionne super bien, me suis tout de même fais avoir avec le calcul des cosinus et sinus à bien placer selon le point de départ (le zéro) me suis servi du cercle de trigo pour ça, (ok peut être simple pour vous, mais suis content ^^), donc la suite, essayer ça avec deux servo (Al Kashi) et faire la même chose avec des matrices, pour bien entendu au final bouger tous ces servos selon un point dans l'espace donnée :)

 

Merci


signature_01.png -->

 

Mon Tipeee
 


#391 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 03 avril 2017 - 08:24

Mais tu t'en sors avec la trigo ?

#392 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 03 avril 2017 - 08:46

Oui, pour la trigo et faire bouger un servo c'est bon j'ai pigé, j'ai "réglé" le servo pour qu'il corresponde au cercle trigonométrique (Pythagore), ça fonctionne super bien.

Mais le plus dur je trouve était de bien "assimiler" tous ces cours, ce n'est pas évident lorsque vous n'avez jamais appris ces choses là :)

Le plus sympa dans l'histoire, c'est que je vois de la trigo de partout dans tous ce qui m'entoure lol, et j'imagine les calculs lol (je crois qu'à ce stade on devient cinglé non ? lol ) :)

 

En gros : 

 

1 - test trigo Pythagore avec cercle trigonométrique sur un servo : OK

2 - même test mais avec une matrice : -

3 - test trigo Al-Kashi avec deux servos : -

4 - même test mais avec des matrices : -

5 - test de trois servos sur les trois axes, allez suis un dingue, direct avec matrices et voir plus (matrices homogène).

6 - je fais tout cramer car j'aurai péter un câble lol

 

Je pense que déjà les étapes sont pas mal, non ?


signature_01.png -->

 

Mon Tipeee
 


#393 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 04 avril 2017 - 07:00

Path, tu le gère comment en trigo toi pour récupérer la valeur de l'angle, tu te base sur le cosinus ou sur le sinus en récupérant le degrés pour faire bouger le servo ?

 

Car en fait j'ai un pseudo soucis, en fait plusieurs, mais comme je sent que je ne vais pas être clair, je vais continuer à chercher....

 

...suis surtout avec mon servo qui soit disant afficher 300°, mais j'ai l'impression que c'est vers 340°, pas évident et j'aimerais caler le degrés désiré du servo, sur le 0° du cercle trigo.

Ouais pas clair désolé :'(


signature_01.png -->

 

Mon Tipeee
 


#394 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 04 avril 2017 - 07:39

J'ai vu la théorie pour la cinematique inverse. Je le sens bien pour la trigo. Un peu moins pour les matrices. Poses ton problème plus sereinement :) shéma explications ... rien qu'en faisant l'ecercice, on trouve soit même souvent. Sinon, il y a les bases pour trouver des réponses ici.

Pour ma part, pour Emile, la premiere version sera sans ces calculs. Ce sera un automate qui saura effectuer des mouvements. Je l'espère marcher. Sa seule intelligence au début sera de déclencher l'animation d'un bras ou l'autre pour garder l'équilibre gauche - droite. De déclencher les séquences de marche.

#395 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 02 mai 2017 - 10:10

Salut les maker's, bon j'ai réussi à faire une grosse calculette en python lol, je peux donc d'après un angle donnée récupérer ma position sur le plan, et en faisant le calcul inverse automatiquement (pour le test) je renvois l'angle au servo, et tous ça en mappant le servo comme il se doit sur le cercle trigonométrique, dans la foulée j'ai placé tout de même un ptit calcul de matrice (radians * segment = positions sur le plan) pour voir si cela semblait cohérent.

Et le tout dans des fonctions ^^

Suis plutôt content de moi, tout fonctionne nickel, quand on voit au final que ce n'est pas grand chose à faire, mais comme dirait Telson, me suis mis la rate au court-bouillon pour rien, faut juste combler les lacunes en math (beaucoup de lacunes) :)

 

J'essaye de placer le code aujourd'hui sur ce post, si cela intéresse du monde.

 

Merci


signature_01.png -->

 

Mon Tipeee
 


#396 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 02 mai 2017 - 04:04

N'hésites pas, surtout si c'est simple

#397 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 02 mai 2017 - 04:15

Coucou Path, simple je sais pas vu comme je me suis pris la tête dessus, mais pour quelqu'un avec de bonnes connaissances en math cela ne doit poser aucun problème, je place le code, n'hésite pas à poser des questions.

 

Par contre pour l'instant je ne suis que sur un seul servomoteur pour tester, je vais attaquer le reste après, mais déjà vos impressions m'intéresse.

from Adafruit_PWM_Servo_Driver import PWM
import time
import numpy as np

pwm = PWM(0x40,  debug = False)
pwm.setPWMFreq(50)
anglemin = 0
anglemax = 340
servomin = 94 #JX300 95#HD 515 
servomax = 537 #JX300 551#HD 100
servo = 9

initservo = 225 #position du servo qui sera égal au 0 trigonométrique

r = 33.2  #r est égal à la longueur du segment

def fmapservo (posinit, posfin) : #fonction convertisseur, position du servo avec le 0 trigonométrique
    result = posinit + posfin
    return result

def fdegres () :
    result = int((degres - anglemin) * (servomax - servomin) / (anglemax - anglemin) + servomin)
    return result

def fangletrigo (value) :  #fonction qui nous permet de calculer   
    theta, thetad = np.radians(value), value
    tsin, tcos = round(np.sin(theta), 2), round(np.cos(theta), 2)
    rsin, rcos = round(r * tsin, 2), round(r * tcos, 2)
    sinr, cosr = round(np.degrees(np.arcsin(rsin / r))), round(np.degrees(np.arccos(rcos / r)))
    maty = np.array([[tcos, 0, tsin], [0, 1, 0], [-tsin, 0, tcos]])
    mr = np.array([[r], [0], [r]])

    resmatymr = maty * mr

    print ("-----")
    print ("Test avec une matrice de rotation sur l'axe Y pour vérification \n")
    print ("{0} \n * \n{1} \n = \n{2}".format(maty, mr, resmatymr))
    print ("-----")
    print ("r : {0} * sin({1}) = {2} ".format(r, tsin, rsin))
    print ("r : {0} * cos({1}) = {2} ".format(r, tcos, rcos))
    print ("arcsin : {0} / r : {1} = {2} ".format(rsin, r,  sinr))
    print ("arccos : {0} / r : {1} = {2} ".format(rcos, r, cosr))

    if value >= 180 :
        result = 180 + sinr
        print ("-----")
        print ("Résultat de 180 + sinus en récupérant le signe")
        print (result)

    elif value >= 90 :
        result = cosr
        print ("-----")
        print ("Résultat du cosinus")
        print (result)

    elif value <= -180 :
        result = -180 + (np.sign(value)*sinr)
        print ("-----")
        print ("Résultat de -180 + sinus en récupérant le signe")
        print (result)
   
    elif value <= -90 :
        result = np.sign(value)*cosr
        print ("-----")
        print ("Résultat du cosinus en récupérant le signe")
        print (result)
      
    else :
        result = sinr
        print ("-----")
        print ("Résultat du sinus")
        print (sinr)
       
    return result

while True :
    angletrigo = fangletrigo((int(input("Valeur en degrés : "))))
    degres = round(fmapservo(initservo, angletrigo), 0)
    print ("-----")
    print ("angle trigo : {0} ; position du servo : {1}".format(angletrigo, degres))
    print ("-----")
    pwm.setPWM(servo, 0, fdegres())

ps : j'ai laissé tous les print si besoin.

dessous un test avec -180°

Valeur en degrés : -180
-----
Test avec une matrice de rotation sur l'axe Y pour vérification

[[-1.  0. -0.]
[ 0.  1.  0.]
[ 0.  0. -1.]]
*
[[ 33.2]
[  0. ]
[ 33.2]]
=
[[-33.2   0.   -0. ]
[  0.    0.    0. ]
[  0.    0.  -33.2]]
-----
r : 33.2 * sin(-0.0) = -0.0
r : 33.2 * cos(-1.0) = -33.2
arcsin : -0.0 / r : 33.2 = -0.0
arccos : -33.2 / r : 33.2 = 180.0
-----
Résultat de -180 + sinus en récupérant le signe
-180.0
-----
angle trigo : -180.0 ; position du servo : 45.0

 

 

cercle_trigo_map_01.png

On retrouve le map du servo sur le cercle trigo.

 

Merci ^^


Modifié par Oliver17, 02 mai 2017 - 05:32 .

signature_01.png -->

 

Mon Tipeee
 


#398 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 02 mai 2017 - 04:56

Ok merci c'est pas trop compliqué :)
T'as pas un petit schéma pour voir tes angles ? Comme ça c'est abstrait.

#399 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 02 mai 2017 - 05:00

C'est à dire, faire des ptits dessins et tout et tout ?

Je peux essayer sur paint de faire ça.


signature_01.png -->

 

Mon Tipeee
 


#400 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 02 mai 2017 - 05:49

Et zut, j'ai déjà trouvé une erreur qui me plait pas :( snif, j'étais tout content :'(

 

Si je donne un angle à -85 et bien le servo va se caler direct sur le -90, et ça le fait avec bien entendu le -175 va direct sur le -180.

Par contre si je donne -57 ou -120 c'est nickel le calcul se passe bien.

 

Et merde tiens ! :'(

 

Sinon le map est bon. (fmapservo).


signature_01.png -->

 

Mon Tipeee
 





1 utilisateur(s) li(sen)t ce sujet

0 members, 1 guests, 0 anonymous users