Communication between ROS and Avr (+PML).

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 :
roscore
rosrun avr_bridge bridge_node.py callResponse.yaml qui fait le lien entre ROS et l’arduino
rosrun maximus_sensors maximus_transform_PML qui transforme le tableau de 18 valeurs en un objet LaserScan

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 !)

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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: