Home
        rapport
         Contents
1.     bouger le Bras 2 en cons  quence  L objectif est atteint     DESTINATION       Cercle de centre Pointl et de  rayon la longueur du bras 2          Cercle de centre PointO et de rayon la  distance entre ce point et la  destination       4    RECUPERATION D UN OBJET    A pr  sent  on est en mesure d   aller r  cup  rer un objet     Pour ce faire  on d  termine un angle de prise de l   objet  Il y a donc deux endroits o   le r  cup  rer  On  choisit celui qui est le plus proche du Point 2     On d  termine aussi un d  calage pour faciliter la prise de l   objet par la pince  On a donc un nouveau point  d  cal   qui conserve l angle de prise  Ce point est la destination du Point2     Une fois le robot d  plac    on effectue une rotation de l   angle du bras 3 pour que le point 3 soit align    avec le point 2 et la destination    Le point2 avance ensuite vers l objectif suivant la distance point3versObjectif        IN    C  CALCUL SUR LE PLAN xOz    1    ROTATION  Passons maintenant    la rotation sur le plan xOz  Elle s effectue uniquement par rapport au point 0   On commence par d  finir un angle de rotation sur xOz  Lorsque l angle est    z  ro  les points ont tous la  m  me cote  comme d  finie plus haut     On calcule les coordonn  es des points comme suit      XPoint1    xPoint1 xPointO    cos angle     zZPoint1 zPointO    sin angle   xPointO  ZPoint1    xPoint1 xPointO    sin angle    zPoint1 zPointO    sin angle   xPointO    Cependant  lorsque l angle de rotation n   e
2.  sa valeur en pulsation     Par d  faut  la connexion est d  sactiv  e pour pouvoir afficher les valeurs sans avoir   tre  connecter aurobot  Il suffit de d   commenter la fonction suivante ss write valeur  dans la  m  thode on my mouse clicked2     Nous avons aussi cr  e un autre fichier  test py dans le document connexion  voir annexe  qui  permet de tester le d  placement de plusieurs servomoteurs simultan  ment et cela gr  ce    une  liste de position pr  d  finie pour chaque servomoteur     2 R  cup  ration des donn  es de la cam  ra     Pour pouvoir communiquer avec le groupe s occupant de la partie d  tection d image  nous  avons opt   pour un syst  me de communication Client Serveur en utilisant des Agents  contenu  dans le dossier Agent     Une fois le serveur lanc    si la cam  ra d  tecte le marqueur  un fichier     xml    va   tre cr  e    Il contient les informations suivante qui sont les coordonn  es des quatre coins du marqueur       lt p1 x  236 551  y  230 127   gt    lt p2 x  239 44  y  176 346   gt    lt p3 x  293 506  y  178 652   gt    lt p4 x  290 598  y  232 49   gt     Ensuite nous r  cup  rons les coordonn  es de l objet par rapport    l   image gr  ce    la fonction      xmidoc   minidom parse  fichier xml        Une fois les donn  es re  ues  on peut les afficher sur un plan xOy  Le but   tant qu    partir de ces  coordonn  es et en connaissant la taille de la fen  tre  nous puissions centrer le marqueur par  rapport au centre de la fen  tre  comme 
3. Projet 4  me ann  e  Bras Robotique  Contr  le du mouvement       TIAMIOU Adam  BEN YOUNES Radhoane    POLYTECH  GRENOBLE       Sommaire       Pr  sentation du contexte    Re Re en 3  ii gt  Travail effectu                                      ETEESI 4  1 Interface de connexion avec le robot                    4  2 R  cup  ration des donn  es de la cam  ra                5  3 Le simulateur    l  Ill  Ce qu il reste    faire   Am  liorations                       13   V  ANNEXES    a enr ee dec oui 14    l  Pr  sentation du contexte     Notre bras Robotique   le AL5B est   quip   d une carte SSC32  Cette carte permet une  communication bidirectionnel et dispose de 32 canaux pouvant contr  ler des servomoteurs   Celui ci utilise une connexion s  rie de 8 bits     Le robot est aussi   quip  e d une webcam qui lui  permettra de d  tecter des objets gr  ce    des  marqueurs     Ce projet est divis   en deux partie        La premi  re consiste    s occuper de la  d  tection du marqueur plac   sur un objet      La seconde qui est la notre  est de s occuper  de tout ce qui concerne la communication avec  le robot et l intelligence de ses mouvements pour  atteindre des objectifs pr  cis        Pour notre projet  Nous avons fix   les objectifs suivant    1 Le logiciel doit   tre capable de communiquer avec tous robots   quip   d une carte SSC 32  2  Notre logiciel doit   tre capable de calculer une trajectoire correct afin d attraper l objet     3  Pour conna  tre    tout moment les co
4. ct   au Chanel n  5    la position    1600     La  position est d  finit comme la dur  e des impulsions qui d  termine l angle absolu de l axe de sortie et  donc la position du bras de commande du servomoteur  Le tout ex  cut      une vitesse d  finit    752 us   Pour mieux comprendre comment la vitesse est d  finie  on consid  re qu a 1000uS il est effectu   en 1  seconde une rotation de 90    Donc pour une valeur de la vitesse    100 uS signifie que le servomoteur va  prendre 10 seconde pour faire une rotation    90      De plus  il existe des commandes qui permettent de recevoir des informations provenant de la carte  Par  exemple si on l envoie la commande    Q  lt cr gt   renvoie     si le robot est en mouvement     14    Donc    partir des ces informations et des poste dans le forum du cr  ateur de la carte  nous avons en  python deux classes        Autocommit  Int      Port Char   Vitesse   Int    NbrMoteur   Int   5  default    Angle max   Int  F   Angle min   Int           Commit void    void  Ismoving    boolean       Poss  de        Setposition  int                     De la forme     lt n gt P lt pos gt  T lt time gt    avec n le num  ro du Servo       La premi  re classe SSC 32 regroupe des m  thode permettant d   tablir la connexion et d envoyer les  diff  rentes commandes    la carte   Socket  port      Celle ci poss  de plusieurs objet Servo  Un servomoteur est d  finie par plusieurs attribut  Position  Vitesse  angle min  angle max         Pour bien comprendr
5. droite   Point O  Point 1  Point 2  Point 3     B  CALCUL SUR LE PLAN xOy    1    COORDONNEES DES POINTS  Pour le moment  on se limite au plan xOy et on d  finit la m  me z que celui du socle    tous les points   Cette m  me valeur de z pour chaque point va trouver tout son sens plus tard     Mais pour l instant  cette coordonn  e n apparait pas dans les calculs     Pour calculer les coordonn  es du point 1           Pointi XP  inti   xpointO    cos a   Longueur   Longueur  sin a    Longueur    Point 0    cos a   longueur    Voici comment fonctionne VPython pour cr  er une boite entre deux points     On doit donner la position du centre de la boite  On se sert donc du calcul du milieu d   un segment    x    x0 x1   2     Pour trouver les points 2 et 3  on cherche le point qui se situe sur le vecteur vPointiversPointO  Pour le  cas du point 1  en conservant la taille du bras  bras 2 pour ce cas  et on effectue une rotation par rapport     l angle donn   en partant de ce point     2    ROTATION DES BRAS    Par la suite  on s   est int  ress      la modification de l angle des bras suivant un angle donn     Par exemple  si on modifie celui du bras 1  les points des autres bras vont aussi subir cette rotation     Ainsi  gr  ce    une simple formule math  matique  on calcule les coordonn  es du nouveau point    XPoint1    xPoint1 xPointO    cos angle     YPoint1 yPointO    sin angle   xPointO  YPoint1    xPoint1 xPointO    sin angle    yPoint1 yPointO    sin angle   xPointO    On 
6. e  nous allons prendre un exemple     Tout d abord oninitialise la connexion USB  g  n  ralement le port est     dev ttyUSB1     Le 115200  repr  sente le braudbit la vitesse de connexion     ssc   ssc32 SSC32     dev ttyUSB1   115200  vitesse 1000    Oninitialise nos objets servomoteurs gr  ce    la fonction _getitem__      Servo1   sscl Servol    Servo2   sscl Servo2      15    Pour cette exemple  les valeurs d angle min max    sont par d  faut celle   crit dans le code   On d  finit une liste de chaque servomoteur avec la position en degr  s voulust o  position     Servol  50     Servo2   130     s  l    def ChargerPosition listePosition    for move in listePosition   move 0  degree move 1       degree  ssc commit 600    600 est le temps voulus   While  ssc IsMoving     tant que le robot est en mouvement    time sleep 0 3        On temporise pour ne pas ex  cuter toutes les commandes en  m  me temps     Une fois les valeurs charg  es  il suffit d utiliser la fonction commit   qui va envoy   pour chaque servo la  commande suivante     lt n gt P lt pos gt  T lt time gt      16    
7. ordonn  es de la pince  Un simulateur en Vpython doit    tre impl  ment    repr  sentant le bras robotique virtuellement     4 On doit   tre capable de communiquer avec le deuxi  me groupe afin de r  cup  rer les  informations sur la position du marqueur et les d  placement    effectuer     Il  Travail effectu       Le projet est s  par   en deux partie  La premi  re concerne le d  veloppement d une interface qui  permet la connexion avec le robot  et la deuxi  me le simulateur ainsi que la communication avec  la cam  ra     1 Interface de connexion avec le robot     Pour la premi  re partie  il a fallut r  fl  chir sur le fonctionnement de la carte SSC 32 gr  ce    son  manuel d utilisation  Le but   tant de d  finir et changer pour chaque servomoteur la valeur des  angles afin d   tre en accord avec les mouvement du simulateur robot    Nous avons donc d  fini deux classes voir annexe  ainsi qu une interface graphique qui va nous  permettre d effectuer des tests directement sur le robot     Polyss32       Selectionner port      Aucune commande recu     Postion en degr      90  m Commit  S  l  ction du servomoteur 0      Vitesse  en u5  ET   Annuler    Lorsqu un on clique sur le bouton commit  on voit afficher la commande qui va   tre envoy   au  robot qui est d  finit selon les diff  rentes options pr  sentes  Vitesse  Position      0P918590  lt cr gt     Par exemple si on clique sur commit on vois affich      Remarque   la position en degr  s est automatiquement traduite en
8. pr  cis   dans la partie simulateur  Page 7      On a donc d  fini un intervalle dans lequel les coordonn  es doivent   tre comprise pour que le  marqueur puisse   tre consid  r   comme centr       Ensuite  on effectue des mouvements guid  s par la cam  ra  Par exemple si le marqueur est sur  le coin sup  rieur droite  le robot doit bouger plus    gauche et vers le bas  Jusqu    ce qu il soit  compris dans l intervalle d  finit pr  c  demment     Une fois l   objet centrer  il reste un petit d  tail      On sait que du moment o   le marqueur appara  t sur l   cran  il devient facile de s approcher de   lui  car on a juste    consid  rer les d  placements qui gardent celui ci en vue  Cependant  on ne  voyait pas comment un simulateur en 3D qui a besoin des coordonn  es x y z  pouvait attraper   un objet sans cette derni  re composante    En effet  il est impossible d obtenir la position d un objet en coordonn  es x y z en se servant de  l image fixe d une seule cam  ra     Apr  s une discussion avec l autre groupe  nous avons d  gag   une mani  re intelligente de  r  pondre    ce probl  me en consid  rant la taille initiale du marqueur  Une fois l objet centr   et  droit  on effectue un d  placement de la cam  ra vers le marqueur et en fonction de la pr  c  dente  coordonn  es et de la nouvelle  du marqueur   on obtenait une bonne estimation de la profondeur   qui s  pare la pince de l objet   avec une marge d erreur qui diminue    mesure qu on s approche     Nous avons mis ce
9. r des objets servo avec les  attributs  Axe ang mix max   qui doivent correspondre aux diff  rentes  caract  ristique des servomoteurs du robot    Ensuite  chaque angle de chaque axe est d  finit dans des variables dans le  simulateur  Il suffit de les r  cup  rer et de faire un commit  classe SSC 32  toute les  x seconde  La variable x reste    d  finir  mais    notre avis elle se situerait entre 0 1  et 0 2 seconde  Ainsi    chaque mouvement du simulateur  le robot re  oit toutes les  commandes n  cessaires pour chaque servomoteur     e On peut penser    cr  er une interface graphique compl  te prenant en compte toutes  les caract  ristiques du robot permettant de cr  er le simulateur     e Une partie importante consiste    recevoir les ordres de mouvement pour centrer la  cam  ra avec le marqueur  Il faut d  finir lequel des deux groupes travaillera dessus   Calculer les ordres   La connexion via client serveur  Agents  entre nous est d  j      tablit     e Une derni  re am  lioration possible est       d utiliser la g  om  trie   pipolaire pour   d  terminer les coordonn  es de l objet  O O  Cette technique consiste    utiliser      deux cam  ras au lieu d une pour     pouvoir d  terminer la profondeur de   l objet   M  me principe de   fonctionnement des yeux ou bien des   lunette 3D     Si le marqueur de l objet a   t   vu par deux cam  ras diff  rentes  on peut en fonction  des positions des    trous    dans l espace  et par rapport aux images  reconstituer les  deux d
10. roites  et leur intersection  qui est le point objet  que l on peut donc calculer  ult  rieurement  On a ainsi la reconstruction    trois dimensions d un point objet dont  on peut identifier les points en correspondance sur deux images    IV  Annexe    1  Les diff  rentes classes utilis   pour l interface de connexion     Afin de mieux comprendre le fonctionnement de la communication avec la carte   nous avons    notre disposition le manuel SSC 32 qui regroupe toutes les instructions n  cessaires pour  contr  ler les diff  rents servomoteurs  voici un rapide r  sumer des instructions disponibles      fi Command Types and Groups     o  ooo    2  Discrete Output Men 12 Servo Hexapod Gait Sequencer   3  Byte Output  3  Quem Hex5equencer ______              6 Read Digital Inputs  12 MinisS5C I Compatibility       Servo Move or Group Move           lt chz P  lt pw gt  5  lt spd gt         lt chz P  lt pwz 5  lt spd gt  T  lt time gt   lt cr gt          ech gt  Channel number in decimal  0 31      lt pw gt  Pulse width in microseconds  500 2500     lt spd  Movement speed in u  per second for one channel  Optional     etime gt  Time in m5 for the entire move  affects all channels  65535 max  Optional      lt cr  Carriage retum character  ASCII 13  Required to initiate action                     lt es gt   Cancel the current action  ASCII 27       Par exemple   Si on envoie en ASCII la commande suivante    5 P1600 S100  lt cr gt     Cette commande va faire bouger le servomoteur conne
11. st pas nul  il faut recalculer les abscisses que l   on avait d  finies  dans le plan xOy     10       x  a cos angle Z     2    D  PLACEMENT DE LA PINCE VERS UNE DESTINATION    Pour que le point 2 puisse se d  placer vers une destination lorsque l ange des Z n   est pas nulle  on a  d  cid   de conserver les calculs de destination du plan xOy    En gros  on cherche l angle entre un point du robot lorsque l angle Z est nul  sauf le point 0   et la  destination A  par rapport au point 0    On obtient ainsi en faisant une rotation inverse  une destination B de m  me z que les autres points du  robot    On calcule les angles de d  placement de la m  me mani  re que pr  c  demment  puis on aligne le robot  avec la destination A  sur le plan xOz    Le fait d appliquer les angles de d  placement  permet d atteindre la destination A     C   est pour cette raison que l   on a d  cid   de d  finir des coordonn  es z identique pour chaque point du  robot   cela permet d   effectuer les calculs d angle sans prendre en compte les coordonn  es z     11       Le Point 2 va suivre le trait rouge       L ensemble de points n avaient pas la m  me z que  les axes initiaux du robot    Le robot a du s aligner avec chaque point pour  l atteindre     Ne pas prendre en compte les deux sph  res libre     12    IIl  Ce qu il reste    faire  amp  Am  liorations    e La premi  re chose qui reste    faire est d   tablir le lien entre le robot et le  simulateur  Pour cela  il faut au pr  alable configure
12. tte m  thode de c  t   en attendant que toutes les   tapes pr  c  dentes soient  accomplies  aussi bien dans l   autre groupe que dans le notre     3 Simulateur    A  INTRODUCTION    Apr  s avoir discut   avec le groupe s   occupant de la d  tection de marqueur  on a estim   que la cam  ra   positionn  e sur la pince du robot  ou en amont   devait permettre au robot de recevoir des ordres en  fonction de la position  du marqueur d  tect    sur l   cran  Le but   tant que le marqueur soit centr   sur  l   cran              Cela est devenu concret lorsque le groupe a r  ussi    obtenir les coordonn  es des quatre points du  marqueur suivant l   origine qui se trouve au coin en haut    gauche    On a donc une translation de la cam  ra qui bouge dans l   espace pour se centrer    tant donn   qu   elle est  positionn  e sur la pince  il est donc logique que c   est celle ci qui doit effectuer ces translations  On doit  donc exprimer la pince du robot en coordonn  es ind  pendantes de la cam  ra     La premi  re question f  t de d  terminer un rep  re pour rendre explicite ces futures coordonn  e   Logiquement  c   est le socle du robot ou le point de d  part du premier bras qui servira de rep  re  puisqu il ne change jamais     On d  cide donc de se servir de ce point pour d  terminer toutes les coordonn  es des points  d intersection des axes robotiques  en fonction de la longueur de chacun d eux et des angles de d  part        longeur donn  e    angles initiaux     De gauche    
13. va se servir souvent de cette formule     En gros  on fait une rotation de tous les points  sauf le socle bien s  r  si on bouge le bras1  des m  me  points sauf le point1 si on bouge le bras 2 etc      Afin d anticiper l   utilisation du mode recherche de la pince  on d  cide de priver le point3 de rotation  lorsque l   on bouge les bras 1 et 2  On effectue des translations qui suivent les d  placements du point 2     8    3    DEPLACEMENT DE LA PINCE VERS UNE DESTINATION    Une fois que le robot est capable de bouger suivant des angles  on est donc en mesure de passer au  mouvement de la pince    En gros  nous avons une destination et l objectif est que la pince l   atteigne  Afin d anticiper cette fois la  prise d   un objet  on a d  cid   de faire atteindre la destination par le point2     On utilise une m  thode bas   sur l intersection de cercles  Voir dessin      Apr  s avoir trouv   les deux points d   intersection  on calcule l angle entre ces points et la destination par  rapport    PointO  point vers destination   gt  Le signe de l   angle est tr  s important     Pour chacun des angles  on calcule la nouvelle position du point2 et on s  lectionne l intersection qui  retourne le Point2 le plus proche de la destination     On fait donc une rotation du bras1 suivant l angle donn    la destination se retrouve ainsi sur le cercle de  centre Point1 et de rayon la longueur du bras 2  Il nous reste plus qu      calculer l   angle qui s  pare le  Point2 de la destination et
    
Download Pdf Manuals
 
 
    
Related Search
 rapport  rapport  rapport synonym  rapport furniture  rapport meaning  rapporteur  rapport building  rapport therapeutics  rapport define  rapport pronunciation  rapporteur meaning  rapport meaning in english  rapport furniture los angeles  rapport covetrus  rapportage  rapport london  rapport building questions  rapport 2025  rapport de mission  rapport annuel 2024  rapport axonify  rapport d\u0027incident  rapport mensuel  rapport de stage 3eme  rapport semestriel 2024 
    
Related Contents
Panasonic BT-LT80W Camcorder Accessories User Manual  Ergoguys Califone 1776PLC  Pioneer 3D User's Manual  Fagor Electric Multi-Cooker  Respirador purificador de aire energizado serie EVA  EVAsoft User Manual - at www.ImageWorksCorporation.com.  NS-205G 5-Port Industrial 10/100/1000 Mbps Ethernet Switch        Copyright © All rights reserved. 
   Failed to retrieve file