sexta-feira, 14 de maio de 2010

Lego MindStorms with Q-Learning



Projecto desenvolvido na cadeira de Robótica em que o objectivo é fazer com que o robô aprenda de uma forma autónoma como chegar ao rectângulo cor-de-rosa.

Foi utilizado o algoritmo de Aprendizagem por Reforço, Q-Learning.

Inicialmente programado num Simulador (Simbad) para simplificar a fase de testes e mais tarde transferimos o código desenvolvido em Java e a aprendizagem obtida off-line para o robô.

Verificamos que realmente aprendeu ;)

O robô possui os seguintes sensores:

  • 2 Sensores para detectar a cor do chão.
  • 1 Bússola para saber a orientação do robô.
  • 1 Sensor ultra-sónico para detectar a existência de obstáculos.  
E dois motores, um para cada roda.


Foi um desafio muito interessante lidar com os vários problemas que advém da imprecisão de alguns sensores e das condições de teste do cenário.

segunda-feira, 12 de abril de 2010

Math4Kids

Neste projecto iremos descrever uma abordagem ao conceito de aprender a brincar, mais especificamente, facultar simples conceitos matemáticos para crianças numa faixa etária dos 5 aos 7 anos através da interacção com um jogo de computador. Pretende-se fundir o factor de divertimento com a aprendizagem de uma forma inovadora de modo a ilustrar o potencial pedagógico dos jogos ao desenvolver uma aplicação que funcione como uma ferramenta auxiliar no ensino e na aprendizagem da matemática durante a Educação Pré-Escolar de forma interactiva estimulando na criança múltiplas competências.

Ficam aqui algumas imagens do jogo:




Podemos afirmar que os jogos possuem um potencial de educação tremendo, já que permitem às crianças explorarem ideias em mundos virtuais, acumularem experiência e ficarem absorvidas por disciplinas que no contexto normal das aulas, no ensino como o conhecemos, não representam uma área de interesse nem de lazer.

Podem efectuar o download do jogo em Math4Kids depois basta extrair o ficheiro e iniciar a instalação apenas para o sistema operativo Windows.
No seguimento deste projecto foi criado um artigo  disponível em (Aprender Conceitos de Matemática Brincando) submetido na conferência Artech 2010 na qual vou fazer uma pequena apresentação no dia 23 de Abril.

sábado, 20 de março de 2010

Lego MindStorms



Versão inicial do robô utilizado na cadeira de robótica que vai ter o objectivo de procurar um objecto, após encontrar o objecto deve pegar no mesmo e leva-lo a uma localização específica.

Utiliza sensores ultra-sónicos e sensores de cores.

Deve aprender a fazer isto tudo de forma autónoma através de aprendizagem por reforço.

terça-feira, 9 de fevereiro de 2010

terça-feira, 15 de dezembro de 2009

Sapo Codebits 2009

Parabéns à organização pelo excelente evento, recomendo vivamente, já que existiram palestras muito interessantes.

Nesta edição de 2009, participei com o meu colega Ricardo Carvalho, e sem estarmos à espera conseguimos ficar no 2º lugar do concurso de programação.

Tinhamos um jogo em XNA que comunicava com um sistema da Lego, e que de uma forma muito simples, possuia duas alavancas cada uma com uma bandeira.



Consoante a acção do jogador no jogo, ocorria uma comunicação atráves de sockets entre o jogo e uma aplicação chamada Scratch que servia de middleware na nossa aplicação e que mandava o sistema Lego levantar a bandeira adequada.

Quando a apresentação for colocada online, venho cá e actualizo o post. 

sexta-feira, 9 de outubro de 2009

HeadBanger Slug



Este projecto foi desenvolvido utilizando o excelente programa de modelação e animação 3D Blender que ainda por cima é FREE!!!

Foi para a cadeira de Animação por Computador.

quinta-feira, 8 de outubro de 2009

QLearning Robot Java



Simular um robô móvel que:

Actue como um agente que possua aprendizagem.
Desloque-se num ambiente desconhecido, efectuando a detecção de obstáculos.
Obtenha informação sobre o ambiente, através de um sistema sensorial.
Defina estados consoante a informação obtida.

O agente tenta obter uma política que maximize a recompensa obtida ao longo do tempo, isso é feito através da seguinte equação.


Podemos verificar um cenário possível onde o robô vai aprender o caminho para chegar ao farol de forma automática.




Ao longo do tempo verifica-se que o robô efectua cada vez menos passos para atingir o seu objectivo.



E que a qualidade das acções também aumenta ao longo do tempo.




Os resultados obtidos demonstraram a capacidade do agente de navegar pelo cenário efectuando uma aprendizagem contínua ao longo das acções efectuadas.
Verificou-se que quanto mais complexo o cenário, mais iterações eram necessárias para o robô obter a solução óptima para alcançar o farol.