Gostaria de construir um robô que segue um caminho virtual (não é um caminho visível como uma 'linha preta em uma superfície branca', etc).
Estou entusiasmado ao ver alguns vídeos de ficção científica que mostram os robôs transportando mercadorias e materiais em um local movimentado. E eles realmente não seguem uma linha física. Eles sentem obstáculos, profundidade, etc.
Gostaria de construir um desses robôs que segue um caminho (virtual) específico do ponto A ao B.
Eu tentei algumas coisas:
Usando um sensor magnético "Efeito Hall" no robô e corrente de transmissão do fio (abaixo da mesa). O problema aqui era que a vizinhança do sensor de efeito hall é tão pequena (<2 cm) que é muito difícil julgar se o robô está na linha ou fora da linha. Mesmo usando séries de ímãs não foi possível resolver esse problema, pois minha mesa tem 1 polegada de espessura. Então essa ideia falhou: P
Usando uma tinta ultravioleta (em uma linha) e usando leds UV no robô como sensores. Isso dará mais movimento em zigue-zague para o robô. E devido a ameaças em potencial do uso da fonte de luz UV, mesmo essa ideia fracassou: P
Finalmente pensei em ter uma câmera no topo e usar algoritmos de processamento de imagem para ver se o robô está em jogo ou divergindo.
Existe alguma solução melhor que essa? Realmente procurando algumas soluções criativas e simples. :)
Respostas:
Existem muitas maneiras possíveis de abordar esse problema, e todas elas dependem do material disponível e da experiência do construtor de robôs.
Em suma, o critério é que:
Dependendo do comprimento do caminho, o uso de codificadores pode ser suficiente. No entanto, deve-se notar que, devido à imprecisão física, a deriva torna a odometria (o que chamamos de codificadores para medir a distância) impraticável para longas distâncias. No entanto, isso é fácil para distâncias curtas e deve ser pelo menos considerado.
Se a distância for muito alta apenas para odometria, considere o uso de algum sensor para medir as curvas (por exemplo, um giroscópio ou bússola ). As voltas tendem a apresentar o maior erro de odometria (medir ao longo de uma linha reta não apresenta muitos erros); portanto, usar um sensor para voltas às vezes pode tornar a odometria uma solução viável.
Se a odometria ou a odometria + o giro detectado não funcionarem, seremos criativos. Se você quiser que o robô siga um caminho composto principalmente de segmentos retos, coloque os LEDs IR em determinados "pontos de referência" na mesa e faça com que o robô detecte esses LEDs e siga em direção a cada ponto de referência em série.
No entanto, isso ainda deixa alguma marcação visual em cima da mesa (embora possa ser disfarçada até certo ponto), e seria ótimo poder fazer isso sem isso. Outra abordagem seria usar ponteiros a laser brilhando paralelamente à superfície da mesa, mas alguns centímetros acima da mesa. O robô poderia usar um fotorresistor para detectar quando ele atravessa um laser, e isso poderia informá-lo quando virar.
No geral, acho que a odometria aumentada com um sensor de ângulo é provavelmente a melhor aposta para o seu robô, pelo menos da maneira que você a descreveu. Talvez eu consiga pensar em mais opções, mas é tudo o que vejo agora.
Apenas curioso - por que você quer que a linha seja invisível? Saber por que poderia abrir mais algumas possibilidades.
fonte
Anki usa sensores ópticos em seus carros de brinquedo para implementar seguidores de linha. Os sensores ópticos são sensíveis na faixa de infravermelho. O fato de as linhas não poderem ser vistas é facilmente explicado: As linhas são revestidas com cor preta, transparente na faixa de infravermelho. O preto Paliogen L 86 ou o preto Paliogen S 84 da BASF são essas cores. Se você colocar códigos de barras ao longo das linhas, poderá obter informações de posicionamento absolutas dos sensores ópticos.
fonte
Eu tenho uma resposta curta para sua pergunta. Isso é apenas para um robô habilitado para ROS. Existem muitas maneiras de fazer isso, mas foi assim que eu fiz. Eu usei ROS e Kuka Youbot. Poderia ser qualquer robô usando ROS. É muito útil conhecer o ROS se você planeja fazer robótica.
Use o ROS Em seguida, use o GMapping para mapear seu ambiente. Exemplo de sala ou corredor e salve o mapa. Em seguida, usando o RVIZ, forneça a posição do objetivo no mapa.
fonte
Bem, você não precisa de nenhuma linha para esse assunto. A única coisa que você provavelmente precisará é de coordenadas globais. se você puder colocar seu robô em um campo definido por coordenadas globais e aplicar regras simples da física newtoniana, o robô poderá ir de um ponto ao outro. Com base em sua localização atual, ele descobrirá o ângulo de direção atual, o ângulo de direção desejado e as coordenadas da meta (também conhecidas como "pose"). Depois de fornecer uma velocidade ao robô, ele começará a se mover em direção às coordenadas da meta. Em todas as iterações, ele recalcula sua pose e faz ajustes quando necessário.
fonte