Programa do Curso
Semana 01
Dia 01
Introdução
- O que Torna um Robô Inteligente?
Robôs Físicos vs Virtuais
- Robôs Inteligentes, Máquinas Inteligentes, Máquinas Conscientes e Automação de Processos Robóticos (RPA), etc.
O Papel da Inteligência Artificial (IA) na Robótica
- Além do "se-então-senão" e a máquina de aprendizado
- Os algoritmos por trás da IA
- Aprendizado de máquina, visão computacional, processamento de linguagem natural (NLP), etc.
- Robótica cognitiva
Dia 02
O Papel do Big Data na Robótica
- Tomada de decisão baseada em dados e padrões
A Nuvem e a Robótica
- Conectando robótica com TI
- Construindo robôs mais funcionais que acessam mais informações e colaboram
Estudo de Caso: Robôs Industriais
- Robôs Mecânicos
- Baxter
- Robôs em Instalações Nucleares
- Detecção e proteção contra radiação
- Robôs em Reatores Nucleares
- Detecção e proteção contra radiação
Dia 03
Componentes de Hardware de um Robô
- Motores, sensores, microcontroladores, câmeras, etc.
Elementos Comuns dos Robôs
- Visão computacional, reconhecimento de voz, síntese de fala, sensores de proximidade, sensores de pressão, etc.
Dia 04
Estruturas de Desenvolvimento para Programar um Robô
- Frameworks de código aberto e comerciais
- Robot Operating System (ROS)
- Arquitetura: espaço de trabalho, tópicos, mensagens, serviços, nós, actionlibs, ferramentas, etc.
Linguagens para Programar um Robô
- C++ para controle de nível baixo
- Python para orquestração
- Programando nós ROS em Python e C++
- Outras linguagens
Dia 05
Ferramentas para Simular um Robô Físico
- Software comercial e de código aberto para simulação e visualização 3D
Ferramentas para Projetar as Características Físicas de um Robô
- Software CAD comercial e de código aberto
Estudo de Caso: Robôs Mecânicos
- Robôs no campo da tecnologia nuclear
- Robôs em sistemas ambientais
Semana 02
Dia 06
Curso Intensivo de Python
- Instalação e configuração do software
- Pacotes e utilitários úteis
- Trabalhando com estruturas de dados em Python, operadores, loops, condicionais, funções, métodos, etc.
- Escrevendo um programa de exemplo
- Projeto em equipe
Dia 07
Preparação para o Desenvolvimento de Robôs
- Configurando o ambiente de desenvolvimento (por exemplo, IDE Arduino)
- Explorando a sintaxe da linguagem Arduino (C/C++)
- Codificação, compilação e upload para o microcontrolador
- Montagem dos componentes de hardware de um robô Arduino
Dia 08
Trabalho com Componentes do Arduino
- Sensores analógicos
- Sensores digitais
Trabalhando com Módulos de Comunicação do Arduino
- Módulos Bluetooth
- Módulos Wi-Fi
- Módulos RFID
- I2C e SPI
- Internet móvel
Dia 09
Construindo um Robô
- Planejando as características e funcionalidades de um robô
- Implementação do movimento do robô
Projeto em equipe
- Discussão e revisão
Dia 10
Controle do Robô
- Implementação do controlador
- Conexão com o robô (através de fio e sem fio)
Projeto em equipe
- Discussão e revisão
Semana 03
Dia 11
Programação do Robô
- Simulação de um robô com Gazebo / ROS
- Compreendendo o nó ROS
- Programando um nó em Python e C++
- Mensagens e tópicos no ROS
- Paradigma de publicação / assinatura
Projeto em equipe
- Bump & Go com robô real
- Discussão e revisão
Dia 12
Programação do Robô (continuando...)
- Frames no ROS e mudanças de referência
- Processamento de informações em 2D das câmeras com OpenCV
- Processamento de informações do laser
Projeto em equipe
- Rastreamento seguro de objetos por cor
- Discussão e revisão
Dia 13
Testando o Robô
- Ferramentas para testar seu código
- Testes unitários
- Criando um conjunto de testes
- Automatizando seus testes
- Solução de problemas
Projeto em equipe
- Rastreamento seguro de objetos por cor
- Discussão e revisão
Dia 14
Programação do Robô (continuando...)
- Serviços no ROS
- Processamento de informações em 3D dos sensores RGB-D com PCL
- Mapas e navegação com ROS
Dia 15
Programação do Robô (continuando...)
- Conclusão de tarefas com ActionLib
Projeto em equipe
- Busca por objetos no ambiente
Semana 04
Dia 16
Programação do Robô (continuando...)
- Conclusão de tarefas com ActionLib
Dia 17
Programação do Robô (continuando...)
- Reconhecimento e geração de voz
- Solução de problemas
Projeto em equipe
- Controle de um robô usando voz
Dia 18
Programação do Robô (continuando...)
- Controle de braços robóticos com MoveIt!
- Controle da cabeça robótica para visão ativa
- Solução de problemas
Projeto em equipe
- Busca e coleta de objetos
Dia 19
Implantação do Robô
- Implantação do robô no mundo físico
- Monitoramento e manutenção de robôs em campo
- Uso de aplicativos móveis para controlar um robô
Protegendo o Robô
- Prevenindo interferências não autorizadas
- Prevenindo hackers de visualizar e roubar dados sensíveis
Dia 20
Análise de Dados
- Coleta e organização dos dados gerados pelo robô
- Interpretando os dados por meio de ferramentas e processos de visualização
Construindo um Robô Colaborativamente
- Construção de um robô na nuvem
- Construção de um aplicativo móvel para interagir com o seu robô
- Participação na comunidade de robótica
Perspectivas Futuras para Robôs no Campo da Ciência e Energia
Resumo e Conclusão
Requisitos
- Experiência em programação em C ou C++
- Experiência em programação em Python (útil, mas não necessária; pode ser ensinado como parte do curso)
- Experiência com linha de comando Linux
Público-Alvo
- Desenvolvedores
- Engenheiros
- Cientistas
- Técnicos
Declaração de Clientes (1)
Sinto que adquiri as habilidades essenciais para entender como o ROS se integra e como estruturar projetos nele.
Dan Goldsmith - Coventry University
Curso - ROS: Programming for Robotics
Máquina Traduzida