Aller au contenu


Photo
- - - - -

Hector

VL53L0X Odomètrie RPLIDAR A2 Arduino Due

219 réponses à ce sujet

#81 Path

Path

    Made By Humans

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

Posté 31 octobre 2017 - 07:02

Merci !!
Je grokiffe mon hector !!

#82 Path

Path

    Made By Humans

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

Posté 01 novembre 2017 - 04:50

Je suis en train de concevoir la partie logiciel de la motorisation dans l'arduino.

Il y a 2 moteurs CC pilotés via 2 pins PWM, 2 roues codeuses avec leurs interruptions et une roue folle.

L'arduino sera piloté avec des commandes du type : avance, recule, rotation.

 

Avance ou recule de X mètres.

Rotation de X degrés dans un sens ou l'autre autour de son centre.

NB. On verra plus tard pour lui faire faire des arcs de cercle.

 

Pour qu'il aille droit ou pour que le centre ne bouge pas pendant une rotation, il s'agit de faire tourner mes moteurs à la même vitesse l'un par rapport à l'autre.

Je commence par obtenir la vitesse instantanée des 2 moteurs avec les roues codeuses. J'applique un asservissement de la commande moteur fonction de cette vitesse constatée. La consigne étant la même pour les 2 moteurs.

 

Jusque là, (j'en transpire d'avance mais) je crois pas être déconnant.

 

Cet asservissement doit aussi me permettre d'injecter une une consigne variable pour accélérer au début du parcours et décélérer à la fin pour éviter de patiner.

 

C'est comme ça que vous feriez ?



#83 Mike118

Mike118

    Staff Robot Maker

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

Posté 01 novembre 2017 - 06:23

Perso je fais du go to position en x, y, teta en utilisant  une fonction avance ( vitesselineaire, vitesseangulaire ), 

et on peut aussi spécifier l'accélération max.

 

Mais il est possible de faire avance ( distancelineaire, distanceangulaire) si c'est ce que tu souhaites =) 


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  

 

 

 


#84 Path

Path

    Made By Humans

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

Posté 01 novembre 2017 - 06:27

C'est exactement ça que je veux faire. :)

Le plus dur est de me représenter mentalement le comment.



#85 Mike118

Mike118

    Staff Robot Maker

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

Posté 01 novembre 2017 - 06:30

Pour cela il faut utiliser des outils du type " schémas bloc " =) 
 

ça marche très bien =) 


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  

 

 

 


#86 Path

Path

    Made By Humans

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

Posté 02 novembre 2017 - 11:53

J'ai imaginé Hector comme on programme en logo : avance de X, tourne de Y, avance de Z.

 

Le raspberry a la responsabilité de la géométrie extérieur, de sa position absolue dans son espace et de sa géométrie interne : position des roues et des capteurs de distance. L'arduino tourelle donne des distances sans se soucier de sa position dans le robot. L'arduino propulsion a la responsabilité de déplacer le robot avec des commandes relatives. Comme en logo.

 

A priori, je n'ai pas besoin d'un PID composé translation, rotation. J'ai juste besoin d'un asservissement des moteurs pour qu'ils aillent réellement à la même vitesse.

 

Sauf s'il y a un moyen plus simple pour qu'ils aillent à la même vitesse, je vais tester cette lib

 

http://www.robot-maker.com/shop/blog/33_Asservir-moteurs-courant-continu-PID.html;)

Bien détaillée ici : http://playground.arduino.cc/Code/PIDLibrary

et théorisée là : http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/

 

Pour l'accélération au démarrage et la décélération à l'arrivée, je vais juste faire varier la consigne.



#87 Path

Path

    Made By Humans

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

Posté 03 novembre 2017 - 05:04

Alors, après une profonde réflexion et un peu de code, j'ai juste piloté le moteur B fonction de l'erreur que je constate avec le moteur A.

 

J'ai pas utilisé la lib PID, je ne voulais pas passer des heures à définir les 3 constantes. J'ai fait un PID maison avec juste la proportionnelle et l'intégrale. Et une unique constante.

 

https://github.com/P.../propulsion.ino

 

Avec ce code, les 2 moteurs vont à la même vitesse !! Et Hector file droit !!

 

A ce stade, j'ai pas grand chose à montrer à part des roues qui tournent ^^ Hector a encore un fil d'alim. à la patte.

 

Là, il me reste à coder le rapsberry. Je dois affiner les données de la tourelle pour pourvoir définir des passages et commander la propulsion.

 

Pour mémoire, l'objectif final est qu'il sache aller n'import où dans mon appart.

1er sous objectif, faire la carto de mon appart.


  • Oliver17 et BrunoS aiment ceci

#88 Mike118

Mike118

    Staff Robot Maker

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

Posté 03 novembre 2017 - 05:46

est ce que ça te tente d'essayer d'asservir la vitesse de ton moteur non pas sur l'autre moteur mais d'asservir chacun des moteur sur la somme des 2 divisé par 2 ? =) 

Ainsi tu feras ce qu'on appel de l'asservissement sur la vitesse linéaire de ton robot.  =) 


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  

 

 

 


#89 Path

Path

    Made By Humans

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

Posté 03 novembre 2017 - 05:58

Je suppose que ce que j'ai fait ça s'appel de l'asservissement polaire ?

Tant que j'ai pas ces 3 constantes à déterminer, pour quoi pas.



#90 Mike118

Mike118

    Staff Robot Maker

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

Posté 03 novembre 2017 - 06:14

hum non je ne connais pas de nom particulier à ce que tu fais pour le moment... 
Je dirais juste que tu asservis un moteur par rapport à l'autre ... 

 

du coup en effet ça le fait filer droit ;)

 

