image_pipeline
La pila de cámara estándar de ROS: calibración, rectificación, estéreo y profundidad
Licencia
BSD-3-Clause
Resumen
image_pipeline es la pila canónica de procesamiento de cámaras de ROS, mantenida por ros-perception. Sus paquetes llevan las cámaras de un robot desde la salida cruda del driver hasta imágenes calibradas y rectificadas y datos 3D: camera_calibration (calibración interactiva con tablero de ajedrez), image_proc (debayering y rectificación), stereo_image_proc (disparidad y nubes de puntos), depth_image_proc (conversiones de profundidad a nube de puntos y registro) e image_view. Prácticamente todo robot ROS con cámara ejecuta alguna parte de esta pila.
La pila se organiza como nodos ROS 2 componibles conectados por tópicos de image_transport y mensajes de calibración camera_info. camera_calibration ofrece la clásica GUI interactiva que calcula los intrínsecos monoculares o estéreo a partir de vistas de un tablero de ajedrez y los escribe en el driver de la cámara. image_proc consume imágenes crudas más camera_info y emite variantes mono/color y rectificadas, encargándose del demosaicing de Bayer y de la eliminación de distorsión; los nodos de crop/resize/decimate remodelan los flujos a bajo coste. stereo_image_proc ejecuta disparidad por block matching entre pares rectificados y produce nubes de puntos estéreo, mientras que depth_image_proc convierte las imágenes de profundidad de sensores RGB-D en nubes de puntos, registra la profundidad contra los frames de color y convierte codificaciones métricas/cuantizadas. Todo soporta composición en tiempo de ejecución para pipelines intraproceso zero-copy en ROS 2, y las convenciones que estableció — la semántica de camera_info, la nomenclatura de tópicos image_raw/image_rect — son el contrato de facto entre drivers de cámara y código de percepción en todo el ecosistema ROS.
Por qué importa
image_pipeline define cómo funcionan las cámaras en ROS: su GUI de calibración es donde la mayoría de los roboticistas calibró su primera cámara, y sus convenciones de tópicos y camera_info son el contrato que permite que cualquier driver de cámara ROS hable con cualquier pila de percepción ROS.
Qué problema resuelve
La salida cruda de una cámara está sin calibrar, distorsionada, con patrón de Bayer y en 2D. image_pipeline la convierte en imágenes calibradas y rectificadas, mapas de disparidad y nubes de puntos con nodos estándar y componibles — para que el código de percepción nunca tenga que reimplementar la fontanería de cámara.
Puntos clave
- GUI interactiva de calibración con tablero de ajedrez para cámaras monoculares y estéreo
- image_proc: debayering, eliminación de distorsión y rectificación guiadas por camera_info
- stereo_image_proc: disparidad por block matching y nubes de puntos estéreo
- depth_image_proc: conversión de profundidad a nube de puntos y registro de profundidad a color
- Nodos ROS 2 componibles con soporte de pipelines intraproceso zero-copy
Para quién es
- Desarrolladores ROS que integran cámaras
- Ingenieros de percepción que construyen pipelines estéreo/RGB-D
- Estudiantes de robótica que calibran su primera cámara
- Autores de drivers de cámara que siguen las convenciones de ROS
Limitaciones
- El estéreo clásico por block matching está anticuado frente a matchers aprendidos o basados en SGM
- El flujo de la GUI de calibración es manual — no hay calibración automatizada sin patrón
- El ajuste de rendimiento (QoS, composición) queda en manos del integrador