vendredi 29 mars 2013

Morse

Hier, j'ai essayé d'installé Gazebo, aujourd'hui je compare à Morse, un simulateur plus européen !

J'ai d'abord essayé d'installer la version stable 1.0.
Mais j'ai eu des problèmes avec cmake qui ne trouvait pas correctement python.

bat@bat-UX32VD:~/morse/morse/build$ cmake ..
-- will install python files in /usr/local/lib/python3/dist-packages
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
PYTHON_INCLUDE_DIR (ADVANCED)
   used as include directory in directory /home/bat/morse/morse
   used as include directory in directory /home/bat/morse/morse
   used as include directory in directory /home/bat/morse/morse/src/morse/modifiers
   used as include directory in directory /home/bat/morse/morse/src/morse/sensors
   used as include directory in directory /home/bat/morse/morse/src/morse/sensors

-- Configuring incomplete, errors occurred!

Du coup, j'ai tenté avec la version du tronc, mais ça n'a pas suffit.

Finalement, j'ai dû installer python3-dev (et non python-dev)

sudo apt-get install python3-dev

J'ai dû rajouter set(PYTHON_INCLUDE_DIRS /usr/include/python3.2) dans CMakeLists.txt

Je me suis ensuite lancé dans les tutoriels à proprement dit.
J'ai utilisé pydev d'eclipse pour tapper le code (installé il y a quelques temps, mais pas testé). Aucun problème à ce niveau.

Mais dès l'édition je vois que ATRV() n'est pas connu.
Et lors de l'éxécution bpy (blender python) n'est pas trouvé.
Sûrement des problèmes de variables d'environnement, mais pas suffisamment d'aide pour moi à ce niveau.

Donc au final je lance en ligne de commande.
Ca ne marche pas. Je finis par comprendre que c'est parce que j'ai également une version de morse plus récente. Je la désinstalle.
sudo apt-get remove morse-simulator
Et ça marche!!


Une fenêtre s'ouvre, mais aucun menu.
En tappant au hasard sur le clavier sur la touche h, je trouve un menu qui explique les actions : c'est tout sauf intuitif...

J'ai remplacé configure_service (obsolète, l'exemple n'est pas à jour) par add_service.

get_local_data n'a pas fonctionné
 "Pose" à remplacer par "atrv.pose"

Dans le tutoriel http://www.openrobots.org/morse/doc/stable/user/beginner_tutorials/ros_tutorial.html

examples/tutorials/tutorial-1-ros.py 


Dans le tutoriel http://www.openrobots.org/morse/doc/stable/user/beginner_tutorials/ros_tutorial.html

jeudi 28 mars 2013

Gazebo

Aujourd'hui pas d'open ateliers.

J'ai passé pas mal de temps à surfer sur internet.
Je me suis notamment promené sur thingiverse, le portail des pièces en 3D.
J'ai découvert Yoctopuce, des suisses qui proposent des interfaces USB analogiques à prix et encombrement réduit.
Cela permet de relier les "choses" à un PC.
Dans la même lignée, il y a cosm (anciennement pachube) qui est un service en ligne de datalogging (journalisation de données?).

Sinon, pour me changer les idées je suis retourné faire les tutoriels sur le simulateur gazebo.

Je voulais essayer d'importer un modèle 3D de parafoil venant de la bibliothèque de google devenu Trimble.
Malheureusement le modèle choisi était au format de sketchup et je n'ai pas réussi à faire fonctionner sketchup (malgré une installation avec wine).
Et impossible d'ouvrir les fichiers .skp autrement, les fichiers étant propriétaires !!!
J'ai heureusement trouvé un autre modèle au standard .dae (collada).
J'ai pu l'ouvrir avec G3DViewer (disponible dans les dépôts Ubuntu)

Voici le résultat après intégration dans Gazebo.


Il ne reste plus qu'à rajouter la physique...

mercredi 27 mars 2013

Zenith Wind Energy

Aujourd'hui j'essaie de compiler le projet Zenith-Wind Energy.
C'est un projet de 6 étudiants canadiens qui est en cours.
Le projet est assez proche de robokite, mais avance plus vite.
Il est par contre peu documenté, donc difficile de recompiler.

Dépendances
SFML 2.0 (Release Candidate, donc à recompiler).
openCV

Après 1 journée sans succès, je me décourage un peu...

Journée Explorons de nouveaux marchés d'Eurolarge Innovation

Hier, j'étais à la journée "Explorons de nouveaux marchés" pour la course au large qui était organisé par Eurolarge Innovation qui est un pôle d'entreprise essentiellemement bretonnes dans le domaine de la course au large.

