Nós amamos robôs. Somos estudantes de universidades técnicas, designers, engenheiros eletrônicos, programadores e todos gostamos de criar robôs. Há dois anos, nossa equipe de instalação apareceu no laboratório de robótica Sberbank e, ao mesmo tempo, participou da competição para a criação de robôs móveis autônomos Eurobot Open para jovens fãs de robótica. No momento, o time jogou 2 temporadas, duas vezes tornou-se vice-campeão, entrou no cenário internacional. Não dormimos por dias, programamos, soldamos, montamos e desmontamos nossos robôs, encontramos sérios problemas uma hora antes da competição e eles ainda começaram. Também tivemos uma experiência inesquecível e obtivemos uma série de soluções interessantes, sobre as quais queremos falar em uma série de artigos (com muitos GIFs, com cuidado, tráfego).

Eurobot Open é uma competição internacional de robôs autônomos. As tarefas, o campo de batalha e os elementos do jogo mudam a cada ano, mas a essência permanece a mesma - a equipe deve criar dois robôs autônomos que competirão com os robôs do oponente em um pequeno campo por recursos limitados por 100 segundos. Essa breve proposta esconde um grande número de tarefas que a equipe deve resolver, porque os robôs devem ser rápidos, manobráveis, capazes de executar tarefas de forma independente e não enfrentar o inimigo. E a cada ano é necessário desenvolver novos robôs. No entanto, a experiência e as realizações dos últimos anos podem dar uma grande vantagem. De ano para ano, precisamos de sistemas de localização, previsões de movimentos inimigos e evitar colisões, planejadores de rotas, sistemas flexíveis de gerenciamento de comportamento, nossa própria eletrônica e mecânica. Sim, para muito disso, existem algoritmos e bibliotecas padrão, no entanto, a maioria ainda precisa ser fortemente modificada ou gravada do zero devido à especificidade da funcionalidade e aos requisitos para o consumo de recursos.
Nossa equipe na final russa em Moscou.Vídeo legal sobre nossa participação em 2019:
O principal tema do jogo em 2019 foi a Energia Nuclear. Mas isso não significa que as equipes foram obrigadas a fabricar um robô movido por um motor nuclear. Apenas diferentes tarefas e elementos do jogo receberam nomes temáticos. O único objeto de manipulação do jogo eram discos de hóquei - elétrons. Eles têm pesos diferentes, cores diferentes e um "ouro", de tamanho diferente. É necessário coletar o máximo de arruelas localizadas em diferentes locais do campo, em diferentes posições, em diferentes alturas e depois classificá-las em zonas no campo, dependendo do tipo de elemento químico.
É assim que o campo de jogo parecia em 2019.Os nomes de código para nossos robôs este ano foram Chip e Dale. Porque Eu acho que a resposta é clara na foto:

Vamos examinar as soluções técnicas básicas de nossos robôs na última temporada. Este ano, tentamos ao máximo unificar tudo e tivemos dois robôs gêmeos. O diagrama estrutural de nossos robôs na figura abaixo.

