Aller au contenu


Photo
- - - - -

Anticollision entre 2 éléments mobiles


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

#1 Winart13440

Winart13440

    Nouveau membre

  • Membres
  • 7 messages

Posté 10 mai 2016 - 09:41

Bonjour à tous,

 

Je travail actuellement sur un projet qui consiste à mettre en mouvement d'énormes éléments mobiles de forme triangulaire (Des péri-actes). change triangle est équilatérale et mesure 3m de coté et 8m de haut.

Chaque structure peut tourner sur elle même a 360° et translater parallèlement les une aux autres. Mon problème est que la combinaison translation rotation créer des zone de collision entres les éléments mobiles.Ci joint un petit schéma qui d'écrit l'installation vue de dessus.

 

Je recherche une solution pour déterminer le moment ou 2 péri-actes vont rentrer en collision afin de lancer les commande d'arrêt suffisamment tôt pour éviter le contact.

Merci d'avance à ce qui prendrons la peine de me répondre car j'avoue avoir passé déjà 4 jours à faire des essais grandeur nature et pour le moment rien n'est concluent.

Au secours......

 

Merci d'avance

 

Franck

Fichier(s) joint(s)



#2 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 10 mai 2016 - 09:58

Salut Winart13440,

Un petit passage par la case présentation ? :)

Peux-tu nous poster une photo de la scène avec les périactes ? Malgré l'article wikipédia, je ne suis pas sûr de compendre comment ça fonctionne.
Si je comprends bien ton schéma, la scène est en bas, et chaque côté du carré représente un quart du décor en fond ? À quoi correspondent les triangles du haut ?

Enfin, pour ton problème : est-ce que tu es obligé d'actionner tous les périactes en même temps ? S'il s'agit de changer de décor entre deux actes, j'imagine que tu as un peu de temps (et un noir potentiellement). En plaçant celui de droite (en bas) avec le bord vertical, tu peux faire de même avec celui à sa gauche, et ainsi de suite pour faire tourner celui à l'extrême gauche sur la face requise. Tu règles ensuite l'avant dernier à gauche, etc.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#3 Winart13440

Winart13440

    Nouveau membre

  • Membres
  • 7 messages

Posté 10 mai 2016 - 10:09

Bonsoir R1D1,

 

Merci de ta réponse ;)

en fait il n'y a qu'un seul triangle par ligne verticale ceux qui sont représenter sur le schéma matérialise les positions extrêmes. En effet ta solution fonctionne mais ce n'est pas si simple....En fait c'est une machinerie totalement automatisé qui est conduite par un seul opérateur et qui doit accomplir un grand nombre de manœuvre. La mise en œuvre d’anti collision est obligatoire car chaque élément pèse près de 3 tonnes et peut se déplacer à 0.5m/s en translation et effectué un tour complet en 15s. Je te laisse imaginer le résultat si il y à erreur de manipulations. De plus chaque éléments est habillé d'une face décor classique et 2 faces écran LED ce qui offre peut de tolérance en cas de choc.



#4 ashira

ashira

    Pilier du forum

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

Posté 10 mai 2016 - 11:07

Salut! Tu as sûrement un retour d'angle sur chaque triangle? Si oui, comme tu le montres avec tes cercles il y a une collision dans la zone où les cercles se croisent. Si tu dis dans ton programme que lorsque qu'un des sommets de 2 triangles cote à cote est situé dans la zone d'intersection des cercles, il y aura collision?

Edit: Répondu trop vite, c'est un peu plus compliqué que ça, faut faire un peu de géométrie :)

#5 Winart13440

Winart13440

    Nouveau membre

  • Membres
  • 7 messages

Posté 10 mai 2016 - 11:19

Salut  Ashira,

 

Effectivement j'ai un retour d'angle et un retour de translation pour chaque triangle.

Effectivement la zone de collision potentiel est matérialisé par le chevauchement des 2 cercles mais il n'y a collision que si 2 pointes se croisent au mauvais moment dans cette zone. L'idée serais de trouver une équation mathématique qui me dit que 2 pointes se rapprochent dangereusement et d'interprété la vitesse globale (rotation + translation) afin de déclenché l'arrêt avant le choc .Mais mes compétences en math sont pas suffisantes.Tu à une idée?



#6 ashira

ashira

    Pilier du forum

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

Posté 11 mai 2016 - 12:54

Peut être en utilisant l'équation du cercle dans un plan.. Comme ça tu as les coordonnées x et y des sommets, et quand un point se rapproche trop d'un autre l'un des triangles ralentit ou s'arrête? En plus ca marcherait avec la translation et la rotation^^

#7 Winart13440

Winart13440

    Nouveau membre

  • Membres
  • 7 messages

Posté 11 mai 2016 - 06:32

j'ai effectivement déjà creusé dans cette direction j'arrive a trouver les distances d'arrêt lorsque l'on fait de la rotation seule ou de la translation seule mais je n'arrive pas à trouver la bonne distance pour chaque mouvement lorsque l'on tourne et translate simultanément



#8 ashira

ashira

    Pilier du forum

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

Posté 11 mai 2016 - 08:42

Mince je vois pas pourquoi.. Tu as pris un point fixe comme origine? Tu as utilisé quoi comme formule pour la rotation et translation d'un point?

#9 Telson

Telson

    Membre chevronné

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

Posté 11 mai 2016 - 09:19

Existe t'il un espace entre les extrémités des péri-actes

 

Un changement de décor doit s'effectuer en un maximum de temps de combien?

 

Quelle est le nombre max de facette à changer en même temps?

 

