Outils pour utilisateurs

Outils du site


paquetsbancgazetracker

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

paquetsbancgazetracker [2019/02/08 13:23] (Version actuelle)
jcombier créée
Ligne 1: Ligne 1:
 +=====Installation sur VGG=====
  
 +
 +====Installation ROS Kinetic====
 +
 +Setup your computer to accept software from packages.ros.org:​
 +  sudo sh -c 'echo "deb http://​packages.ros.org/​ros/​ubuntu $(lsb_release -sc) main" > /​etc/​apt/​sources.list.d/​ros-latest.list'​
 +
 +Set up your keys:
 +  sudo apt-key adv --keyserver hkp://​ha.pool.sks-keyservers.net:​80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
 +
 +Installation:​
 +  sudo apt-get update
 +Recommended:​
 +  sudo apt-get install ros-kinetic-desktop-full
 +Other:
 +  sudo apt-get install ros-kinetic-desktop
 +  sudo apt-get install ros-kinetic-ros-base
 +To find available packages, use:
 +  apt-cache search ros-kinetic
 +Init rosdep: ​
 +  sudo rosdep init
 +  rosdep update
 +Environement setup:
 +  echo "​source /​opt/​ros/​kinetic/​setup.bash"​ >> ~/.bashrc
 +  source ~/.bashrc
 +Dependencies for building packages:
 +  sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
 +Create a ROS Workspace:
 +  mkdir -p ~/catkin_ws
 +  cd ~/catkin_ws
 +  catkin_make
 +Source your new setup.*sh file:
 +  source devel/​setup.bash
 +  echo "​source ~/​catkin_ws/​devel/​setup.bash"​ >> ~/.bashrc (not sure)
 +  ​
 +  ​
 +==== Create your workspace (Non-admin users)====
 +
 +Before you begin, make sure that ROS Kinetic is properly installed on computer:
 +  export | grep ROS
 +  ​
 +<file txt result.txt> ​
 +declare -x ROSLISP_PACKAGE_DIRECTORIES="/​home/​tdedieu/​catkin_ws/​devel/​share/​common-lisp"​
 +declare -x ROS_DISTRO="​kinetic"​
 +declare -x ROS_ETC_DIR="/​opt/​ros/​kinetic/​etc/​ros"​
 +declare -x ROS_MASTER_URI="​http://​localhost:​11311"​
 +declare -x ROS_PACKAGE_PATH="/​home/​tdedieu/​catkin_ws/​src:/​opt/​ros/​kinetic/​share"​
 +declare -x ROS_ROOT="/​opt/​ros/​kinetic/​share/​ros"​
 +declare -x ROS_VERSION="​1"​
 +</​file> ​
 +
 +Environement setup:
 +  echo "​source /​opt/​ros/​kinetic/​setup.bash"​ >> ~/.bashrc
 +  source ~/.bashrc
 +
 +Create your Workspace:
 +  mkdir -p ~/catkin_ws
 +  cd ~/catkin_ws
 +  mkdir src
 +  catkin_make
 +
 +Source your new setup.*sh file:
 +  source devel/​setup.bash
 +  echo "​source ~/​catkin_ws/​devel/​setup.bash"​ >> ~/.bashrc
 +Note: Last command allows to avoid making the previous command at each new open terminal.
 +
 +Now you can do this to go directly to package folder:
 +  roscd <​mypackage>​
 +
 +Copy your ros package in src/:
 +  cp -r <​your_path>/<​your_package>​ ~/​catkim_ws/​src/​
 +
 +Example:
 +  cp -r ~/​Documents/​mypackage/​ ~/​catkin_ws/​src/​
 +
 +Compile your packages:
 +  catkin_make
 +
 +====Paquets pour python=====
 +  sudo apt-get install python3-pip idle3 idle-python3.5  ​
 +  sudo pip3 install matplotlib scipy
 +Pour l'​affichage des legendes avec matplotlib:
 +   sudo apt-get install dvipng ​
 +
 +
 +====Driver ueye====
 +  mkdir -p ~/Download
 +  cd ~/Download
 +  wget http://​homepages.laas.fr/​bvandepo/​files/​ueye/​uEye-Linux-4.90.06-64.tgz
 +  mkdir -p uEye-Linux-4.90.06-64
 +  cd uEye-Linux-4.90.06-64
 +  tar xvf ../​uEye-Linux-4.90.06-64.tgz
 +  sudo ./​ueyesdk-setup-4.90.06-usb-amd64.gz.run
 +  ​
 +<file txt result.txt>  ​
 +  Reload and retrigger udev to apply uEye rules...
 +***************************************************************************
 +Successfully installed ueyeusbd. Start (as root) with:
 +     /​etc/​init.d/​ueyeusbdrc start
 + 
 +If ueyeusbd hangs and does not terminate on rc '​stop'​ command,
 +run (as root)
 +     /​etc/​init.d/​ueyeusbdrc force-stop
 + 
 +NOTE that the daemon refuses to terminate if there are clients connected!
 +To uninstall, run '/​usr/​local/​share/​ueye/​bin/​ueyed_install-usb uninstall'​.
 + 
 +If a graphical desktop environment is available, one may use the
 +uEye Camera Manager to configure cameras and services. To start
 +it, type idscameramanager on the command line or in the graphical application
 +launcher. If idscameramanager shall be used for daemon configuration and service
 +control, it _must_ be started as root.
 +</​file>​
 +
 +
 +Démarrage du driver (utilisateur tdedieu autorisé via visudo):
 +  sudo /​etc/​init.d/​ueyeusbdrc start
 +  ​
 +Arrêt du driver (utilisateur tdedieu autorisé via visudo):
 +  sudo /​etc/​init.d/​ueyeusbdrc stop
 +
 +
 +====Problème====
 +Camera de la marque IDS, uEye SE USB 3.1 Gen 1 (Model: UI320xSE-M).
 +
 +===Free-run mode===
 +
 +Ueyedemo avec la configuration suivante:
 +  image size: 4104x3006
 +  subsampling:​ 1
 +  binning:1
 +  sensor_scaling:​ 1.0
 +  pixel clock: 395 Mhz
 +  exposure: 10 ms
 +  framerate: 24,35 fps
 +Résultats:
 +  fps: 24.35, failed:0
 +
 +Ueye_cam avec la configuration suivante:
 +<file txt result.txt>  ​
 +  <param name="​color_mode"​ type="​str"​ value="​rgb8"​ /> <!-- valid options: '​rgb8',​ '​mono8',​ '​bayer_rggb8'​ -->
 +
 +  <param name="​image_width"​ type="​int"​ value="​4104"​ />
 +  <param name="​image_height"​ type="​int"​ value="​3006"​ />
 +
 +  <param name="​subsampling"​ type="​int"​ value="​1"​ /> <!-- supported by only some UEye cameras -->
 +  <param name="​binning"​ type="​int"​ value="​1"​ /> <!-- supported by only some UEye cameras -->
 +  <param name="​sensor_scaling"​ type="​double"​ value="​1.0"​ /> <!-- supported by only some UEye cameras -->
 +
 +  <param name="​auto_exposure"​ type="​bool"​ value="​False"​ />
 +  <param name="​exposure"​ type="​int"​ value="​10"​ /> <!-- in ms -->
 +
 +  <param name="​auto_frame_rate"​ type="​bool"​ value="​False"​ />
 +  <param name="​frame_rate"​ type="​double"​ value="​24.0"​ />
 +  <param name="​pixel_clock"​ type="​int"​ value="​395"​ />
 +</​file>​
 +Commande:
 +  rostopic hz /​scene/​image_raw
 +<file txt result.txt> ​
 +average rate: 7.381
 + min: 0.121s max: 0.147s std dev: 0.00565s window: 183
 +average rate: 7.376
 + min: 0.121s max: 0.147s std dev: 0.00559s window: 190
 +average rate: 7.373
 + min: 0.121s max: 0.147s std dev: 0.00559s window: 198
 +average rate: 7.369
 + min: 0.121s max: 0.149s std dev: 0.00564s window: 200
 +</​file>​
 +
 +Pourquoi les images par seconde (ips) ne sont pas environ égales (facteur < 2), alors que les paramètres sont les mêmes ? Il semble que se soit l'​appelle à la fonction startFrameGrabber() dans le fichier ueye_cam_nodelet.cpp qui est trop lente. Le problème a été identifié, il s'agit de la fonction std::copy qui est exécuté en 0.25 secondes en moyenne. Dans un premier temps l'​utilisation de la fonction memcpy a fait augmenter les ips jusqu'​à 14 contre 7 avec std::copy. De plus, plusieurs copies de tampon d'​image ralentissait l'​exécution du programme. Ensuite pour éviter une nouvelle copie lors d'une souscrition à un topic (ici des images de 2048*2048 ou 4104*3006) nous utilisons un nodelet manager. Il permet l'​utilisation de ressource mémoire commun a tous les nodelets qui dépendent du manager. Ce qui permet de ne pas faire une copie lorsqu'​on souscrit à un topic publié dans le nodelet manager. Cette méthode est utilisé pour les flux vidéo et image de grandes tailles.
 +
 +====Remarques====
 +
 +===Trigger-mode===
 +
 +Lorsque la configuration maître-escalves est mise en place. Il est important de savoir que les ips peuvent être réduite. Par exemple, au temps d'​exposition maximum, la fréquence d'​image est environ moitié moins élevée qu'en mode freerun.
 +
 +De plus, pour ne pas perdre des images, il faut régler les paramètres en fonction de la caméra la plus lente pour qu'​elle arrive à suivre.
 +
 +Lorsque vous voulez visualiser les images des caméras:
 +  roscore
 +  rosrun image_view image_view image:​=/<​nom_topic>/​image_raw (maître)
 +  rosrun image_view image_view image:​=/<​nom_topic>/​image_raw (esclave1)  ​
 +  rosrun image_view image_view image:​=/<​nom_topic>/​image_raw (esclave2)
 +  ...
 +Important: Lancez la visualisation du maître avant les esclaves.
 +
 +Il est possible de faire également:
 +  roslaunch ueye_cam view_me.launch (caméras gauche, droite et scène)
 +  roslaunch ueye_cam view_stereo.launch (caméras gauche et droite)
 +  roslaunch ueye_cam view_scene.launch (caméra scène)
 +
 +
 +
 +====Installation editeur atom====
 +  mkdir -p ~/Download
 +  cd ~/Download
 +  wget http://​homepages.laas.fr/​bvandepo/​files/​ueye/​atom-amd64.deb
 +  sudo dpkg -i atom-amd64.deb
 +  ​
 +  ​
 +====Installation AprilTag====
 +https://​april.eecs.umich.edu/​software/​apriltag.html
 +
 +  mkdir -p ~/Download
 +  cd ~/Download
 +  wget https://​april.eecs.umich.edu/​media/​apriltag/​apriltag-2016-12-01.tgz
 +  tar -xvzf apriltag-2016-12-01.tgz
 +  cd apriltag-2016-12-01
 +  make -j4
 +Il y a des problèmes de droits d'​accès,​ sudo n'a pas certains droits pour appliquer les règles du makefile  ​
 +  sudo make install
 +  ​
 +  ​
 +patch à mettre dans le dossier ​  ​~/​Download/​apriltag-2016-12-01
 +<file txt makefile_april.patch>​
 +--- Makefile 2018-07-02 10:​32:​59.653346000 +0200
 ++++ Makefile 2018-07-02 10:​44:​08.476560000 +0200
 +@@ -16,11 +16,13 @@
 + ​ @$(MAKE) -C example all
 + 
 + ​.PHONY:​ install
 +-install: libapriltag.so
 ++preinstall:​
 + ​ @chmod +x install.sh
 ++ @sed '​s:​^prefix=$$:​prefix=$(PREFIX):'​ < apriltag.pc.in > apriltag.pc
 ++
 ++install: libapriltag.so
 + ​ @./​install.sh $(PREFIX)/​lib libapriltag.so
 + ​ @./​install.sh $(PREFIX)/​include/​apriltag $(APRILTAG_HEADERS)
 +- @sed '​s:​^prefix=$$:​prefix=$(PREFIX):'​ < apriltag.pc.in > apriltag.pc
 + ​ @./​install.sh $(PREFIX)/​lib/​pkgconfig apriltag.pc
 +  @rm apriltag.pc
 + ​ @ldconfig
 +</​file>​
 +
 +la règle d'​install a été coupée en 2, preinstall à faire par l'​utilisateur,​ et install à faire par sudo
 +  wget http://​homepages.laas.fr/​bvandepo/​files/​ueye/​makefile_april.patch
 +  patch Makefile <​makefile_april.patch
 +  make preinstall
 +  sudo make install
paquetsbancgazetracker.txt · Dernière modification: 2019/02/08 13:23 par jcombier