Localizando um enxame de robôs

9

Eu tenho uma sala de 300 cm x 300 cm com um teto alto de 25 cm (sim, vinte e cinco centímetros). Ele contém 50 pequenos robôs com rodas (cerca de 20 cm x 20 cm). Um computador central irá orquestrar os movimentos dos robôs, usando uma rede sem fio para enviar comandos de posição para eles. Os robôs executam seu próprio controle de posição em malha fechada para economizar largura de banda sem fio. Os robôs possuem microcontroladores ARM de 32 bits. Eles possuem sensores de posição das rodas e a capacidade de executar um controle preciso das rodas.

Problema: Os robôs ainda não podem fazer isso porque não têm como medir sua posição na sala.

Pergunta: Como os robôs podem medir sua posição e orientação com uma precisão melhor que ± 5 mm? Estou procurando uma solução precisa e robusta, que não seja afetada por oclusões e não exija um PC de alta potência em cada robô. Quaisquer sensores necessários para a localização podem ser facilmente adicionados aos robôs. Os microcontroladores podem ser facilmente trocados por outros mais poderosos, se a solução de localização exigir.

Rocketmagnet
fonte
Que tipo de sensores os robôs possuem e que tipo de poder computacional?
DaemonMaker 31/08
11
@DaemonMaker - Adicionou essa informação e tentou esclarecer a questão.
Rocketmagnet 31/08
11
Essa é uma boa atualização do @Rocketmagnet, mas a questão ainda é bastante aberta. Existem muitos truques na literatura de localização que podem estar disponíveis para você, dependendo do que seus robôs podem observar sobre si mesmos, o ambiente deles e entre si. Por exemplo, há muito trabalho relacionado à combinação das crenças de vários robôs para aumentar a precisão da crença de qualquer robô. Isso pode ser conseguido adicionando uma câmera pequena e um marcador fiducial a cada robô e não aumentaria muito o processamento.
DaemonMaker
As oclusões bloqueiam a linha de visão xy ou z também? Por exemplo, se você tiver linhas, lasers ou espelhos no teto, os robôs geralmente poderão vê-los?
precisa saber é o seguinte
@ jwpat7 - Como o teto é muito baixo e os robôs praticamente o tocam, basicamente nunca há uma linha de visão na direção Z.
Rocketmagnet

Respostas:

4

Algumas ideias estão no topo da minha cabeça ... Geralmente, você pode ter cada robô sentindo sua própria posição ou algum tipo de sistema encontra os robôs e envia a eles informações sobre sua posição (ou uma combinação). Possivelmente, usar outras posições de robô para se localizar é outra opção, se puderem se comunicar. Você também pode combinar informações de sensores dos robôs e outras fontes.

Óptica

Você pode codificar a posição absoluta ou relativa no chão ou no teto. Um sensor no robô pode olhar para eles. Um sensor como o do mouse óptico pode obter movimento relativo da maioria das superfícies, mesmo sem nenhum padrão. Havia ratos de estilo mais antigo que usavam uma grade padronizada.

Você pode ter duas (ou mais) câmeras em cada robô olhando para direções diferentes; se as paredes da sala tiverem o tipo certo de padrão, você poderá determinar sua localização com base nas imagens. Uma câmera giratória é outra opção. Obstrução da câmera por outros robôs pode ser uma preocupação.

Uma matriz de sensores ou câmera no chão ou no teto pode localizar os robôs e, em seguida, você pode enviar a localização dos robôs.

Algum tipo de sensor óptico giratório que pode localizar a direção de um farol óptico (por exemplo, um LED).

Som

Você pode ter alguns faróis emitindo sons de ultrassom. Se todos estiverem sincronizados (por exemplo, atraso fixo entre eles), em função da localização, você poderá usar um cálculo do tempo de voo para determinar a posição do robô. Muitos anos atrás, eu trabalhei com um digitalizador de ultrassom com precisão de cerca de um mm a uma distância de cerca de um metro, assim parece no estádio. Dependendo da forma do seu robô e da configuração dos reflexos e obstruções do enxame, pode ou não ser um problema. Você precisaria experimentar, mas minha intuição é que, com sinalizadores suficientes, você pode ter um bom desempenho.

Telêmetros de ultrassom em todos os robôs. (girando?) Poderia mapear a distância para outros robôs ou para as paredes.

Se algum desses parecer interessante, posso tentar desenvolver essas idéias um pouco mais.

Guy Sirton
fonte
Eu gosto do método de ultra-som. Gostaria de saber se poderia enviá-lo pelo chão para que ele pudesse viajar sem ser perturbado ou refletido pelo enxame.
Rocketmagnet
@Rocketmagnet: Você pode enviá-lo pelo chão. O problema é acoplar adequadamente o transdutor, o que geralmente é feito com gel. Provavelmente seria uma bagunça para o seu aplicativo. Sem o acoplamento correto, o ultrassom simplesmente ricocheteia na superfície. Talvez as rodas do seu robô possam fazer o truque.
Guy Sirton 5/09
@GuySirton Quero implementar a detecção de sons de ultrassom de um dispositivo emitido por outro dispositivo. Estou lutando para fazer isso porque todos os componentes que vejo disponíveis são medidores de alcance que emitem e detectam o eco. Eles produzem a faixa e é difícil separá-los em emitir e receber partes. Eu preciso enviar os sinais pelo ar. Alguma sugestão ou sugestão? Obrigado!
Necromancer
@necromancer você deve ser capaz de comprar transmissores / receptores por exemplo, ver este digikey.ca/product-detail/en/MA40S4R/490-7706-ND/4358146 e mais na mesma categoria ...
Guy Sirton
@GuySirton muito obrigado. uma grande ajuda!
Necromancer
4

Se o teto for uma superfície plana visível da parte superior dos robôs, você poderá colocar faixas de marcadores (ou algum outro padrão fiducial conhecido) no teto em intervalos regulares. As listras podem ser linhas brancas ou pretas ou fita refletiva estreita, detectadas usando fotossensores em cima de robôs.

Se os sensores de posição da roda e o controle preciso da roda forem bons o suficiente para manter a precisão dos dados de localização desejados quando um robô se mover além da distância d de uma posição conhecida com precisão, as listras (que podem ser listras brancas, listras pretas ou fita reflexiva estreita) pode precisar ser colocado não mais do que cerca de d / √2 separados.

O software de planejamento de movimento provavelmente precisaria se adaptar. Se a posição de um robô estiver consistentemente errada ao cruzar uma faixa, ajuste sua proporção de contagens do codificador da roda para a distância percorrida; ou se uma faixa for vista se uma perna de viagem for apenas um pouco mais longa, estenda a perna para cruzar a faixa; ou mova para calibrar contra várias faixas imediatamente antes de qualquer operação sensível à posição; ou executar operações sensíveis à posição em um ponto de cruzamento de listras.

Existe uma variedade de padrões fiduciais possíveis. As faixas ortogonais dispostas paralelamente aos eixos xey são provavelmente mais simples de criar e trabalhar. Mas vale a pena considerar olhos de boi, mira, cunhas, códigos de barras e outros padrões.

James Waldby - jwpat7
fonte
+1 Mesmo que eu tenha lido sua resposta antes de postar a minha, eu ainda postei praticamente a mesma resposta sobre fiduciais ... Eu culpo a falta de sono.
ThomasH
@ThomasH, obrigado! Estou surpreso que o OP não tenha votado em nenhuma das respostas, as quais fornecem algumas informações úteis.
precisa saber é o seguinte
4

A baixa distância entre a parte superior do robô e o teto realmente restringe suas opções. Parece praticamente impossível obter uma visão centralizada de toda a sala e trabalhar a partir daí.

Não tenho certeza de que tipo de 'sala' você está falando e quanto pode instrumentá-la, mas pode ser uma opção para colocar marcadores no teto, em vez dos robôs. Dada a curta distância, você teria que preencher completamente o teto com pequenos marcadores que podem ser completamente observados por uma câmera apontando para cima em todos os robôs, embora você possa posicionar essa câmera mais baixo no robô, digamos entre as rodas dianteiras e traseiras de ambos os lados, para oferecer um ângulo de visão mais amplo. Mas o maior desafio seria imprimir marcadores distintos o suficiente para instrumentar todo o teto.

Como alternativa, pode ser concebível instrumentar o piso com muitas etiquetas RFID, desde que você encontre leitores com um alcance suficientemente pequeno (AFAIK, os leitores de RFID apenas informarão que uma determinada etiqueta está dentro do alcance, e não onde está). O leitor RFID da Phidgets já tem um alcance de aprox. 3 polegadas, então, a menos que você localize vendo qual grupo de tags você pode observar (se é possível observar várias tags ao mesmo tempo - você pode dizer que não tenho nenhuma experiência de trabalho real com RFID?), Teria que experimentar obter tags menores e protegê-las até certo ponto do leitor, para que não possam ser lidas a não ser de muito perto.

Em suma, parece um desafio difícil, mas muito interessante. Se for para o trabalho, presumo que você não possa nos dizer o objetivo do projeto, mas com certeza soa intrigante :)

ThomasH
fonte
Obrigado pela resposta. Frustrantemente, há tão pouco que posso divulgar sobre o projeto que tornou muito difícil fazer a pergunta.
Rocketmagnet
Eu estava pensando a mesma coisa. As piscinas têm as bandeiras coloridas acima e as linhas abaixo para indicar ao nadador sua localização em sua pista na piscina. Mesmo conceito, mas com 2 eixos em vez de um.
Zkent 04/04
3

Se um sistema vicon estiver fora de questão, você poderá usar um sistema de câmeras calibradas para ler marcadores colocados em cima dos robôs.

  1. Coloque as melhores câmeras que você pode obter no ambiente. Uso web cam de US $ 20 na amazon.com
  2. Use as ferramentas de calibração do OpenCV para calibrar as câmeras.
  3. Coloque marcadores em cima dos robôs
  4. As câmeras conhecem suas posições relativas no ambiente; portanto, ao triangularem as posições dos marcadores, elas podem gerar com precisão a posição e a orientação dos marcadores.

Mais ou menos como o que esses pesquisadores fizeram neste artigo (na página 16)

No entanto, como outros observaram, se o teto for muito baixo, você não terá uma boa linha de visão para o topo dos robôs e terá dificuldades em usar esse método.

Josh Vander Hook
fonte
Obrigado pela resposta. O problema com qualquer coisa como Vicon é a enorme quantidade de oclusão que ocorre quando você tem 50 robôs lotando uma sala com um teto tão baixo. Eu acho que isso torna impossível esse tipo de solução.
Rocketmagnet