Implementação de tarefas robóticas na plataforma KUKA youBot, parte 1

Caros leitores do Geektimes, você é recebido pelo Student Design Bureau (departamento de engenharia de robótica ou RED) do Departamento de MIS da ITMO University. Já escrevemos sobre isso no blog da nossa universidade.

No âmbito do programa de desenvolvimento universitário, a RED busca vários objetivos, e um deles é a participação na robótica competitiva de estudantes em nível internacional. Como plataforma de lançamento, foram selecionadas as populares competições internacionais de RoboCup . Existem vários tipos de competições no RoboCup, do robofootball a competições de robôs com orientação social, realizadas em diferentes países desde 1997. As equipes russas também participaram de competições e ganharam prêmios.

Com base no equipamento técnico do RED e na análise do ambiente competitivo, uma das categorias possíveis de competições foi o RoboCup @ Work , onde muitos manipuladores industriais competem no desempenho de suas tarefas típicas. Essa escolha se deve em grande parte ao fato de o departamento ter alguns robôs industriais youBot criados pela KUKA. O youBot é uma plataforma móvel omnidirecional na qual está instalado um manipulador com cinco graus de liberdade, com um punho de dois dedos. O pacote inclui: Telêmetro a laser URG-04LX-UG01 da Hokuyo Automatic Co. com uma faixa de medição de 5600 mm a 240 °, com a qual você pode implementar localização e mapeamento; Dispositivo de reconhecimento de movimento ASUS Xtion, semelhante ao Microsoft Kinect. Os criadores apresentam o robô perfeitamente adequado para o campo da educação.





Você pode instalar um sistema operacional a bordo do controlador youBot (no nosso caso, Ubuntu 12.04), que permite iniciar o controle imediatamente em um computador embutido no robô. A comunicação com o robô é via módulo Wi-Fi.

Trabalhar com o youBot é realmente uma excelente oportunidade para conhecer manipuladores industriais. Mas primeiro, precisamos testar a nós mesmos e a você.

Foi decidido implementar em você uma tarefa óbvia para esse tipo de manipuladores em movimento - para encontrar e capturar o objeto de destino. O algoritmo do programa é o seguinte:
  1. Localização e mapeamento: determinando a localização do local de destino em que o objeto está, entre os obstáculos (obstáculos são tábuas baixas - “paredes”) com a abordagem subsequente ao local.
  2. : , , .
  3. .

O problema de localização é resolvido usando o telêmetro a laser acima, e a tarefa de reconhecimento é resolvida usando o ASUS Xtion. Tudo o que precisamos fazer é escrever programas que processem dados desses sensores (o benefício é que existem bibliotecas abertas prontas para esses fins), além de implementar de alguma forma a captura de objetos. Além disso, você precisa combinar todas as três partes da tarefa em um único sistema.

Decidimos controlar o robô, processar dados e comunicar-se entre os sensores e o robô usando o Sistema operacional do robô. Já havia artigos no Habr sobre o ROS e sobre robôs trabalhando com sua ajuda. Por exemplo, ele fala sobre uma implementação maravilhosa de um robô hexapod, que varia de analisar o ferro e projetar um modelo até combinar todos os nós sob o controle do ROS.

Apenas no caso, lembramos que o ROS é uma estrutura para trabalhar com robôs que facilita o desenvolvimento e a integração de vários componentes de software. O ROS é usado em projetos amadores e educacionais e no desenvolvimento de programas de robôs industriais. Vale ressaltar que a segunda versão do ROS está sendo desenvolvida atualmente , o que promete incluir ainda mais recursos para o desenvolvimento de robôs.

O ROS fornece muitos dos serviços de um sistema operacional padrão: abstração de hardware, controle de dispositivo de baixo nível, passagem de mensagens entre processos e gerenciamento de pacotes. ROS consiste de duas partes: o software do kernel ros e ros-pkg , conjunto de pacotes ( pacotes), dentro do qual contém quaisquer dados, bibliotecas, executável e configuração, combinados logicamente em um módulo útil.

Os conceitos básicos dos componentes de comunicação nas ROS são nós ( ), mensagem ( mensagem ) e tópicos ( Tópico) Um nó é um processo em execução que pode se comunicar com outros processos. Tópico - um pipe nomeado que conecta vários nós. O ROS é baseado na arquitetura gráfica, onde o processamento de dados ocorre em nós que podem receber e transmitir mensagens entre si. Essas mensagens são publicadas em tópicos que dividem as mensagens em grupos de interesse. Quando um determinado nó precisa receber mensagens com determinados dados, esse nó assina um tópico específico. Devido a isso, há uma relação entre nós "assinante pelo editor» ( publisher-assinantes ).

No nosso caso, o kernel ROS é executado no próprio controlador do youBot e, aí, um gráfico de processamento de dados é organizado entre três nós do programa (localização, reconhecimento e captura de objetos). Esses nós publicam dados sobre seu trabalho nos tópicos apropriados, sejam informações sobre o robô atingindo a plataforma de destino ou as coordenadas do objeto. Para três tópicos, o nó de controle principal é assinado, que monitora o trabalho dos outros três e publica os comandos em um tópico especial, no qual os nós gerenciados são inscritos. Portanto, o gráfico de controle se parece com o seguinte:



Para acelerar o trabalho, dividimos em três equipes, cada uma das quais teve que implementar um dos três nós.

No próximo artigo, mostraremos como conseguimos implementar a localização e o que usamos para isso.
Fique conosco.

Source: https://habr.com/ru/post/pt392419/


All Articles