Aller au contenu


Photo

"Poor man's lidar" Le lidar du pauvre !


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

#1 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris
  • Interests:Robotics

Posté 18 janvier 2011 - 07:45

Salut ! Je ne sais pas si ce post à sa place ici mais bon je post au cas ou ca interesse quelqu'un :D

Pour tous ceux qui revent d'avoir un Lidar pour pas cher, voici une solution ;)



Après avoir utilisé pendant un moment des communications "custom" entre l'arduino et le pc (sous ROS), j'ai découvert la bibliothèque fournie par l'université Rutgers. Cette bibliothèque fournit un "pont" pour faire une communication entre ROS et un arduino (n'importe quel Avr en fait).

En effet, grâce à leur bibliothèque, je peux maintenant créer des subscriber et publisher, comme si 2 processus ROS communiquaient simplement entre eux.



J'ai donc implémenté un petit PML ("poor man's lidar" le lidar du pauvre, en français) qui est une version pas chère (et pas performante du coup ;) ) d'un lidar qui coute normalement 1000euros minimum.



Une fois l'électronique montée (un servomoteur, un capteur IR sharp et une arduino), j'ai implémenté le code sur l'arduino avec un communication simple avec ROS.

Je pensais pouvoir utiliser directement le type "LaserScan" mais en fait l'arduino ne gère pas les vecteurs a dimension non-finie donc j'ai du créer mon propre type d'information à communiquer (ici un tableau de 18 flottants) et j'ai ensuite fait un petit programme sur le pc qui transforme ces 18 valeurs en un objet du type "LaserScan" pour être affiché dans l'environnement de simulation 3D.



Il suffit ensuite de lancer ces 3 commandes une fois que l'arduino est branché à l'ordinateur :






Et on obtient ce "magnifique" résultat ! (malheureusement ce n'est qu'un PML donc on arrive a avoir des données que toutes les 800ms en gros... mais les objets sont bien détectés !)



La vidéo c'est ici : http://www.youtube.com/watch?v=ECqEbzWI_94



Merci au site http://www.pirobot.org qui m'a bien aidé :D

#2 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

Posté 19 janvier 2011 - 11:01

comment fait tu pour créer l’environnement 3d ? avec un logiciel précis ou tout est question de prog ?
edit : désoler je viens de comprendre :|

#3 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris
  • Interests:Robotics

Posté 25 janvier 2011 - 10:10

Bon ce post n'a pas l'air d'interesser grand monde mais on ne sait jamais :D



J'ai rajouté mon capteur sur mon robot roulant (qui n'a plus de moteurs pour l'instant donc je le bouge a la main :D) et commencé a faire un peu de reconstruction d'environnement proche du robot.

Vu la qualité du capteur, la précision n'est pas vraiment au rendez vous mais le principe est la, ca ne marche pas trop mal, on arrive a deviner l'espace autour du robot.



Une petite vidéo pour illustrer tout ca ;)

Video !

#4 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

Posté 25 janvier 2011 - 10:35

je doit dire que le résultat est plutôt impressionnant!!!

et moi sa m’intéresse je compte l'utilisé avec mon capteur a ultra son :D

#5 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris
  • Interests:Robotics

Posté 25 janvier 2011 - 10:54

Attention avec le capteur ultrason, le probleme c'est que ca a un large cone de detection contrairement au capteur infrarouge qui detecte la distance sur une ligne (pratiquement). Donc je ne suis pas sur que ca va aussi bien marcher avec un capteur US.

#6 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

Posté 25 janvier 2011 - 01:15

[quote"Jbot"]Attention avec le capteur ultrason, le probleme c'est que ca a un large cone de detection contrairement au capteur infrarouge qui detecte la distance sur une ligne (pratiquement). Donc je ne suis pas sur que ca va aussi bien marcher avec un capteur US.[/quote]

j'ai vu sur le net des gens l'utiliser comme sonar avec processing
j’espère que sa peut marcher quand même !! o_O


#7 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris
  • Interests:Robotics

Posté 25 janvier 2011 - 01:31

Ca doit pouvoir marcher mais la résolution sera peut etre un peu moins bonne. Il me semble qu'un capteur ultrason ca capte ce qu'il y a dans les 15 a 30 degrés devant lui. Je pense que c'est à tester ^^

Prochaine étape pour moi, transformer mon objet "LaserScan" en objet "PointCloud (nuage de points)".

#8 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

Posté 25 janvier 2011 - 02:17

[quote"Jbot"]Prochaine étape pour moi, transformer mon objet "LaserScan" en objet "PointCloud (nuage de points)".[/quote]
heu je vois pas la différence. :heu: c'est bien des point au final que tu as sur ROS, non ?
en tous cas vivement que tu post je meurt d’impatience de voir ça :tare:

#9 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris
  • Interests:Robotics

Posté 25 janvier 2011 - 02:25

L'avantage du PointCloud est que tous tes points sont représenté dans l'espace 3D cartésien (X,Y,Z) alors qu'avec un LaserScan, c'est uniquement des distances par rapport a l'endroit ou tu te trouvais au moment du scan.

[quote"ROS wiki"]
The above message tells you everything you need to know about a scan. Most importantly, you have the angle of each hit and its distance (range) from the scanner. If you want to work with raw range data, then the above message is all you need. However, it might be more convenient to work with points in 3D Cartesian (x,y,z) format instead.
[/quote]

Jvais essayer de faire ça ce soir pour voir ;)

#10 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris
  • Interests:Robotics

Posté 26 janvier 2011 - 09:58

Aprés quelques galere pour transformer les données (il y avait un probleme pour passer d'un repère à l'autre car il n'avait pas la transformée pour passer de l'un a l'autre au temps T... enfin bref un probleme a la c** :p) j'ai finalement reussi a afficher un PointCloud à la place d'un LaserScan. Visuellement c'est la meme chose, mais les valeurs ne sont pas les memes.

La petite vidéo :

#11 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique
  • Interests:La robotique !

Posté 26 janvier 2011 - 10:00

Je n'ai pas encore réagis jusqu'à présent parce que je suis tout juste bluffé. ;)




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

0 members, 0 guests, 0 anonymous users