Le programme traitait de pêche, d'aéronautique, de défense :

Scapêche et son utilisation de systèmes électroniques pour la pêche
Areva et son éolienne offshore
Coriolis Composite et son robot déposant des fibres composites
Mer Agitée et son penon électronique
Les chantiers Bretagne
Seaways et ses différents projets en rapport avec l'aéronautique


Edit 31/03/2013 L'article de Meretmarine http://www.meretmarine.com/fr/content/course-au-large-de-nouveaux-marches-dans-les-autres-secteurs-maritimes

jeudi 21 mars 2013

ROS + GSCAM + OpenCV

Aujourd'hui je suis aux openateliers de Ping.

Je tente de faire de nouveau un tutoriel cette fois sur gscam afin de pouvoir utiliser facilement la caméra d'un téléphone mobile plutôt que la webcam de mon pc.
http://pharos.ece.utexas.edu/wiki/index.php/How_to_Use_a_Webcam_in_ROS_with_the_gscam_Package

A la compilation de gscam, j'ai eu l'erreur   CMake Error: The source directory "/home/chriscrick/brown-ros-pkg/experimental/gscam" does not exist.

Une solution est proposée dans https://wiki.arcoslab.eie.ucr.ac.cr/doku.php?id=ie0117_proyectos:webcam

En fait pas besoin de tout ça, il fallait juste récupérer les bonnes sources sur la page officielle...

J'arrive à faire tourner le programme mais toujours avec la camera de mon pc...
Je n'arrive pas à trouver comment brancher le flux de la camera ip.

OpenCV +ROS

J'ai suivi le tutoriel http://siddhantahuja.wordpress.com/2011/07/20/working-with-ros-and-opencv-draft/ qui permet d'interfacer openCV et ros.

J'ai pas mal galérer à cause d'un problème de dépendance lié à un changement de compilateur
"close was not declared in this scope"

J'ai résolu le problème en incluant #include <unistd.h> dans uvc_cam.cpp.
Il faudrait que je propose la mise à jour à la personne en charge du maintien du paquet.

Je vais maintenant facilement pouvoir modifier le code pour intégrer le suivi d'une forme.

Pour développer le code C++, je peux le faire avec eclipse en tappant au préalable la commande
make eclipse-project
qui permet de créer un projet eclipse (voir http://www.ros.org/wiki/IDEs)

mercredi 20 mars 2013

Installation et test de rosserial

J'ai pour l'instant un programme arduino qui commande le moteur à courant continu à partir d'ordres envoyés par un potentiomètre.
Ce mode manuel à l'avantage d'être rapide (peu de délai de communication), mais il faut maintenant prévoir une interface pour l'envoi d'ordres à partir du PC.


Pour cela je souhaite utiliser rosserial, au début sur mon PC, à terme sur le raspberry.
Je suis donc le tutoriel http://www.ros.org/wiki/rosserial_arduino/Tutorials/Arduino%20IDE%20Setup
Le tutoriel fonctionne mal sur ubuntu, mais pas du tout sur raspbian (qui n'a pas la même gestion de paquet).
Je ne sais plus trop comment j'ai fait, mais ça a fini par marché. Sauf erreur "Wprogram.h : No such file or directory compilation terminated" lors de la compilation.
Cela vient du changement de arduino depuis la version 1.0.
Il faut modifier Wprogram.h par Arduino.h dans de nombreux fichiers : comment le faire? Sur windows, j'aurai utilisé notepad++. Ici pas possible. Je pensais utiliser qui m'a permis de trouver les occurences, mais pas de faire le remplacement. J'aurai pu utiliser aussi grep avec sed, mais ça devenait un peu compliqué pour moi.
J'ai donc installé rpl qui correspond bien plus à mon usage.

sudo apt-get install rpl
 rpl -R WProgram.h Arduino.h ~/sketchbook

Une solution plus élégante http://answers.ros.org/question/11789/rosserial_arduino-and-arduino-ide-10-rc2/


Et ça marche.
J'ai pu faire le helloworld tutoriel qui me permet de recevoir les messages envoyés par l'arduino dans un terminal
Astuce :CTRL +s permet de stopper le défilement automatique du terminal (autoscroll) et CTRL + q permet de le relancer, ce qui est bien pratique lorsque des messages passent trop vite.

J'ai ensuite insisté pour installer rosserial sur le raspberry.
Ce n'était pas si compliqué, il suffit de recompiler en utilisant catkin.
Il m'a fallu également installé python-serial
Ca tourne, mais j'ai encore des erreurs