Créditos ECTS Créditos ECTS: 6
Horas ECTS Criterios/Memorias Traballo do Alumno/a ECTS: 99 Horas de Titorías: 3 Clase Expositiva: 24 Clase Interactiva: 24 Total: 150
Linguas de uso Castelán, Galego
Tipo: Materia Ordinaria Grao RD 1393/2007 - 822/2021
Centro Escola Politécnica Superior de Enxeñaría
Convocatoria:
Docencia: Sen docencia (Extinguida)
Matrícula: Non matriculable
Escribir software para robots é difícil, particularmente a medida que a escala e o alcance da robótica continúan crecendo. Os diferentes tipos de robots poden ter hardware moi variado, o que fai que a reutilización de código non sexa trivial.
Nos últimos anos, varios frameworks de software e middleware volvéronse moi populares e amplamente adoptados na industria e nas comunidades de investigación. Unha das vantaxes que ofrecen as plataformas de software para o desenvolvemento de sistemas robóticos, é a de poder almacenar e compartir proxectos e software de robótica desenvoltos por institucións públicas e privadas, así como por investigadores, estudantes e afeccionados. Isto permite que moitos traballos poidan ser retomados por alguén máis e non se perdan os avances xerados, sen importar se o propósito do proxecto é de investigación, comercial ou lúdico. Os frameworks inclúen programas de soporte, compiladores, bibliotecas de códigos, conxuntos de ferramentas e interfaces de programación de aplicacións que reúnen os diferentes compoñentes para permitir o desenvolvemento dun proxecto ou solución. Un middleware xeralmente céntrase nalgunhas funcións complexas, como o control do robot ou a comunicación entre procesos.
Os resultados da aprendizaxe
Ser capaz de traballar cos sistemas operativos robóticos actuais, coñecer as súas funcionalidades e a súa adecuación os diferentes tipos de plataformas robóticas e escenarios de uso.
Coñecer os diferentes middlewares e frameworks de programación de robots utilizando as linguaxes de programación máis adecuados ás funcionalidades requiridas. Experimentar cos diferentes compoñentes que integran a arquitectura software dun robot.
Aplicar os simuladores de robots máis estendidos e probar neles os diferentes elementos da arquitectura software do robot.
Saber utilizar as ferramentas de desenvolvemento e depuración propias da robótica, integradas en frameworks de programación de robots e simuladores.
Coñecer e utilizar librerías de software libre habituais en robótica.
Ser capaces de programar mediante diferentes linguaxes sobre sistemas operativos multiplataforma.
Os contidos xerais da materia conforme se recollen na memoria verificada son:
“Sistemas operativos robóticos. Multiplataforma. Middlewares e Frameworks de programación de robots. Simuladores de robots. Ferramentas de desenvolvemento e depuración. Software Libre en Robótica.”
Estes contidos estruturaranse na seguinte secuencia de temas e prácticas:
Parte 1:
1. Middlewares e frameworks de programación de robots.
2. Robot Operating System (ROS) e ROS2.
3. ROS: Introdución á súa arquitectura distribuída. Uso de Topics, paradigma publica/subscribe ou creación de mensaxes personalizadas. Implementación con Python
4. Paradigma publica/subscribe a través de diferentes plataformas
5. Servizos en ROS, implementación con Python
6. Accións en ROS, implementación con Python
Parte 2:
7. Uso de Topics, paradigma publica/subscribe ou creación de mensaxes personalizadas. Implementación con C++
8. Servizos en ROS, implementación con C++
9. Accións en ROS, implementación con C++
Prácticas:
__________
Trátase dunha materia principalmente práctica (maior carga de horas interactivas que expositivas), o alumno aprenderá a través das súas actividades a desenvolverse cunha das plataformas software máis estendidas e habituais no contexto da robótica: o Robot Operating System (ROS). A programación en ROS verase tanto en Python (primeira parte da materia), como en C++ (segunda parte). Mediante o uso dun computador, o alumno creará diferentes programas para o control de robots simulados.
Temporización do programa
_____________________
A primeira parte da materia requirirá a metade das horas HP: 24 (6 expositivas e 18 interactivas) e HNP:36. A segunda parte da materia requirirán a outra metade ( HP: 24 HNP:36)
Para a primeira parte destinaranse 6 horas de teoría presenciais, 6 HNPy 18 de prácticas, 30 HNP. Nas clases de teoría daranse os temas introdutorios 1, 2 e 3 nas 2 primeiras horas presenciais (2 HNP), mentres que para servizos reservaranse 2 horas presenciais (2 HNP) e para accións e servidores de acción outras 2 horas presenciais e 2 HNP de esforzo do alumno . Para a parte práctica a distribución será similar: 6 horas para o paradigma publica/subscribe en ROS e tamén outras plataformas (12 HNP de traballo persoal do alumno). 6 horas para a implementación de servidores de servizo e servizos (12 HNP traballo do alumno), e outras 6 horas para aprender a crear e empregar servidores de acción e accións (12 HNP de traballo do alumno). Para a segunda parte, a división horaria por temas será similar: 1/3 das horas presenciais dedicaranse ao paradigma publica/subscribe en ROS con C++, outro terzo do tempo dedicarase a servizos, e a última parte a accións con ROS e C++. A distribución de horas non presenciais segue a mesma distribución (12 HNP para teoría e prácticas de publica/subscribe en ROS con C++, 12 HNP para teoría e prácticas de servizos con C++, 12 HNP para teoría e prácticas de accións con ROS e C++).
A maior parte da información necesaria para a materia poderase atopar nos guións ou se poderá acceder facilmente a través de Internet. Detállase a continuación unha bibliografía que pode servir de apoio para completar a formación ou para aquelas persoas 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
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 e como se recolle na memoria verificada do título. As competencias que se cobren nesta materia son as seguintes:
Competencias básicas:
CB2: Que os estudantes saiban aplicar os seus coñecementos ao seu traballo ou vocación dunha forma profesional e posúan as competencias que adoitan demostrarse por medio da elaboración e defensa de argumentos e a resolución de problemas dentro da súa área de estudo.
CB4: Que os estudantes poidan transmitir información, ideas, problemas e solucións un público tanto especializado como non especializado.
CB5: Que os estudantes desenvolvesen aquelas habilidades de aprendizaxe necesarias para emprender estudos posteriores cun alto grao de autonomía.
Competencias Xerais:
CG2: Capacidade de resolución de problemas no campo da enxeñería robótica con creatividade, iniciativa, metodoloxía e razoamento crítico.
CG3: Capacidade de utilizar ferramentas informáticas para o modelado, a simulación e o deseño de aplicacións de enxeñería.
Competencias específicas
CE22: Capacidade de deseñar, construír robots e programar robots móbiles.
CE14: Capacidade de aplicar sistemas de navegación, localización e construción de mapas en robots, e estar ao corrente das novas tendencias en robótica.
Competencias Transversais
CT3: Capacidade de traballo individual, con actitude autocrítica.
CT9: Habilidade no manexo de tecnoloxías da información e da comunicación (TIC).
CT10: Utilización de información bibliográfica e da internet.
As clases teóricas desenvolveranse na aula de teoría, e nelas o profesor dará aos alumnos as directrices necesarias para a resolución dos proxectos/prácticas que se exporán durante as clases interactivas.
A docencia interactiva levarase a cabo nas aulas de informática. Nas clases prácticas estableceremos métodos de ensino activos ou produtivos baseados no ensino a través de problemas prácticos que faciliten a adquisición de capacidades cognitivas e de tipo creador. Nas prácticas exporanse exercicios a través dos cales o alumno aprenderá a manexar ROS con dúas linguaxes de programación: Python (na primeira parte da materia), e C++ na segunda. Para a realización destes exercicios deberase empregar ROS así como algunha ferramenta de simulación.
Así mesmo, nas titorías atenderase ao alumnado para discutir, comentar, aclarar ou resolver cuestións concretas en relación coas súas tarefas dentro da materia. Estas titorías serán poderán ser tanto presenciais como virtuais a través da plataforma Ms Teams.
Curso Virtual: Esta materia dispoñerá dun curso virtual desenvolto sobre a plataforma de Campus virtual da USC, usando ademais a ferramenta colaborativa Ms Teams. Nestas facilitaráselle ao alumnado todo o material necesario en formato dixital, ademais de distintas ferramentas de comunicación para o apoio, tanto da docencia virtual como das titorías, incluíndo videoconferencia, chat, correo electrónico, foros…
A avaliación levarase a cabo de dúas formas: (1) Avaliación continua a través da posible valoración de exercicios prácticos desenvolvidos no laboratorio. Poderase tamén propoñer a posible realización de traballos voluntarios que fomenten a creatividade do alumno, motivación, etc., e que permitan que o alumnado profundice nalgúns dos contidos da materia, ou exploren alternativas non cubertas directamente nos contidos impartidos polo profesor. (2) Por outra banda, haberá unha última proba final que poderá conter exercicios teóricos e/ou prácticos. A proba final representará o 65% do total da materia, mentres que o 35% restante represéntao as probas (as prácticas entregables mencionadas no punto 1, traballos, cuestionarios, etc.) que se propoñan na aula.
Debido a este tipo de avaliación continua, a asistencia a prácticas será obrigatoria salvo causa xustificada.
O alumno recibirá a cualificación de "non presentado" cando non faga o exame final.
Para os casos de realización fraudulenta de exercicios ou probas será de aplicación o establecido na “Normativa de avaliación do rendemento académico dous estudantes e de revisión dás cualificacións”
Cada unha das dúas partes da materia está valorada en 5 puntos. Para superar a materia haberá que obter unha cualificación total igual ou superior a 5 puntos (5 sobre 10).
Segunda oportunidade ou cando haxa dispensa de asistencia
--------------------------------------------------------------------
Á marxe da avaliación continua, todos os alumnos teñen dereito a asistir ao exame da segunda oportunidade. Os alumnos que non superasen as actividades propostas durante a avaliación continua en primeira convocatoria, poderán realizar, na mesma data que o exame de segunda oportunidade, un conxunto de actividades equivalentes que representen o 35% da nota da materia, sendo o outro 65% restante o valor do exame final.
No caso de que a algunha persoa concédaselle dispensa de asistencia esixiránselle os mesmos traballos ou realización de exercicios de avaliación continua que no resto dos casos, estes traballos representarán o 35% da nota final. Por este motivo eximiráselle da asistencia a clases de teoría e prácticas, salvo aquelas sesións dedicadas á realización dos exercicios de avaliación continua, que serán de asistencia obrigatoria. A proba final seguirá representando o 65% restante da nota.
O alumno recibirá a cualificación de "non presentado" cando non faga o exame final.
Para os casos de realización fraudulenta de exercicios ou probas será de aplicación o establecido na “Normativa de avaliación do rendemento académico dous estudantes e de revisión dás cualificacións”
Alumnos repetidores
-----------------------
No caso dos alumnos repetidores esixiránselle os mesmos traballos ou realización de exercicios de avaliación continua que ao resto dos seus compañeiros, estes traballos representarán o 35% da nota final. Por este motivo eximiráselle da asistencia a clases de teoría e prácticas, salvo aquelas sesións dedicadas á realización dos exercicios de avaliación continua, que serán de asistencia obrigatoria. A proba final seguirá representando o 65% restante da nota.
Avaliación de competencias
Evidentemente a realización dos diferentes exercicios prácticos ou a proba final permitirán a avaliación das competencias específicas (CE22 e CE14) ou a competencia básica CB2, en particular, no relativo á programación de robots ou no uso de plataformas software para resolver problemas de navegación (CE14). O feito de que a través dos actividades traballen con robots simulados permitirá a avaliación da CG3. Para o estudo da materia, preparación dos traballos, acceso a detalles relativos á plataforma ROS, etc, será necesario o acceso a material dispoñible na internet (CT9 e CT10), ademais de que se valorará que sexan capaces de resolver de forma autónoma as dúbidas e dificultades que se vaian atopando á hora de resolver os problemas expostos (CB5), ou mesmo se valorará positivamente a realización de traballos plantezados polo profesor e que demostren a iniciativa e autonomía do alumno cara a resolver problemas ou enfrontarse a retos relacionados coa materia, pero que van máis aló da formación proporcionada na aula.
Promoverase a adopción de solucións de carácter innovativo aos problemas que se expoñan nas prácticas desta materia pero sobre todo a realización de traballos voluntarios, fomentando así creatividade, iniciativa, metodoloxía e razoamento crítico ( CG2). Finalmente, para a avaliación da CB4, terase en conta unha eventual participación en actividades de difusión da robótica presentando os seus propios proxectos. Poderase dedicar puntuación para a valoración das 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)