EDIT Je me suis trompé dans ce que je t'ais dit tout à l'heure j'ai parlé un chouilla trop vite, ton but c'est de le faire filer droit ^^ tu dois asservir tes moteurs sur la vitesse angulaire ( pas la linéraire ^^)

 

Donc ne fait pas ce que je t'ai proposé pour le moment =) 

 

Par contre l'asservissement polaire c'est quand tu fais de l'asservissement angulaire et linaire ...  

 

J'avais déjà eu une discussion sur l'asservissement polaire à l'époque avec transistance 

Malheureusement les images n'étaient pas hébergé sur robot maker et le sujet a perdu beaucoup d'information. 

voilà une image tiré du net ( équipe SMART qui participe ( participait ? ) aux coupes de france de robotique =) ) d'un exemple d'asservissement polaire 

 

asservissement.PNG


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  

 

 

 


#91 Path

Path

    Made By Humans

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

Posté 03 novembre 2017 - 06:34

Merci.

Là, avec le pilotage de l'un par rapport à l'autre, ça fonctionne mieux que j'attendais ^^ Et je trouve cela simple.

Quelques exemples tout chaud de mes essais :

READY
FINISHED:6000:6001
FINISHED:6010:6011
FINISHED:16:17
FINISHED:16:18
FINISHED:6003:6003
FINISHED:6005:6006

Sans la correction, j'ai des écarts de 100 à 200 :)



#92 Mike118

Mike118

    Staff Robot Maker

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

Posté 03 novembre 2017 - 07:01

Oui ce que tu as fais en soit est très bien et simple c'est une excellente première approche pour résoudre le problème qui est " d'aller droit " =) 
Ne le change que lorsque tu trouveras cette approche limité pour ce que tu souhaites faire ;) 

La plus grosse critique qu'on peut faire sur cette façon de faire je pense c'est qu'elle est " asymétrique " . Un premier moteur est asservi à une vitesse donné et l'autre moteur est asservie sur la vitesse mesuré sur le premier moteur. . 
( => Mais ce n'est pas un problème pour juste la ligne droite ^^ => La preuve vu que ça marche bien ;) )


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  

 

 

 


#93 Path

Path

    Made By Humans

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

Posté 03 novembre 2017 - 08:10

;) D'accord avec toi. Rappels-toi, j'explore l'odométrie avec Hector parce que c'était devenu trop compliqué avec Ash "le self balancing robot". Il me faut le temps d'intégrer tout ça. Et ça vient ^^. Etapes par étape.



#94 gerardosamara

gerardosamara

    Membre passionné

  • Membres
  • PipPipPip
  • 374 messages
  • Gender:Male
  • Location:Costa Rica & Bretagne

Posté 04 novembre 2017 - 03:51

C'est vraiment super de partager   et très instructif pour les amateurs de base roulante 

 

Sur le forum  il y a plus de projets de bipèdes que de bases roulantes  ( char , rover , .. )


Pura vida

 

Ma chaine youtube  https://www.youtube....EQ5MTR3A/videos

Tutoriel MIT Inventor2  https://www.robot-ma...e-robot-mobile/


#95 arobasseb

arobasseb

    Membre chevronné

  • Administrateur
  • PipPipPipPip
  • 737 messages
  • Gender:Male
  • Location:BORDEAUX (33)

Posté 06 novembre 2017 - 11:36

C'est l'anniversaire d'Hector  :drinks:



#96 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 06 novembre 2017 - 12:28

Sympa ton projet.
Pour ton moteur pas à pas de tourelle. Si tu veux pouvoir te passer de capteur, tu peux mettre à une position donné ta tourelle avant d'allumer le robot et comme ça, dans le programme, tu lui assigne la position 0. Tu lui donnes les angles maximum pour éviter les collisions.
Et pourquoi ne pas utiliser de moteurs pas à pas aussi pour la partie roulante du robot? Plus facile à gérer.

#97 Path

Path

    Made By Humans

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

Posté 06 novembre 2017 - 06:59

Il a un an. Il marche pas encore, tout va bien ^^ :)

Biensûr que je veux mon capteur de fin de course. Cest justement le capteur qui donne la position 0. À partir de là, il y a 800 pas pour faire exactement 90 degrés. Le robot cherche son 0 tout seul. Comme une imprimante cherche la position du bed sur son axe z. Pareil. Cest dailleurs de la récup de mon imprimante ^^

Quant aux roues, je navais pas de pas à pas il y a un an :)

#98 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 06 novembre 2017 - 07:43

Biensûr que je veux mon capteur de fin de course. Cest justement le capteur qui donne la position 0. À partir de là, il y a 800 pas pour faire exactement 90 degrés. Le robot cherche son 0 tout seul. Comme une imprimante cherche la position du bed sur son axe z. Pareil. Cest dailleurs de la récup de mon imprimante ^^

 

Ce que je voulais dire, c'est que sans le capteur, tu peux quand même avoir le 0 mais il faut placer le capteur dans une certaine position (toujours la même) à la main. C'est comme ça que je fais sur mon bras robot.

 

Quant aux roues, je navais pas de pas à pas il y a un an :)

Car c'est beaucoup plus simple et précis à utiliser.



#99 Path

Path

    Made By Humans

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

Posté 06 novembre 2017 - 07:58

Ben ... je comprends mais ... comment dire, c est pas pratique à la main. Et c est pas le but non plus. T aimerais pas que ton bras trouve son point d origine tout seul ? :)

#100 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 06 novembre 2017 - 08:38

Oui et non car avant de trouver l'origine de tous les axes, il va y avoir pas mal de collisions.





Répondre à ce sujet



  



Aussi étiqueté avec au moins un de ces mots-clés : VL53L0X, Odomètrie, RPLIDAR A2, Arduino Due

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

0 members, 0 guests, 0 anonymous users