Coprocessador baseado em FPGA para a visão de um robô futebolista - Alves, Sérgio Julião Silva (2014)
A área da robótica encontra-se em constante evolução, assumindo, nos dias de hoje, uma elevada importância nas mais diversas áreas. Uma grande parte das soluções desenvolvidas neste campo tem como requisito o reconhecimento visual do meio envolvente, possibilitando ao sistema robótico reconhecer determinados objetos ou formas, e/ou tomar decisões e reagir perante determinadas situações. Por outro lado, a visão computacional assume-se como uma ciência de ampla aplicação, o que implica a necessidade de optar pelo sistema de visão mais adequado a cada realidade. A competição RoboCup surge como uma iniciativa internacional com o objetivo principal de promover a investigação e desenvolvimento da inteligência artificial, robótica e demais áreas relacionadas. Embora existam outras, as principais competições presentes nesta iniciativa envolvem a organização de encontros anuais, onde equipas de robótica de todo o mundo jogam futebol entre si. Estas competições encontram-se agrupadas em determinadas categorias, sendo que a mais relevante no âmbito deste projeto é a liga de robôs médios (RoboCup MSL), onde a equipa CAMBADA representa a Universidade de Aveiro. Neste tipo de competição, o sistema de visão assume uma importância vital, uma vez que a perceção da bola, das linhas brancas e obstáculos, bem como o seu consequente processamento, de forma rápida e eficiente, são uma mais-valia para a tomada de decisão de um robô, face a uma determinada situação. No entanto, os algoritmos associados ao processamento de imagem são tipicamente muito exigentes, quer em termos de recursos, quer em termos de processamento, podendo o tempo necessário ao seu processamento comprometer uma resposta eficaz e, por conseguinte, todo o sistema. Esta dissertação resulta da necessidade de melhorar continuamente a prestação desta equipa nas competições em que participa, através do desenvolvimento e implementação de um coprocessador baseado em FPGA, o que se apresenta como uma mais-valia, dado permitir a redução do peso computacional da visão por computador da CAMBADA. Este coprocessador será responsável pela execução de uma parte dos algoritmos de visão, nomeadamente, segmentação de cor, compressão de imagem e deteção de bolhas de cor, baseando-se em diversos núcleos de processamento, quer genéricos, quer especializados, explorando, desta forma, o paralelismo normalmente disponível neste tipo de algoritmos. Este sistema possui ainda capacidade de adquirir de forma autónoma as imagens, processando-as individualmente e disponibilizando os resultados ao computador principal. O presente projeto pretende demonstrar a aplicabilidade e a supremacia da implementação de tarefas computacionalmente intensivas em hardware reconfigurável.