Programa del Curso CI-2657

Información General del Curso

UCR – Universidad de Costa Rica
ECCI – Escuela de Ciencias de la Computación e Informática
CI-2657 Robótica
Tipo Curso: Teórico-Práctico
4 Créditos / 12 Horas Totales a la Semana:

  • 4 horas de clases presenciales a la semana
  • 8 horas de trabajo independiente a la semana

Asistencia Obligatoria*
Requisito:

  • CI-1322 Autómatas y Compiladores
  • CI-1323 Arquitectura de Computadoras

Co-requisito: No tiene
Cupo Mínimo: 10 estudiantes / Cupo Máximo: 22 estudiantes
Curso Electivo del Último Año de la Carrera
Periodo Actual: I Semestre del 2017

* Aunque la asistencia a este curso no es obligatoria (de acuerdo al reglamento de la UCR), es necesario que el estudiante asista a todas las clases para poder aprobar el curso con éxito; ya que los objetivos, la metodología, las actividades de enseñanza-aprendizaje y la evaluación están planeadas contando con la participación activa de los estudiantes.

Descripción del Curso

El curso de Robótica es un curso teórico-práctico dirigido a los estudiantes de la Escuela de Ciencias de la Computación e Informática de la Universidad de Costa Rica en el énfasis de Ciencias de la Computación. Está dedicado a introducir los fundamentos en el uso, el diseño y la implementación de sistemas orientados a robótica, centrándose en el diseño, construcción y programación de robots autónomos con diferentes tecnologías de robótica, como los kits de Lego Mindstorms NXT y EV3. Además, se incorporarán el hardware y software de los robots Q.bo y NAO, los cuales serán utilizados por los estudiantes en los laboratorios y las tareas.

Los estudiantes adquieren conocimientos prácticos sobre temas como la incertidumbre en la detección y la acción, así como los métodos para tratar con ella, la localización de si mismo, la planificación de trayectorias y evasión de obstáculos, arquitecturas basadas en comportamientos y arquitecturas de controladores reactivos, la teoría básica de control, y temas avanzados, como sistemas multi-robot, aprendizaje, y mapeado.

En cumplimiento de la Ley 7600 de la igualdad de oportunidades se programa la posibilidad de atención de las necesidades educativas especiales de los matriculados. Los interesados favor avisar al profesor por escrito durante la primera semana del curso acerca de las adecuaciones que necesiten. Posteriormente (a más tardar la tercera semana del curso), para hacer efectivas las adecuaciones requeridas se deben presentar los documentos que justifiquen tales necesidades educativas especiales. El estudiante debe estar dispuesto a trabajar en equipo junto con el docente y la comisión institucional para llevar su necesidad educativa particular.

Objetivos

En esta sección se especifican los objetivos formativos que comprende el curso de Estructuras Discretas, desglosándolos en el objetivo general (relacionado con la materia), y objetivos específicos (lo que se debe saber al finalizar el curso).

Al mismo tiempo, los objetivos de la asignatura se van a clasificar en tres grupos: conocimiento (información a recordar), comprensión (ser capaz de aplicar un algoritmo previamente conocido), y aplicación (ser capaz de tomar decisiones y decidir entre varias opciones).

Objetivo General

Aprender y aplicar los fundamentos de robótica para diseñar, construir, programar y documentar la solución de problemas reales mediante sistemas robóticos, utilizando diferentes tecnologías.

Objetivos Específicos

Al finalizar el curso el estudiante será capaz de:

  1. Conocer las herramientas teóricas básicas en la manipulación de actuadores, elementos de percepción, procesamiento de señales en sistemas robóticos, técnicas de Inteligencia Artificial en razonamiento, reconocimiento, clasificación y aprendizaje, y su uso con elementos de manipulación. (conocimiento)
  2. Comprender la problemática de la transición de soluciones abstractas a soluciones prácticas. (comprensión)
  3. Desarrollar un sistema de programas básicos de control, planificación y percepción que permitan manipular el actuador. (aplicación)
  4. Implementar interfaces de: programación de tareas por objetivos e intercambio de información entre los diferentes sistemas. (aplicación)
  5. Desarrollar sistemas (hardware y software) que permitan la ejecución efectiva de  las tareas asignadas al actuador. (aplicación)

