Bonjour à tous!
Je veux partager mon expérience avec la caméra Intel RealSense, modèle d435 . Comme vous le savez, de nombreux algorithmes de vision industrielle nécessitent un étalonnage préalable de la caméra . Il se trouve que sur notre projet, nous utilisons ROS pour construire des composants individuels d'un système intelligent automatisé. Cependant, après avoir étudié Internet en russe, je n'ai trouvé aucun tutoriel judicieux sur ce sujet. Cette publication vise à combler cette lacune.
Prérequis logiciel
Étant donné que ROS fonctionne sur les systèmes Unix, je suppose que nous avons le système Ubuntu 16.04 disponible. Je ne décrirai pas les détails d'installation détaillés, je ne donnerai que des liens vers les tutoriels correspondants.
sudo apt-get install python-opencv
Installation des pilotes RealSense
- Tout d'abord, vous devez installer les pilotes de la caméra.
- Le package ROS pour la caméra est ici . Au moment de la publication, la dernière version était la 2.0.3. Pour installer le package, vous devez télécharger le code source et le décompresser dans le répertoire personnel de ROS. Ensuite, nous devrons l'installer:
catkin_make clean catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release catkin_make install echo "source path_to_workspace/devel/setup.bash" >> ~/.bashrc source ~/.bashrc
Test de la caméra
Après avoir installé la caméra, nous devons nous assurer que les pilotes fonctionnent comme ils le devraient. Pour ce faire, nous connectons la caméra via USB et exécutons la démo:
roslaunch realsense2_camera demo_pointcloud.launch
Cette commande ouvrira la visualisation ROS, sur laquelle vous pourrez voir le nuage de points enregistré dans le sujet /camera/depth/color/points
:

Calibrage de la caméra
Vous trouverez ci-dessous une version adaptée du tutoriel d'OpenCV .
import numpy as np import cv2 import glob
Pour que ce script fonctionne, nous avons besoin d'au moins 10 images d'échiquier reçues de notre caméra. Pour cela, nous pouvons utiliser, par exemple, le package image_view ROS ou tout autre programme pouvant prendre des captures d'écran d'une caméra USB. Les images capturées doivent être placées dans n'importe quel dossier. Exemple d'image:

Après avoir exécuté le script, les résultats de l'étalonnage seront enregistrés dans un fichier
calibration.npy
. Ces données peuvent ensuite être utilisées avec le script suivant:
calibration_data = np.load('path_to_images/calibration.npy') mtx = calibration_data[0] dist = calibration_data[1] rvecs = calibration_data[2] tvecs = calibration_data[3]
Conclusion
Nous avons pu calibrer avec succès la caméra RealSense d435 en utilisant OpenCV2 et ROS. Les résultats de l'étalonnage peuvent être utilisés dans des applications telles que le suivi d'objets, les marqueurs aruco, les algorithmes de réalité augmentée et bien d'autres. Dans le prochain article, je voudrais développer le suivi des marqueurs aruco.