Outils pour utilisateurs

Outils du site


synchro_camera

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
synchro_camera [2016/11/16 23:41]
bvandepo
synchro_camera [2016/11/17 00:36] (Version actuelle)
bvandepo
Ligne 43: Ligne 43:
  
  
-Grab the images from 2 cameras: 
-  roslaunch ueye_cam stereo.launch 
  
 ====Création du node ueye_cam_test pour test synchro==== ====Création du node ueye_cam_test pour test synchro====
Ligne 208: Ligne 206:
  
 Adapter dans  ~/catkin_ws_/src/ueye_cam_test/src/ueye_cam_test.cpp la ligne pour s'abonner au topic image/raw ou  /stereo/right/image_raw et /stereo/left/image_raw Adapter dans  ~/catkin_ws_/src/ueye_cam_test/src/ueye_cam_test.cpp la ligne pour s'abonner au topic image/raw ou  /stereo/right/image_raw et /stereo/left/image_raw
-  bool stereo(false);  ou  bool stereo(truee);  +  bool stereo(false);  ou  bool stereo(true);  
  
  
Ligne 222: Ligne 220:
   rosrun ueye_cam_test ueye_cam_test_exe   rosrun ueye_cam_test ueye_cam_test_exe
  
 +TODO: expliquer pour lancer en stéréo et tester
  
  
Ligne 234: Ligne 233:
 {{http://homepages.laas.fr/bvandepo/files/synchro_camera/_calibUeye-00008right.png?600}} {{http://homepages.laas.fr/bvandepo/files/synchro_camera/_calibUeye-00008right.png?600}}
  
 +
 +=====BagFromFiles node=====
 +Node créé par Raul Mur Artal et adapté par Ariel pour gérer les séquences en stéréo
 +
 +Nous l'utilisons pour regénérer un fichier bag contenant une séquence d'images précédemment enregistrée par l'outils cameracalibrator.py dans le fichier calibrationdata.tar.gz . Ceci sert à pouvoir réutiliser une séquence en simulant une (paire de) caméra(s) à partir d'un fichier en utilisant rosplay. 
 +
 +il y a déjà pas mal d'explications sur: http://homepages.laas.fr/bvandepo/wiki/doku.php?id=ueye#camera_synchronization
 +
 +Pour capturer les images depuis les 2 caméras en stéréo:
 +  cd ~/catkin_ws
 +  roslaunch ueye_cam stereo.launch
 +Pour lancer l'étalonnage et sauver automatiquement les images en /tmp/calibrationdata.tar.gz 
 +  rosrun camera_calibration cameracalibrator.py --size 7x6 --square 0.108 --size 8x5 --square 0.029 right:=/stereo/right/image_raw left:=/stereo/left/image_raw
 +  click calibrate
 +  click save
 +
 +
 +
 +  cd ~/catkin_ws
 +  cd src
 +  git clone ssh://git@redmine.laas.fr/laas/users/danes/apodlubn/bagfromimages.git
 +  echo "export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/bvandepo/catkin_ws/src/bagfromimages" >>~/.bashrc
 +  mkdir build
 +  cd build
 +  cmake ..
 +  make
 +  sudo make install
 +  cd ..
 +
 +  mkdir -p ~/2ears/seq1
 +  cd ~/2ears/seq1
 +y écrire ce fichier:
 +<file sh constructbag.sh>
 +tar xvf calibrationdata.tar.gz 
 +mkdir left
 +mkdir right
 +mv left-* left/
 +mv right-* right/
 +FOLDER=`pwd`
 +echo $FOLDER
 +rosrun bagfromimages bagfromimages  $FOLDER/left/ $FOLDER/right/ .png 2 $FOLDER/images.bag
 +rm -rf left/
 +rm -rf right/
 +</file>
 +  chmod a+x constructbag.sh
 +  ./constructbag.sh
 +
 +Le script génère dans le dossier courant un fichier images.bag 
 +
 +Les paramètres passés à rosrun bagfromimages bagfromimages sont les suivants:
 +  -1: Left images folder
 +  -2: Right images folder
 +  -3: image format
 +  -4: number of frames per second to export to the bag file
 +  -5: bag's output
 +
 +
 +
 +Pour rejouer une séquence enregistrée:
 +  cd ~/2ears/seq1
 +  rosbag play images.bag
 +  
 +  
 +=====Modifications pour le cas où les images stéréos sont inclinées à 90 degrés=====
 +
 +
 +if the rectified images appears small in a corner, apply this change to the .py:
 +  gedit  /opt/ros/kinetic/lib/python2.7/dist-packages/camera_calibration/calibrator.py
 +Après:
 +           cv2.stereoCalibrate(opts, lipts, ripts,
 +                               self.l.intrinsics, self.l.distortion,
 +                               self.r.intrinsics, self.r.distortion,
 +                               self.size,
 +                               self.R,                            # R
 +                               self.T,                            # T
 +                               criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 1, 1e-5),
 +                               flags = flags)
 +Changer: 
 +  self.set_alpha(0)
 +en:
 +  self.set_alpha(-1.0)
 +  
 +pour calculer la différence entre les 2 fichier et générer le patch:  
 +  cd ~/2ears
 +  diff calibrator.py /opt/ros/kinetic/lib/python2.7/dist-packages/camera_calibration/calibrator.py  >>calibrator.diff
 +  sudo patch /opt/ros/kinetic/lib/python2.7/dist-packages/camera_calibration/calibrator.py calibrator.diff
 +
 +  
 +
 + 
 +create the ini files from yaml files:
 +  rosrun camera_calibration_parsers convert left.yaml left.ini
 +  rosrun camera_calibration_parsers convert right.yaml right.ini
 +  
 +Script pour convertir les résultats d'étalonnage en yaml et lancer le noeuds d'acquisition des images en stéréo avec les caméras réelles:
 +  
 +<file sh debugscript.sh>
 +#!/bin/bash
 +rosrun camera_calibration_parsers convert /home/bvandepo/.ros/camera_conf/stereo/left.ini /home/bvandepo/.ros/camera_info/stereo/left.yaml
 +rosrun camera_calibration_parsers convert /home/bvandepo/.ros/camera_conf/stereo/right.ini /home/bvandepo/.ros/camera_info/stereo/right.yaml
 +source ~/catkin_ws/devel/setup.bash
 +roslaunch ueye_cam stereo.launch 
 +</file>
 +
 +Script pour visualiser les images en provenance des caméras et les images épipolaires réctifiées:
 +<file sh image_procDebug.sh>
 +#ROS_NAMESPACE=stereo rosrun stmage_proc stereo_image_proc &
 +rosrun image_view image_view image:=/stereo/left/image_raw &
 +rosrun image_view image_view image:=/stereo/left/image_rect_color &
 +rosrun image_view image_view image:=/stereo/right/image_raw &
 +rosrun image_view image_view image:=/stereo/right/image_rect_color &
 +read -p "Press any key"
 +pkill image_view 
 +#pkill stereo_image_proc
 +#pkill ueye_cam
 +</file>
  
synchro_camera.1479336102.txt.gz · Dernière modification: 2016/11/16 23:41 de bvandepo