Contenidos y Cronograma

Fecha Inicio Fecha Fin Duración (Clases) Tema
1 13/03 16/03 2 Presentación del curso, lectura de la carta del estudiante.

Robótica:

  • Introducción a la Robótica.
2 20/03 27/04 10 Principios Básicos:

  • Arquitectura general de un actuador.
  • Introducción a ROS (Robotics Operating System).
  • Programación básica, lenguajes orientados a robótica. Programación de LEGO EV3 con Java.
  • Nociones básicas de posicionamiento y control automático. Métodos de representación en posicionamiento, orientación, escala y perspectiva. Matrices de transformación. Dinámica del movimiento en un actuador.
  • Mecánica básica y motores a paso.
3 01/05 11/05 4 Sistemas de Sensación:

  • Sensores y actuadores.
  • Percepción por tacto, percepción por sensación, percepción de distancia: escala y perspectiva.
  • Visión automática. Procesamiento digital de imágenes, filtrado y resaltado.
  • Segmentación, reconocimiento y clasificación de objetos.
4 15/05 25/05 4 Arquitecturas:

  • Arquitecturas de control del robot.
  • Arquitecturas basadas en comportamientos.
5 29/05 29/06 10 Temas Avanzados:

  • Lógica de primer orden, unificación y resolución.
  • Definición de estado y transición. Planificación en el mundo de los cubos.
  • Localización y planeación de trayectorias.
  • Mapeado. Simultaneous localization and mapping (SLAM).
  • Aprendizaje.
  • Sistemas multi-robot.
  • Aplicaciones de los robots.
6 03/07 06/07 2 Presentación del Proyecto:

  • Sistema Robótico.

Laboratorios

Fecha Inicio Fecha Fin Duración (Clases) Laboratorio
1 16/03 23/03 2 Construyendo su primer robot

El cambio a Java

2 30/03 30/03 1 Iniciando con ROS y Q.bo
3 06/04 06/04 1 Iniciando con la infraestructura de NAO
4 20/04 20/04 1 Vehículos Braitenberg
5 27/04 04/05 2 ¿Se puede controlar?
6 11/05 18/05 2 Arquitectura de Subsunción
*7 25/05 01/06 2 ¿Dónde estoy?

Planificación de ruta

*8 08/06 08/06 1 Mapa de decisiones

*Estos laboratorios son opcionales, los grupos que los hagan ganan puntos extra.

Metodología

El curso se extenderá a lo largo de un semestre de trabajo, con una equivalencia aproximada de 60 horas presenciales (32 lecciones – 16 semanas).

Las clases teóricas serán complementadas con la lectura semanal de artículos y documentos que serán comentados en clase y los cuales se relacionarán al tema, o bien a la lectura de material relativo a herramientas, lenguajes o técnicas actualmente usadas para implementar tales sistemas y que serán de utilidad al estudiante para el desarrollo de sus tareas.

Partiremos del interés personal de los estudiantes para asignar una serie de temas que serán desarrollados por cada grupo de estudiantes. La investigación y la presentación se harán en grupos de tres personas. Cada grupo desarrollará su tema y culminará con una presentación en forma de exposición en clase.

Partiremos de la compresión de los estudiantes en los temas vistos en clase para asignar un proyecto, el cual está dividido en cuatro etapas, que serán desarrolladas por cada grupo de estudiantes. La realización del proyecto se hará en grupos de dos o tres personas. Cada grupo desarrollará cada etapa, y al final del semestre culminará con un pequeño Sistema de Robótico y la presentación del mismo al profesor y al grupo.

Evaluación y Medición

