Table des matières
Thèse de master d'Aaron Montoya
Swiss Ranger 3000
installation du driver
dpkg -i libmesasr-dev-1.0.12-583.i386.deb sudo dpkg -i libmesasr-dev-1.0.12-583.i386.deb
tentative d'installation du driver sur mon linux:
sudo dpkg -i libmesasr-dev-1.0.12-583.i386.deb
[sudo] password for bvdp: Sorry, try again. [sudo] password for bvdp: Sélection du paquet libmesasr-dev précédemment désélectionné. (Lecture de la base de données… 170348 fichiers et répertoires déjà installés.) Dépaquetage de libmesasr-dev (à partir de libmesasr-dev-1.0.12-583.i386.deb) … dpkg : des problèmes de dépendances empêchent la configuration de libmesasr-dev : libmesasr-dev dépend de libusb-0.1-4 (= 2:0.1.12-13) ; cependant :
La version de libusb-0.1-4 sur le système est 2:0.1.12-8.
dpkg : erreur de traitement de libmesasr-dev (–install) : problèmes de dépendances - laissé non configuré Des erreurs ont été rencontrées pendant l'exécution : libmesasr-dev
description module genom
installation du soft openrobots
echo $CVSROOT export CVSROOT=bvandepo@cvs.laas.fr:/cvs/openrobots mkdir et cd cvs checkout modules/sranger
exemples d'images
infos
mesure distance : 4 mesures d'amplitude à 20Mhz*4 pour une lumiere emise à 20Mhz → déduit phase et amplitude
probleme pour les objets bougeant rapidement
il faut une alimentation de 12V+-5%, soit de 11,4V à 12,6V… c'est limite pour alimenter en direct avec 3 éléments LIPO
consommation: 12 W typiquement, 18 W Max
utiliser l'information de reflectance pour attribuer une confiance aux points 3D
temps d'exposition réglable entre 200us et 5120 us: valeur 0 pour 200us et 255 pour 5120us
Information de distance codée sur 16 bits pour chaque points: 0 pour 0m, 0xffff pour 7,5 m
Information de distance est modulo 7,5m (1 periode du signal sinusoidal à 20Mhz) correspond a la durée du trajet de la lumiere sur 7,5m *2
grosse influence du temps d'intégration sur le bruit, mais au dela d'un certain seuil, le déplacement de la caméra dégrade les données
Etalonnage
http://www.mesa-imaging.ch/KnowledgeBase.php?KeyWords=driver&what=doit
What is the calibration data for? No calibration files are needed for the SR4000 because the calibration data is stored in the camera at factory.
For SR3000 and older models: For high quality measurements each camera has a camera specific calibration file. The name of this file is: camDataSR2B.xml for an SR-2B and camData.xml (e.g. camData000877f9.xml) for an SR3000. The file name for an SR3100 is camData.xml (e.g. camData100877f9.xml). If there is no calibration file for an SR3000/SR3100, the driver will try to download the calibration file from the Internet when the SR_Open() function is called.
ancienne facon d'installer le driver
droits d'acces:
liste des devices usb
/sbin/lsusb
/devices
T: Bus=01 Lev=01 Prnt=01 Port=05 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0852 ProdID=0074 Rev= 1.00 S: Manufacturer=CSEM SA S: Product=3D-SR3000 C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none) E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
pour:
Bus 001 Device 004: ID 0852:0074 CSEM
sudo chmod a+rw /proc/bus/usb/001/004
module genom sranger
installation: git clone ssh:softs.laas.fr/git/robots/robotpkg setenv CVSROOT login@cvs.laas.fr:/cvs/openrobots cvs checkout -P modules/sranger git clone ssh:softs.laas.fr/git/robots/robotpkg ne marche pas a cause de mon compte??
recupere sur le compte d'arnaud
git clone ssh://adegroot@tournefeuille.laas.fr//home/adegroot/robotpkg cd robotpkg/bootstrap/ ./bootstrap --prefix=$HOME/openrobots cd ../architecture/genom setenv ROBOTPKG_BASE /home/bvandepo/openrobots/ make install
cd openrobots/modules/sranger/ setenv PATH ${PATH}:${ROBOTPKG_BASE}/bin rehash genom -t sranger cd ../ cd robotpkg/localization/pom-genom/ make install
cd openrobots/modules/sranger/
genom -r sranger setenv PKG_CONFIG_PATH ${PKG_CONFIG_PATH}:${ROBOTPKG_BASE}/lib/pkgconfig setenv PKG_CONFIG_PATH ${ROBOTPKG_BASE}/lib/pkgconfig genom -t sranger ./configure --prefix=$HOME/openrobots
setenv PATH ${PATH}:${ROBOTPKG_BASE}/bin rehash cd robotpkg/localization/pom-genom/ make install cd ../openrobots/modules/sranger/ setenv PKG_CONFIG_PATH ${ROBOTPKG_BASE}/lib/pkgconfig genom -t sranger ./configure --prefix=$HOME/openrobots make
il manque le fichier libusbSR.h
find . -name libusbSR.h
il n'est pas sur la machine,
ls /usr/local/openrobots/hardlib/swissranger/
création module sranger
cd modules/sranger genom -t sranger configure make make install
lancement du module
h2 init
Nouveau driver
driver en .deb telecharge et decompresse:
/home/bvandepo/Desktop/libmesasr-dev-1.0.12-608.i386/data/usr
eventuellement décompresser pour voir le contenu
/home/bvandepo/Desktop/libmesasr-dev-1.0.12-608.i386/data/usr/share/doc/libmesasr-dev/examples
voir le fichier :
/home/bvandepo/Desktop/libmesasr-dev-1.0.12-608.i386/data/usr/share/doc/libmesasr-dev/README
pour convertir du .deb vers un .rpm
super doc sur les gestionnaires de paquet, alien etc…
http://www.commentcamarche.net/faq/1328-linux-installer-les-programmes-gestion-des-paquets-compil
pas trouve sous fedora… je l'installe sous mon ubuntu
sudo apt-get install alien scp bvandepo@borderouge.laas.fr:/home/bvandepo/Desktop/libmesasr-dev-1.0.12-608.i386.deb ./ alien --to-rpm libmesasr-dev-1.0.12-608.i386.deb scp libmesasr-dev-1.0.12-609.i386.rpm bvandepo@borderouge.laas.fr:/home/bvandepo/Desktop
puis sous fedora
sudo yum --nogpgcheck install libmesasr-dev-1.0.12-609.i386.rpm
copie executable dans
/usr/bin/libMesaSRTester
Documentation:
cd /usr/share/doc/libmesasr-dev/ sudo chown bvandepo * sudo gunzip README.gz gedit README
programme d'exemple:
cd /usr/share/doc/libmesasr-dev/examples g++ -lusbSR TestSuite.cpp TestSRCustomer.cpp libMesaSRTester.cpp -o libMesaSRTester
TestSRCustomer.cpp:20:25: error: stropts.h: No such file or directory TestSRCustomer.cpp: In function ‘int _kbhit()’: TestSRCustomer.cpp:44: error: ‘ioctl’ was not declared in this scope
grep -nri stropts.h *
j'essaie d'ajouter: #define BFIN mais non…
TestSRCustomer.cpp: In member function ‘void CTestSRCustomer::TestBasic()’: TestSRCustomer.cpp:141: error: ‘SR_Open’ was not declared in this scope TestSRCustomer.cpp: In member function ‘void CTestSRCustomer::TestDataDump()’: TestSRCustomer.cpp:318: error: ‘SR_Open’ was not declared in this scope TestSRCustomer.cpp: In member function ‘void CTestSRCustomer::TestTrial()’: TestSRCustomer.cpp:382: error: ‘SR_Open’ was not declared in this scope
non ce n'est pas bon, B_FIN est pour compiler pour le DSP Blackfin, il ne faut pas le definir
SOLUTION pour compiler le programme d'exemple
remplacer ligne 22 du fichier TestSRCustomer.cpp:
#include <stropts.h>
par:
#include <sys/ioctl.h>
pour faire fonctionner la sr3000 sous virtualbox
creer un filtre usb pour que la camera soit automatiquement redirigee vers le machine virtuelle editer ce filtre pour ne garder que le champ “nom du fabriquant”
pour avoir les droits d'acces vers le periph usb avec udev
créer le fichier /etc/udev/rules.d/99-sranger.rules
# CSEM SwissRanger rules SYSFS{idVendor}=="0852", SYSFS{idProduct}=="0074", MODE="0666", OWNER="root", GROUP="root"=====Installation sur ubuntu sony =====
sudo aptitude install libmesasr-dev-1.0.12-608.i386.deb
aptitude search libusb
p libusb++-0.1-4c2 - userspace C++ USB programming library p libusb++-dev - userspace C++ USB programming library development files i libusb-0.1-4 - userspace USB programming library i A libusb-dev
sudo dpkg -i libmesasr-dev-1.0.12-608.i386.deb
Sélection du paquet libmesasr-dev précédemment désélectionné. (Lecture de la base de données… 171813 fichiers et répertoires déjà installés.) Dépaquetage de libmesasr-dev (à partir de libmesasr-dev-1.0.12-608.i386.deb) … dpkg : des problèmes de dépendances empêchent la configuration de libmesasr-dev : libmesasr-dev dépend de libusb-0.1-4 (= 2:0.1.12-13) ; cependant : La version de libusb-0.1-4 sur le système est 2:0.1.12-8. dpkg : erreur de traitement de libmesasr-dev (–install) : problèmes de dépendances - laissé non configuré Des erreurs ont été rencontrées pendant l'exécution : libmesasr-dev
pour forcer l'installation sans checker les dépendances
sudo dpkg -i --force-all libmesasr-dev-1.0.12-608.i386.deb
pendant l'install, le fichier /etc/udev/rules.d/46-mesa.rules a été créé, il contient:
BUS!="usb", SUBSYSTEM!=="usb_device", ACTION!="add", GOTO="kcontrol_rules_end" #Swissranger SR3k(old),SR3k,SR4k SYSFS{idVendor}=="0852", SYSFS{idProduct}=="0074", MODE="666", GROUP="usb" SYSFS{idVendor}=="1ad2", SYSFS{idProduct}=="0074", MODE="666", GROUP="usb" SYSFS{idVendor}=="1ad2", SYSFS{idProduct}=="0075", MODE="666", GROUP="usb" LABEL="kcontrol_rules_end"
a la compilation du programme d'exemple j'ai une erreur que la librairie n'est pas trouvée
locate libmesasr.so
/usr/lib/libmesasr.so /usr/lib/libmesasr.so.1.0.12 /usr/lib/libmesasr.so.1.0.12.608
ajouter /usr/lib à LD_LIBRARY_PATH dans ~/.bashrc
ensuite pour compiler le nom de la lib est erroné dans la ligne de commande fournie, il faut taper:
g++ -lmesasr TestSuite.cpp TestSRCustomer.cpp libMesaSRTester.cpp -o libMesaSRTester
/usr/include/libMesaSR.h
/usr/lib/libmesasr.so.1.0.12
driver player
peut être un driver pour le sr3000 avec des sources, ce qui permettrait de l'utiliser avec une gumstix??
driver sr3000 open source? http://old.nabble.com/problem-setting-parameters-for-sr3000-driver.-td26787748.html