Aller au contenu


Photo
- - - - -

Calcul d'angle, 2 dimensions et bras robotique.


51 réponses à ce sujet

#1 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 290 messages
  • Gender:Male

Posté 15 janvier 2017 - 10:58

J'ouvre ce sujet pour parler des méthodes de calcule d'angle pour qu'un bras puisse atteindre un point en 2 dimensions.

 

Je voudrai faire un petit bras à 2 segments et 2 servomoteurs pour pouvoir utiliser la caméra usb et les calculs des coordonnées indiquées dans ce poste http://www.robot-maker.com/forum/topic/10876-camera-usb-n1-testee-par-ashira/

 

 

2d.JPG

 

 

Ce que je voudrai faire:

 

Le bras est composé d'un segment A et B de longueur connue et on doit atteindre le point R dont les coordonnées a et b sont connues aussi  (mesurées par la caméra).

Le cercle C1 représente l'ensemble des points parcourus par la liaison des segments A et B, et le cercle C2 a pour centre R et son rayon est la longueur du segment B.

L'intersection de ces 2 cercles, P1 et P2, sont les points où la liaison entre A et B doit se trouver pour que le bout du bras B ait une chance d'atteindre R. Si il n'y a pas d'intersection, c'est que l'objet est trop loin pour être atteint.

 

Une fois P1 et P2 calculés, on choisit un des deux point et on calcule les angles avec les formules de trigonométrie. 

 

Pour la première partie: calcul de P1et P2.

 

-On résout  l'équation C1=C2, ce qui donne l'équation d'une droite y=ax+b, passant par P1 et P2.

-On résout "la droite"="un des cercle" et on trouve enfin les point P1 et P2. (ça mène à un polynôme de second degrés, que l'on résout avec delta etc).

 

J'ai fait une feuille excel pour faire des exemples de calcul, c'est presque bon j'ai du faire une erreur dans un développement^^

 

 

:rolleyes:



#2 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 905 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 16 janvier 2017 - 01:10

Pour ce genre de représentation j'utilise toujours géogébra. =) 

Pour info ce genre de mécanisme est exactement ce qu'a mis en place léon pour son robot-scribe ;)

Rien qu'en deux 2D et comme le montre l'exemple que tu as mis dans ton poste : si tu t'amuse à faire les équations de cinématique inverse tu vas te rendre compte que pour certaines positions à atteindre il existe plusieurs façon d'atteindre ce point =) . 

Quoi qu'il en soit selon moi les différentes étapes pour mener à bien un projet de ce genre sont comme tu le fais  : 
1) Définir une discrimination pour savoir si un point est atteignable ou pas. 

2) Si le point est atteignable mettre en place la méthode de calcul qui permet de définir comment atteindre le point. 
3) Piloter de sorte à atteindre le point ;)

 

Bon courage pour la suite ! =)


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 !

 

Les réalisations de Mike118  

 

 

 


#3 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 290 messages
  • Gender:Male

Posté 16 janvier 2017 - 01:51

 
Rien qu'en deux 2D et comme le montre l'exemple que tu as mis dans ton poste : si tu t'amuse à faire les équations de cinématique inverse tu vas te rendre compte que pour certaines positions à atteindre il existe plusieurs façon d'atteindre ce point =) . 
 

On voit ça aussi grâce aux cercles, et dans la résolution de l'équation du 2nd degrés j'ai remarqué que le nombre de possibilité est égale au nombre de solution de cette équation.
delta>0 => 2 solutions
delta=0 => 1 solution
delta<0 aucune solution, l'objet est trop loin.
 
 
 
geo12d.JPG
 
 
Donc pour un exemple avec les dimensions du 1er post, il faut calculer les points G et H.
 
Avec ma feuille Excel je trouve ça: 20170116_0143411.jpg
les valeur sont en mm.
C'est presque ça! Si j'ai fait une erreur dans le développement je suis étonné qu'il n'y ait pas plus de différence entre le résultat de géogebra et la feuille Excel.

C'est dommage qu'il n'y ait pas plus de description sur la mise en place de la cinématique du robot scribe! (Si Léon passe par là :) )

#4 Telson

Telson

    Membre chevronné

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

Posté 16 janvier 2017 - 06:04

Al-Kashi est ton ami, Pythagore aussi ....

 

Fichier joint  math_bras_5_servos.pdf   1,11 Mo   1151 téléchargement(s)

 

Excel est le VBA c'est aussi ce que j'utilise pour visualiser les résultats de calculs....

 

