Aller au contenu


Photo
- - - - -

SLAM et lidar


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

#1 Guacam

Guacam

    Membre

  • Membres
  • 10 messages

Posté 09 janvier 2019 - 08:28

Yo, j'essaye de faire de la localisation et du mapping à l'aide d'un rplidar A1 connecté en USB à un Raspberry Pi 3. J'utilise dans mon projet actuel le langage Python. Je précise que je ne passe pas par ROS (j'ai essayé et je ne suis vraiment pas fan), j'ai juste Raspbian d'installé, qui fait ensuite tourner différentes lib dont j'ai besoin. Je parviens à me connecter au lidar et récupérer des mesures mais c'est dans leur traitement que je rencontre des difficultées.
 
Tout d'abord j'ai cherché une lib pour faire du SLAM via un lidar en Python, je suis tombé sur BreezySLAM <https://github.com/s...levy/BreezySLAM> qui semble pas trop mal mais je galère à le faire fonctionner. En outre j'aimerai bien visualiser les données du lidar (par exemple avec <https://github.com/s...dlevy/PyRoboViz>) mais je n'ai pas d'interface sur mon raspberry, je fais tout en ligne de commande. J'imagine qu'il y a moyen d'installer un outil de visualisation sur mon ordinateur (je suis sous macOS) et de le connecter via le réseau local au Raspberry. Ensuite je ne sais pas si BreezySLAM peut faire du path planning. Au pire ce n'est pas la partie la plus complexe, par le passé j'avais fait un algorithme génétique pour déterminer le trajet le plus court dans un environnement 2D. Mais s'il y a une solution plus efficiente (et j'imagine qu'il y en a) je suis preneur. Bref si vous avez des pistes pour faire du mapping et visualiser en temps réel le résultat, ça serait top, peu importe le langage tant que ça ne nécessite pas l'utilisation de ROS.

  • Savoyard aime ceci

#2 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 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é 09 janvier 2019 - 10:11

Il me semble que BreezySLAM ne fait que le SLAM et pas le path planning =). Par contre je te rejoins sur le fait que mettre en place un outil de visualisation et plus qu'utile pour ce genre de chose ... 

 

Pour les algo de plus court chemin, dans un environnement inconnu le tangente bug est très bien. 
Dans un environnement connu tu as le A* ou bien le parcours de graph de visibilité en fonction de comment tu modélises tes données ! 

 

De mon côté avec pascal (serveurperso) on travail dur sur la mise en place d'un outils qui justement permet de visualiser les données en temps réel via un simple navigateur web avec le projet vigibot. 

Vidéo de ce qu'on fait avec vigibot pour le moment : 

 


  • Savoyard aime ceci

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  

 

 

 


#3 Guacam

Guacam

    Membre

  • Membres
  • 10 messages

Posté 09 janvier 2019 - 10:50

Je vais jeter un oeil sur ces algo :)

Pour la visualisation à la limite je peux me coder un truc, passer par le web c'est effectivement une bonne idée !

 

Sans indiscrétion vous utilisez quoi pour faire le mapping et l'odométrie ? Sachant que je n'utilise pas de roues (robot quadripède) je me demandais si coupler gyro/accéléromètre pouvait être assez fiable.



#4 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 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é 09 janvier 2019 - 11:52

C'est pas par ce que tu n'as pas de roue que tu ne peux pas faire d'odometrie ! C'est juste que la "methode de comptage" ne sera pas la même ! Et sa fiabilité associée sera un peu différente ... 

Comment tu fais si on te bande les yeux et qu'on te dit d'avancer de 10m ? 

La combinaison de ce genre d' "odométrie" des données IMU et Lidar devrait te permettre d'avoir un résultat =)

Sinon pour l'odometrie dans le cadre du robot Robil de la vidéo il s'agit d'un robot avec 4 roues mecanum et un rplidar A2 et une IMU , l'odométrie la cartographie et la plannification de trajectoire sont gérée par le code dans le microcontrôleur PIC32 en C. 

 

