Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

image_pipeline

La pile caméra standard de ROS : calibration, rectification, stéréo et profondeur

Licence

BSD-3-Clause

Aperçu

image_pipeline est la pile canonique de traitement caméra de ROS, maintenue par ros-perception. Ses paquets font passer les caméras d'un robot de la sortie brute du pilote à des images calibrées, rectifiées et à des données 3D : camera_calibration (calibration interactive par damier), image_proc (débayerisation et rectification), stereo_image_proc (disparité et nuages de points), depth_image_proc (conversions profondeur-vers-nuage et recalage) et image_view. Pratiquement tous les robots ROS équipés d'une caméra exécutent une partie de cette pipeline.

La pile est organisée en nœuds ROS 2 composables reliés par des topics image_transport et des messages de calibration camera_info. camera_calibration fournit la classique interface graphique interactive qui calcule les intrinsèques monoculaires ou stéréo à partir de vues d'un damier et les écrit dans le pilote de la caméra. image_proc consomme les images brutes plus camera_info et émet des variantes mono/couleur et rectifiées, en gérant le dématriçage de Bayer et la suppression de la distorsion ; les nœuds crop/resize/decimate remodèlent les flux à moindre coût. stereo_image_proc calcule la disparité par block-matching entre paires rectifiées et produit des nuages de points stéréo, tandis que depth_image_proc convertit les images de profondeur des capteurs RGB-D en nuages de points, recale la profondeur sur les trames couleur et convertit les encodages métriques/quantifiés. L'ensemble prend en charge la composition à l'exécution pour des pipelines intra-processus zéro-copie sur ROS 2, et les conventions qu'il a établies — la sémantique de camera_info, le nommage des topics image_raw/image_rect — sont le contrat de facto entre pilotes de caméra et code de perception dans tout l'écosystème ROS.

Pourquoi c'est important

image_pipeline définit le fonctionnement des caméras dans ROS : son interface de calibration est celle avec laquelle la plupart des roboticiens ont calibré leur première caméra, et ses conventions de topics et de camera_info sont le contrat qui permet à n'importe quel pilote de caméra ROS de dialoguer avec n'importe quelle pile de perception ROS.

Le problème résolu

La sortie brute d'une caméra est non calibrée, distordue, en motif de Bayer et en 2D. image_pipeline la transforme en images calibrées et rectifiées, cartes de disparité et nuages de points avec des nœuds standard et composables — pour que le code de perception ne réimplémente jamais la plomberie caméra.

Points clés

  • Interface graphique de calibration interactive par damier pour caméras monoculaires et stéréo
  • image_proc : débayerisation, suppression de la distorsion et rectification pilotées par camera_info
  • stereo_image_proc : disparité par block-matching et nuages de points stéréo
  • depth_image_proc : conversion profondeur-vers-nuage de points et recalage profondeur-vers-couleur
  • Nœuds ROS 2 composables prenant en charge les pipelines intra-processus zéro-copie

Pour qui

  • Développeurs ROS intégrant des caméras
  • Ingénieurs perception construisant des pipelines stéréo/RGB-D
  • Étudiants en robotique calibrant leur première caméra
  • Auteurs de pilotes de caméra suivant les conventions ROS

Limites

  • La stéréo classique par block-matching est datée face aux appariements appris ou basés sur SGM
  • Le flux de calibration par interface graphique est manuel — pas de calibration automatisée sans mire
  • Le réglage des performances (QoS, composition) est laissé à l'intégrateur

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.