ECTS credits ECTS credits: 6
ECTS Hours Rules/Memories Hours of tutorials: 3 Expository Class: 24 Interactive Classroom: 24 Total: 51
Use languages Spanish, Galician
Type: Ordinary Degree Subject RD 1393/2007 - 822/2021
Departments: Electronics and Computing
Areas: Computer Science and Artificial Intelligence, Languages and Computer Systems
Center Higher Polytechnic Engineering School
Call: First Semester
Teaching: With teaching
Enrolment: Enrollable
Escribir software para robots es difícil, particularmente a medida que la escala y el alcance de la robótica continúan creciendo. Los diferentes tipos de robots pueden tener hardware muy variable, lo que hace que la reutilización de código no sea trivial.
En los últimos años, varios frameworks de software y middleware se han vuelto muy populares y ampliamente adoptados en la industria y las comunidades de investigación. Una de las ventajas que ofrecen las plataformas de software para el desarrollo de sistemas robóticos, es la de poder almacenar y compartir proyectos y software de robótica desarrollados por instituciones públicas y privadas, así como por investigadores, estudiantes y aficionados. Esto permite que muchos trabajos puedan ser retomados por alguien más y no se pierdan los avances generados, sin importar si el propósito del proyecto es de investigación, comercial o lúdico. Los frameworks incluyen programas de soporte, compiladores, bibliotecas de códigos, conjuntos de herramientas e interfaces de programación de aplicaciones que reúnen los diferentes componentes para permitir el desarrollo de un proyecto o solución. Un middleware generalmente se centra en algunas funciones complejas, como el control del robot o la comunicación entre procesos.
Los contenidos generales de la materia conforme se recogen en la memoria verificada son:
Sistemas operativos robóticos. Multiplataforma. Middlewares y Frameworks de programación de robots. Simuladores de robots. Herramientas de desarrollo y depuración. Software Libre en Robótica.
Estos contenidos se estructurarán en la siguiente secuencia de temas y prácticas:
Parte 1
1. Middlewares y frameworks de programación de robots.
2. Robot Operating System (ROS) y ROS2.
3. ROS: Introducción a su arquitectura distribuida. Uso de Topics, paradigma publica/suscribe o creación de mensajes personalizados. Implementación con Python
4. Paradigma publica suscribe a través de diferentes plataformas
5. Servicios en ROS, implementación con Python
6. Acciones en ROS, implementación con Python
Parte 2
7. Uso de Topics, paradigma publica/suscribe o creación de mensajes personalizados. Implementación con C++
8. Servicios en ROS, implementación con C++
9. Acciones en ROS, implementación con C++
* Prácticas:
Se trata de una asignatura principalmente práctica (mayor carga de horas interactivas que expositivas), el alumno aprenderá a través de sus prácticas a desenvolverse con uno de las plataformas software más extendidas y de uso habitual en el contexto de la robótica: el Robot Operating System (ROS). La programación en ROS se verá tanto en Python (primera parte de la asignatura), como en C++ (segunda parte). Mediante el uso de un ordenador, el alumno creará diferentes programas para el control de robots simulados.
* Temporización del programa
La primera parte de la asignatura requerirá la mitad de las horas HP: 24 (6 expositivas y 18 interactivas) y HNP:36. La segunda parte de la asignatura requerirán la otra mitad (HP: 24 HNP:36).
Para la primera parte se destinarán 6 horas de teoría presenciales, 6HNPy 18 de prácticas, 30 HNP. En las clases de teoría se darán los temas introductorios 1, 2 y 3 en las 2 primeras horas presenciales (2 HNP), mientras que para servicios se reservarán 2 horas presenciales (2 HNP) y para acciones y servidores de acción otras 2 horas presenciales y 2 HNP de esfuerzo del alumno . Para la parte práctica la distribución será similar: 6 horas para el paradigma publica/suscribe en ROS y también otras plataformas (12 HNP de trabajo personal del alumno). 6 horas para la implementación de servidores de servicio y servicios (12 HNP trabajo del alumno), y otras 6 horas para aprender a crear y emplear servidores de acción y acciones (12 HNP de trabajo del alumno). Para la segunda parte, la división horaria por temas será similar: 1/3 de las horas presenciales se dedicarán al paradigma publica/suscribe en ROS con C++, otro tercio del tiempo se dedicará a servicios, y la última parte a acciones con ROS y C++. La distribución de horas no presenciales sigue la misma distribución (12 HNP para teoría y prácticas de publica/suscribe en ROS con C++, 12 HNP para teoría y prácticas de servicios con C++, 12 HNP para teoría y prácticas de acciones con ROS y C++).
La mayor pare de la información necesaria para la asignatura se podrá encontrar en los guiones o se podrá acceder fácilmente a ella a través de Internet. Se detalla a continuación una bibliografía que puede servir de apoyo para completar la formación o para aquellas personas con dispensa de asistencia.
* Bibliografía básica
[1] http://wiki.ros.org/
* Bibliografía complementaria
Existen también cursos disponibles online (muchos de ellos de pago):
[1] https://www.theconstructsim.com/intro-to-robot-programming-ros-learning...
[2] L. Joseph. Robot Operating System (ROS) for Absolute Beginners: Robotics Programming Made Easy. ISBN-13: 978-1484234044 Apress. 2018
[3] J. Cacace. Robot Operating system coockbook. ISBN-13: 978-1783987443. Packt Publishing. 2018
[4] Joseph Lentin, Jonathan Cacace, Mastering ROS for Robotics Programming. Second Edition. Pack. 2018
[5] Joseph Lentin, ROS Robotics Projects. Packt. 2017
[6] Joseph Lentin, Learning Robotics Using Python. Packt. 2015.
El alumno que supere la materia con éxito será capaz de:
* Conocimiento
Con28. Familiarizarse con los sistemas operativos robóticos actuales, conocer sus funcionalidades y su adecuación los diferentes tipos de plataformas robóticas y escenarios de uso.
Con29. Conocer los diferentes middlewares y frameworks de programación de robots utilizando los lenguajes de programación más adecuados a las funcionalidades requeridas.
* Destreza
H/D30. Resolver problemas de programación de robots usando diferentes lenguajes sobre algún entorno (framework) multiplataforma
H/D31. Desarrollo de programas usando las herramientas de desarrollo y depuración propias de la robótica, integradas en frameworks de programación de robots y simuladores.
H/D32. Aplicar los simuladores de robots más extendidos y experimentar con los diferentes componentes que integran la arquitectura software de un robot.
* Competencia
Comp06. Diseñar, construir y programar robots.
Comp09. Capacidad de aplicar sistemas de navegación, localización y construcción de mapas en robots, y estar al corriente de las nuevas tendencias en robótica.
Las clases teóricas se desarrollarán en el aula de teoría, y en ellas el profesor dará a los alumnos las directrices necesarias para la resolución de los proyectos/prácticas que se plantearán durante las prácticas de la asignatura.
La docencia interactiva se llevará a cabo en las aulas de informática. En las clases prácticas estableceremos métodos de enseñanza activos o productivos basados en la enseñanza problémica que faciliten la adquisición de capacidades cognitivas y de tipo creador. En las prácticas se plantearán ejercicios a través de los cuales el alumno aprenderá a manejar ROS con dos lenguajes de programación: Python (en la primera parte de la materia), y C++ en la segunda. Para la realización de estos ejercicios se deberá emplear ROS así como alguna herramienta de simulación.
Asimismo, en las tutorías se atenderá al alumnado para discutir, comentar, aclarar o resolver cuestiones concretas en relación con sus tareas dentro de la asignatura. Estas tutorías serán podrán ser tanto presenciales como virtuales a través de la plataforma Ms Teams.
Curso Virtual: Esta materia dispondrá de un curso virtual desenvuelto sobre la plataforma de Campus virtual de la USC, usando además la herramienta colaborativa Ms Teams. En estas se le facilitará al alumnado todo el material necesario en formato digital, además de distintas herramientas de comunicación para el apoyo, tanto de la docencia virtual como de las tutorías, incluyendo videoconferencia, chat, correo electrónico, foros...
La evaluación se llevará a cabo de dos formas: (1) Evaluación continua a través de la posible valoración de ejercicios prácticos realizados en el laboratorio. Se podrá proponer la posible realización de trabajos voluntarios que fomenten la creatividad del alumno, motivación, etc., y que permitan que profundicen en algunos de los contenidos de la materia, o exploren alternativas no cubiertas directamente en los contenidos impartidos por el profesor. (2) Por otra parte, habrá una última prueba final que podrá contener ejercicios teóricos y/o prácticos. La prueba final representará el 65% del total de la asignatura, mientras que el 35% restante lo representan las pruebas (las prácticas entregables mencionadas en el punto 1, trabajos, cuestionarios, etc.) que se propongan en el aula.
Debido a este tipo de evaluación continua, la asistencia a prácticas será obligatoria salvo causa justificada.
El alumno recibirá la calificación de "non presentado" cuando no haga el examen final.
Para los casos de realización fraudulenta de ejercicios o pruebas será de aplicación lo establecido en la "Normativa de avaliación do rendemento académico dos estudantes e de revisión das cualificacións"
Cada una de las dos partes de la materia está valorada en 5 puntos. Para superar la materia habrá que obtener una calificación total igual o superior a 5 puntos (5 sobre 10).
* Segunda oportunidad o cuando haya dispensa de asistencia
Al margen de la evaluación continua, todos los alumnos tienen derecho a asistir al examen de la segunda oportunidad. Los alumnos que no haya superado las actividades propuestas durante la evaluación continua en primera convocatoria, podrán realizar, en la misma fecha que el examen de segunda oportunidad, un conjunto de actividades equivalentes que representen el 35% de la nota de la asignatura, siendo el otro 65% restante el valor del examen final.
En el caso de que a alguna persona se le conceda dispensa de asistencia se le exigirán los mismos trabajos o realización de ejercicios de evaluación continua que en el resto de los casos, estos trabajos representarán el 35% de la nota final. Por este motivo se le eximirá de la asistencia a clases de teoría y prácticas, salvo aquellas sesiones dedicadas a la realización de los ejercicios de evaluación continua, que serán de asistencia obligatoria. La prueba final seguirá representando el 65% restante de la nota.
El alumno recibirá a cualificación de "non presentado" cuando no haga el examen final. Para los casos de realización fraudulenta de ejercicios o pruebas será de aplicación lo establecido en la "Normativa de avaliación do rendemento académico dos estudantes e de revisión das cualificacións"
* Alumnos repetidores
En el caso de los alumnos repetidores se les exigirá los mismos trabajos o realización de ejercicios de evaluación continua que al resto de sus compañeros, estos trabajos representarán el 35% de la nota final. Por este motivo se le eximirá de la asistencia a clases de teoría y prácticas, salvo aquellas sesiones dedicadas a la realización de los ejercicios de evaluación continua, que serán de asistencia obligatoria. La prueba final seguirá representando el 65% restante de la nota.
* Evaluación de competencias
En general el desarrollo de las actividades prácticas, así como la preparación de los temas teóricos permitirá al alumnado trabajar las competencias básicas, generales y transversales de la materia, y conseguir los resultados de aprendizaje previstos.
Actividad Metodología -- ECTS -- Horas Presenciales -- Horas No Presenciales (NP)
Clase expositivas Clases magistrales --------- 1,2 (ECTS) ---- 12 (HP) -- 12(HNP)
Clases interactivas Lab y aulas informática -------- 3,6(ECTS) --- 36 (HP) ---- 60(HNP)
Tutoría en grupo -------------- 0,3 (ECTS) ---- 3 (HP) ---- 7 (HNP)
Tutoría individualizada ----- 0,4 (ECTS)---- 0 (HP) --- 7(HNP)
Evaluación y revisión ------ 0,5 (ECTS) --- 0 (HP) ---- 12 (HNP)
Total ----- 6,0 (ECTS) ---- 51 (HP) ---- 99 (HNP)
Roberto Iglesias Rodriguez
- Department
- Electronics and Computing
- Area
- Computer Science and Artificial Intelligence
- roberto.iglesias.rodriguez [at] usc.es
- Category
- Professor: University Lecturer
Marcos Boullon Magan
Coordinador/a- Department
- Electronics and Computing
- Area
- Languages and Computer Systems
- marcos.boullon [at] usc.es
- Category
- Professor: LOU (Organic Law for Universities) PhD Assistant Professor
Thursday | |||
---|---|---|---|
16:00-17:00 | Grupo /CLE_01 | Spanish | Classroom 7 (Lecture room 2) |
17:00-19:00 | Grupo /CLIL_01 | Spanish | Computer Room 4 (Pav.III) |
19:00-21:00 | Grupo /CLIL_02 | Spanish | Computer Room 4 (Pav.III) |
01.17.2025 10:00-14:00 | Grupo /CLE_01 | Computer Room 4 (Pav.III) |
01.17.2025 10:00-14:00 | Grupo /CLE_01 | Computer Room 5 (Pav III) |
06.20.2025 10:00-14:00 | Grupo /CLE_01 | Computer Room 4 (Pav.III) |
06.20.2025 10:00-14:00 | Grupo /CLE_01 | Computer Room 5 (Pav III) |