Contextualização
A Inteligência Artificial (IA) se tornou um campo fascinante e influente em muitas áreas do conhecimento. Seja em aplicativos de smartphones, carros autônomos, sistemas de processamento de linguagem natural, a IA está transformando a maneira como vivemos e interagimos com o mundo. Em nosso enfoque, a robótica, a inteligência artificial desempenha um papel chave no desenvolvimento de robôs que não apenas executam tarefas mas também podem aprender e se adaptar a novas situações.
O primeiro passo para entender a IA em Robótica é esclarecer o que é Inteligência Artificial. A IA pode ser definida como um ramo da ciência da computação que busca criar sistemas capazes de realizar tarefas normalmente relacionadas à inteligência humana, como reconhecimento de voz, aprendizado, planejamento e entendimento de linguagem natural. A depender da complexidade, estes sistemas podem desde realizar uma tarefa com um objetivo realizando várias ações até serem capazes de aprender através de exemplos e experiências a melhor forma de responder a um dado problema.
Além disso, iremos explorar a subárea da Aprendizagem de Máquina (Machine Learning) dentro da IA. Ela é a área que cria sistemas capazes de aprender com dados, seja para adquirir novos conhecimentos, seja para melhorar o desempenho em tarefas comuns. De maneira ainda mais específica, estudaremos Aprendizado por Reforço (Reinforcement Learning), um tipo de aprendizado de máquina no qual uma entidade, nesta caso um robô, aprende a se comportar em um ambiente realizando ações e descobrindo erros ou recompensas.
No que tange à robótica, temos o desafio de criar robôs que não apenas automatizem tarefas, mas sejam capazes de adaptar-se de forma inteligente ao ambiente e a situações novas. Sejam robôs pessoais, industriais ou até mesmo robôs planetários enviados para Marte, a intersecção entre robótica e IA abre inovadoras possibilidades.
No contexto da sociedade e da indústria 4.0, a robótica inteligente é uma realidade e um campo em constante crescimento. Nosso mundo está cada vez mais conectado e automatizado, requerendo soluções inteligentes para problemas complexos. Robôs automatizados e robôs inteligentes são vistos em linhas de produção de fábricas automatizadas, na exploração espacial, nos cuidados de saúde, na agricultura de precisão, na logística e muitos outros setores.
Para seus estudos, recomendamos os seguintes materiais complementares:
- Livro: Artificial Intelligence: A Modern Approach (3rd Edition) de Stuart Russel e Peter Norvig.
- Livro: Hands-On Robotics with JavaScript: Build Robotic Applications Using Johnny-Five and Control Hardware with JavaScript and Raspberry Pi de Kassandra Perch.
- Vídeos: [Curso de Intro to Artificial Intelligence] na plataforma Udacity.
- Vídeos: [Curso de Machine Learning] por Andrew Ng na plataforma Coursera.
- Vídeos: [Curso de Robotic Systems] na plataforma edX.
Atividade Prática
Construindo e Programando Robôs Autônomos com Aprendizado por Reforço
Objetivo do Projeto
O objetivo deste projeto é oferecer aos alunos a oportunidade de construir e programar um robô que aprende a realizar tarefas simples através do Aprendizado por Reforço. Os alunos serão desafiados a desenvolver e implementar algoritmos apropriados e a configurar o robô para executar uma tarefa, como por exemplo, seguir uma linha ou evitar obstáculos. Durante o curso do projeto, os alunos deverão descrever e refletir sobre cada etapa do processo em um relatório de projeto.
Materiais Necessários
- Robô básico (por exemplo, Arduino car ou Raspberry Pi car)
- Sensores de linha e de distância
- Plataforma de programação (pode ser Python ou C++)
Descrição Detalhada do Projeto
O grupo de alunos deve idealizar, preparar, programar, testar e apresentar um robô que aprende a completar uma tarefa através do Aprendizado por Reforço. O robô deve mostra comportamento inteligente a partir do aprendizado desta tarefa e os alunos vão documentar todo o processo de preparo, erros, aprendizados e conclusões em uma relatório de projeto.
Passo a Passo Detalhado para a Realização da Atividade
-
Elaborar o projeto do robô: Os alunos devem desenhar e planejar o robô tendo em conta as limitações do projeto: os dispositivos sensores disponíveis, a plataforma de robô utilizada e a tarefa a ser completada. Devem escolher os sensores apropriados e considerar sua localização e instalação no robô.
-
Codificação do Robô: Com base no planejamento, é hora de programar o robô. Devido à complexidade desta tarefa, recomenda-se dividir o grupo de alunos em subgrupos, cada um responsável por uma especificidade diferente. Por exemplo, um subgrupo pode identificar e processar os dados do sensor enquanto outro subgrupo pode focar no movimento e controle do robô. Os subgrupos devem se reunir regularmente para integrar seus trabalhos.
-
Aprendizado por Reforço: Já descoberto e definido pelos subgrupos o método de obtenção, processamento dos dados e controle dos movimentos adequados, é hora de utilizar Aprendizado por Reforço para que o robô aprenda a tarefa em questão quanto mais tentativas fizer.
-
Teste do Robô: Depois de programado, o robô é testado. É crucial documentar cada teste e suas condições incluindo tentativas, falhas, ajustes, e sucessos.
-
Preparação do Relatório do Projeto: Por fim, os alunos devem se reunir para preparar um relatório de projeto detalhado, que inclua todos os passos acima, os problemas encontrados, as soluções propostas e implementadas, os sucessos e fracassos, os aprendizados obtidos e as conclusões sobre o projeto.
Tal projeto deve ser realizado num período de uma semana em grupos de 3 a 5 estudantes. Cada aluno deve desempenhar um papel ativo no desenvolvimento do projeto e contribuir para o relatório final.
Entrega do Projeto
Ao final do projeto, os grupos devem entregar:
- Relatório escrito do projeto, o qual deve refletir sobre cada etapa do trabalho dos alunos:
- Introdução (15% do conteúdo total do relatório): Aqui os alunos devem apresentar o tema em geral: "A inteligência artificial aplica em robótica". Os alunos devem apresentar um pouco da teoria que aprenderam em aula e mostrar a relevância do estudo deste tópico. Os estudantes devem também expor o objetivo deste projeto e o que se espera aprender com ele.
- Desenvolvimento (70% do conteúdo total do relatório): Nesta parte do relatório os alunos esperam que os alunos exponham alguns dos conceitos mais importantes que aprenderam em aulas sobre a inteligência artificial aplicada à robótica. No entanto, aqui o foco deve ser na implementação destes conceitos no projeto que desenvolveram. Os alunos devem explicitar a teoria por trás dos temas centrais do projeto, explicar a atividade e metodologia em detalhes e, por fim, apresentar e discutir os resultados que obtiveram.
- Conclusão (10% do conteúdo total do relatório): Nesta parte do relatório os alunos devem concluir o trabalho retomando seus pontos principais, explicitando os aprendizados obtidos e as conclusões retiradas sobre o projeto. Aqui, pedimos que os alunos falem um pouco sobre os desafios que encontraram durante a semana e depositem algumas sugestões para futuras atividades como esta.
- Bibliografia (5% do conteúdo total do relatório): Aqui os alunos insirem a bibliografia que usaram como Fontes de Consulta para conceitos que eventualmente tiveram de pesquisar para executar este projeto.
- Vídeo demonstrativo do robô funcionando.