Open Source Robotics

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

Keyframe

  • Também chamado: key frame, KF
  • Categoria: State estimation & navigation › Localisation
  • Tags: slam, visual-odometry, mapping, state-estimation, bundle-adjustment

Um quadro selecionado que um sistema de SLAM ou de mapeamento mantém, com sua pose e suas observações, para otimização posterior, enquanto a maioria dos outros quadros é usada brevemente e descartada.

Definição

Quadro-chave (keyframe) é um entre um pequeno conjunto de imagens de câmera ou varreduras de sensor que um sistema de SLAM, odometria ou mapeamento decide manter. Todo quadro que chega é usado para rastrear o movimento do sensor, mas apenas os quadros-chave são armazenados com sua pose estimada e suas observações, como features de imagem, profundidade ou pontos de lidar. O mapa e a trajetória são então refinados usando esses quadros-chave em vez de todos os quadros. A abordagem foi estabelecida para SLAM visual em tempo real pelo PTAM, de Georg Klein e David Murray em 2007, que separou rastreamento e mapeamento em threads distintas, e foi desenvolvida depois em sistemas como o ORB-SLAM.

A regra para criar um novo quadro-chave é uma decisão de projeto central. Critérios comuns incluem o tempo ou a distância desde o último quadro-chave, paralaxe suficiente para triangular novos pontos e uma queda na sobreposição da vista atual com o último quadro-chave, medida por exemplo por features compartilhadas ou por voxels do mapa compartilhados. Os sistemas também descartam (cull) quadros-chave que se tornaram redundantes. Com poucos quadros-chave o rastreamento se perde ou o mapa fica esparso; com quadros-chave demais a otimização fica mais lenta sem acrescentar informação.

Os quadros-chave são o que torna o SLAM baseado em otimização viável em custo. O ajuste de feixes (bundle adjustment) e a otimização do grafo de poses rodam sobre os quadros-chave, muitas vezes só os de uma janela local, e a busca de fechamento de loop compara novos quadros com os quadros-chave armazenados. Em sistemas de mapeamento implícito neural e denso, um conjunto de quadros-chave é reproduzido durante o treinamento do mapa para que regiões observadas antes não sejam esquecidas à medida que a rede ou a grade de features é atualizada com novos quadros.

Por que importa

Os sensores produzem muito mais quadros do que um robô consegue otimizar em tempo real. A seleção de quadros-chave decide qual informação é mantida, por isso afeta diretamente a qualidade do mapa, a robustez do rastreamento, o uso de memória e o orçamento computacional de todo sistema de SLAM construído sobre ela.

Principais aplicações

  • Ajuste de feixes local em SLAM visual e visual-inercial
  • Detecção de fechamento de loop contra uma base de quadros-chave armazenados
  • Reprodução de observações passadas em mapeamento implícito neural e denso
  • Relocalização após perda de rastreamento
  • Construção de mapas leves para localização de longo prazo

Na prática

Uma equipe que roda um sistema de SLAM visual-inercial em um suporte de mão a 30 quadros por segundo percebe que apenas alguns quadros-chave por segundo são criados ao caminhar e quase nenhum quando parada. Ao entrar em um corredor pobre em features, o rastreamento fica frágil; baixar o limiar de sobreposição para que os quadros-chave sejam inseridos mais cedo ajuda a manter pontos triangulados suficientes. Para um sistema neural de mapeamento com lidar, eles definem a regra de quadros-chave para que uma nova varredura seja mantida quando sua sobreposição com o último quadro-chave cai abaixo de um limiar, e cada passo de otimização amostra raios do quadro atual e de uma seleção de quadros-chave armazenados. Eles acompanham a contagem de quadros-chave em execuções longas, já que um conjunto sem limite acabará deixando a otimização mais lenta.

Equívocos comuns

  • Todo quadro passa a fazer parte do mapa — a maioria dos quadros é usada apenas para rastreamento; somente os quadros-chave selecionados são armazenados e otimizados
  • Mais quadros-chave sempre dão um mapa melhor — quadros-chave redundantes acrescentam computação com pouca informação nova, e é por isso que os sistemas os descartam
  • Um quadro-chave em SLAM é o mesmo que um quadro-chave em animação — em SLAM é uma observação de sensor armazenada com uma pose, não uma pose definida à mão usada para interpolação

Quem deve saber

  • Engenheiros de SLAM e de odometria visual
  • Desenvolvedores de sistemas de mapeamento 3D neural e denso
  • Equipes de navegação de drones e robôs móveis
  • Estudantes de visão computacional que estudam structure from motion

Tecnologias relacionadas

  • ORB-SLAM
  • PTAM
  • Ajuste de feixes (Bundle Adjustment)
  • Odometria visual-inercial (Visual-Inertial Odometry)
  • Saco de palavras visuais (Bag of Visual Words)

Termos relacionados

  • SLAM
  • Visual Odometry
  • Pose Graph Optimization
  • Neural Implicit Representation
  • Neural Radiance Field
  • Loop Closure

Projetos relacionados

  • LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
  • oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required

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