MAC0318 Programming Mobile Robots
Table of Contents
![](/~ddm/courses/mac318/interlagos_hubb29569aa64fdd19c876c57b3e7553ad_874758_80337c000ffe67212a2304845f879e23.webp)
Justificativa
Robôs inteligentes móveis estão cada vez mais presentes em nosso dia-a-dia, de aspiradores de pó a veículos aéreos não-tripulados e carros semi-autônomos. Para serem bem sucedidos, tais robôs precisam resolver questões complexas como evitar colisões com obstáculos móveis, localizar-se no ambiente a partir de sensoriamento (câmera, sonares, lidares, odômetros etc), reconhecer objetos e sinais indicativos, planejar e prever trajetórias, seguir regras pré-estabelecidas e estabelecer e executar planos de longo prazo com recompensas esparsas e atrasadas. Diferentemente dos robôs atuais que habitam ambientes industriais, os robôs do futuro próximo deverão atuar em ambientes pouco controláveis e extremamente variáveis como o interior de uma casa, os corredores de um hospital ou as ruas de uma cidade.
Objetivo
![](/~ddm/courses/mac318/2019pista_hu8838a5fdd915b0176f0dc3b2b753b718_1987563_e3659cdb965d098e8a7722af251088ab.webp)
Esta disciplina visa introduzir alunos avançados de graduação aos desafios da robótica inteligente móvel, por meio do ensino de conceitos e técnicas de controle ótimo, processamento de imagens, raciocínio probabilístico, otimização, planejamento, aprendizado de máquina, entre outras. Ao final do semestre você aprenderá os conceitos fundamentais da robótica inteligente e deverá saber as respostas para perguntas como: O que é um robô móvel? Quais os principais desafios no desenvolvimento de robôs inteligente móveis? Quais as limitações físicas e lógicas das arquiteturas de agentes autônomos? Quais as implicações práticas das aproximações e simplificações adotas na formalização matemática dos agentes?
Metodologia
![](/~ddm/courses/mac318/navega%C3%A7%C3%A3o_hu603d2a66ddab2797fc25f2f50252b8e1_1938226_8ea721784a6d1eea57401f88e57d741d.webp)
A disciplina é baseada em atividades práticas nas quais os conceitos apresentados devem ser utilizados para implementar soluções para problemas comuns em robótica móvel. O critério de avaliação consiste na média ponderada das notas das atividades regulares resolvidas em classe e de um projeto final resolvido em grupos.
Conteúdo
A disciplina é dividida em 8 módulos de aprendizado; cada módulo toma de 1 a 3 aulas e é acompanhado de uma ou mais atividades. Há também um projeto final em grupo.
- Introdução aos veículos autônomos
- Questões fundamentais da robótica móvel
- Autonomia
- Robôs móveis: atuadores e sensores e direção diferencial
- Arquitetura lógica: percepção, planejamento e execução
- Arquiteturas sensorimotoras
- Veículos de Braitenberg
- Sistemas de controle
- Definição e avaliação
- Controle de malha aberta e de malha fechada
- Representação de estado para robô pontual
- Modelo de robô diferencial no plano
- Controle PID
- Navegação
- Planejamento de caminho reativo
- O algoritmo Bug
- Campos potenciais
- Aprendizado de máquina supervisionado
- Definição
- Regressão
- Estimação de pose a partir de imagem
- Classificação
- Reconhecimento de objetos
- Aprendizado por imitação
- Metodologia
- Estimação de estado e localização
- Filtro bayesiano
- Odometria e localização por odômetro (dead reckoning)
- Filtro por histograma
- Filtro de Monte Carlo
- Planejamento por busca em grafo
- Representação do ambiente
- Busca em grafo
- Algoritmo de Dijkstra
- Busca A*
- Planejamento por amostragem
- RRT
- Aprendizado por reforço
- Processos de decisão markovianos
- Aprendizado temporal
- Q-Learning
- Gradiente de política
Pré-requisitos
- Conhecimento básico de Linux (comandos usuais de terminal, gerenciamento de pacotes), Python e Git (push, pull, commit, branch, fork, merge)
- Conhecimento elementar de álgebra linear (transformação lineares, matriz de rotação), probabilidade (variáveis aleatórias gaussianas, função de densidade, marginalização e regra de Bayes) e cálculo (sistemas de equações de derivadas parciais)
- Conhecimento básico de estruturas de dados (pilhas, filas, filas de prioridade) e teoria dos grafos (busca em profundidade, busca em largura).
- Computador com Linux instalado (de preferência Ubuntu) e acesso de administrador.
Link para repositório
https://gitlab.uspdigital.usp.br/mac0318-2021
Bibliografia
- P. Corke. Robotics, Vision and Control: Fundamental Algorithms in Matlab, Springer, 2a. edição, 2017.
- S. Thrun, B. Wolfram, D. Fox, Probabilistic Robotics, MIT Press, Cambridge, MA, 2005.
- G. Dudek, M. Jenkin, Computational Principles of Mobile Robotics, Cambridge University Press, 2000.
- R. Siegwart, I.R. Nourbakhsh, Introduction to Autonomous Mobile Robots, MIT Press, Cambridge, MA, 2004.
- S. Russel, P. Norvig, Artificial Intelligence: A Modern Approach. Third edition. Prentice-Hall, Englewood Cliffs, NJ, 2009.
- U. Nehmzow, Mobile Robotics: A Practical Introduction, Springer Verlag, 2000.
- R. Murphy, Introduction to AI Robotics, MIT Press, Cambridge, MA, 2000.
- R. Arkin, Behavior-based Robotics, MIT Press, Cambridge, MA, 1998.