Par contre geogebra j'ai déjà regardé à plusieurs reprises :: c'est clair comme du jus de boudin c'te truc pour moi !!!



#5 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 604 messages
  • Gender:Male
  • Interests:Glenn

Posté 16 janvier 2017 - 01:21

Question de noob, tu ne met pas de contrainte sur tes servos, voir prendre en compte l'angle maxi, ou ils se déplacent à 360° en rotation continue ??

 

Ou bien tu vas avoir un mini et maxi sur chaque servo ?

 

Ex :

Servo 1 : mini -75° , maxi 90°

Servo 2 : mini -60° , maxi 45°

 

Le résultat ne sera pas le même lorsque tu pars du point 0 (servo 1), non, et que b atteigne R.


signature_01.png -->

 

Mon Tipeee
 


#6 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 905 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 16 janvier 2017 - 03:01

Oliver a raison ;)

tes calculs sont valable tant qu'on part du principe que ton servo peut faire 360° . Hors pas sûr que ce soit le cas ;) 


 


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 !

 

Les réalisations de Mike118  

 

 

 


#7 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 290 messages
  • Gender:Male

Posté 16 janvier 2017 - 05:51

En effet le servo 2 va poser problème dans certains cas a cause de sa course.

Le calcul proposé permet de calculer les angles dans n'importe quelle condition. Pour mettre des conditions, ca ne se fait pas dans ce calcul!

 

Par exemple, pour le balayage maximal du servo 1 il suffit d'exclure les positions du coude avec la coordonnée y négative, suite au calcul des points P1 et P2.

Idem pour le servo 2 où il faut éliminer les points P1 et/ou P2 qui amène a des angles hors course.

 

Voila en gros la portées du bras avec des servos a 180°, et des segments à 8.2cm et 8.7cm.

 

portee_.JPG

 

Ca restreint pas mal la zone!



#8 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 905 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 16 janvier 2017 - 05:58

Dans ce cas il est plus intéressant de changer le champs des possible du servo 2 et de centrer sa plage de sorte à ce que le centre de la plage soit à 90° par rapport au servo 1... 


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 !

 

Les réalisations de Mike118  

 

 

 


#9 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 290 messages
  • Gender:Male

Posté 16 janvier 2017 - 06:33

Bonne idée :)

 

Avec cette configuration on obtient cette portée

 

portee2.JPG

(hors épaisseur du bras)

 

Avec cette configuration, la position du coude ne peut plus prendre 2 positions possibles mais une seule. Elle est sélectionnable facilement lorsque l'on résout l'équation de second degrés (avec + ou - racine de delta, on choisit de toujours utiliser le "+" ou le "-" suivant la configuration du servo 2).



#10 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 905 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 16 janvier 2017 - 06:59

Après si le résultat ne te plaît pas tu peux aussi changer la configuration mécanique =) 

 

exemple : 

scrib robot.jpg


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 !

 

Les réalisations de Mike118  

 

 

 


#11 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 290 messages
  • Gender:Male

Posté 16 janvier 2017 - 07:18

Pas mal, ça fait penser au robot delta mais en 2d^^

 

En fait la portée en forme de goute d'eau me plait bien, ca ressemble à celle d'un vrai bras, mais en 2d.

 

robot2d.jpg

Avec en rouge la tête d'un robot.

 

(Si ça fonctionne en 2d je suis convaincu que ca fonctionne en 3d, avec des sphères au lieux des cercles etc^^)



#12 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 604 messages
  • Gender:Male
  • Interests:Glenn

Posté 17 janvier 2017 - 04:19

En effet le servo 2 va poser problème dans certains cas a cause de sa course.

Le calcul proposé permet de calculer les angles dans n'importe quelle condition. Pour mettre des conditions, ca ne se fait pas dans ce calcul!

 

Ah, pourquoi ?

Pardon je dis ça car j'imagine le truc en tête, donc, il faut tout de même prendre en compte mini et maxi (si il y en a), car lors de ton mouvement, si le premier angle arrive en butter (angle maxi), le second aura bien un angle différent pour atteindre sont but, non ??

Donc lors du calcul il faut bien prendre en compte données ??


signature_01.png -->

 

Mon Tipeee
 


#13 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 290 messages
  • Gender:Male

Posté 17 janvier 2017 - 08:34

si le premier angle arrive en butter (angle maxi), le second aura bien un angle différent pour atteindre sont but, non ??

Si il arrive en buté sans être arrivé à l'angle calculé, c'est impossible que le bout du bras atteigne sa cible.

