Quatorze notas de aula visuais SLAM (super fácil de entender ~)

Insira a descrição da imagem aqui

Prefácio

Finalmente cheguei ao SLAM aprendendo parte do coração.Eu acredito que você que leu este artigo não consegue suportar a tensão e a emoção em seu coração assim como eu, então vamos começar juntos!
Neste artigo, vou resumir brevemente o conhecimento mais básico de cada link do SLAM14, principalmente para ajudá-lo a ver do que fala o capítulo 14.
Se você quiser saber mais, leia um livro!
Vamos em frente!

Conhecimento Preliminar

SLAM: Localização e Mapeamento
Simultâneo Nome chinês: Localização simultânea e construção do mapa
Definição básica: O sujeito equipado com sensores específicos, sem informações ambientais prévias, constrói um modelo do ambiente durante o movimento e estima seu próprio movimento.
O sensor aqui é principalmente uma câmera, é "visual SLAM"

Divisão do capítulo

Todo o livro está dividido em duas partes:

  • Visual Basics Capítulo 1-6
  • Aplicação prática, capítulo 7-14

Aula 1: Conhecimentos preliminares
Aula 2: Visão geral do sistema SLAM, apresentando os componentes do SLAM e o trabalho específico de cada módulo. Construção de ambiente de programação e uso de IDE
Aula 3: Movimento tridimensional de corpo rígido, principalmente compreender a matriz de rotação, ângulo de Euler, quatérnion, prática usando Eigon Aula
4: Aprender grupo de Lie e álgebra de Lie, definição e uso; prática usando operação Sophus
Aula 5: Modelo de câmera pinhole, a expressão da imagem no computador; Use OpenCV para chamar os parâmetros internos e externos da câmera.
Aula 6: Otimização não linear, incluindo a base teórica de estimativa de estado, problema de mínimos quadrados, método de gradiente descendente; use Ceres e g2o para Experiência de ajuste de curva
Aula 7: Odometria visual baseada no método de ponto de característica, extração e correspondência de característica, cálculo de restrições geométricas polares, PnP e ICP, etc. Use o método acima para estimar o movimento entre duas imagens.
Aula 8: Odometria visual direta, aprenda os princípios do fluxo óptico e métodos diretos e use os métodos acima para realizar uma estimativa de movimento direto simples.
Aula 9: Otimização de back-end, discute principalmente Bundle Adjustment (BA) em profundidade, usa esparsidade para acelerar o processo de solução e usa Ceres e g2o para escrever programas BA, respectivamente.
Aula 10: Pose map na otimização de back-end, introduzir SE (3), Sim (3) pose map, usar g2o para otimizar uma pose ball.
Aula 11: Detecção de loop, apresentar o modelo de saco de palavras Detecção de loop usando DBoW3 para escrever programa de treinamento de dicionário e programa de detecção de loop
. Aula 12: Construção de mapa, usar monocular para estimar mapa de profundidade densa, discutir o processo de construção de mapa denso RGB-D
Aula 13: Prática de engenharia, construir binóculos Estrutura de odometria visual, uso abrangente de conhecimento prévio , use o conjunto de dados Kitti para testar o desempenho.
Aula 14: Apresentar a solução SLAM de código aberto atual e direção de desenvolvimento futuro

Conhecimento básico necessário

  • Matemática avançada, álgebra linear, teoria da probabilidade
  • Base da linguagem C ++
  • Noções básicas do sistema Linux

Aula 2 Primeira compreensão do SLAM

SLAM responde a duas perguntas principais:

  1. Onde estou? -Posicionamento
  2. Como é o ambiente circundante? --Mapeamento

Sensores

Dois tipos de sensores:
instalados no ambiente: código QR, GPS e
carregados no corpo do robô: em
comparação com os dois tipos de sensores, laser e câmera, o mapeamento a laser foi basicamente estudado de forma clara e o SLAM visual não foi estável e confiável.
Câmera: leve, barata, rica em informações
Desvantagens: oclusão, afetada pela luz, grande quantidade de cálculo,
monocular, binocular, câmera de profundidade (TOF / luz estruturada)

Estrutura visual SLAM clássica

