Open Source Robotics

Uma coleção selecionada de projetos, ferramentas e software de robótica de código aberto de alta qualidade.

image_pipeline

A pilha padrão de câmeras do ROS: calibração, retificação, estéreo e profundidade

Licença

BSD-3-Clause

Visão geral

image_pipeline é a pilha canônica de processamento de câmeras do ROS, mantida pelo ros-perception. Seus pacotes levam as câmeras de um robô da saída bruta do driver até imagens calibradas e retificadas e dados 3D: camera_calibration (calibração interativa com tabuleiro de xadrez), image_proc (debayering e retificação), stereo_image_proc (disparidade e nuvens de pontos), depth_image_proc (conversões de profundidade para nuvem e registro) e image_view. Praticamente todo robô ROS com câmera roda alguma parte dessa pipeline.

A pilha é organizada como nós ROS 2 componíveis, conectados por tópicos image_transport e mensagens de calibração camera_info. O camera_calibration fornece a clássica GUI interativa que calcula intrínsecos monoculares ou estéreo a partir de vistas de um tabuleiro de xadrez e os grava no driver da câmera. O image_proc consome imagens brutas mais camera_info e emite variantes mono/coloridas e retificadas, cuidando do demosaico Bayer e da remoção de distorção; nós de crop/resize/decimate remodelam streams de forma barata. O stereo_image_proc roda disparidade por block matching entre pares retificados e produz nuvens de pontos estéreo, enquanto o depth_image_proc converte imagens de profundidade de sensores RGB-D em nuvens de pontos, registra a profundidade nos frames de cor e converte codificações métricas/quantizadas. Tudo suporta composição em tempo de execução para pipelines intra-processo zero-copy no ROS 2, e as convenções que ela estabeleceu — a semântica do camera_info, a nomenclatura de tópicos image_raw/image_rect — são o contrato de fato entre drivers de câmera e código de percepção em todo o ecossistema ROS.

Por que importa

image_pipeline define como câmeras funcionam no ROS: sua GUI de calibração é onde a maioria dos roboticistas calibrou sua primeira câmera, e suas convenções de tópicos e camera_info são o contrato que permite que qualquer driver de câmera ROS converse com qualquer pilha de percepção ROS.

Problema que resolve

A saída bruta de uma câmera é não calibrada, distorcida, em padrão Bayer e 2D. A image_pipeline a transforma em imagens calibradas e retificadas, mapas de disparidade e nuvens de pontos com nós padronizados e componíveis — para que o código de percepção nunca precise reimplementar o encanamento de câmera.

Pontos principais

  • GUI interativa de calibração com tabuleiro de xadrez para câmeras monoculares e estéreo
  • image_proc: debayering, remoção de distorção e retificação guiadas por camera_info
  • stereo_image_proc: disparidade por block matching e nuvens de pontos estéreo
  • depth_image_proc: conversão de profundidade em nuvem de pontos e registro de profundidade para cor
  • Nós ROS 2 componíveis com suporte a pipelines intra-processo zero-copy

Para quem é

  • Desenvolvedores ROS integrando câmeras
  • Engenheiros de percepção construindo pipelines estéreo/RGB-D
  • Estudantes de robótica calibrando sua primeira câmera
  • Autores de drivers de câmera seguindo as convenções do ROS

Limitações

  • O estéreo clássico por block matching é datado frente a matchers aprendidos ou baseados em SGM
  • O fluxo da GUI de calibração é manual — sem calibração automatizada sem alvo
  • O ajuste de desempenho (QoS, composição) fica a cargo do integrador

Este site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.