A continuación se presenta los criterios de evaluación y medición:

Laboratorios 25%
Tareas 20%
Investigación 15%
Exposición del Tema 10%
Evaluaciones de las Exposiciones 5%
Proyecto 40%

NOTA: Para aprobar el curso el estudiante debe tener una nota igual o superior a 6.75. Si la nota final está entre 5.75 y 6.74 tendrá derecho a realizar un examen de ampliación, el cual incluye toda la materia del curso; en dicho examen deberá tener una nota mínima de 7.0 para aprobar el curso, siendo la nota final 7.0. En caso de que el estudiante tenga una nota igual o inferior a 5.74, o bien en caso de presentar el examen de ampliación con una nota inferior a 7.0 reprobará el curso.

Observaciones

  • El material del curso (presentaciones, tareas, ejemplos, artículos, documentos, etc.) puede obtenerse en http://www.kramirez.net/ci-2657/
  • Las tareas deberán ser entregadas al profesor el día propuesto en el enunciado, por cualquier medio que se indique; son grupales.
  • Los quices se harán en todas las lecciones y en cualquier momento durante el transcurso de la lección, y no se reponen. Los quices son quices normales, sin ningún material de apoyo; pueden ser individuales o grupales.
  • La investigación consiste en la presentación al grupo, en grupo de tres personas como máximo, de una aplicación sobre temas vistos por el profesor en clases. Se formarán los grupos y se asignarán los temas el primer día de clases.
  • El proyecto se puede realizar en grupo de tres personas como máximo. Se formarán los grupos el primer día de clases. Cada etapa del proyecto deberá ser entregada al profesor el día propuesto en el enunciado, por cualquier medio que se indique. Se realizará a los integrantes de cada grupo, una comprobación individual del trabajo realizado en cada etapa del proyecto.
  • Las comprobaciones del proyecto son quices individuales, sobre el trabajo realizado en cada etapa, que comprueba si el estudiante participó o no en el desarrollo del mismo. Se realizan el día de entrega de cada etapa. La nota obtenida en cada comprobación se promedia con la nota obtenida en la etapa respectiva del proyecto.
  • Los criterios de evaluación de cada trabajo asignado se entregarán oportunamente.
  • El uso de lápiz en cualquier evaluación se permite, pero no se acepta reclamos. Por lo que, el uso del lapicero es recomendado.
  • Por cada día natural de retraso en la entrega de cualquier trabajo del curso se rebajará un punto en la escala de 1 a 10.
  • Todo trabajo debe ser entregado de forma impresa. El envío por correo electrónico sólo será válido para demostrar que el trabajo estaba listo el día de la entrega.
  • Si envía por correo electrónico con uno o más días de retraso, se aplicará la regla de rebajo de puntos expuesta arriba con base en la fecha de envío.
  • El plazo máximo de entrega de la copia impresa de un trabajo enviado por correo electrónico es de 4 días naturales a partir del día de envío por correo electrónico. De no cumplir, se aplicará la regla de rebajo de un punto por día. Se recomienda dejar los trabajos atrasados en el casillero de la profesora.
  • Cuando el estudiante sepa que tendrá que faltar un día particular en el cual debe entregar algún trabajo, se recomienda que lo comunique a la profesora antes de ese día, para coordinar la entrega de alguna forma.
  • En todos los trabajos y las evaluaciones de los estudiantes, se calificará la redacción y ortografía; por lo que, se rebajará de la nota obtenida un punto por cada falta de ortografía y mala redacción.
  • En todos los trabajos y las evaluaciones, se le solicitará al estudiante que firme una lista de entrega, para que el estudiante tenga un documento que compruebe que entregó y realizó lo solicitado por el profesor.
  • Los estudiantes pueden discutir los trabajos (excluyendo exámenes y quices) con quien sea. Esto incluye hablar sobre interpretaciones del ejercicio asignado, por donde se podría atacar el problema, inclusive la estrategia completa de solución (si alguno de los que discuten ya lo resolvió); además, se puede sugerir y/o buscar material complementario, etc. Lo que no se puede es copiar la solución de ninguna fuente, ya sea un(a) compañero(a), un libro, Internet, etc.
  • Los trabajos serán revisados por la profesora y/o el(la) asistente, si se encuentra evidencia de cualquier tipo de copia, y es la primera vez, los estudiantes involucrados tendrán un cero de nota. Si ocurre una segunda vez, el caso se remitirá a la comisión disciplinaria de la ECCI para aplicar el reglamento.
  • En cuanto a reportes y presentaciones se castigará el plagio, el cual se considera copia y será castigado de la misma manera. Se considera plagio la copia literal de segmentos (texto, figuras, tablas u otros datos no textuales) de otra fuente, sin comillas y sin referencia, aunque sea traducido, así como el parafraseo sin aportes e ningún tipo.
  • Cuando un(a) estudiante no pueda asistir a efectuar una evaluación por alguna razón de fuerza mayor: la muerte de un pariente hasta de segundo grado, la enfermedad del estudiante u otra situación de fuerza mayor o caso fortuito; se seguirá con lo normalizado en el artículo 24 del Reglamento de Régimen Académico Estudiantil.