O nível superior foi representado por um Odroid xu4 testado em placa única com o ubuntu 16.04 e o ROS Kinetic a bordo. Todas as tarefas "difíceis" estão girando nele.
No nível inferior, o STM32F407VGTX-DISC1 está funcionando, preso a uma blindagem projetada por si mesmo, que permite conectar convenientemente uma dúzia de motores, serv e uma guirlanda de sensores. A propósito, eles estão sempre ganhando uma quantia impressionante. Cada um de nossos robôs contém lidar, motores de 7 dc / bldc, 9 servos e cerca de 25 sensores diferentes (cores, pesos, distâncias, correntes). E tudo isso, além de outros 6 mecanismos volumétricos, foi colocado em robôs compactos com um perímetro de 850 e uma altura de 350 mm. O FreeRTOS, que serve tarefas que exigem execução em tempo real, processamento de todos os sensores e máquinas de estado, está girando no próprio STM.
Vista dos omnicholes do robô.Uma característica interessante é o uso de uma plataforma de rodas omni-direcional como unidade, o que nos permite dirigir em qualquer direção e em ambos os lados sem executar curvas desnecessárias, o que aumenta drasticamente a manobrabilidade do robô.
Assim, por exemplo, no próximo vídeo da partida realizada na França, pode-se ver como, apesar do fato de termos sido bloqueados (devido a uma violação grave das regras por um oponente), o robô saiu da armadilha de jóias.
No entanto, devido à omni, a precisão da odometria das rodas é muito fraca: as rodas não são perfeitamente redondas, os roletes tocam e têm um pequeno ponto de contato. Para resolver esse problema, você pode bater periodicamente na parede, redefinindo o erro ou aplicar sistemas de ajuste externos. Com relativa frequência, os lidares são colocados em robôs para isso. Outra solução apareceu há alguns anos: um lugar foi adicionado ao campo onde você pode colocar a câmera. No ano passado, viajamos apenas através de uma câmera externa com detecção de marcadores aruco aplicados ao robô, mas nisso trabalhamos simultaneamente na localização usando um lidar no robô e uma câmera externa (localização e navegação em breve será outro grande artigo interessante). Como não tivemos tempo de testar o lidar, andamos pela câmera e usamos o lidar como suporte para os marcadores de aruco. Vantagens do sistema - conhecemos a posição de todos os robôs em campo. Dos pontos negativos - uma alta sensibilidade à luz externa e precisão de calibração, que, infelizmente, nos falhou mais de uma vez. Mas, em geral, a combinação de odometria e detector de raios permite que nos posicionemos com uma precisão de vários milímetros em um campo de 2x3 metros.
Nossa placa rangefinder desenvolvida.As regras proíbem colisões com outros robôs (por isso eles também podem desqualificar); portanto, é importante que o robô observe obstáculos no caminho a tempo. Normalmente, para monitorar a zona próxima, são instalados localizadores de limite de IR com limite comum ou o Sharp GP2Y0A21YK, que são extremamente sensíveis à superfície, por exemplo, eles podem trabalhar em alumínio polido a meio metro e ainda não ver o carbono em foco. Os telémetros ultrassônicos também são usados com frequência, mas são sensíveis ao ângulo da superfície refletora e têm medo de interferência mútua. Recentemente, rangefinders ToF, por exemplo, VL53l0x ou VL53l1x, estão rapidamente ganhando popularidade. Depois de experimentar esses sensores uma vez, é difícil recusá-los - eles têm uma fraca dependência do material do obstáculo, alta precisão, compacidade e baixo preço. No entanto, no ano passado, tentamos usar o VL53l0x e várias nuances surgiram. O que pode acontecer quando você coloca uma dúzia e meia dúzia de rangefinders no i2c, entre vários motores e serviços? Além disso, os sensores não podem definir um endereço constante, bem, e a cereja em seu phantom hang. Portanto, este ano mudamos para o rs485, o que simplificou bastante o uso de rangefinders. Nas fotografias do robô, as luzes azuis são elas.
Aqui estamos, de todas as formas possíveis, impedindo que o robô vá diretamente entre dois pontos, e isso teimosamente se torna mais inteligente que nós:
Usando um sistema de localização externo, um planador de pleno direito, além de uma impressionante proteção contra colisões perto da zona, você pode fazer essas coisas a uma velocidade de 1m \ s. Nos próximos artigos, tentaremos dizer o máximo sobre as coisas mais interessantes de nossas decisões (e abrir as bases), mas hoje queremos falar sobre o recurso da mecânica este ano.
O design da mecânica para o Eurobot se distingue por sua especificidade. Primeiro, como se trata de uma competição, tudo deve funcionar o mais rápido possível e cem por cento confiável. Em segundo lugar, a tarefa é definida de forma que, quanto mais pontos você deseja ganhar, mais difícil a mecânica precisa projetar. E quanto mais complicada a mecânica, maior a probabilidade de seu fracasso, que, de acordo com a lei de Murphy, ocorrerá no momento mais inoportuno.
As tarefas podem parecer simples à primeira vista, mas esse não é o caso: a tarefa de manipular objetos (pegar, reorientar, definir) ainda é extremamente difícil de resolver. Ao contrário dos manipuladores industriais, que geralmente estão localizados estaticamente, com todas as coordenadas movimentadas e que funcionam em condições ideais, tudo é mais legal: coloquei o robô em campo, puxei a chave e o robô trabalha até a corrida terminar. A possibilidade de algum tipo de ajuste de coordenadas e depuração adicional está praticamente ausente. É necessário levar em consideração possíveis erros sérios de localização ou imprecisões na fabricação do campo (por exemplo, o robô pensa que está de frente para o disco que planeja levar, mas, na verdade, está deslocado x 15 mm a partir da coordenada desejada), portanto, coloque o manipulador com uma boa aderência, mover-se de um ponto a outro não funcionará: nas condições reais da competição, você terá sérios problemas.
Arranjo de mecanismos no robô.Conseguimos construir dois robôs idênticos, cada um dos quais resolvia toda a gama de tarefas possíveis no âmbito da competição. O robô abrigava um transportador do tipo rotativo com 6 arruelas e, a qualquer momento, era possível descarregar qualquer uma delas. No campo, as arruelas estão em duas posições: deitadas no chão e em pé em uma prateleira especial. Para cada opção foi projetado seu próprio mecanismo de coleta. As arruelas da prateleira foram montadas usando um rolo de aba especial que jogou as arruelas na rampa, ao longo da rampa que a arruela entrou na célula inferior do revólver, após a qual sua cor foi detectada, o revólver rolou e o robô puxou para a próxima arruela.
A estrutura de suporte do robô era de chapa de alumínio e 204 peças impressas, 6 unidades do Dynamixel AX-12A, uma Dynamixel MX-64 e duas de nove gramas, 3 peças de maxonmotor 16mm e uma maxonmotor 22mm foram responsáveis pelos mecanismos. O chassi era de três omnicholes maxonmotor de 22
mm e
60 mm . Tudo isso é temperado com 106 rolamentos.
Por que dynamixels e não servos padrão? Eles têm muitas proteções, controle digital e muitas configurações, conexão serial conveniente e geralmente de boa qualidade. Nossa experiência também mostra que os servos baratos por estação mudam em círculo várias vezes, enquanto os servos caros custam quase a mesma quantia.