il est possible de les faire tourner tous en même temps à condition de synchroniser leurs rotations avec un décalage dans la rotation des uns par rapports aux autres de +/- 15/30° en fonction marge de sécu (tps pour freiner par ex.)

 

il est possible aussi de les faire tourner dans un sens de rotation opposé afin de diminuer l'angle de dégagement de +/- 15/30°.

 

Enfin les conditions pour éviter les collisions sont ex. Péri-acte de gauche (A) ne peut pas tourner si rotation de B < +/-15/30°

 

Quels sont les retours d'informations de position dont tu disposes (capteurs ou autres systèmes d'information ..).

 

Translations puis ensuite les rotations....Ou rotation angle de dégagement +/-15/30°, rotation à vitesse synchro des 2 péri-actes et translation.

 

Il est aussi possible de synchroniser la vitesse de rotation d'un péri avec la vitesse de translation des péri à ses côtés.

 

Mais calculer la variation en X et Y d'une extrémité d'un péri permet de déterminer l'emplacement exact ou cette dernière ne doit pas se trouver !!! Calculs avec variation d'angle et variation position du centre ....

 

C'est ma vision de la problématique. A conforter avec l'avis des autres forcément !!



#10 Winart13440

Winart13440

    Nouveau membre

  • Membres
  • 7 messages

Posté 11 mai 2016 - 10:24

Ashira,

Oui en fait je modélise en 2D l'espace totale de jeux et je vient y replacer les points correspondant aux angles de chaque triangle.Le problème est que quand je combine rotation et translation ma vitesse n'est plus linéaire (soit que sur X ou que sur Y) mais un vecteur avec une composante sur X et une composante sur Y et je ne sais pas comment m'y prendre pour décomposer c'est 2 composante et surtout pour obtenir la distance d'arrêt avant collision.

 

Pour les mouvements qui n'ont qu'une seule composante j'utilise la formule suivante pour calculer la distance d'arrêt: Vitesse²/(2*temps de ralentissement) ensuite il suffit de l'ajouter  ou de le soustraire à la position courante en fonction du sens de déplacement pour déterminer la position à laquelle il faut lancer la commande d'arrêt.



#11 Winart13440

Winart13440

    Nouveau membre

  • Membres
  • 7 messages

Posté 11 mai 2016 - 10:24

Telson,

 

Pour la problématique du temps on peut le voir sous 2 facettes:

 

En temps que constructeur j'ai limité la translation à 0.3m/s pour une course totale de 6.15m

et pour la rotation 360° en 25 secondes

 

Maintenant la problématique liée à la mise en scène fait que potentiellement tout les mouvements peuvent se faire en même temps et à vitesse maximum mais ça je ne le maitrise pas . Et les problème apparaitrons pendant la création des mouvements un peu plus tard....Mais attendant je doit pouvoir éviter les chocs entre les éléments car l'apprentissage des mouvement se fait en manuel et depuis un angle assez inconfortable donc très propice aux collisions.



#12 ashira

ashira

    Pilier du forum

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

Posté 11 mai 2016 - 01:48

Pour la vitesse avec translations et rotations: Si tu décomposes ton vecteur vitesse sur x et y pour la translation, et de meme pour la rotation. Puis qu'en suite tu additionnes les x ensemble et les y ensemble, ca devrait donner les composés x et y du vecteur final (?)

Sinon pour ta formule, quand je fais l'analyse dimensionnelle je trouve une (distance au carré)/(temps au cube) et non juste une distance :/ mais si quelqu'un pouvait confirmer

#13 ashira

ashira

    Pilier du forum

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

Posté 13 mai 2016 - 08:30

Des nouvelles? Tu as trouvé finalement?

#14 Mike118

Mike118

    Staff Robot Maker

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

Posté 16 mai 2016 - 05:52

Sans être allé jusqu'au bout de mon raisonnement voilà comment j'essayerai de résoudre la chose ... 

1) je définis un temps maximal d'arrêt à la fois angulaire et linéaire . TStopMax
2) je met en place une routine qui me permet de calculer quelle serait la position et l'angle de chacun des triangle à t + TStopMax à partir des données de vitesses et de positions angulaire et linéaire à l'instant t. 

3) je définis mes équations de cercles circonscrit à chacun des triangles . 
4) je met en place une routine de résolution d'équation d'intersection de cercle,

5) je lance cette routine pour les cercle 1 et 2 puis 2 et 3 puis 3 et 4 etc ... 
6) si la routine précédente me trouve une intersection entre deux cercle que nous noterons A et B, pour chaque intersection trouvé je défini la section angulaire que cela représente dans le cercle A et je regarde si un des sommet du triangle inscrit dans A se trouve dans la section angulaire .  Si non c'est qu'il n'y a pas de problème pour les triangle inscrit dans A et B  si oui je fait de même pour B. Si un sommet du triangle inscrit dans B n'est pas dans la section angulaire pas de problèmes pour A et B. Si non, j'estime qu'on est trop  proche et je lance une procédure d'arrêt. 

 

Il est possible qu'avec cette méthode on décide de lancer des des procédure d'arrêts non utile, mais je suppose qu'il vaut mieux lancer une procédure d'arrêt inutile que de ne pas en lancer une utile. Et si jamais la méthode donne trop de faux positif, il est possible d'affiner la détermination de trop proche ou pas au lieu de directement lancer une procédure d'arrêt et donc d'ajouter des étapes après l'étape 6 ...


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  

 

 

 





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

0 members, 0 guests, 0 anonymous users