Fechas Importantes

Investigación

  • Entrega de la Presentación => Una semana antes de la fecha de exposición
  • Exposición => Del 29 de mayo al 29 de junio.

Proyecto

  • Entrega => Del 3 al 6 de julio.
  • Entrega Final => Lunes 10 de julio, 8 a.m. – 12 m.d.

Bibliografía

No hay libro de texto. Se usarán capítulos de los libros citados a continuación, así como publicaciones recientes de revistas y conferencias.

Libros

Robótica

  1. Barrientos, Antonio; Peñín, Luis Felipe; Balaguer, Carlos; & Aracil, Rafael. “Fundamentos de Robótica”. McGraw-Hill. 2007.
  2. Craig, J.J. “Introduction to robotics”. Addison-Wesley, Reading, MA. 2000.
  3. González, Bernardi; & C.A Martínez-Alfaro. “Kinematic simulator for an insect like robot”. IEEE International Conference on Systems, Man and Cibernetics. Vol 2, p. 1845-1851. Octubre, 2003.
  4. Briceño, Juan. “Notas del Curso CI-2500 Temas especiales en Inteligencia Artificial: Robótica”. Universidad de Costa Rica, Edición Electrónica, SIBDI Asignatura 006.3 B849n, Nº inscripción 523683. 2003.
  5. Dudek, G.; & Jenkin, M. “Computational Principles of Mobile Robotics”. Cambridge University press. 2000.
  6. Esteve, Juan Domingo. “Apuntes de Robótica”. Universidad de Valencia. España.
  7. Faúndez Zanuy, Marcos. “Tratamiento Digital de la Voz e Imagen”. Alfaomega Marcombo. 2000.
  8. da Fontoura Costa, Luciano; & Mercondes Cesar, Roberto Jr. “Shape Analisys and Classification”. CRC Press. 2001.
  9. Fu, K.S.; González, R.C.; & Lee, C.S.G. “Robotics: Control, Sensing, Vision, and Intelligence”. McGraw-Hill. 1987.
  10. Genesereth, Michael R.; & Nilsson, Nils. Logical Foundation of Artificial Intelligence. Morgan Kaufman. 1987.
  11. Gordon, MacComb. “Tips y técnicas para electrónica, guía práctica de fórmulas, funciones, datos y componentes”. Mc Graw and Hill.
  12. Hee Song, Deok; Kyu Lee, Woon; & Jung, Seul. “Control and interface between an Exoskeleton Master Robot and a human Like robot with two arms”. Proceedings on Advanced Intelligent Mechatronics International Conference IEEE/ASM. 2005.
  13. Kuc, Tae-yong; Nam, Kwanghee; & Lee, Jin S. “An iterative learning control of robot manipulators”. IEEE Transactions on Robotics and Automation, Vol 7, Nª 6. Diciembre, 1991.
  14. LaValle, Steven M. “Planning Algorithms”. Cambridge University Press. 2006. URL: http://planning.cs.uiuc.edu/
  15. Martin, F.G. “Robotic Explorations: A Hands-On Introduction to Engineering” Prentice Hall. 2001.
  16. Mataric, Maja. “The Robotics Primer”. MIT Press. 2007.
  17. McKerrow, P. “Introduction to robotics, Electronic systems engineering series”. Addison-Wesley Pub. Co., Sydney; Reading, Mass. 1991.
  18. Murray, Richard M.; Li, Zexiang; & Sastry, S. Shaukar. “A mathematical Introduction to Robotic manipulation”. CRC Press. 1994.
  19. Murphy, R. “An Introduction to AI Robotics”. MIT Press. 2000.
  20. Prat Viñas, Lluís. “Circuitos y dispositivos electrónicos”. Alfaomega, 6 edición. Marzo, 1999.
  21. Rabiner, Lawrence; & Juang, Biing-Hwang. “Fundamentals of Speech Recognition”. Prentice Hall, Signal Processing series, Allan V. Oppenheim Editor. 1993.
  22. Repelí, Brian D. “Pattern Recognition and Neural Networks”. Cambridge University Press. 1996.
  23. Ruíz del Solar, J. y Salazar, R. “Introducción a la Robótica”. Universidad de Chile.
  24. Russell, Stuart; & Norvig, Peter. “Artificial Intelligence: A Modern Approach”. Prentice Hall, 3 edición. Diciembre, 2009. URL: http://aima.cs.berkeley.edu/.
  25. Siciliano, B.; Sciavicco, L.; Villani, L. & Oriolo, G. “Robotics: modelling, planning and control”. Springer, Londres. 2009.

