Driver para Player é disponibilizado para o RoboDeck

Desenvolvido por uma equipe de pesquisadores do Rio de Janeiro, foi disponibilizado neste mês de janeiro, a versão beta do driver responsável pela integração do Player com a plataforma RoboDeck. O Player é um servidor baseado no protocolo TCP que permite o controle de uma grande variedade de sensores e atuadores robóticos. Trata-se de uma plataforma aberta para desenvolvedores aperfeiçoarem sistemas de controle para robôs.

O Player é executado na placa de alto desempenho do RoboDeck que roda uma versão do sistema operacional Debian. O Player oferece uma interface TCP para que clientes possam enviar comandos de controle. O cliente pode ser um programa escrito em qualquer linguagem com suporte ao protocolo TCP e deve se conectar ao Player, que por sua vez transmite os comandos para os atuadores e sensores, independente do robô. O Player, similar a outros servidores, permite que múltiplos clientes estejam conectados ao mesmo tempo.

O uso do protocolo TCP permite que os robôs possam ser controlados independentes de sua localização com relação ao cliente, podendo os comandos serem transmitidos pela Internet onde quer que haja conexão de rede. O Player trata equipamentos como arquivos, seguindo o modelo UNIX de abstração. Para ler um sensor, o cliente deve abrir o equipamento com acesso para leitura e no caso de controle de atuadores, o cliente deve abrir o equipamento com acesso a escrita. No Player, as interfaces de equipamentos são separadas dos drivers de equipamentos. A interface é uma especificação de dados, comandos e formatos de configuração, enquanto que um driver de equipamento é um módulo que controla um equipamento e provê uma interface para o mesmo. Por exemplo, a interface de posição do Player é usada para controlar uma base robótica. Essa interface especifica os comandos para dar potência e velocidade aos atuadores das rodas e o formato dos dados que vêm dos sensores de posição e velocidade do robô. O driver, como o que foi desenvolvido para o RoboDeck, deve receber mensagens do cliente e transformar em comandos para os atuadores e sensores, bem como receber os dados dos sensores e publicá-los de forma que a interface consiga reconhecer e transmitir ao cliente. A mesma interface pode se comunicar com outro driver, como o P2OS que serve as plataformas robóticas da empresa ActivMedia.

Para testar o driver desenvolvido, foi programado um aplicativo cliente. Esse aplicativo processa a imagem obtida pela câmera web do RoboDeck para fazer o controle de sua movimentação. A câmera foi posicionada em frente ao robô direcionada para o chão. O programa de controle foi desenvolvido para seguir uma linha negra desenhada em um piso branco. O aplicativo obtém os frames captados pela câmera, detecta a linha nos frames e envia comandos aos motores do RoboDeck de forma a manter a linha sempre visível. O algoritmo de controle do robô funciona com base na posição média das linhas encontradas pelo algoritmo de detecção de linhas. O algoritmo divide a largura da imagem em três partes iguais. O valor médio da posição das linhas encontradas pode estar mais a esquerda, mais a direita ou ao centro da imagem. O robô é controlado para, respectivamente, virar esquerda, direita ou se manter em linha reta de acordo com o valor médio de posição das linhas.