Como os algoritmos SLAM lidam com um ambiente em mudança?

13

Estou fazendo algumas bases para um projeto e tenho uma pergunta sobre o estado atual das técnicas do SLAM.

Quando um dispositivo equipado com SLAM detecta um objeto, a posição desse objeto é armazenada. Se você observar a nuvem de pontos que o dispositivo está gerando, verá pontos para esse objeto e os modelos gerados a partir dele incluirão geometria aqui.

Se um objeto é colocado em um espaço anteriormente vazio, ele é detectado e pontos são adicionados. Os modelos subsequentes apresentarão geometria descrevendo esse novo objeto.

Como o dispositivo reage se esse objeto for removido? Até onde eu vi, os sistemas SLAM tendem a deixar os pontos no lugar, resultando em geometria "fantasma". Existem algoritmos que desconsideram pontos isolados causados ​​por contatos transitórios, mas objetos que permaneceram tempo suficiente para construir um modelo sólido permanecerão na memória do dispositivo. Existem sistemas capazes de detectar o espaço ocupado anteriormente agora está vazio?

anaximander
fonte
Esta questão não tem muito a ver com aprendizado de máquina.
Josh Vander Gancho
Talvez não; Eu não tinha 100% de certeza de quais tags se encaixariam. A aplicação que tenho em mente parecia se encaixar, mas talvez sem contexto é menos aplicável ...
Anaximandro

Respostas:

5

Isso depende muito. Como o SLAM é um problema (ou pelo menos uma técnica), não uma solução, não há algoritmo SLAM definitivo. Semântica, você precisa decidir o que acontece em um "mapa" do ambiente e isso determina como o algoritmo deve lidar com sinais transitórios (também conhecidos como móveis). Mas isso é uma digressão.

Mapas permanentes:

Os mapas permanentes devem conter informações suficientes para se localizar em relação à geometria conhecida. Normalmente usado em edifícios. Tipicamente legível por humanos. Veja o trabalho de Willow-Garage. ou qualquer coisa de Thrun em seu livro famoso. Se você perder este mapa, precisará construí-lo ao longo do tempo novamente.

  1. Removendo objetos. Sim, o objeto aparecerá em um mapa estático por um tempo. Se nenhuma medida for tomada para remover objetos detectados anteriormente, ele persistirá. Uma representação 2D típica baseada em grade usará cada célula da grade para representar a probabilidade de um objeto, portanto, após o tempo, o objeto "desaparecerá".

  2. Adicionando objetos. O mesmo que acima.

Mapas locais:

Na realidade, o SLAM é geralmente usado para localizar um robô enquanto ele se move, e o mapa não é mantido permanentemente (ou, ele é mantido permanentemente, mas apenas os recursos Y mais próximos são usados). Os mapas locais são tudo o que o robô precisa saber para determinar como foi movido nos últimos X minutos, onde X depende do aplicativo. Se você perder o mapa, ainda poderá voar muito bem usando os recursos que estão à vista no momento.

  1. Métodos de lote, como o ajuste de bundle usando recursos visuais, é uma técnica muito comum nessa direção. Os recursos podem ser mantidos com o tempo e até revisitados, mas um recurso em movimento é apenas um recurso não confiável e será ignorado ao tentar descobrir onde o robô está.

  2. Visual SLAM é exatamente isso. É um estimador delta-P (mudança de pose), não um algoritmo de localização baseado em mapas.

  3. Em resumo, enquanto a maioria das coisas não estiver em movimento no momento , não importa se você remover um objeto quando o robô não estiver "olhando" para ele.

Exemplo

Então faça isso. Ao ler um artigo do SLAM, decida o seguinte:

  1. Eles estão realmente construindo um mapa?

  2. Eles estão apenas mantendo uma lista de recursos e locais?

  3. Se sim, quais "recursos" estão no mapa? Linhas, pontos, características visuais?

  4. É provável que esses recursos sejam movidos?

  5. Se sim, como eles podem lidar com isso?

  6. Finalmente, o ruído do sensor geralmente "se parece" com recursos em movimento. Como eles lidam com o ruído do sensor? Porque isso geralmente determina o que acontece com os recursos em movimento.

Você receberá uma resposta diferente para cada artigo / autor / livro / aplicativo. Em resumo, eles geralmente são omitidos, pois não ajudam o robô a localizar muito e podem ser evitados simplesmente com um planejador de caminho de baixo nível que usa apenas informações locais.

Boa sorte, slam é um tópico enorme.

Josh Vander Hook
fonte
Obrigado! Você conhece alguma técnica que rastreia onde os objetos foram "adquiridos" e "perdidos"? Estou examinando aplicações de um subconjunto de algoritmos do tipo SLAM e uma área de interesse é a identificação de áreas de "transição", como portas e cantos ocluídos, de onde os objetos podem aparecer. Esse aplicativo inverte a métrica usual de probabilidade de desbotamento - em vez de ter os objetos "desbotados" quando desaparecem, as áreas não observadas aumentam lentamente seu valor para indicar que não sabemos o que está aqui porque não olhamos recentemente. deve ser cauteloso ao passar para este espaço.
Anaximander
Muito mais difícil. A única maneira de fazer isso corretamente é identificar objetos com exclusividade. Tipo, coloque um código de barras neles. Caso contrário, o objeto A pode ter sido movido para o local B, ou talvez A e B tenham sido trocados, etc. Leia o mapeamento semântico. Você precisa de um algoritmo que possa "reconhecer" que as coisas em movimento são realmente "portas" que devem ser presas a "paredes", mas somente quando estou "dentro", mas o que "dentro" significa para um robô? Acho que você deveria ler mais e relatar.
precisa
Sim, a idéia aqui é evitar o problema da semântica simplesmente destacando "essa é uma área em que eu continuo vendo coisas que não estavam lá antes ou deixando de ver as coisas que estavam lá". Provavelmente, esta área é algum tipo de transição - porta, caixa, janela, canto obstruído. Com quem estamos lidando é menos importante; isso é apenas para evitar colisões, por isso queremos evitar todas essas áreas. Da mesma forma, não precisamos saber particularmente qual objeto é qual; só que há uma mudança significativa na quantidade total de espaço ocupado pelo Stuff.
Anaximander
Reveja. Literatura. Tal problema surge de A) Coisas em movimento. B) robô em movimento. C) Robô se perdendo. D) mapas incorretos. Cada uma dessas 4 coisas tem 4 soluções corretas diferentes. Se você não lidar com todos os 4, criará mapas completamente incorretos. É por isso que o SLAM não é resolvido e ainda é difícil. Leia e volte com perguntas específicas relacionadas ao que aprendeu.
Josh Vander Gancho
1
É isso que estou fazendo; quanto mais eu leio, mais minha lista de coisas para ler fica! Essa foi a primeira das muitas perguntas que minha leitura levantou. Desculpas por estender um pouco a questão nos comentários; Não tenho recebido muita resposta, e o SLAM é um tópico tão grande ... você parecia saber do que está falando, então eu esperava ter algumas dicas. Eu tenho documentos de mapeamento semântico na minha lista, mas há alguns outros que eu preciso ler como base para isso ... Enfim, acho que está de volta à leitura por enquanto.
Anaximander