Lego Mindstorms NXT

  1. Bagnall, Brian. “Intelligence Unleashed: Creating LEGO NXT Robots with Java”. Variant Press. Septiembre, 2011.
  2. Bagnall, Brian. “Maximum Lego NXT: Building Robots with Java Brains”. Variant Press, 3 edición. Julio, 2012.
  3. Ferrari, Mario; Ferrari, Guilio; & Astolfo, David. “Building Robots with LEGO Mindstorms NXT”. Syngress. Junio, 2007.
  4. Gasperi, Michael; & Hurbain Philippe. “Extreme NXT: Extending the LEGO MINDSTORMS NXT to the Next Level”. Apress; 2 edición. Noviembre, 2009.
  5. Wolber, David; Abelson, Hal; Spertus, Ellen; & Looney, Liz. “App Inventor: Create Your Own Android Apps”. O’Reilly Media. Mayo, 2011.

Lego Mindstorms EV3

  1. Bagnall, Brian. “Maximum LEGO EV3: Building Robots with Java Brains (LEGO Mindstorms EV3)”. Variant Press. Septiembre, 2014.
  2. Griffin, Terry. “The Art of LEGO MINDSTORMS EV3 Programming”. No Starch Press, 1 edición. Octubre, 2014.
  3. Isogawa, Yoshihito. “The LEGO MINDSTORMS EV3 Idea Book: 181 Simple Machines and Clever Contraptions”. No Starch Press, 1 edición. Noviembre, 2014.
  4. 4. Benedettelli, Daniele. “The LEGO MINDSTORMS EV3 Laboratory: Build, Program, and Experiment with Five Wicked Cool Robots!”. No Starch Press, 1 edición. Noviembre, 2014.

Software

  1. LeJOS (Java for Lego Mindstorms)
  2. Lego Mindstorms Software
  3. Lego Digital Designer
  4. App Inventor

Robot Kits

  1. Lego Mindstorms

Simuladores

  1. Microsoft Robotics Studio

Información de Interés

DC Motors

Stepper Motors

Control

Volver a CI2657