Quoi qu'il en soit pour un gros projet comme le tien, je ne sais pas où tu en es mais je pense qu'il serait très intéressant de découper le problème en différentes étapes ... 

A) Savoir contrôler les moteurs que tu vas utiliser / Avoir une première configuration de ton robot en " statique" ... 
du code ,  "un cerveau "  pour le robot, des servomoteurs ,  une alimentation et le lien entre tout ça pour avoir un résultat qui peut s'approcher du travail d'Oracid dont tu as sans doute pu voir la dernière vidéo de son quadrupède. 

Pour aller un peu plus loin savoir contrôler une patte en gérant cinématique inverse.. et savoir gérer la cinématique à l'ensemble du robot ... c'est plutôt bien ...

Pour cette partie le travail de valean sur la cinématique inverse robot hexapode est un très bon point de départ. 

 

Et cette première grande partie est déjà à découper en de nombreuses sous parties ... 

 

En fait plus tu ira loin avec un robot " statique " plus tu pourras facilement aller loin ensuite ... 
En maitrisant parfaitement les déplacement du robot, tu pourras précisément savoir "où est le robot" par rapport à sa position précédente ( en supposant que le robot n'ai pas glissé sur une peau de banane =) ) et donc de te servir de ces données comme odométries qui seront corrigées avec le lidar. 

 

Sinon pour le lidar ... Moi je le mettrais sur un "stabilisateur" dans le cas d'un quadrupède =)


 

 


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  

 

 

 


#5 Guacam

Guacam

    Membre

  • Membres
  • 10 messages

Posté 10 janvier 2019 - 07:56

Très bonne idée le stabilisateur, je n'y avais pas du tout pensé mais c'est vrai qu'en mouvement j'aurais un changement de hauteur sans ça pendant le scan.

 

C'est certain qu'il faut découper le problème en différentes étapes, j'avance actuellement sur plusieurs problématiques à la fois. Pour résumer très succinctement j'ai un Raspberry Pi B3+ avec un ReSpeaker 2-mic hat, une Raspberry Pi v2 caméra et le rplidar A1. Le Raspberry est branché à un Arduino Uno, sur lequel j'ai un 16 PWM channel I2C FET Arduino shield PCA9685 et divers capteurs. Sur le PCA9685 j'ai 12 micro-servos (afin de faire des tests sur le mouvement et prendre par la suite des servos plus puissants - j'utilise d'ailleurs du carton-plume pour faire mes essais). Voilà pour la partie hardware. Sur l'Arduino j'ai mis la lib Firmata afin de pouvoir facilement communiquer avec le Raspberry. Sur mon RPi j'ai un environnement Python, j'utilise snips.ai pour la gestion de la voix (et synthèse vocale), OpenCV pour le processing de l'image (faire du tracking de visage etc). A l'heure actuelle j'arrive à contrôler les servos, j'expérimente beaucoup de choses pour gérer la marche quadrupède de la manière la plus efficiente possible à mon niveau, je gère diverses commandes vocales via snips, quelques reconnaissances visuelles et je suis surtout bloqué avec le lidar.

 

Je ne sais pas quoi utiliser pour le mapping. Je pense que c'est au-delà de mes capacités de coder ma propre solution de mapping via le lidar (en particulier la partie consistant à détecter les points communs à deux scans). Du coup je cherche une lib faisant ça pour ne pas perdre trop de temps sur cette problématique mais je suis un peu perdu.



#6 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 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é 10 janvier 2019 - 10:10

Je pense que ce dépot github peut t'intéresser  github openSLAM

 

Si je devais commencer par en tester un je commencerais par tester le tinySLAM / coreSLAM

 

J'ai hate de voir des photo et des vidéo de ce que tu nous prépare ! =)
 


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  

 

 

 


#7 Guacam

Guacam

    Membre

  • Membres
  • 10 messages

Posté 10 janvier 2019 - 10:19

Thanks, je vais jeter un oeil à tout ça (oui il faudra que je vous prépare un post pour vous présenter mon projet en détail !)






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

0 members, 0 guests, 0 anonymous users