Le calcul permet de trouver les angles des articulations dans le cas où les articulations peuvent parcourir 360°.
C'est ensuite dans le programme que les conditions seront posées.

Après avoir mis des parenthèses partout sur Excel, ça fonctionne!
Juste un dernier point avant de programmer: j'aimerai calculer un angle sans supprimer son signe. Ou sa valeur sur 360°.. Ça donnerait une formule général facile à utiliser.
20170117_202352.jpg
Car lorsque le coude doit aller au point D, je calcule l'angle alpha.
Peut être avec la fonction tangente, je verrai bien. En attendant si vous avez des idées ;)
Au pire j'ai juste à dire dans le programme que l'angle alpha est toujours du signe de yb^^

#14 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 905 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 17 janvier 2017 - 08:50

tu as la réponse à ta question =) il faut signer tes distances =) 


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 !

 

Les réalisations de Mike118  

 

 

 


#15 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 290 messages
  • Gender:Male

Posté 20 janvier 2017 - 01:27

C'est ce que j'ai fait. :)

Bon la qualité de la maquette n'est pas top mais bon ça ira comme ça pour ce soir ^^

Donc voilà un exemple d'utilisation d'une caméra usb: en mesurant la position d'un objet on peut déplacer un bras robotique pour l'atteindre!



Qu'en pensez vous?

Une maquette améliorée, un petit convoyeur, et vous avez une petite chaîne industrielle chez vous :D

#16 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 905 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 20 janvier 2017 - 02:41

Franchement c'est vraiment pas mal ! Plutôt réactif et tout =) Tu as fait ça rapidement je trouve ! =) 

Les servos c'est des MG995 ? :)

 

et tu as utilisé cette caméra ? :) 

Si je résume bien tu as fais le tracking via robot realm ? Ensuite tu convertis la position en pixel en position 2D (toujours sur robot realm je suppose ) , à partir de là tu convertis la position 2D en 2 angles de servo ( toujours sur ton PC je suppose, tu as implémenté les formules vue au dessus, toujours dans roborealm ?   ) . Ensuite tu envois les commande via moniteur série à l'arduino . ( Il y a un module tout fait dans robot realm pour ça ? Ou tu as du faire ça à côté ? ) 

J'ai jamais utilisé robot realm donc je ne fais que supposer =) 

( Quand j'ai fait un truc similaire sur visual studio j'avais pas mal galéré x) j'avais du faire chacun des modules tracking vision ( pour ce module des exemples étaient fournis il m'avait suffit de combiner les fonctions/filtres dans les exemple pour avoir ce qui me fallait, je suppose que c'est pareil avec robot realm ) ;  module de conversion pixel to position  (des maths) , résolution d'équation (encore des maths )  et module de communication série ( essentiellement de la galère avec google jusqu'à ce que ça marche ^^ ) ).  


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 !

 

Les réalisations de Mike118  

 

 

 


#17 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 290 messages
  • Gender:Male

Posté 20 janvier 2017 - 02:59

Oui j'ai bien utilisé 2 MG995 et cette caméra. :)

 

En fait avec roborealm j'applique un filtre rgb pour sélectionner juste le rouge, je lui demande de prendre en compte le plus gros objet rouge qu'il voit et je mesure le point au centre de l'objet.  J'envoie ensuite les coordonnées de ce point en pixels à l'arduino via le moniteur serie.

Tous les autres calculs se passent dans l'arduino: je convertie les pixels en mm avec la petite formule que j'ai eu en cherchant à utiliser 2 caméras pour la 3d ( pour le quadrupède je sais pas si tu te souviens^^) puis j'envoie ces 2 coordonnées dans l'ensemble de formule que j'ai eu en utilisant la méthode avec les cercles de ce poste, et en résultat ça sort les 2 angles de chaque servo!



#18 Telson

Telson

    Membre chevronné

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

Posté 20 janvier 2017 - 07:23

C'est vraiment génial.....Le bras suit super bien le marqueur...Chapeau bas !!!



#19 Path

Path

    Made By Humans

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

Posté 20 janvier 2017 - 08:10

Trop fort !! Je commence à comprendre.
Merci du partage.

Podcast Made By Humans

Je cherche des volontaires de tous niveaux pour nos petites conversations entre hobbyistes.

Accès aux salles secrètes

 


#20 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 604 messages
  • Gender:Male
  • Interests:Glenn

Posté 20 janvier 2017 - 10:43

Nickel !!!

Le temps de latence d'une position à une autre, c'est du au calcul j'imagine ??


signature_01.png -->

 

Mon Tipeee
 




Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users