Programa del Curso
Semana 01
Introducción
- ¿Qué hace que un Robot sea inteligente?
Robots Físicos vs Virtuales
- Robots Inteligentes, Máquinas Inteligentes, Máquinas Conscientes y Automatización de Procesos Robóticos (RPA), etc.
El Papel de la Inteligencia Artificial (IA) en la Robótica
- Más allá del "if-then-else" y la máquina aprendizaje
- Los algoritmos detrás de la IA
- Aprendizaje automático, visión por computadora, procesamiento de lenguaje natural (NLP), etc.
- Robótica cognitiva
El Papel del Big Data en la Robótica
- Toma de decisiones basada en datos y patrones
La Nube y la Robótica
- Enlazando la robótica con IT
- Creación de robots más funcionales que acceden a más información y colaboran
Estudio de Caso: Robots Industriales
- Robots Mecánicos
- Baxter
- Robots en Instalaciones Nucleares
- Detección y protección contra radiación
- Robots en Reactores Nucleares
- Detección y protección contra radiación
Componentes Mecánicos de un Robot
- Motores, sensores, microcontroladores, cámaras, etc.
Elementos Comunes en los Robots
- Visión por máquina, reconocimiento de voz, síntesis de voz, detección de proximidad, detección de presión, etc.
Marco de Desarrollo para Programar un Robot
- Entornos de desarrollo de código abierto y comercial
- Sistema Operativo Robótico (ROS)
- Arquitectura: espacio de trabajo, temas, mensajes, servicios, nodos, actionlibs, herramientas, etc.
Lenguajes para Programar un Robot
- C++ para el control de bajo nivel
- Python para la orquestación
- Programación de nodos ROS en Python y C++
- Otros lenguajes
Herramientas para Simular un Robot Físico
- Software comercial y de código abierto para simulación y visualización 3D
Semana 02
Preparando el Entorno de Desarrollo
- Instalación y configuración del software
- Paquetes y utilidades útiles
Estudio de Caso: Robots Mecánicos
- Robots en el campo de la tecnología nuclear
- Robots en sistemas ambientales
Programación del Robot
- Programación de un nodo en Python y C++
- Comprendiendo los nodos ROS
- Mensajes y temas en ROS
- Paradigma de publicación / suscripción
- Proyecto: Bump & Go con un robot real
- Solución de problemas
- Simulación de robots con Gazebo / ROS
- Frames en ROS y cambios de referencia
- Procesamiento de información 2D de cámaras con OpenCV
- Procesamiento de la información del láser
- Proyecto: Seguimiento seguro de objetos por color
- Solución de problemas
Semana 03
Programación del Robot (Continuado...)
- Servicios en ROS
- Procesamiento de información 3D con sensores RGB-D y PCL
- Mapas y Navegación con ROS
- Proyecto: Búsqueda de objetos en el entorno
- Solución de problemas
Programación del Robot (Continuado...)
- ActionLib
- Reconocimiento y Generación de Voz
- Control de brazos robóticos con MoveIt!
- Control del cuello robótico para visión activa
- Proyecto: Búsqueda y recolección de objetos
- Solución de problemas
Prueba de tu Robot
- Pruebas unitarias
Semana 04
Ampliando las Capabilidades de un Robot con Aprendizaje Profundo
- Percepción -- visión, audio y hápticos
- Representación del conocimiento
- Reconocimiento de voz a través de NLP (procesamiento de lenguaje natural)
- Visión por computadora
Curso Intensivo en Aprendizaje Profundo
- Redes Neuronales Artificiales (ANNs)
- Redes neuronales artificiales vs. redes neuronales biológicas
- Redes neuronales feedforward
- Funciones de activación
- Entrenamiento de redes neuronales artificiales
Curso Intensivo en Aprendizaje Profundo (Continuado...)
- Modelos de Aprendizaje Profundo
- Redes Convolucionales y Redes Recurrentes
- Redes Neuronales Convolucionales (CNNs o ConvNets)
- Capa de convolución
- Capa de pooling
- Arquitectura de redes neuronales convolucionales
Semana 05
Curso Intensivo en Aprendizaje Profundo (Continuado...)
- Redes Neuronales Recurrentes (RNN)
- Entrenamiento de una RNN
- Estabilización de gradientes durante el entrenamiento
- Redes neuronales con memoria a largo plazo
- Plataformas y Bibliotecas de Software para Aprendizaje Profundo
- Aprendizaje profundo en ROS
Usando Big Data en tu Robot
- Conceptos de big data
- Enfoques para el análisis de datos
- Herramientas de Big Data
- Reconocimiento de patrones en los datos
- Ejercicio: NLP y visión por computadora en grandes conjuntos de datos
Usando Big Data en tu Robot (Continuado...)
- Procesamiento distribuido de grandes conjuntos de datos
- Coexistencia y fertilización cruzada entre Big Data y Robótica
- El robot como generador de datos
- Sensores de medición de rango, posición, visuales, táctiles y otras modalidades
- Dar sentido a los datos sensoriales (ciclo de sensores-planeación-acción)
- Ejercicio: Captura de datos en streaming
Programando un Robot Autónomo con Aprendizaje Profundo
- Componentes del robot de aprendizaje profundo
- Configuración del simulador de robots
- Ejecución de una red neuronal acelerada con CUDA utilizando Café
- Solución de problemas
Semana 06
Programando un Robot Autónomo con Aprendizaje Profundo (Continuado...)
- Reconocimiento de objetos en fotografías o flujos de video
- Habilitación de la visión por computadora con OpenCV
- Solución de problemas
Análisis de Datos
- Uso del robot para recopilar y organizar nuevos datos
- Herramientas y procesos para dar sentido a los datos
Implementación de un Robot
- Transición de un robot simulado al hardware físico
- Implementación del robot en el mundo físico
- Monitoreo y mantenimiento de robots en campo
Seguridad de tu Robot
- Prevenir manipulaciones no autorizadas
- Prevenir que los hackers vean y roben datos sensibles
Construcción Colaborativa de un Robot
- Construcción de robots en la nube
- Participación en la comunidad robótica
Perspectiva Futura para los Robots en el Campo de Ciencia y Energía
Resumen y Conclusión
Requerimientos
- Experiencia en programación con C o C++
- Experiencia en programación con Python (útil pero no necesaria; se puede enseñar como parte del curso)
- Experiencia con la línea de comandos de Linux
Target Audience
- Desarrolladores
- Ingenieros
- Científicos
- Técnicos
Testimonios (1)
Siento que adquiero las habilidades clave necesarias para entender cómo se integra el ROS, y cómo estructurar proyectos en él.
Dan Goldsmith - Coventry University
Curso - ROS: Programming for Robotics
Traducción Automática