Table des matières

Thèse de master d'Aaron Montoya

https://bvdp.inetdoc.net/files/Aaron_Thesis.pdf

Swiss Ranger 3000

http://www.mesa-imaging.ch/

driver: http://www.mesa-imaging.ch/drivers.php

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

https://intranet.laas.fr/intranet/robots/wiki/OpenRobots/ModulesGuide/SrangerModule?highlight=%283000%29

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

http://wiki.mandriva.com/fr/Alien_:_Convertir_des_paquets_.RPM_et_.DEB_%C3%A0_la_vol%C3%A9e#Convertir_un_paquet_.DEB_en_.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??

http://cgi.cse.unsw.edu.au/~cs4411/wiki/index.php?title=Obstacle_avoidance_with_the_SR_Range-finder._-_Group_01_-_2009&printable=yes

driver sr3000 open source? http://old.nabble.com/problem-setting-parameters-for-sr3000-driver.-td26787748.html