DESENVOLVIMENTO DE PLATAFORMA NÃO-HOLONÔMICA PARA PESQUISA E EXPERIMENTOS PARA LOCALIZAÇÃO E NAVEGAÇÃO DE ROBÔS MÓVEIS. Parte 3- INTERFACE
Aluno de Iniciação Científica: Cainã Costa Trevisan (PET)
Curso: Ciência da Computação - Bacharelado
Orientador: Eduardo Todt
Co-Orientador: Luis Allan Kunzle
Colaborador: Álan Gonzalez Meger Zangrandi, Larissa Yuri Ueda, Paulo Marcos Dores Junior
Departamento: Informática
Setor: Ciências Exatas
Palavras-chave: sistemas embarcados , sensor Kinect , hardware reconfigurável - FPGA
Área de Conhecimento: 10303006 - METODOLOGIA E TÉCNICAS DA COMPUTAÇÃO
O objetivo desse projeto é fazer a interface entre o sensor Kinect – um dispositivo de entrada com câmeras infravermelho e RGB capaz de responder a movimentos – e o componente de hardware reconfigurável FPGA (Field Programmable Gate Array). Essa necessidade surgiu quando decidiu-se construir um robô que usasse o Kinect e apresentasse plataforma de processamento baseada em FPGAs para possibilitar elevado desempenho de processamento, com algoritmos implementados em hardware. Apesar das diversas possibilidades que traz para a Robótica, o uso desse sensor na área ainda é pequeno, especialmente em união com o FPGA. Há, por esse motivo, escassez de material sobre o assunto e então foi dificultada a pesquisa de maneiras para resolver o tema de interface. O projeto completo da plataforma de robô móvel foi dividido em três partes: construção, interface e processamento de imagens. O conceito do projeto é que as imagens capturadas pelo Kinect sejam processadas e, em resposta, sinais enviados aos motores para que o robô reaja como desejado. Para que isso se concretize é essencial compreender os dados de saída do Kinect – imagens prioritariamente – e mandá-los como entrada para os algoritmos de processamento que posteriormente enviarão os sinais de controle aos motores robô. Para isso métodos distintos estão sendo analisados. Uma opção é utilizar a biblioteca libfreenect que é capaz de interpretar a saída do Kinect e gerar vídeo em tempo real. No entanto, por se tratar de uma solução embarcada, existem problemas a serem considerados para cada biblioteca utilizada. Dentre eles o mais notável é a ausência de sistema operacional na plataforma alvo. Considerando isso a pesquisa tem se focado em verificar a possibilidade e dificuldade de embarcar o Linux no FPGA; de executar a biblioteca Freenect e as demais necessárias pré-compiladas no FPGA; e de fazer a interface com o Kinect diretamente por control transfers de USB, reduzindo a necessidade de compilar bibliotecas. Consequentemente, a pesquisa abrange o entendimento de forma suficiente para analisar a melhor solução do padrão USB, focado no funcionamento das control transfers; de sistemas Unix com foco para embarcar o Linux no FPGA; e de compilação de bibliotecas como a libusb para serem executadas no FPGA. No estado atual o projeto apresenta instalações experimentais de Linux embarcado em FPGA para suportar o processamento de imagens com as bibliotecas mencionadas.