Insira a descrição da imagem aqui

  • Leitura das informações do sensor: No visual SLAM, é principalmente a leitura e o pré-processamento das informações da imagem da câmera. Se for um robô, também pode ser a leitura e sincronização de informações como discos de código e sensores inerciais
  • Odometria visual frontal (Odometria Visual, VO): A tarefa da odometria visual é estimar o movimento da câmera entre as imagens adjacentes e a aparência do mapa local, também conhecido como front end (Front End)
  • Otimização não linear de back-end (Otimização): O back-end recebe a pose da câmera medida pelo odômetro visual em momentos diferentes e as informações da detecção do loop, e os otimiza para obter um mapa globalmente consistente. Porque depois de VO, também é chamado de Back End
  • Detecção de fechamento de loop: a detecção de loop detecta se o robô alcançou a posição anterior. Se um loop for detectado, ele fornecerá as informações ao backend para processamento.
  • Mapeamento: constrói um mapa correspondente aos requisitos da tarefa com base na trajetória estimada

A expressão matemática do problema SLAM

Em relação à descrição matemática do SLAM, existem principalmente duas equações, nomeadamente a equação da posição e a equação da observação:
Insira a descrição da imagem aqui
xk representa a posição atual do robô, uk é a leitura ou entrada do sensor de movimento e zkj são os dados de observação estabelecidos por o robô e o ambiente.
Além disso, tanto a equação de posição como a equação de observação precisam introduzir ruído, ou seja, w e v na fórmula e, portanto, precisam ser otimizados no backend, ou estimativa de estado, para encontrar o mapa de pose mais provável.
Você pode consultar a figura abaixo para ter uma compreensão mais clara
Insira a descrição da imagem aqui

Programação Linux Básico

Você pode consultar outra postagem minha, que registra as instruções operacionais mais básicas do Linux. Para iniciantes, você pode reduzir a carga de aprender
notas de estudo de conhecimento básico do Linux (instruções comuns)

Use Cmake

Esta parte não é bem compreendida. Pode ser simplesmente entendido que haverá um CmakeList para ajudar o projeto a determinar como compilar
no Linux. Quando terminarmos de escrever o código-fonte, precisamos compilar, vincular o projeto de vários arquivos e gerar um arquivo executável. Para obter a depuração e a execução, o Cmake pode gerar um makefile para o projeto e, em seguida, usar o comando make (a biblioteca C ++ é compilada com g ++) para compilar o projeto inteiro de acordo com o conteúdo do makefile.
o livro apresenta brevemente como usar a linha de comando e o cmake O exemplo de construção e execução do projeto é mais interessante

Aula 3 Movimento de corpo rígido no espaço tridimensional

  • O objetivo desta aula: compreender a descrição do movimento de corpo rígido, matriz de rotação, matriz de transformação, quaternion e ângulo de Euler
  • Domine a matriz da biblioteca Eigen e o uso do módulo de geometria

3.1 Ponto, vetor e sistema de coordenadas, matriz de rotação

  • O ponto existe no espaço tridimensional
  • Pontos e eletricidade podem formar vetores
  • O ponto em si é descrito pelo vetor que aponta para ele a partir da origem

Vetor: com uma seta apontando, operações como adição e subtração podem ser realizadas.
Coordenadas vetoriais: podem ser expressas por coordenadas R3.
Sistema de coordenadas: consiste em três eixos ortogonais.
Um conjunto de bases que formam um espaço linear é
dividido em canhotos e
operações de vetor destro : adição e subtração, produto interno, produto externo
Em relação ao produto externo, uma pequena ponta é introduzida, o que significa que um vetor se torna uma matriz
em SLAM:

  • Existe um sistema de coordenadas mundial fixo e um sistema de coordenadas de robô móvel
  • O sistema de coordenadas do robô muda com o movimento do robô, e há um novo sistema de coordenadas a cada momento

Como transformar os dois sistemas de coordenadas? A translação entre a origem e a
matriz de rotação dos três eixos :
condições suficientes e necessárias:

  • R é uma matriz ortogonal, o inverso da matriz é igual a transpor
  • O determinante de R é 1

Rotação do espaço tridimensional: SO (3) também se tornou um grupo ortogonal especial. O conceito de grupo é discutido na álgebra de Lie.
Quatro números são usados ​​para descrever as coordenadas tridimensionais, que podem realizar translação e rotação ao mesmo tempo.
Essa abordagem é chamada de coordenadas homogêneas .
Nesse momento, a rotação e a translação podem ser colocadas em uma matriz, chamada de matriz de transformação .

A matriz de rotação e a matriz de transformação são as seguintes (forma não homogênea)
Insira a descrição da imagem aqui

3.3 Ângulo de Euler

