sábado, 10 de novembro de 2012

Cursos online (e gratuitos) de Robótica




--- Atualizado em 31/05/2015

A popularização de cursos online aumenta a cada dia. Especialmente no ano de 2012 houve um enorme aumento na oferta de cursos online gratuitos oferecidos por instituições e/ou profissionais de renome. Atualmente, universidades como MIT, Stanford, Harvard, Berkeley, Georgia Tech, entre muitas outras, oferecem diversos cursos gratuitamente pela internet. E com direito a certificado! No Brasil também observamos essa tendência, que pode ser exemplificada pelo portal Unicamp Courseware.  De fato, o ano de 2012 foi chamado de "O ano dos MOOC" pelo jornal americano The New York Times (MOOC é a sigla para Massive Open Online Courses).


Já escrevi um comentário sobre o aprendizado de robótica, em que falei sobre o curso CS373 - Programming a Robotic Car, da Udacity. Esse curso é dado por Sebastian Thrun, que é professor de  Stanford University e coordenador do projeto do carro autônomo da Google. Também comentei sobre o curso Introduction to Robotics, lecionado pelo professor Oussama Khatib, também de Stanford. O professor Khatib é um respeitado pesquisador nessa área, com mais de 25 anos de experiência e mais de 200 trabalhos publicados. Veja esse comentário aqui.

Hoje vou comentar sobre outros cursos muito interessantes. O primeiro é o Control of Mobile Robots, lecionado por Magnus Egerstedt, da Georgia Institute of Technology. Dr. Egerstedt já foi premiado tanto pela Georgia Tech como por Harvard University e trabalha com planejamento de movimento para robôs móveis e times de robôs. No vídeo a seguir ele explica sobre seu curso.



Como o próprio título do curso sugere, seu foco será em controle. Em especial, aplicação da teoria de controle em robótica. Pré-requisitos para esse curso incluem cálculo básico, álgebra linear e alguma base em equações diferenciais. O curso será oferecido através do portal Coursera, que reúne cursos de diversas instituições. Tive a oportunidade de fazer o curso Control of Mobile Robots e achei excelente! O foco do curso é controle, portanto você pode aprender um bocado da teoria aplicando em robótica. E pode testar todos os conceitos usando um simulador baseado em MATLAB que eles disponibilizam.

Outros cursos muito bons que tive a oportunidade de fazer são os MOOCs oferecidos pelo professor Peter Corke. Ele é o autor do livro Robotics, Vision and Control e de dois toolboxes gratuitos para MATLAB (um para robótica e outro para visão de máquina). Já falei um pouco sobre o toolbox de robótica do professor Corke nesse post. Os cursos que ele ofereceu são chamados Introduction to Robotics e Robotic Vision, que tratam de robôs manipuladores e de técnicas de visão computacional que dão percepção aos robôs. Ambos fazem uso massivo dos toolboxes para MATLAB que ele desenvolveu, portanto são cursos em que você coloca mesmo a mão na massa! Eles oferecem projetos opcionais em que você usa Lego para montar um robô manipulador controlado pelo computador (no primeiro curso) e faz o controle desse robô usando visão computacional (no segundo). São excelentes cursos para quem deseja uma introdução aos conceitos básicos de robótica e de visão computacional! Veja o vídeo sobre o curso Robotic Vision abaixo.


Já o curso Autonomous Mobile Robots, oferecido pela ETH Zurich através da plataforma edX, aborda conceitos muito mais avançados da área de robótica móvel. Ele foi organizado pelo professor Roland Siegwart, que é autor do livro Introduction to Autonomous Mobile Robots (Intelligent Robotics and Autonomous Agents series), amplamente adotado em universidades do mundo todo. Entre os assuntos tratados no curso estão localização e mapeamento probabilísticos, planejamento de locomoção, percepção, entre outros. O curso não é fácil e exige embasamento matemático pelo menos a nível de graduação (da área de engenharia ou ciências exatas). Dá bastante trabalho, mas é muito bom!

Outro curso que gostei muito foi o Autonomous Navigation for Flying Robots, oferecido pela universidade de Munich também através do edX. Além de tratar dos conceitos básicos de funcionamento e controle de quadricópteros, o curso também aborda odometria visual, SLAM, entre outros. O curso possui um simulador acessível através da plataforma online em que você pode programar e exercitar os conceitos sem correr o risco de destruir o seu quadrotor! :-) Outro aspecto muito interessante é que eles disponibilizam uma biblioteca para ROS para controlar Parrot AR.Drone 2.0 usando o mesmo código que você testa no simulador! Fantástico!

Por fim, quero comentar sobre o curso CS 287: Advanced Robotics, da Universidade da California em Berkeley. Esse curso foi lecionado algumas vezes pelo professor Pieter Abbeel, que trabalha com aprendizado de máquina aplicado à robótica. Dois exemplos de seus trabalhos são um helicóptero autônomo que faz manobras impressionantes e um robô que aprende a dobrar toalhas. Veja exemplos de seus trabalhos aqui (com vídeos!).

O curso CS 287 não foi feito como um curso online. Mas, os vídeos e o material utilizado em todas as aulas estão disponíveis na página do curso. Pré-requisitos incluem álgebra linear, familiaridade com provas matemáticas, algoritmos e habilidade em programação. O conteúdo resumido do curso é o seguinte:

- Estimação: Filtros de Bayes, de Kalman, e de Partículas, Mapeamento de ocupação de células e SLAM;
- Controle ótimo;
- Planejamento de Movimento;
- Manipulação;
- Aprendizado por Reforço;
- Estudos de caso: helicóptero autônomo, direção autônoma, caminhar, manipulação móvel.

O foco desse curso é a "inteligência" do robô, não sendo abordados aspectos sobre construção mecânica, estrutura, sensores, capacidade de processamento, atuação etc., que são abordados em outros dos cursos que mencionei.


Pra finalizar, deixo um resumo da lista de cursos interessantes a seguir. O CS 287 - Advanced Robotics foi o único que eu (ainda) não completei. Mas está na minha lista! :-)

Programming a Robotic Car - Udacity
Control of Mobile Robots - Georgia Institute of Technology / Coursera
Introduction to Robotics - QUT
Robotic Vision - QUT
Autonomous Mobile Robots - ETH Zurich / edX
Autonomous Navigation for Flying Robots - TUM / edX
CS 287: Advanced Robotics - University of California at Berkeley

Espero que possam aproveitar a oportunidade de estudarem com os melhores profissionais de robótica do mundo!! Bons estudos e até a próxima!

Referências:

http://www.nytimes.com/2012/11/04/education/edlife/massive-open-online-courses-are-multiplying-at-a-rapid-pace.html?pagewanted=1&_r=2
http://www.ocw.unicamp.br/
http://nossosrobos.blogspot.com.br/2012/04/quer-aprender-robotica.html
http://nossosrobos.blogspot.com.br/2011/10/robos-que-aprendem-com-pessoas.html
http://rll.berkeley.edu/cs287/lecture_videos/
http://www.cs.berkeley.edu/~pabbeel/cs287-fa11/
https://www.coursera.org/course/conrob
https://www.qut.edu.au/study/open-online-learning