Créditos ECTS Créditos ECTS: 6
Horas ECTS Criterios/Memorias Trabajo del Alumno/a ECTS: 99 Horas de Tutorías: 3 Clase Expositiva: 24 Clase Interactiva: 24 Total: 150
Lenguas de uso Castellano, Gallego
Tipo: Materia Ordinaria Grado RD 1393/2007 - 822/2021
Centro Escuela Politécnica Superior de Ingeniería
Convocatoria:
Docencia: Sin docencia (Extinguida)
Matrícula: No matriculable
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 resultados del aprendizaje
-------------------------------
Ser capaz de trabajar 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.
Conocer los diferentes middlewares y frameworks de programación de robots utilizando los lenguajes de programación más adecuados a las funcionalidades requeridas. Experimentar con los diferentes componentes que integran la arquitectura software de un robot.
Aplicar los simuladores de robots más extendidos y probar en ellos los diferentes elementos de la arquitectura software del robot.
Saber utilizar las herramientas de desarrollo y depuración propias de la robótica, integradas en frameworks de programación de robots y simuladores.
Conocer y utilizar librerías de software libre habituales en robótica.
Ser capaces de programar mediante diferentes lenguajes sobre sistemas operativos multiplataforma.
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
[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
J. Cacace. Robot Operating system coockbook. ISBN-13: 978-1783987443. Packt Publishing. 2018
[3] Joseph Lentin, Jonathan Cacace, Mastering ROS for Robotics Programming. Second Edition. Pack. 2018
[4] Joseph Lentin, ROS Robotics Projects. Packt. 2017
[5] Joseph Lentin, Learning Robotics Using Python. Packt. 2015.
Tal y como se recoge en la memoria verificada del título. Las competencias que se cubren en esta materia son las siguientes:
Competencias básicas:
CB2: Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
CB4: Que los estudiantes puedan transmitir información, ideas, problemas y soluciones un público tanto especializado como no especializado.
CB5: Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
Competencias Generales:
CG2: Capacidad de resolución de problemas en el campo de la ingeniería robótica con creatividad, iniciativa, metodología y razonamiento crítico.
CG3: Capacidad de utilizar herramientas informáticas para el modelado, la simulación y el diseño de aplicaciones de ingeniería.
Competencias específicas
CE22: Capacidad de diseñar, construir robots y programar robots móviles.
CE14: 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.
Competencias Transversales
CT3: Capacidad de trabajo individual, con actitud autocrítica.
CT9: Habilidad en el manejo de tecnologías de la información y de la comunicación (TIC).
CT10: Utilización de información bibliográfica y de Internet.
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
---------------------------
Evidentemente la realización de las diferentes ejercicios prácticos o la prueba final permitirá la evaluación de las competencias específicas (CE22 y CE14) o la competencia básica CB2, en particular en lo relativo a la programación de robots, o uso de plataformas software para resolver problemas de navegación (CE14). El hecho de que a través de los programas que desarrollen trabajen con robots simulados permitirá la evaluación de la CG3, se plantearán ejercicios para cuya resolución se podrán emplear herramientas de simulación básica y programación de robots (CG3). Para el estudio de la materia, preparación de los trabajos, acceso a detalles relativos a la plataforma ROS, etc, será necesario el acceso a material disponible en Internet (CT9 y CT10), además de que se valorará el que sean capaces de resolver de forma autónoma las dudas y dificultades que se vayan encontrando a la hora de resolver los problemas planteados (CB5), o incluso se valorará positivamente la realización de trabajos planteados por el profesor que demuestre la iniciativa y autonomía del alumno al resolver problemas o enfrentarse a retos relacionados con la asignatura, pero que van más allá de la formación proporcionada en el aula.
Se promoverá la adopción de soluciones de carácter novedoso a los problemas que se planteen en las prácticas de esta asignatura pero sobre todo la realización de los trabajos voluntarios, fomentando así creatividad, iniciativa, metodología y razonamiento crítico (CG2). Finalmente, para la evaluación de la CB4, se tendrá en cuenta una eventual participación en actividades de difusión de la robótica presentando sus propios proyectos. Se podrá dedicar puntuación para la valoración de las competencias CG2, CB4.
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)---- 4 (HP) --- 3(HNP)
Evaluación y revisión ------ 0,5 (ECTS) --- 5 (HP) ---- 8 (HNP)
Total ----- 6,0 (ECTS)---- 60 (HP) ---- 90 (HNP)