O ângulo de Euler descreve o ângulo em que um corpo rígido gira em torno de três eixos.
Diferentes sequências de rotação correspondem a diferentes ângulos de Euler. A sequência ZYX é comumente usada, ou seja, o
ângulo de Euler "yaw-pitch-roll" tem um problema de bloqueio universal. Em alguns casos, um grau de liberdade será perdido.
Para o problema de bloqueio universal, você pode usar um telefone celular para testar (ou qualquer objeto). Uma vez que ele é girado em torno de um eixo ± 90 graus, os outros dois eixos terão o mesmo efeito e perder uma dimensão. Informação, muito interessante.
Insira a descrição da imagem aqui

Na verdade, não podemos encontrar uma descrição de vetor tridimensional sem singularidade,
então a descrição quadridimensional de quatérnio é usada para representar a rotação.

3.4 Quaternion

Um número complexo estendido. O
quaternion tem três partes imaginárias, que podem expressar a rotação no espaço tridimensional
. Existem relações aritméticas específicas entre as partes imaginárias. Acho que os
quatérnios de produto cruzado no espaço tridimensional têm muitas fórmulas específicas, incluindo quatérnios. O inverso de (importante para expressar a rotação)

Nota: A multiplicação do quatérnio está sobrecarregada na biblioteca Eigon. Não é necessário escrever o inverso do quatérnio. A sobrecarga do operador automaticamente completa esta etapa.

Aula 4 Grupo de Lie e Álgebra de Lie

O objetivo fundamental de estudar grupos de Lie e álgebras de Lie:

  1. Transforme a matriz de rotação em uma forma que pode ser adicionada e subtraída
  2. Elimine problemas de restrição na otimização de back-end

Através da relação de conversão entre grupos de Lie e álgebras de Lie, espera-se transformar a estimativa de pose em um problema de otimização sem restrições.

Grupos de Lie e base de álgebra de Lie

Já contatamos dois grupos antes:

  • Grupo ortogonal especial: a matriz de rotação do espaço tridimensional SO (3) é uma matriz ortogonal e o determinante é 1, então é a matriz de rotação
  • Grupo euclidiano especial: SE (3) contém uma matriz de rotação espacial tridimensional R, um vetor de translação t, uma matriz de transformação espacial quadridimensional de 0 ^ T e 1, que é um grupo de transformação Euclidiana tridimensional

Grupo : É uma estrutura algébrica de um conjunto mais uma operação. Esta operação deve satisfazer as quatro condições de "fechamento inverso unitário"

  • Fecho
  • Lei associativa
  • Unitário
  • Reverter

Grupo de Lie : refere-se ao grupo
matriz antissimétrica com propriedades contínuas (suaves) : para um vetor, ele pode ser transformado em uma matriz antissimétrica, e para qualquer matriz antissimétrica, um vetor correspondente também pode ser encontrado. O símbolo específico e o significado são mostrados na figura abaixo.
Insira a descrição da imagem aqui
Álgebra de Lie Φ : É o espaço tangente de SO (3) próximo à origem. Existem as seguintes fórmulas de cálculo aproximadas. A derivação da matriz de rotação é equivalente a multiplicar uma matriz antissimétrica de álgebra de Lie, matriz de rotação A álgebra de Lie igual a e à potência da matriz antissimétrica A
Insira a descrição da imagem aquiInsira a descrição da imagem aqui
álgebra de Lie consiste em um conjunto, um campo numérico e uma operação binária. Se eles satisfizerem as seguintes características, ( V, F, [,] ) é chamada de álgebra de Lie , Deve
Insira a descrição da imagem aqui
ser claramente marcado como g que a álgebra de Lie representa indiscriminadamente um vetor tridimensional e sua matriz antissimétrica. Isso pode ser visto na seguinte fórmula
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Mapeamento exponencial : Em grupos de Lie e álgebras de Lie, o cálculo de exp (Φ ^) é chamado de Mapa Exponencial (Mapa Exponencial)
para um certo momento (isso é muito importante, independentemente da influência do tempo t), tome SO (3) como um exemplo, a seguinte equação
Insira a descrição da imagem aqui
é válida. O lado esquerdo da equação é a matriz de rotação em um determinado momento (há um na derivação da fórmula). Ao mesmo tempo, equivalente a álgebra de Lie Φ a θa, θ é o comprimento do módulo, e a é o comprimento de 1 O vetor de direção, em
particular, a fórmula acima eFórmula de RodriguezDa mesma forma, isso mostra que a álgebra de Lie então (3) é na verdade um espaço composto dos chamados vetores de rotação , e o mapeamento exponencial é a fórmula de Rodriguez.
Por meio deles, correspondemos qualquer vetor na álgebra de Lie so (3) a uma matriz de rotação no grupo de Lie SO (3) . Por outro lado, defina o mapeamento logarítmico