Como a maioria das arruelas no chão não estava em coordenadas específicas, mas localizavam-se aleatoriamente em uma determinada zona, era difícil usar os manipuladores; portanto, um mecanismo especial para absorver arruelas foi desenvolvido.

As arruelas são descarregadas em duas zonas: nas balanças, onde as arruelas podem cair em qualquer posição, e na zona do acelerador, onde as arruelas são colocadas na posição vertical. Aqui, o robô descarrega tudo idealmente no acelerador em casa (que era 90% dos casos):

No entanto, nas corridas decisivas, isso, infelizmente, funcionou uma vez.
Ao descarregar no acelerador, é possível jogar as arruelas imediatamente em uma superfície inclinada e, primeiro, soltá-las em uma superfície horizontal e depois empurrá-las em uma superfície inclinada. A segunda opção permite que você jogue mais dois gols e marque mais pontos. Portanto, essa opção foi escolhida, o que, como se viu mais tarde, foi um erro crítico. Foi extremamente difícil dirigir até a parede, jogar fora o disco, descartá-lo com um rolo e repeti-lo N mais vezes. As arruelas podem ficar em pé torto, não acelerar, colidir com a parede e, o mais importante, bloquear a passagem das arruelas subsequentes.

Como mostra a experiência das competições e, em particular, as decisões construtivas de outras equipes, quanto mais simples as decisões em mecânica, melhor. A solução atual exigia o trabalho coordenado e depurado de um grande número de mecanismos complexos, cuja falha levou a um mau funcionamento de todo o sistema, e isso, como é conhecido
na teoria da confiabilidade , não é muito legal. Além disso, a mecânica exigia ajustes regulares e pequenos reparos, o que interrompeu o processo de depuração do software no robô. Onde é melhor fazer um robô com uma ventosa em uma única alavanca de ligação, que coloca as arruelas em uma pilha, mas atende a cem por cento dos casos, conforme planejado. Por outro lado, a participação em competições pode ser considerada não apenas como competições de pontuação, mas como uma boa maneira de implementar as soluções de engenharia mais interessantes e interessantes.
Em geral, apesar do desempenho não muito bem-sucedido na França, estamos satisfeitos com os resultados. Aprendemos muitas lições: que o estado de prontidão de uma tarefa não é um parâmetro binário, que a velocidade de desenvolvimento geralmente é inversamente proporcional ao número de pessoas envolvidas, que simples e especializados em uma pequena tarefa, mecanismos e módulos podem ser melhores do que idéias complexas e, em teoria, bonitas. E se preparando para a nova temporada.
Links de vídeo e uma análise mais aprofundada:
página de regras oficiais do Eurobot .
Revisão detalhada dos mentores da equipe .
A Eurobot não é a única coisa que os estagiários podem fazer no Laboratório de Robótica Sberbank; há outros estágios, por exemplo, em manipulação intelectual de objetos, robôs móveis, robótica antropomórfica na plataforma iCub. E você pode fazer pesquisa conjunta, escrever um diploma, um mestrado (se isso se cruzar com o assunto do laboratório). Envie seu currículo e inscrição gratuitamente para robotics@sberbank.ru
Nosso telegrama:
t.me/SetUpSber