Mapeamento logarítmico : o processo inverso do mapeamento exponencial, a fórmula é a seguinte:
Insira a descrição da imagem aqui
Grupo de Lie e relacionamento de transformação mútua da álgebra de Lie é representado pelo seguinte diagrama de relacionamento
Insira a descrição da imagem aqui
** Problema de derivação da álgebra de Lie: ** Ao resolver a estimativa ideal, frequentemente construímos e pose Funções relacionadas e, em seguida, discuta a derivada da função em relação à pose para ajustar a estimativa atual.
Idéias para derivação da álgebra de Lie:

  • Use a álgebra de Lie para expressar a pose e, em seguida, derivar a álgebra de Lie de acordo com a adição da álgebra de Lie
  • Multiplique o grupo de Lie para a esquerda ou direita pelo pequeno distúrbio e, em seguida, obtenha a derivada do distúrbio, que é chamada de modelos de distúrbio esquerdo e direito.

Derivação da álgebra de Lie diretamente, o resultado é o seguinte, porque contém uma forma mais complicada de Jl, não gostamos dessa representação.
Insira a descrição da imagem aqui
A derivação do modelo de perturbação é a seguinte. É importante compreender a seguinte fórmula
Insira a descrição da imagem aqui

Pratique Sophus

Precisa ser adicionado

Aula 5 Câmera e Imagem

Modelo de câmera

A câmera mapeia os pontos de coordenadas no mundo tridimensional (em metros) para o plano da imagem bidimensional (em pixels) e pode ser descrita por um modelo geométrico.
O mais comumente usado é o modelo pinhole .
Além disso, a relação de conversão de vários sistemas de coordenadas está envolvida aqui.

Quatro sistemas de coordenadas:

Sistema de coordenadas mundiais - sistema de coordenadas da câmera - sistema de coordenadas de imagem - sistema de coordenadas de pixel Sistema de coordenadas
mundiais : o sistema de coordenadas básico mais primitivo definido pelo homem, usado para descrever a posição de cada objeto no mundo
Sistema de coordenadas da câmera: o centro óptico da câmera é o origem, o próprio sistema de coordenadas da câmera é um sistema de coordenadas tridimensional. Sistema de
coordenadas de imagem : no plano de imagem da câmera, a fim de descrever a situação de imagem do sistema de coordenadas da câmera, o sistema de
coordenadas de pixel do sistema de coordenadas bidimensional estabelecido : pegue o canto superior esquerdo do plano de imagem É a origem, e o tamanho do pixel é o valor da divisão de coordenadas. A imagem no sistema de coordenadas da imagem é convertida em informações de coordenadas de pixel, que é o sistema de coordenadas bidimensional da imagem final

Modelo de câmera pinhole

O diagrama esquemático do modelo da câmera pinhole é mostrado na figura.
Insira a descrição da imagem aqui
Sistema de coordenadas mundiais para sistema de coordenadas da câmera:
complete uma translação e rotação do
sistema de coordenadas mundiais personalizado para o sistema de coordenadas da imagem:
use a relação de projeção e encontre uma proporção de projeção com base em o teorema da similaridade
Sistema de coordenadas de imagem relacional para sistema de coordenadas de pixel:
devido à diferente escala de coordenadas e origem, ele precisa ser esticado e transladado

o que é interessante: Quando filmamos com uma câmera monocular, perdemos as informações de profundidade. Isso se reflete no processo de normalização do processo de cálculo. De uma perspectiva física, enquanto o ponto de projeção de um objeto permanecer inalterado, ele pode estar no espaço. a qualquer distância distante, ou pequenos objetos próximos e grandes objetos à distância podem ser exatamente iguais

Modelo de distorção

Classificação de distorção:

  • Distorção radial: distorção causada pelo formato da lente: distorção em barril e distorção em almofada
  • Distorção tangencial: distorção introduzida pela lente e a superfície da imagem não sendo estritamente paralela

Insira a descrição da imagem aqui

Parte prática

Precisa ser adicionado

Acho que você gosta

Origin blog.csdn.net/qq_41883714/article/details/110193979
Recomendado
Clasificación