SlideShare uma empresa Scribd logo
1 de 199
Baixar para ler offline
DEPARTAMENTO DE INGENIERÍA DE SISTEMAS Y AUTOMÁTICA
TESIS DE MÁSTER
DISEÑO E IMPLEMENTACIÓN DE SOLUCIONES
PARA ATENCIÓN A PERSONAS CON EL ROBOT
TIAGO
Autor: David Velasco Garcı́a
Tutor: Juan González Victores
MÁSTER UNIVERSITARIO EN
INGENIERÍA INDUSTRIAL
LEGANÉS, MADRID
AGOSTO 2020
UNIVERSIDAD CARLOS III DE MADRID
MÁSTER UNIVERSITARIO EN INGENIERÍA INDUSTRIAL
El tribunal aprueba la Tesis de Máster titulada “Diseño e
implementación de soluciones para atención a personas con el
robot TIAGo” realizada por David Velasco Garcı́a.
Fecha: Agosto 2020
Tribunal:
Dr./Dra.
Dr./Dra.
Dr./Dra.
“In theory, there is no difference between theory and practice. But,
in practice, there is”
Johannes Lambertus Adriana van de Snepscheut
Índice general
Índice de tablas XI
Índice de figuras XIII
Agradecimientos XVII
Resumen XIX
Abstract XXI
1. Introducción 1
1.1. Robótica asistencial . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Soluciones asistenciales propuestas . . . . . . . . . . . . . . . . . . 4
1.2.1. Visit my home . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2. Catering for Granny Annies Comfort . . . . . . . . . . . . 6
1.2.3. Take the elevator . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.4. Deliver coffee shop orders . . . . . . . . . . . . . . . . . . . 11
2. Estado del arte 13
2.1. Robótica y sectores de actuación . . . . . . . . . . . . . . . . . . . 13
2.1.1. Historia y clasificación de la robótica . . . . . . . . . . . . . 14
VII
2.1.2. Sectores de actuación . . . . . . . . . . . . . . . . . . . . . . 23
2.2. Organismos e instituciones . . . . . . . . . . . . . . . . . . . . . . 35
2.2.1. European Robotics League . . . . . . . . . . . . . . . . . . 35
2.2.2. SciRoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3. Arquitectura del sistema 39
3.1. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.1.1. Robot TIAGo . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2.1. Navegación del robot en el entorno . . . . . . . . . . . . . 51
3.2.2. Reconocimiento de voz . . . . . . . . . . . . . . . . . . . . 74
3.2.3. Motor de habla . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.2.4. Vision artificial . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.2.5. Manipulación de objetos . . . . . . . . . . . . . . . . . . . . 101
4. Desarrollo e implementación de soluciones 111
4.1. European Robotics League . . . . . . . . . . . . . . . . . . . . . . . 112
4.1.1. Visit my home . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.1.2. Catering for Granny Annies Comfort . . . . . . . . . . . . 124
4.2. SciRoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
4.2.1. Take the elevator . . . . . . . . . . . . . . . . . . . . . . . . 136
4.2.2. Deliver coffee shop orders . . . . . . . . . . . . . . . . . . . 148
5. Análisis económico 155
5.1. Costes de hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
5.2. Costes de software . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
5.3. Costes de mano de obra . . . . . . . . . . . . . . . . . . . . . . . . 161
5.4. Análisis de costes generales . . . . . . . . . . . . . . . . . . . . . . 161
6. Conclusiones 163
6.1. European Robotics League . . . . . . . . . . . . . . . . . . . . . . . 164
6.1.1. Visit my home . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.1.2. Catering for Granny Annies Confort . . . . . . . . . . . . . 165
6.2. SciRoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
6.2.1. Take the elevator . . . . . . . . . . . . . . . . . . . . . . . . 165
6.2.2. Deliver coffe shop orders . . . . . . . . . . . . . . . . . . . 166
7. Lı́neas futuras 169
7.1. Navegación del robot en el entorno . . . . . . . . . . . . . . . . . . 169
7.2. Reconocimiento de voz . . . . . . . . . . . . . . . . . . . . . . . . . 170
7.3. Motor de habla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
7.4. Visión artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Referencias 173
Índice de tablas
2.1. Clasificación de robot por estructura . . . . . . . . . . . . . . . . . 22
3.1. Dimensiones del robot TIAGo . . . . . . . . . . . . . . . . . . . . . 42
3.2. Grados de libertad del robot TIAGo . . . . . . . . . . . . . . . . . 43
3.3. Especificaciones torso del robot TIAGo . . . . . . . . . . . . . . . . 43
3.4. Especificaciones de la base móvil del robot TIAGo . . . . . . . . . 44
3.5. Especificaciones del brazo del robot TIAGo . . . . . . . . . . . . . 45
3.6. Sensorizado del robot TIAGo . . . . . . . . . . . . . . . . . . . . . 48
3.7. Sensorizado de la base del robot TIAGo . . . . . . . . . . . . . . . 49
3.8. Especificaciones eléctricas del robot TIAGo . . . . . . . . . . . . . 49
5.1. Coste robot TIAGo . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
5.2. Coste materiales de impresión 3D . . . . . . . . . . . . . . . . . . . 158
5.3. Coste trabajador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
5.4. Coste desglosado por software . . . . . . . . . . . . . . . . . . . . 160
5.5. Listado de costes anuales . . . . . . . . . . . . . . . . . . . . . . . . 162
XI
Índice de figuras
1.1. Navegación en un domicilio. . . . . . . . . . . . . . . . . . . . . . 5
1.2. Mapa del domicilio. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Apoyo doméstico en domicilio. . . . . . . . . . . . . . . . . . . . . 7
1.4. Listado de objetos a detectar en el domicilio. . . . . . . . . . . . . 7
1.5. Navegación mediante ascensor. . . . . . . . . . . . . . . . . . . . . 8
1.6. Aproximación al ascensor. . . . . . . . . . . . . . . . . . . . . . . . 9
1.7. Entrada al ascensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.8. Salida del ascensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.9. Apoyo en toma de pedidos en restaurante. . . . . . . . . . . . . . 11
1.10. Escenario pedidos de clientes. . . . . . . . . . . . . . . . . . . . . . 12
2.1. Autómata de madera propulsado a vapor, Arquitas de Tarento. . 15
2.2. Caballero mecánico, Leonardo Da Vinci. . . . . . . . . . . . . . . . 15
2.3. Primer robot comercial, robot Unimation. . . . . . . . . . . . . . . 16
2.4. Robot Mars 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5. Primer robot comercial de la empresa KUKA, robot Famulus. . . 17
2.6. Primer robot móvil bı́pedo, robot ASIMO. . . . . . . . . . . . . . . 18
2.7. Robot Sophia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.8. Robot manipulador, ABB. . . . . . . . . . . . . . . . . . . . . . . . 20
2.9. Robot móvil TurtleBot 2, Clearpath. . . . . . . . . . . . . . . . . . . 20
XIII
2.10. Robot zoomórfico SpotMini, Boston Dynamics. . . . . . . . . . . . 21
2.11. Robot TIAGo, PAL Robotics. . . . . . . . . . . . . . . . . . . . . . . 22
2.12. Robots industriales, ABB Robotics. . . . . . . . . . . . . . . . . . . 24
2.13. Robots inteligente, ABB Robotics. . . . . . . . . . . . . . . . . . . . 25
2.14. Micro-robot HarvardBee, Harvard University. . . . . . . . . . . . 25
2.15. SAM100, Construction Robotics. . . . . . . . . . . . . . . . . . . . 27
2.16. C-V2X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.17. Rehabilitación mediante imitación, robot NAO. . . . . . . . . . . . 29
2.18. Rehabilitación mediante VR. . . . . . . . . . . . . . . . . . . . . . . 30
2.19. Apoyo doméstico mediante localización y manipulación de objetos. 31
2.20. Apoyo laboral en tareas de interactuación. . . . . . . . . . . . . . . 31
2.21. Robot social, Maggie. . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.22. Robot social, Pepper. . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.23. Robot social, TIAGo. . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.24. Robot social, NAO. . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1. Robot TIAGo, PAL Robotics . . . . . . . . . . . . . . . . . . . . . . 41
3.2. Sistema de elevación del torso en TIAGo . . . . . . . . . . . . . . . 43
3.3. Base móvil del robot TIAGo . . . . . . . . . . . . . . . . . . . . . . 44
3.4. Alcance del brazo manipulador de TIAGo . . . . . . . . . . . . . . 45
3.5. Pinza PAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6. Soporte porta-herramientas pintado con visualización . . . . . . . 46
3.7. Mano PAL Hey5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.8. Sensor de torque manipulación TIAGo . . . . . . . . . . . . . . . . 48
3.9. Joystick TIAGo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.10. Guiado pasivo indirecto o por maniquı́ . . . . . . . . . . . . . . . 52
3.11. Algoritmo Bubble Local Planner . . . . . . . . . . . . . . . . . . . 54
3.12. Diagrama PND, detección de obstáculos . . . . . . . . . . . . . . . 55
3.13. Criterios de aplicación algoritmo DivConq . . . . . . . . . . . . . 56
3.14. Algoritmo SLAM, nodos . . . . . . . . . . . . . . . . . . . . . . . . 61
3.15. Algoritmo Hector SLAM . . . . . . . . . . . . . . . . . . . . . . . . 62
3.16. Sensores base TIAGo. . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.17. Navegación autónoma del robot en simulación . . . . . . . . . . . 64
3.18. Navegación autónoma del robot en simulación, vista dividida . . 65
3.19. Navegación autónoma del robot en el entorno . . . . . . . . . . . 66
3.20. Mapeado del entorno . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.21. Localización por nube de puntos . . . . . . . . . . . . . . . . . . . 71
3.22. Localización por vector aproximado . . . . . . . . . . . . . . . . . 73
3.23. Diagrama de estados speechRecognition . . . . . . . . . . . . . . . 78
3.24. Diagrama de estados TTS . . . . . . . . . . . . . . . . . . . . . . . 83
3.25. Detección de objetos y personas con tensorflowDetection2D . . . 85
3.26. Diagrama de estados tensorflowDetection2D . . . . . . . . . . . . 86
3.27. Diagrama de estados haarDetection2D . . . . . . . . . . . . . . . . 88
3.28. Diagrama de estados colorRegionDetection2D . . . . . . . . . . . 97
3.29. Reconocimiento facial con facialRecognitionDetection2D . . . . . 99
3.30. Diagrama de estados facialRecognitionDetection2D . . . . . . . . 100
3.31. Control de TIAGo en coordenadas cartesianas . . . . . . . . . . . 102
3.32. Control de TIAGo en coordenadas cartesianas mediante Rviz . . 105
3.33. Control de TIAGo en coordenadas angulares mediante GUI . . . 107
3.34. Control de TIAGo mediante aprendizaje por demostración . . . . 108
3.35. Web GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.1. Diagrama de estados: Visit my home . . . . . . . . . . . . . . . . . 114
4.2. Acceso al domicilio . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.3. Checkpoint 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.4. Checkpoint 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.5. Checkpoint 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.6. Checkpoint 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.7. Seguimiento del usuario . . . . . . . . . . . . . . . . . . . . . . . . 123
4.8. Diagrama de estados: Catering for Granny Annies Comfort . . . . 125
4.9. Navegación hasta el usuario . . . . . . . . . . . . . . . . . . . . . . 127
4.10. Interacción con el usuario . . . . . . . . . . . . . . . . . . . . . . . 129
4.11. Búsqueda de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.12. Manipulación de objetos . . . . . . . . . . . . . . . . . . . . . . . . 134
4.13. Diagrama de estados: Take the elevator . . . . . . . . . . . . . . . 138
4.14. Conexión con dataHub . . . . . . . . . . . . . . . . . . . . . . . . . 140
4.15. Navegación al checkpoint 1 . . . . . . . . . . . . . . . . . . . . . . 141
4.16. Navegación al checkpoint 2 . . . . . . . . . . . . . . . . . . . . . . 143
4.17. Entrada al ascensor . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.18. Cambio de planta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
4.19. Salida del ascensor . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4.20. Diagrama de estado: Deliver coffee shop orders . . . . . . . . . . 150
4.21. Navegación autónoma en el local . . . . . . . . . . . . . . . . . . . 152
4.22. Interacción con los usuarios . . . . . . . . . . . . . . . . . . . . . . 153
Agradecimientos
En primer lugar, me gustarı́a agradecer a mi familia el apoyo y el ánimo que
me han brindado, toda la fortaleza y constancia incondicional que me han dado,
que me ha permitido seguir adelante a pesar de las circunstancias e intentar dar
siempre lo mejor de mı́.
Quisiera agradecer a mi tutor, Dr. Juan González Victores sin el cual este
documento no podrı́a haberse realizado, por toda su ayuda, conocimientos y
consejos, que me guiaron a lo largo del proyecto.
He de agradecer a mis grandes amigos Héctor y Jesús el apoyo constante, el
ánimo y la motivación para continuar en todo momento.
También quisiera agradecer al grupo Robotics Lab, de la Universidad Carlos
III de Madrid, por todos los consejos, conocimientos ası́ como recursos, que me
ayudaron a progresar en el proyecto, en especial a todos aquellos compañeros
por su incondicional ayuda.
Por último, me gustarı́a agradecer a European Robotics League y SciRoc, por
su asistencia y los recursos brindados sin los cuales, las pruebas de aplicación
de las soluciones en entornos reales controlados no podrı́an haberse dado.
XVII
Resumen
A través del siguiente documento, se presenta la Tesis de Máster, Diseño e
implementación de soluciones para atención a personas con el robot TIAGo. Mediante
el documento se describirá la implementación de soluciones para la asistencia a
personas a través del sistema robótico, de tipo manipulador-móvil, TIAGo.
En primer lugar, se describirá la introducción del proyecto, ası́ como su cla-
sificación y marco de actuación. En segundo lugar, se presentará el Estado del
arte, mediante el cual, se expondrá el concepto de robótica, clasificaciones y sec-
tores de actuación, ası́ como algunos ejemplos de las mismas. Posteriormente, se
presentarán los organismos y/o instituciones en las cuales se han realizado las
pruebas de concepto sobre las implementaciones desarrolladas. Se detallará la
Arquitectura del sistema, en la cual se expondrá tanto el Hardware, como el Softwa-
re de la plataforma escogida (TIAGo), ası́ como las implementaciones desarrolla-
das para la misma. Por último, se presentarán las soluciones para la asistencia
desarrolladas, a saber, Visit my home, Catering for Granny Annies Confort, Take the
elevator y por último Deliver coffe shop orders. Mediante dichas soluciones, se pro-
pone el apoyo a personas en tareas de asistencia, tales como, la localización e
interactuación con usuarios, funcionalidades de asistencia comercial, ası́ nave-
gación y desplazamiento entre plantas en edificios. Finalmente, se analizarán las
conclusiones del proyecto, ası́ como las lı́neas futuras de estudio.
XIX
Abstract
Through the following document, the Master thesis, Design and implementa-
tion of solutions for people with the TIAGo robot is presented. The document will
describe the implementation of solutions for assistance to people through the
robotic system, of manipulator-mobile type, TIAGo.
First, an introduction to the project will be described, as well as its classifi-
cation and framework. Secondly, the State of the art will be presented, through
which the concept of robotics, classifications and performance sectors will be
presented, as well as some examples thereof. Subsequently, the organizations
and/or institutions in which the proofs of concept on the implementations de-
veloped will be presented. The System Architecture will be described, which will
detail both the Hardware, as well as the Software, of the chosen platform (TIAGo),
as well as the implementations developed for it.
Finally, the solutions for assistance developed will be presented, namely, Vi-
sit my home, Catering for Granny Annies Comfort, Take the elevator and finally De-
liver coffe shop orders Through these solutions, it is proposed to support people
in assistance tasks, such as the location and interaction with users, commercial
assistance functionalities, as well as navigation and movement between plants
in buildings. Finally, the conclusions of the project will be analyzed, as well as
future lines of study.
XXI
Capı́tulo 1
Introducción
Durante el desarrollo del Capitulo 1, se pondrá en contexto el proyecto reali-
zado.
Primero, se enmarcará dentro del campo de la robótica asistencial, analizan-
do los aspectos clave de la misma, las distintas áreas de estudio y la clasificación,
ası́ como de las tareas a implementar.
En segundo lugar, se introducirán los aspectos fundamentales de las tareas a
implementar, caracterı́sticas y requerimientos de las mismas.
Por último, se analizarán y expondrán las distintas instituciones y/u orga-
nizaciones oficiales para el ensayo y ejecución de tareas, tales como la European
Robotics League o el SciRoc. A su vez, se expondrá la estructura del documento,
los capı́tulos y apartados en los que se presentará el desarrollo e implementación
de las soluciones asistenciales propuestas.
2 Introducción
1.1. Robótica asistencial
A través de la siguiente sección, se enmarcará el proyecto dentro del cam-
po de trabajo de la robótica asistencial, describiendo el concepto, aplicaciones y
entorno de trabajo de la misma.
En lo referente a la robótica asistencial, es uno de los campos de actuación
de la robótica. Definiendo la robótica como una unión de las distintas ramas
de las ingenierı́as mecánica, eléctrica, electrónica, bio-médica y de las ciencias
de la computación. Como una sinergia de los campos previamente descritos,
encargado de el diseño, implementación, construcción, operación y aplicación
de sistemas robóticos [1].
El concepto de robot y/o sistema robótico, hace referencia a un o un conjunto
de elementos generalmente de tipo electromecánicos, cuyo fin es la aplicación
de trabajos.
Actualmente, no existe un consenso generalizado acerca del determinado
tipo de máquinas que pudieran ser consideradas dentro de la clasificación de
tipo robot. No obstante, si acerca de la aplicación que ha de realizar para recibir
dicha clasificación, siendo la misma la del desarrollo de tareas de forma flexible,
tanto de tipo mecánico como digital.
La ejecución de tareas, puede ser de ı́ndole digital, mecánico, ası́ como ambas
de forma simultánea. Siendo ambas, las aplicaciones, en el campo de la robótica
asistencial.
Recapitulando, se puede definir la robótica asistencial, como uno de los cam-
pos de actuación de la robótica, centrado en la ejecución de tareas para el apoyo
y/o asistencia de personas. Se trata de una rama, especializada en el diseño e im-
plementación de sistemas de tipo robótico, cuya interactuación, se da de forma
directa con el usuario.
En lo referente a sus aplicaciones, generalmente, son enmarcadas en la im-
plementación de tareas de rehabilitación para usuarios. Sin embargo, el campo
de actuación es mucho más amplio. Puede englobar, tanto tareas de apoyo y
1.1 Robótica asistencial 3
rehabilitación, de ı́ndole médico, relativo a las ciencias de la salud, ası́ como
tareas de apoyo de ı́ndole social, aunque también enmarcadas en el campo de
la robótica social, dado que se encuentran ı́ntimamente relacionadas, las cuales
posteriormente se describirán en el Capı́tulo 2. A las previamente descritas, pue-
den añadirse el desarrollo de tareas derivadas de las mismas, ası́ como fusiones
de estas.
4 Introducción
1.2. Soluciones asistenciales propuestas
En lo referente a este apartado, se detallarán las soluciones propuestas a rea-
lizar con el robot. Se describirán las tareas a implementar, a saber, Visit my home,
Catering for Granny Annies Confort, Take the elevator y por último Deliver coffe shop
orders.
1.2.1. Visit my home
La primera solución propuesta será, el desarrollo de la tarea Visit my Home
[2] 1. Dicha tarea, se encuentra basada en la capacidad del robot para poder
desplazarse y navegar por el entorno de forma autónoma. Para ello, deberá de
ser capaz de poder evitar obstáculos, e interactuar con ellos en los casos que
sea requerido. A su vez, ha de incorporar funcionalidades para la visión por
computador, para permitir el reconocimiento de objetos y personas. Durante
desarrollo de la tarea, el robot, ha de navegar en un domicilio de una única
planta, el la cual se desplazará por las distintas habitaciones. Todo ello en una
secuencia conocida. Sin embargo, durante el desarrollo de dicha secuencia, se
interpondrán obstáculos de forma dinámica.
Por ello, deberá de poder evitar dichos obstáculos, tales como personas, cajas
o semejantes, re-calculando la ruta. En algunos casos, deberá de re-calcular otra
ruta óptima en el caso de que no pueda evitar el obstáculo, para ası́ alcanzar la
ubicación objetivo.
Un ejemplo del mismo será, la imposibilidad del robot para el paso cerrando
la puerta. Por lo tanto deberá de re-calcular dicha ruta, para poder acceder a la
habitación en cuestión. Se puede observar un caso de uso en, (Fig. 1.1)
1
https://youtu.be/TNIiLmZC7XI
1.2 Soluciones asistenciales propuestas 5
Figura 1.1: Navegación en un domicilio.
Durante el desarrollo de la navegación, deberá de reconocer personas y ob-
jetos, ası́ como poder interactuar con ellos. En el supuesto de acceder a una ubi-
cación, y no poder acceder al punto en cuestión tras calcular las posibles rutas,
deberá interactuar con el usuario para solicitar ayuda para ası́ acceder a la ubi-
cación requerida. Por último, deberá de seguir al usuario hasta una ubicación
desconocida. En lo referente al mapa del domicilio, en el cual el robot se despla-
zará, véase (Fig. 1.2)
Figura 1.2: Mapa del domicilio.
6 Introducción
1.2.2. Catering for Granny Annies Comfort
La segunda solución propuesta, Catering for Granny Annies Comfort [2], se
encuentra basada en la interacción del robot con el entorno. Dicha tarea ha de
incluir funcionalidades de navegación, visión por computador, reconocimiento
de voz y TTS.
En esta tarea, el robot ha de ayudar al usuario en tareas cotidianas 2. Para
ello, el usuario se lo indicará al robot presionando un botón en una tablet de con-
trol. Tras presionar el botón, el robot, deberá de acudir hasta el usuario, que se
encontrará ubicado en un punto conocido del domicilio. Tras llegar al punto en
cuestión, ha de reconocer por visión al usuario, e interactuar con él, recibiendo
una de las siguientes órdenes:
Búsqueda de objetos o personas
Manipular o traer un objeto
Acompañar a una persona a un punto del domicilio
Las opciones serán escogidas de forma aleatoria. Un ejemplo de caso de uso,
se muestra en, (Fig. 1.3)
2
https://youtu.be/a F0xMyyJ0s
1.2 Soluciones asistenciales propuestas 7
Figura 1.3: Apoyo doméstico en domicilio.
Por otro lado, en lo referente a los objetos a detectar, se tratará de útiles y
objetos comunes en cualquier domicilio, véase (Fig. 1.4).
Figura 1.4: Listado de objetos a detectar en el domicilio.
8 Introducción
1.2.3. Take the elevator
La solución propuesta, Take the elevator [3], se encuentra basada en la capa-
cidad del robot de poder obtener conocimiento sobre el entorno. Para ello, ha
de ser capaz de detectar personas y objetos, ası́ como de poder interactuar con
los mismo. Por último, ha de poder navegar y entrar en un ascensor para poder
desplazarse entre las distintas plantas de un edificio.
La capacidad de detección tiene que ser autónoma. El robot tiene que ser
capaz de coger un ascensor con clientes, y ası́ poder llegar a una determinada
ubicación en otra planta de ese mismo edificio. Un ejemplo de caso de uso, se
observa en, (Fig. 1.5)
Figura 1.5: Navegación mediante ascensor.
Para poder obtener la planta objetivo, el robot deberá de conectarse con un
servidor, conocido como Data Hub.
El robot deberá de coger el ascensor junto al los demás usuarios habituales,
en este caso, ubicado en un centro comercial, en el cual transcurrirı́a la tarea. Ha
de poder entrar y salir del ascensor, ası́ como en la planta correcta, junto a la
presencia de personas cercanas y/o en el interior.
1.2 Soluciones asistenciales propuestas 9
Durante el desarrollo de la tarea, deberá de interactuar con los clientes que
encuentra, respondiendo a saludos y/o preguntas. A su vez, el deberá inter-
actuar, aún en el supuesto de no haber recibido una solicitud por parte de los
clientes, con un cliente en concreto, siendo las segunda persona en detectar.
En lo referente a la selección de planta, el robot solicitará a los clientes que lo
realicen por él.
La tarea comenzará con el robot ubicado en un punto alejado del ascensor
en la planta 0. Deberá de adquirir información sobre la planta destino. Una vez
obtenida dicha información deberá desplazarse por el vestı́bulo hasta alcanzar
el ascensor, véase (Fig. 1.6). Durante el trayecto, debe de ser capaz de poder
detectar a las personas que encuentre en el mismo.
Figura 1.6: Aproximación al ascensor.
Tras llegar al ascensor, deberá de esperar a que el resto de cliente entren, sien-
do el último en acceder al mismo. El robot deberá de moverse al área cercana,
en la cual los clientes se encuentran parados. Anunciará su intención de coger el
ascensor, véase (Fig. 1.7).
10 Introducción
Figura 1.7: Entrada al ascensor.
Tras entrar en el ascensor, deberá de comunicar la planta a la cual desea llegar
y pedir confirmación de que seleccionarán la planta.
Una vez ha llegado a la planta destino, deberá de interactuar con los clientes
para agradecer la ayuda dada.
Para finalizar, deberá de salir del ascensor y desplazarse al punto de destino,
véase (Fig. 1.8). .
Figura 1.8: Salida del ascensor.
La duración máxima de dicha tarea no deberá de exceder los 5 minutos.
1.2 Soluciones asistenciales propuestas 11
1.2.4. Deliver coffee shop orders
Por último, la solución Deliver coffe shop orders [4], al igual que las tareas pre-
viamente comentadas, requiere de la capacidad del robot de adquirir informa-
ción del entorno que lo rodea, mediante visión por computador, reconocimiento
de voz, ası́ como los sensores láser y ultrasonidos en localización.
Al igual que en previas soluciones, ha de ser capaz de detectar personas y
objetos, ası́ como interactuar con ellos, para poder ayudar en labores de entrega
de pedidos.
En lo referente a esta tarea, el robot deberá de ayudar a las personas en una
cafeterı́a atendiendo a los clientes, tomando pedidos y entregándolos. Un caso
de uso puede observarse en, (Fig. 1.9).
Figura 1.9: Apoyo en toma de pedidos en restaurante.
Primero, el robot comenzará ubicado en el inicio del salón, alejado de los
clientes. Los clientes deberán de llamar la atención del robot. Tras recibir la soli-
citud, el robot deberá de dirigirse hacia mesa y analizará el estado de la misma,
vacı́a y/o con objetos, mediante visión por computador.
En caso de que la mesa está vacı́a, el robot recibirá el pedido de los clientes e
12 Introducción
informará a la cocina. Deberá de recordar el pedido ası́ como entregarlo.
En el supuesto de que la mesa no estuviera vacı́a, deberá de preguntar a
los clientes si desean que se vacı́e la misma. En caso afirmativo, les solicitará
que coloquen dichos objetos sobre la bandeja, y tras finalizar, podrá comenzar el
proceso de toma de pedidos comentado previamente, véase (Fig. 1.10).
Figura 1.10: Escenario pedidos de clientes.
Capı́tulo 2
Estado del arte
A través del Capı́tulo 2, denominado Estado del arte, se presentará el concepto
y algunos de los sectores de actuación de la robótica.
En primer lugar, se tratará la definición y consenso de aplicación de la robóti-
ca, ası́ cómo posteriormente, su aplicación en los sectores de actuación más rele-
vantes, tales como, la robótica en la industria, construcción, transporte y asisten-
cia, siendo esta última el sector en el cual se enmarcará el proyecto presentado.
En segundo lugar, se tratarán los distintos organismos e instituciones, a través
de los cuales se ha llevado a cabo la aplicación y ejecución de las soluciones im-
plementadas. Para ello, se detallarán los organismos en cuestión, tales como Eu-
ropean Robotics League y SciRoc, ası́ como las aplicaciones implementada en cada
institución.
2.1. Robótica y sectores de actuación
Tal y como se definió en el Capı́tulo 1, se puede determinar la robótica como
una sinergia de las ingenierı́as mecánica, eléctrica, electrónica, bio-médica y de
las ciencias de la computación. Es la encargada de el diseño, implementación,
construcción, operación y aplicación de sistemas robóticos.
14 Estado del arte
A su vez, un robot y/o sistema robótico, hace referencia a un o un conjunto
de elementos generalmente de tipo electromecánico, cuyo fin es la aplicación de
trabajos.
En lo referente a su clasificación en el término de robot y/o sistema robótico,
no existe actualmente un consenso generalizado en la determinación de carac-
terı́sticas a requerir, no obstante, sı́ respecto de las tareas que ha de llevar a cabo
dichos sistemas robóticos.
Actualmente, puede ser considerado dentro de la clasificación de robot y/o
sistema robótico, aquellos elementos tanto digitales como mecánicos que sean ca-
paces de realizar tareas de forma flexible [1].
2.1.1. Historia y clasificación de la robótica
A través de este apartado, se presentarán algunos de los hitos de la robótica
más relevantes desde su primer término hasta la actualidad. Posteriormente, se
tratará la clasificación y descripción de los mismos en función de su generación
y estructura.
Historia de la robótica:
En lo referente a la historia de la robótica, su primer término, data del
siglo I a.C [5]. En siglo I a.C, surgen las primeras descripciones del término
autómata. Siendo, el mismo la referencia a sistemas de tipo mecánico que
tratan de replicar comportamientos de humanos y/o animales.
En el año 420 a.C, se lleva a cabo la construcción de un autómata de madera
propulsado a vapor que imitaba el comportamiento de un pájaro, atribuida
la construcción a Arquitas de Tarento, véase (Fig. 2.1).
2.1 Robótica y sectores de actuación 15
Figura 2.1: Autómata de madera propulsado a vapor, Arquitas de Tarento.
Al-Jazari, diseña los primeros autómatas programables con forma huma-
noide en el año 1206.
En el año 1495, Leonardo Da Vinci, construye el Caballero mecánico, siendo el
mismo, el primer robot humanoide [6], véase (Fig. 2.2).
Figura 2.2: Caballero mecánico, Leonardo Da Vinci.
Son presentadas las Tres leyes de la robótica por Isaac Asimov en el año 1942,
a través de una historia de ciencia ficción con el robot SPD-13, en la revista
Astounding Science Fiction.
16 Estado del arte
En el año 1956, se presenta el primer robot comercial, de la compañı́a Uni-
mation [7], cuyos fundadores fueron George Devol y Joseph Engelberger, sien-
do en el año 1961 la primera instalación de dicho robot comercial, véase
(Fig. 2.3).
Figura 2.3: Primer robot comercial, robot Unimation.
En 1971, aterriza en Marte el primer robot Mars 3 [8], diseñado por la
Unión Soviética, aunque perdiendo el contacto al poco tiempo, véase (Fig.
2.4).
Figura 2.4: Robot Mars 3.
2.1 Robótica y sectores de actuación 17
En el año 1973, es presentado por la empresa KUKA Robot Group, el robot
Famulus [9], siendo el primer robot con seis ejes , véase (Fig. 2.5).
Figura 2.5: Primer robot comercial de la empresa KUKA, robot Famulus.
El primer robot móvil bı́pedo con capacidad de interactuación, es presenta-
do por la empresa HONDA Motor Co., en el año 2011, recibiendo el nombre
de ASIMO [10], véase (Fig. 2.6).
18 Estado del arte
Figura 2.6: Primer robot móvil bı́pedo, robot ASIMO.
Posteriormente, en el año 2015, es presentado el robot SOPHIA [11], de
la empresa Hanson Robotics Co., siendo un robot móvil bı́pedo, con capa-
cidad de interactuación, simulación de expresiones y visión por compu-
tador, véase (Fig. 2.7).
Figura 2.7: Robot Sophia.
2.1 Robótica y sectores de actuación 19
Clasificación de sistemas robóticos:
Mediante este apartado, se llevará a cabo la clasificación de los sistemas
robóticos [6]. En primer lugar, serán diferenciados mediante la Generación
de los mismos. Posteriormente a través de su estructura.
• Clasificación por generación:
Los sistemas robóticos, pueden ser clasificados en función de su gene-
ración o factor cronológico. Principalmente la clasificación generacio-
nal, suele ser diferenciada en primera, segunda y tercera generación.
- Primera generación:
Se pueden clasificar como robots de primera generación, aquellos sis-
temas robóticos, generalmente de tipo robot manipulador, multi-funcional,
los cuales permiten un control de tipo manual, secuencia fija y/o va-
riable.
- Segunda generación:
Se pueden clasificar como robots de segunda generación, aquellos sis-
temas robóticos, con capacidad de aprendizaje. Dicho aprendizaje se
realiza mediante la ejecución de secuencias ya dadas por un opera-
dor, a través de la réplica de las mismas.
- Tercera generación:
Se pueden clasificar como robots de tercera generación, aquellos siste-
mas robóticos, que integran sensores en los mismos. Su control es dado
por un computador que envı́a las instrucciones requeridas al sistema
robótico.
• Clasificación por estructura:
En lo referente a la clasificación de robots en función de su estructura,
es definida por la configuración del mismo. En función de la arquitec-
tura los mismos, pueden clasificarse en cinco grupos principales:
20 Estado del arte
- Poliarticulados:
Poseen un base fija, ası́ como uno o más sistemas de coordenadas. Per-
miten un movimiento articular y/o cartesiano, con desplazamientos
lineales y/ curvos en el espacio de trabajo. Un ejemplo puede obser-
varse en, (Fig. 2.8).
Figura 2.8: Robot manipulador, ABB.
- Móviles:
Poseen la capacidad del desplazamiento en el entorno, generalmente
de base móvil ası́ como locomoción articular. En este grupo, pueden
incluirse robots de base móvil por elemento rodante, ası́ como movi-
mientos articulares tales como por arrastre o extremidades. Se puede
observar un robot de base móvil en, (Fig. 2.9).
Figura 2.9: Robot móvil TurtleBot 2, Clearpath.
2.1 Robótica y sectores de actuación 21
- Androides:
Mediante esta clasificación, se engloban los sistemas robóticos, que tra-
tan de reproducir comportamientos cinemáticos de forma parcial y/o
total del ser humano. En lo referente a dicha clasificación se incluyen
los robot humanoides bı́pedos y los hı́bridos. Se muestra un robot hu-
manoide bı́pedo en, (Fig. 2.7).
- Zoomórficos:
A través de dicha clasificación, se engloban los sistemas robóticos que
reproducen comportamientos cinemáticos tanto de forma parcial y/o
total de seres vivos, generalmente animales y/o insectos. Principal-
mente se pueden sub-clasificar en móviles y o móviles. Se puede ob-
servar un robot zoomórfico, de subclase móvil, inspirado en el com-
portamiento y fisionomı́a de un perro en, (Fig. 2.10).
Figura 2.10: Robot zoomórfico SpotMini, Boston Dynamics.
22 Estado del arte
- Hı́bridos:
Con la última clasificación, son indexados aquellos sistemas robóticos,
que no han podido ser clasificados en los grupos previamente descri-
tos o que a su vez, incluyen caracterı́sticas conjuntas de varios grupos
sub-clasificados. Un caso de robot hı́brido, como sistema robótico de ba-
se móvil y manipulador, se presenta en, (Fig. 2.11).
Figura 2.11: Robot TIAGo, PAL Robotics.
Por ultimo, se citan algunos ejemplos de cada clasificación para cada
configuración en [5], (Tabla. 2.1).
Clasificación Ejemplo
Poliarticulados Manipuladores, industriales...
Móviles Base rodante, bı́pedos...
Androides Humanoides, semi-humanoides...
Zoomórficos Araña, serpiente, perro...
Hı́bridos Móvil-manipulador, zoomórfico-manipulador...
Tabla 2.1: Clasificación de robot por estructura
2.1 Robótica y sectores de actuación 23
2.1.2. Sectores de actuación
Mediante el siguiente apartado, se presentarán algunos de los sectores de
actuación del campo de la robótica, en áreas tales como la industria, construc-
ción, transporte o asistencia. Tal y como se ha descrito previamente, la robótica
es la sinergia de numerosas áreas, tales como la ingenierı́a mecánica, eléctrica,
electrónica y de las ciencias de la computación, las cuales permiten, el diseño,
implementación, operación y aplicación de sistemas robóticos.
A su vez, dado el concepto de robot y/o sistema robótico, como el elemento
y/o conjunto de elementos los cuales permiten la ejecución de tareas, tanto de
forma mecánica como digital, su aplicación es elevada, dada la alta versatilidad
de los mismos, permitiendo la ejecución en múltiples casos de uso.
Se expondrán algunos de los sectores de actuación más relevante, y dada la
inherente dificultad de identificar todos los sectores de actuación dada la clasi-
ficación relativa a las aplicaciones digitales, se centrará en su aplicación de tipo
mecánico, siendo este inmediato dada su evolución histórica. Algunos de los
sectores de actuación que se describirán, será la aplicación de la robótica a la
industria, construcción, transporte y asistencia.
Robótica Industrial
En primer lugar se definirá la Robótica Industrial, como una de las aplicacio-
nes de la robótica al sector de la industria. Atendiendo en la misma al estudio,
diseño, implementación y ejecución de robots y/o sistemas robóticos en procesos
industriales [1].
Principalmente pueden clasificarse en cinco tipos de robots y/o sistemas robóti-
cos, desde un punto de vista generalizado:
Robots manipuladores:
El término robot manipulador, hace referencia a aquellos robots cuyo fin es la
manipulación y/o procesado, aplicado en tareas de tipo mecánico. Gene-
24 Estado del arte
ralmente, se encuentran constituidos por una base fija ası́ como un conjun-
to de eslabones articulados, y mediante el desplazamiento relativo de los
mismos, se permite el movimiento y desplazamiento del robot en el área
de trabajo, para su operación, (Fig. 2.12).
Figura 2.12: Robots industriales, ABB Robotics.
Robots de aprendizaje o repetición:
A través del término robot de aprendizaje/repetición, se referencia a aquellos
robots cuyo fin es la repetición o aprendizaje de procesos industriales. Al
igual que los robots manipuladores, se definen por una base fija y un conjun-
to de eslabones articulados, para permitir la operación del robot en el área
de trabajo. Atendiendo a la clasificación de repetición de procesos, dada
la replica del mismo, el cual, ha sido previamente realizado por un opera-
dor Aprendizaje, para aquellos robots que incluyan el término previo y/o
realizan un aprendizaje por cualquier otro método.
Robots de computadores:
Los robot de computadores, son aquellos robots de fin, la automatización de
procesos industriales desde el punto de vista computarizado.
2.1 Robótica y sectores de actuación 25
Robots inteligentes:
Con el término robot inteligente, hacemos referencia a aquellos robots que in-
corporan medios y/o métodos inteligentes en la interacción con el entorno.
Mediante sensores y actuadores que permiten la incorporación de dichas
funcionalidades. Ejemplos de los mismos como, sensores láser, ultrasoni-
dos, cámaras RGB, RGB-D y sistemas inteligentes para el reconocimiento
de voz, TTS, visión artificial, entre otros, véase (Fig. 2.13).
Figura 2.13: Robots inteligente, ABB Robotics.
Micro/Nano-robots:
Con los micro/nano-robot, se entienden a aquellos robots de reducidas di-
mensiones, no obstante, su aplicación no determina la clasificación, sino
su arquitectura y dimensiones. Se puede observar dicha configuración, en
(Fig. 2.14), mediante un micro-robot zoomórfico, inspirado en insectos.
Figura 2.14: Micro-robot HarvardBee, Harvard University.
26 Estado del arte
Robótica en la Construcción
Se definirá la Robótica en la construcción, como otra aplicación de la robótica
al sector de la construcción. Atendiendo en la misma al estudio, diseño, imple-
mentación y ejecución de robots y/o sistemas robóticos en procesos relacionados
con la construcción.
En lo referente a esta clasificación, principalmente se puede distinguir en dos
tipos diferenciados. En primer lugar, robots cuya construcción se ha implementa-
do a partir de maquinaria ya aplicada en el sector de la construcción y al mismo,
se ha añadido el sistema robótico.
En segundo lugar se incluyen aquellos robot y/o sistemas robóticos los cuales,
han sido, implementados especı́ficamente para una aplicación determinada.
Dichos sistemas robóticos, permiten automatizar procesos generalmente de ti-
po manual, en a la construcción. Por ello con la implementación de sistemas
modulares, adaptativos y flexibles, se permite su uso en el sector de la construc-
ción. Con tareas tales como el transporte y/o manipulación de elementos, ası́
como ensamblaje y desarrollo de tareas cı́clicas y periódicas.
Entre algunos de los sistemas robóticos aplicados a la construcción se puede
destacar:
SAM100:
Mediante el sistema SAM100 [12], implementado por la empresa Construc-
tion Robotics, se permite la localización de ladrillos en construcción. Cons-
tituido por una plataforma móvil y un brazo manipulador. A través de
dicho robot hı́brido, se permite una localización y gestión del inventario de
ladrillos, reduciendo el tiempo requerido a un sexto del tiempo en modo
manual.
Englobado en la clasificación de robot hı́brido de tipo manipulador-móvil,
el cual junto a una bomba para el almacenaje de cemento, asiste y oferta
apoyo de un operario. Localiza y almacena los ladrillos, ası́ como gestiona
2.1 Robótica y sectores de actuación 27
los requerimientos de cemento para el trabajador. Ası́ minimiza los costes
y tiempos requeridos, maximizando los ingresos y aumentando el margen
de beneficios, véase (Fig. 2.15).
Figura 2.15: SAM100, Construction Robotics.
Sistema integrado flexible de fabricación:
Investigadores del grupo RoboticsLab [13], de la Universidad Carlos III de
Madrid, han implementado un sistema integrado flexible, para la auto-
matización de procesos aplicados, en el sector de la construcción, ası́ se
permite la automatización de procesos manuales. Con la implementación
de dicho sistema flexible, con adaptabilidad a múltiples tareas, se da la
ejecución de procesos de transporte y manipulación. Dada tal implemen-
tación, a partir de múltiples sistemas integrados para la automatización de
los procesos constructivos, se permite junto al ensamblaje con un conjunto
con sistemas robóticos, una construcción por planta automatizada.
Robótica en el Transporte
La Robótica en el transporte, como una aplicación en sector del transporte. Al
igual que los casos previamente descritos, lleva a cabo el estudio, diseño, imple-
mentación y ejecución de robots y/o sistemas robóticos en procesos relacionados
con el transporte.
28 Estado del arte
A través de la aplicación de la robótica en el transporte, se tratan de implemen-
tar sistemas para la mejora de la seguridad, confort, rendimiento y eficiencia, ası́
como reducción de costes, tiempos, y en los últimos años reducción del efecto
contaminante de los medios de transporte.
Con la implementación de funcionalidades para medios de transporte y/o
bien el las propias infraestructuras del mismo.
Se destacan algunos ejemplos de uso de la robótica al transporte:
C-V2X:
Con el término C-V2X, Cellular vehicle to X [14], se hace referencia a la co-
municación de tipo inalámbrico entre los vehı́culos y/o cualquier dispo-
sitivo y/o sistemas con capacidad de conexión. Todo ello a través de los
dispositivos móviles. A través de este sistema de comunicación, basado en
4G LTE y compatible con 5G, ası́ como optimizado para el uso en vehı́culos
autónomos, se pretende la construcción una infraestructura basada en la
comunicación entre los distintos dispositivos y con capacidad de conexión
a Internet, ioT, véase (Fig. 2.16).
Figura 2.16: C-V2X.
Robótica Asistencial
Tal y como se definió en el Capı́tulo 1, la robótica asistencial, marco en el cual
se dará este proyecto. Es uno de los campos de aplicación de la robótica, el cual,
se focaliza en la implementación de soluciones para el apoyo y/o asistencia de
personas. La interactuación, se da directamente con el usuario.
2.1 Robótica y sectores de actuación 29
En cuanto a las aplicaciones, principalmente se engloban en aquellas dedica-
das a tareas de rehabilitación para usuarios. No obstante, su extensión es mayor.
Como se comentó previamente, indexa tareas tanto de apoyo y rehabilitación,
ası́ como tareas de ı́ndole social. Algunos ejemplos de aplicaciones de las mis-
mas:
Rehabilitación de usuarios mediante puntos de alcance y/o imitación de
robot:
Los usuarios han de realizar tareas de alcance de puntos para la rehabili-
tación articular y muscular, por ejemplo mediante ejercicios por imitación
de robots, véase (Fig. 2.17).
Figura 2.17: Rehabilitación mediante imitación, robot NAO.
30 Estado del arte
Rehabilitación de usuarios y estipulación sensorial mediante VR:
Los usuarios, realizan tareas de rehabilitación mediante realidad virtual,
ası́ como la estimulación visual y mejora de reflejos, véase (Fig. 2.18).
Figura 2.18: Rehabilitación mediante VR.
Apoyo doméstico mediante localización y manipulación de objetos:
El sistema robótico proporciona ayuda doméstica mediante la manipula-
ción y localización de objetos, siendo esta una de las soluciones que se
propondrán y detallaran en el documento en el Capı́tulo 4, en Catering for
Granny Annies Comfort [19], véase (Fig. 2.19).
2.1 Robótica y sectores de actuación 31
Figura 2.19: Apoyo doméstico mediante localización y manipulación de objetos.
Apoyo laboral en tareas de interactuación:
El sistema robótico, interactua, con los usuarios, por ejemplo en la toma
de pedidos en un local (restaurante) , apoyo en un comercio para la locali-
zación de productos (supermercado). Este ejemplo, se expondrá en detalle
en el documento, en el Capı́tulo 4, se presentará con una de las soluciones
propuestas, Deliver coffe shop orders, véase (Fig. 2.20).
(a) Toma de pedidos en restaurante, robot
TIAGo
(b) Apoyo en supermercado, robot TIAGo
Figura 2.20: Apoyo laboral en tareas de interactuación.
Dichas aplicaciones, como se puede observar, engloban numerosas áreas de
trabajo, y su clasificación, requiere de varias áreas, siendo estos algunas de las
32 Estado del arte
numerosas aplicaciones que pudieran llevar a cabo.
Robótica Social
Se puede definir la Robótica social, como una de las aplicaciones de la robóti-
ca en sector social. Mediante el estudio, diseño, implementación y ejecución de
robots y/o sistemas robóticos en procesos relacionados con la interactuación con
usuarios.
Dicha rama engloba la aplicación de sistemas robóticos, desde un punto de
vista más cercano a la interacción del humano con el robot.
Se adjuntan algunos ejemplos de robots sociales:
Maggie:
El sistema robótico, Maggie [15], es un tipo de configuración de robot social,
aplicado a interacción con usuarios. Se trata de un robot social, cuya in-
teracción con el usuario se realiza mediante reconocimiento de voz y TTS.
Incorpora sensores de presión y cámaras para permitir una interactuación
a través del tacto, junto a los sistemas de visión artificial, véase (Fig. 2.21).
Figura 2.21: Robot social, Maggie.
2.1 Robótica y sectores de actuación 33
Pepper:
El sistema robótico, Pepper [17], es otro tipo de configuración de robot so-
cial, fabricado por la empresa SoftBank, para la interacción con usuarios
y asistencia. La interacción con el usuario, es llevada a cabo a través re-
conocimiento de voz y TTS. Consta de una base móvil para permitir el
desplazamiento y cámaras para una interactuación mediante sistemas de
visión artificial, véase (Fig. 2.22).
Figura 2.22: Robot social, Pepper.
TIAGo:
Mediante el sistema robótico TIAGo [16],se presenta una configuración de
robot social, aunque flexible para el desarrollo de aplicaciones industriales
de baja carga, dada la versatilidad del mismo. Fabricado por la empresa
PAL Robotics, permite la interacción con usuarios, ası́ como su asistencia.
A través reconocimiento de voz y TTS, junto a cámaras RGB-D para una
interactuación por visión artificial y cálculo de profundidades, se permite
una amplia interacción. Constituido por una base móvil para permitir la
navegación, ası́ como bazos robóticos para permitir la manipulación, junto
a sistemas de visión y sensores de fuerza, véase (Fig. 2.23).
La arquitectura del robot TIAGo, será descrita en detalle en el Capı́tulo 3,
dado que las soluciones propuestas serán ejecutadas sobre dicha platafor-
ma.
34 Estado del arte
Figura 2.23: Robot social, TIAGo.
NAO: Mediante el sistema robótico, NAO [18], fabricado por la empresa Al-
debaran Robotics, se permite la interacción con usuarios ası́ como la asisten-
cia. A través del reconocimiento de voz y TTS, junto a las cámaras y los
sensores de tacto, se da la interactuación. Se trata de un sistema bı́pedo en
el deslazamiento, junto a bazos robóticos para permitir la manipulación y
captura de objetos mediante cinco falanges, véase (Fig. 2.24).
Figura 2.24: Robot social, NAO.
2.2 Organismos e instituciones 35
2.2. Organismos e instituciones
En este apartado, se presentarán algunos de los organismos oficiales dedica-
dos al ensayo y ejecución de tareas relativas a la robótica asistencial en la inves-
tigación. Dichas instituciones, principalmente, tienen como campo de estudio
dentro de la robótica asistencial, aquellas dedicadas al servicio, emergencias,
profesional, ası́ como ciudades inteligentes.
Instituciones como European Robotics League o SciRoc, permiten el ensayo y
ejecución de tareas de los campos de la robótica asistencial, previamente co-
mentados. Para ello, se habilitan entornos reales de pruebas donde llevar a cabo
dichos ensayos.
En segundo lugar, dichas instituciones, organizan torneos durante la ejecu-
ción de las pruebas, y en las mismas las distintas universidades y/o centros de
investigación, compiten entre sı́, para evaluar la ejecución de las tareas, ası́ co-
mo el nivel de precisión, calidad o interacción entre los sistemas robóticos y el
entorno.
El proyecto European Robotics League, ha sido implementado por un consorcio
de socios y revisores, ası́ como una junta asesora, constituida por expertos en el
campo de la robótica. Ası́ se permite dada la inherente experiencia las respuestas
de emergencia, el diseño de los diferentes protocolos y requisitos a cumplir.
2.2.1. European Robotics League
La institución European Robotics League [19], es un organismo oficial, con sede
en Europa. Tiene como objetivo la organización y gestión de torneos locales e in-
ternacionales. Para ello, se encuentra divida, en cuatro campos de participación,
a saber:
Consumer:
En primer lugar, ERL Consumer, es un campo de actuación cuyo objetivo,
es unir avances de la investigación cientı́fica, relativos a la robótica asisten-
36 Estado del arte
cial. A través de un sistema de calificación y puntuación en la ejecución de
las tareas. Dicho campo se encuentra focalizado en la ejecución de tareas,
principalmente en ambientes domésticos.
Destacar, que en la ejecución de las mismas, en lo referente a los reque-
rimientos o las caracterı́sticas que debe incorporar el robot, se integran
algunas tales como, el reconocimiento de personas y objetos. Ası́ como la
manipulación de objetos, navegación a través del entorno, habla y recono-
cimiento de voz, entre otros.
Emergency:
En segundo lugar, ERL Emergency, es otro campo dentro de la competición,
dedicado, a la robótica al aire libre. Centrado en el apoyo en situaciones
de emergencia. Posee un enfoque realista, para su ejecución en múltiples
entornos urbanos. Dichos sistemas robóticos, poseen un papel fundamental.
En situaciones crı́ticas han de ser capaces de poder actuar a distancia y dar
soporte a sistemas de rescate en la detección y/o tareas relativas.
En la competición, a fin de tener en cuenta el estado de sistemas crı́ticos,
como por ejemplo en situaciones sin acceso a una red de comunicacio-
nes para el acceso a Internet o localización por GPS, se insta el desarrollo
de sistemas completamente autónomos, con una navegación automática y
funcional al aire libre e interiores. En los mismos, se prueban las capacida-
des y funcionalidades para poder hacer frente a las situaciones del mundo
real.
Proffesional:
En tercer lugar, ERL Professional, al igual, que el resto de campos previa-
mente comentados, se centra en la ejecución de tareas mediante sistemas
robóticos, todo ello gestionado y puntuado por un sistema de calificación.
En el apartado profesional, se llevan a a cabo la ejecución de tareas desde
un ámbito más industrial. Con tareas orientadas a la ejecución de proce-
2.2 Organismos e instituciones 37
sos automatizados de tipo industrial, tales como ensamblajes o procesa-
dos, con la incorporación sistemas robóticos con capacidad de navegación
autónoma.
Smart Cities:
Por último, Smart Cities, es una disciplina, dentro de la European Robotics
League, orientada a la ejecución de tareas de apoyo con sistemas robóti-
cos en grandes instalaciones urbanas, tales como centros comerciales, es-
taciones de transporte, tiendas y semejantes. Mediante dicha disciplina,
se permite demostrar los diferente beneficios de los sistemas inteligentes
automatizados aplicados en el dı́a a dı́a para los ciudadanos.
Las compañı́as y centros de investigación, tienen la oportunidad de mos-
trar dichos avances y la tecnologı́a, aplicada en un contexto real, ası́ los
riesgos e implicaciones de los mismos.
2.2.2. SciRoc
El proyecto SciRoc [20], es una institución financiada por UE-H2020. El ob-
jetivo fundamental de dicha institución, es la ejecución y ensayo de tareas del
campo de la robótica asistencial en el entorno de las ciudades inteligentes. Sci-
Roc, es un proyecto derivado de European Robotics League Smart Cities. Destacar
como elemento fundamental del mismo, la incorporación de sistemas robóticos,
dentro de las ciudades, su integración, ası́ como la inter-conexión de los mis-
mos.
SciRoc, tal y como se describı́a previamente, es un proyecto financiado por la
UE-H2020] apoyado por la European Robotics League (ERL), cuyo fin es trasladar
los diferentes torneos y aplicaciones de ERL, al contexto de las ciudades inteli-
gentes. Para ello, se llevarán a cabo proyectos en los años 2019 y 2021, tales como
el SciRoc, celebrado en Milton Keynes 1, Inglaterra en septiembre de 2019.
1
https://www.youtube.com/watch?v=ZIxgWxU S00
38 Estado del arte
Con las funcionalidades implementadas en los distintos apartados de la Eu-
ropean Robotics League, ası́ como los robots, se interactuará con los ciudadanos y
la infraestructura de la ciudad inteligente, apoyando a los clientes y proporcio-
nando servicios.
Capı́tulo 3
Arquitectura del sistema
Mediante el Capı́tulo 3, denominado Arquitectura del sistema, se expondrán los
distintos componentes empleados para el desarrollo de las soluciones propues-
tas.
En primer lugar se tratará el campo relativo al Hardware, detallando en el
mismo, la plataforma a través de la cual se llevarán a cabo la ejecución de las so-
luciones propuestas previamente comentadas en el Capı́tulo 1. En dicho aparta-
do, se detallará el Hardware empleado, es decir, el robot TIAGo, los componentes
del mismo, ası́ como las especificaciones individuales y de conjunto del sistema
robótico.
En segundo lugar, se abordara el campo del Software, a través del cual se
tratarán los distintos módulos requeridos para la ejecución de las soluciones ex-
puestas. Se detallarán individualmente los componentes empleados, divididos
en secciones relativas al ámbito de aplicación, tales como la manipulación de ob-
jetos, la visión por ordenador, reconocimiento de voz, o navegación autónoma
entre otras.
40 Arquitectura del sistema
3.1. Hardware
En este apartado, se presentará el Hardware, empleado para la ejecución de
las soluciones propuestas en el Capı́tulo 1.
Tal y como se comentó previamente, para la implementación de soluciones
en sistemas robóticos, tales y como son Visit my home, Catering for Granny Annies
Confort, Take the elevator y por último Deliver coffe shop orders, se requiere de una
plataforma de ejecución en la cual llevarlas a cabo.
En primer lugar, se describirá el sistema empleado. Para ello, la plataforma
seleccionada, ha sido el robot TIAGo fabricado por la empresa PAL Robotics, con
sede en Barcelona. En segundo lugar, se describirán las implementaciones de
Hardware añadidas a posteriori sobre el sistema robótico.
3.1.1. Robot TIAGo
A través de este apartado, se presentará el sistemas robóticos seleccionado para
la ejecución de las soluciones propuestas. El sistema robótico seleccionado, ha sido
TIAGo. TIAGo [21], es un robot móvil manipulador, fabricado por la empresa
PAL Robotics, con sede en Barcelona.
Se trata de un robot hı́brido, principalmente desarrollado para los campos
de robótica asistencial. Concretamente ha sido empleado en tareas relativas a
las tareas asistenciales. TIAGo tal y como se puede observar en la (Fig. 3.1), se
encuentra constituido por una plataforma móvil para permitir la navegación a
través del entorno. Junto a la base móvil, se ubica un torso regulable, que le
permite adaptarse a las alturas requeridas para el desarrollo de su tarea.
Sobre el torso, se encuentra la cabeza, formada por distintas cámaras RGB y
RGB-D, para la obtención de imagen y profundidad. Por último, se encuentra
constituido por un brazo robótico de 6 [g.d.l]. En el extremo de el brazo consta
de un sistema de pinza de 1 [g.d.l].
3.1 Hardware 41
Figura 3.1: Robot TIAGo, PAL Robotics
Tras presentar el robot, se procederá a detallar cada uno de los componentes,
explicando la constitución de los mismos, dimensiones, pesos y requerimientos
eléctricos entre otros.
42 Arquitectura del sistema
Especificaciones
En el siguiente apartado, se presentan las especificaciones técnicas del robot
TIAGo [16], tales como las dimensiones, grados de libertad, torso, base móvil,
sensores, brazo manipulador, y sus especificaciones eléctricas. Adicionalmen-
te, se describirán las herramientas comerciales ya implementadas para el robot
TIAGo.
Dimensiones y peso del robot:
En primer lugar, en lo referente a las dimensiones del mismo, tal y como se
muestra en (Tabla. 3.1), TIAGo, tiene una altura de 110 [cm], en su estado
base, sin embargo alcanza los 145 [cm], gracias al motor en su torso que le
permite extenderlo, regulado la altura entre 110-145 [cm], para adecuarse
a la altura requerida. El diámetro de su base es de 54 [cm], y el peso total
de 72 [Kg].
Altura [cm] Base [cm] Peso [Kg]
110-145 54 72
Tabla 3.1: Dimensiones del robot TIAGo
Grados de libertad:
En segundo lugar, se describirán, sus grados de libertad, para ello, se divi-
dirá en cada uno de sus componentes Hardware y analizarán el número de
los mismos.
Como se puede observar en (Tabla. 3.2), TIAGo, posee una gran cantidad
de articulaciones, siendo un total de 7 [g.d.l] en el conjunto brazo-muñeca,
permitiéndolo acceder a las posiciones requeridas de su espacio de traba-
jo con múltiples configuraciones. A partir de la base, se permite el des-
plazamiento en el plano para la navegación, y el torso, junto a la cabeza,
permiten ajustar el ángulo de visión de la misma.
3.1 Hardware 43
En lo referente a la herramienta, principalmente, se comercializan dos módu-
los, la pinza PAL y la mano Hey5.
Base Torso Brazo Muñeca Cabeza Hey5 Mano Pinza PAL
2 1 4 3 2 19 2
Tabla 3.2: Grados de libertad del robot TIAGo
Torso:
A través de un sistema de elevación regulable TIAGo, véase (Fig. 3.2),
puede modificar su altura, permitiéndole adecuarse a la altura requeri-
da, modificando como se comentó previamente, su altura entre 110[cm] y
155[cm], tal y como se muestra en (Tabla. 3.3).
Extensión máxima [cm]
45
Tabla 3.3: Especificaciones torso del robot TIAGo
Figura 3.2: Sistema de elevación del torso en TIAGo
44 Arquitectura del sistema
Base móvil:
Mediante la base móvil, TIAGo, véase (Fig. 3.3), puede desplazarse, me-
diante motores de DC. Se encuentra constituidas por dos ruedas traseras a
tracción y una rueda delantera para permitir el giro.
Figura 3.3: Base móvil del robot TIAGo
En lo referente al sistema de conducción es diferencial y su velocidad máxi-
ma es de 1 [m/s], tal y como se muestra en (Tabla. 3.4).
Drive System Velocidad máxima [m/s]
Diferencial 1
Tabla 3.4: Especificaciones de la base móvil del robot TIAGo
Brazo manipulador:
Como se comento previamente al inicio del apartado, TIAGo, consta de
un brazo robótico de 6 [g.d.l], que le permite la manipulación de objetos
dentro de su área de trabajo desde múltiples configuraciones. Su alcance
es de 87 [cm], véase (Fig. 3.4), en su máxima extensión.
3.1 Hardware 45
Figura 3.4: Alcance del brazo manipulador de TIAGo
La carga máxima soportada es de 2 [Kg], tal y como se puede observar en,
(Tabla. 3.5).
Alcance [cm] Carga máxima [Kg]
87 2
Tabla 3.5: Especificaciones del brazo del robot TIAGo
En lo referente al extremo del brazo de TIAGo, consta de un sistema de an-
claje para herramientas. Actualmente son comercializadas dos versiones,
la pinza PAL, y la mano Hey5.
• Pinza PAL:
Se trata de un módulo con 1 [g.d.l], permitiendo abrir y cerrar la mis-
ma, tal y como se puede observar en (Fig. 3.5). No obstante, posee
una geometrı́a plana, lo cual lo hace idóneo para la creación de porta-
herramientas, diseñados e impresos en 3D, para la adaptación a la
herramienta en cuestión.
46 Arquitectura del sistema
Figura 3.5: Pinza PAL
Siendo un ejemplo de herramienta impresa en 3D, el siguiente sopor-
te para la limpieza y pintado de tornillos, (Fig. 3.6).
Figura 3.6: Soporte porta-herramientas pintado con visualización
• Mano Hey5:
En lo referente a la mano Hey5, véase (Tabla. 3.7), posee 19 [g.d.l], tal
3.1 Hardware 47
y como se muestra en (Fig. 3.2), siendo 3 de los mismos actuadores,
permitiendo la manipulación de objetos con alta precisión, ası́ como
desde múltiples configuraciones.
Figura 3.7: Mano PAL Hey5
48 Arquitectura del sistema
Sensores:
En lo referente a este módulo, se tratarán los sensores por los cuales es-
ta constituido el robot TIAGo. Dichos sensores se encuentran distribuidos
entre la base móvil, el torso, el brazo y la cabeza. Consta de un micrófono
estéreo en el torso, una cámara RGB-D en la cabeza, sensores de fuerza/-
torque en la muñeca, véase (Fig. 3.8).
Figura 3.8: Sensor de torque manipulación TIAGo
A su vez, consta de motores con retroalimentación en el brazo, tal y como
se puede observar en, (Tabla. 3.6).
Torso Brazo Muñeca Cabeza
Micrófono stereo Motors current feedback Fuerza/Torque Cámara RGB-D
Tabla 3.6: Sensorizado del robot TIAGo
Por último la base, (Fig. 3.3), se encuentra constituida por un sensor láser
de tipo LIDAR y sensores de ultrasonidos para la detección de obstáculos,
tal y como se describe en (Tabla. 3.7).
3.1 Hardware 49
Base
LIDAR/Sonars/IMU
Tabla 3.7: Sensorizado de la base del robot TIAGo
Especificaciones eléctricas:
En lo referente a las especificaciones eléctricas, los requerimientos de ten-
sión y amperaje para el funcionamiento del robot TIAGo, son de 35 [V] y
20 [Ah], respectivamente, como se puede observar en, (Tabla. 3.8).
Tensión [V] Intensidad [Ah]
35 20
Tabla 3.8: Especificaciones eléctricas del robot TIAGo
50 Arquitectura del sistema
3.2. Software
Mediante este apartado se presentará el Software, empleado para la ejecución
y desarrollo de las soluciones propuestas en el Capı́tulo 1.
Al igual que se comentaba previamente en el apartado del Hardware, para la
implementación de las soluciones en el sistema robótico TIAGo, en este caso, las
descritas en el Capı́tulo 1.
Visit my home, Catering for Granny Annies Confort, Take the elevator y por último
Deliver coffe shop orders, requieren junto al sistema Hardware, de un conjunto de
módulos Software, que permitan llevar a cabo las tareas requeridas.
En lo referente al campo del Software, se ha optado por llevar a cabo un desa-
rrollo y ejecución totalmente modular, dividiendo en distintos componentes ca-
da una de las funcionalidades, para luego poderse ejecutar de forma paralela y
conjunta. Módulos independientes, con capacidad de trabajo tanto individual,
como colectiva e interrelacionada, generando una red de módulos que permitan
la ejecución de tareas de gran complejidad.
La estructura Software, se ha divido en distintos módulos caracterı́sticos, a
saber: Navegación autónoma, Reconocimiento de voz, Motor de habla, Visión artificial,
Manipulación de objetos y por último, el desarrollo de la Lógica interrelacionada de
funcionamiento.
Cada uno de los módulos descritos, como se ha comentado previamente,
puede trabajar individualmente, permitiendo su aplicación en múltiples tareas,
no solo aplicables en sistemas robóticos, sino como funcionalidad de ejecución
en distintas áreas de trabajo.
Por último, a través del módulo referente a la Lógica interrelacionada de funcio-
namiento, se unen todos y cada uno de los módulos para la ejecución de la tarea
en concreto, siendo las distintas lógicas expuestas en el Capı́tulo 4.
En los distintos sub-apartados se describirán cada uno de los módulos em-
pleados para la ejecución de las tareas requeridas.
3.2 Software 51
3.2.1. Navegación del robot en el entorno
A través de este apartado, se tratará el aspecto relativo a la navegación del
robot en un entorno de trabajo.
En primer lugar, se describirá el concepto de navegación del robot en un
entorno.
En segundo lugar, se describirán algunos de los algoritmos de navegación
más relevantes en el marco actual, ası́ como la selección del algoritmo para la
navegación en el robot TIAGo.
Por último, se describirá el concepto y método aplicado para el mapeado
de dicho entorno, ası́ como se describirá los métodos empleados para la locali-
zación del robot. Destacar, que dicho proceso será aplicable tanto a un entorno
simulado como al entorno real en cuestión.
Concepto de navegación del robot
La navegación de un robot, es la capacidad para poder guiar al mismo a
través de un entorno [22]. Dicha capacidad, hace referencia a los robots de móvi-
les, es decir, aquellos con capacidad de poder desplazarse. En lo referente a los
tipos de navegación se puede distinguir principalmente en dos tipos diferencia-
dos, los robots autónomos y los robots tele-operados.
Los robots autónomos, en lo referente a la navegación, son aquellos con ca-
pacidad de poder desplazarse por un entorno, evitando los obstáculos que en-
cuentren el mismo. A su vez, el grado de autonomı́a y capacidad, es variable y se
determina en función de los lı́mites mecánicos, estructurales [g.d.l] y sensoriales
del mismo, ası́ como del propio entorno de trabajo para el que este destinado.
Por otro lado, los robots tele-operados, hacen referencia a aquellos robots
que son controlados directamente por un operador humano, a partir de distintos
métodos, tales como control con joystick (Fig. 3.9), mandos de control, paletas,
control vı́a pc entre otros.
52 Arquitectura del sistema
Figura 3.9: Joystick TIAGo
También pueden ser incluidos como métodos de control dentro del tipo de la
programación por guiado o aprendizaje de tipo pasivo, es decir, que el operador
aporta energı́a para moverlo, como el pasivo indirecto o maniquı́, en el cual el
robot replica la acción realizada en un maniquı́ movido por el operador humano,
véase (Fig. 3.10).
Figura 3.10: Guiado pasivo indirecto o por maniquı́
3.2 Software 53
Algoritmos para la navegación autónoma de robots
Mediante este apartado, se llevará a cabo la descripción de algunos de los
algoritmos de navegación aplicables a robots móviles más relevantes en el marco
actual.
En primer lugar, se definirá Algoritmo de navegación, como el conjunto de
técnicas, ası́ como operaciones matemáticas que permiten el mapeado y adqui-
sición de información para la generación del mapa del entorno, ası́ como la lo-
calización y navegación, del sistema móvil dado.
A través de los diferentes algoritmos de navegación que se describirán se
permitirá la generación del mapa del entorno junto a la localización, ası́ como
los cálculos requeridos para la obtención de la ruta en la navegación autónoma.
Permitiendo el re-cálculo de la ruta en tiempo real.
Se presentarán los algoritmos de navegación [23] [24], Planificador local me-
diante burbuja, (Bubble Local Planner), Planificador local basado en técnicas, Divide
and Conquer,(DivnConq), Modelos adaptativos de localización Monte Carlo, (AMCL)
y por último Localización y mapeado simultáneo, SLAM.
Planificador local mediante burbuja:
En primer lugar, se llevará a cabo la descripción del algoritmo para la na-
vegación Planificador local mediante burbuja, (Bubble Local Planner).
Principalmente, este algoritmo, es caracterizado por su clasificación de ti-
po reactivo, es decir, el re-cálculo de la ruta para llevar a cabo la evasión
de los diferentes obstáculos, se da, por el desplazamiento a través de una
dirección a una zona de menor densidad de obstáculos por unidad de área.
Dicho algoritmo, puede aplicarse tanto de sensores láser como ultrasoni-
dos. A través del uso del algoritmo, se instancia la detección alrededor de
dicho sistema móvil, lo cual, es conocido, como frontera de protección. Dicha
frontera de protección, posee forma esférica, y por ello recibe el nombre de
burbuja.
54 Arquitectura del sistema
Mediante esta esfera de detección cuyo volumen es variable, en función
del radio, la velocidad de desplazamiento de la misma, junto a frecuencia
a la cual se realiza el muestreo con el sensor láser y/o ultrasonido. Una vez
detectada la entrada de un factor externo en la misma, se inicia el Rebound
angle, o cálculo del ángulo de rebote, es decir, el ángulo requerido para el
desplazamiento y la obtención del correspondiente vector de trayectoria
hacia una zona donde se de la menor densidad de obstáculos por unidad
de área. En caso de detectar obstáculos en dicha ruta, se realiza el mismo
proceso de forma iterativa, no obstante, fijando el destino final, siendo este
el primer cálculo empleado, véase (Fig. 3.11).
Figura 3.11: Algoritmo Bubble Local Planner
3.2 Software 55
Planificador local basado en técnicas, Divide and Conquer:
En este apartado, se describe un algoritmo para la navegación de platafor-
mas móviles, siendo el mismo el Planificador local basado en técnicas Divide
and Conquer, (DivnConq).
Al igual que el algoritmo Bubble Local Planner, el algoritmo DivnConq, tam-
bién es caracterizado por su tipo reactivo, produciéndose el re-cálculo de la
trayectoria y de la ruta en la evasión de los obstáculos, con el cambio de la
dirección del sistema móvil a una zona de menor densidad de obstáculos
por unidad de área.
Mediante el uso de la herramienta Nearness Diagram, (ND), se dará la rela-
ción entre el sistema móvil y los obstáculos, junto a los objetivos finales e
intermedios. Para ello, es representado a través de los diagramas PND, y
con las distancias a los obstáculos, a través de la separación entre secciones
y/o regiones, véase (Fig. 3.12).
Figura 3.12: Diagrama PND, detección de obstáculos
En la misma, se representará mediante las lı́neas de color negro la detec-
ción de los diferentes obstáculos ası́ como la proximidad los mismos, eje
vertical (Y) . Por otro lado los espacios vacı́os, se indicarán las diferentes
posibilidades y/o opciones de zonas a baja densidad.
Una vez dado el escaneado, dará lugar el desplazamiento del sistema móvil,
56 Arquitectura del sistema
dividido en seis posibles formas de actuación, dependiente de tres criterios
de elección y/o actuación:
- Criterio de seguridad: A través de este criterio, se clasificará en dos tipos de
regiones, seguras o no seguras, por lo tanto, con o sin obstáculos.
- Criterio de anchura:
Una vez clasificado dentro del entorno seguro, se iniciará el criterio de an-
chura siendo el mismo, la referencia de si el ancho es o no superior sobre
un valor predeterminado, siendo conocido dicho estado como High Safety
Wide Region (HSWR), o por contra, no cumple el requerimiento, y se deno-
mina High Safety Narrow Region (HSNR).
- Criterio de área de libre circulación: Una vez cumplido el criterio de anchura
y que a su vez, el sistema móvil, se encuentre en región (HSWR), se da la
detección de si se encuentra en un área de libre circulación ,High Safety in
Goal Region (HSGR), o por contra, se localiza en la zona de baja seguridad,
Low Safety x Side (LSXS), siendo X la referencia a la entrada de los diferen-
tes obstáculos bien por un o dos lados con un determinado ángulo, siendo
(LS1S) y/o (LS2S), véase (Fig. 3.13).
Figura 3.13: Criterios de aplicación algoritmo DivConq
3.2 Software 57
Por ello, dada la situación, el sistema móvil, bien avanzará hacia el destino
objetivo con una baja densidad por unidad de área, o bien mantendrá la
posición, retrocederá para ası́ mantener la distancia relativa de seguridad
preestablecida.
58 Arquitectura del sistema
Modelos adaptativos de localización Monte Carlo:
En este apartado se describe el algoritmo de navegación, Modelos adaptati-
vos de localización Monte Carlo (AMCL). El algoritmo AMCL [24], se caracte-
riza como un algoritmo, cuyo uso es la localización y mapeado del entorno
a partir de un sistema móvil.
El algoritmo AMCL [24], también conocido como Localización de filtro de
partı́culas, lleva cabo la localización a partir de filtros de partı́culas y/o nubes
de puntos.
Tras una obtención de forma previa del mapa del entorno, el sistema móvil,
tiene la funcionalidad de localizarse, a través de un algoritmo, estimando
la posición ası́ como la orientación, dependiendo del desplazamiento en el
entorno junto a las detecciones, todo ello de forma simultánea.
A partir de dicho algoritmo, será representadas las distintas distribuciones
de situaciones posibles, en la cual, cada partı́cula de dicha nube de puntos,
indicará una de las múltiples posibilidades de estados.
La inicialización se dará, a partir de una distribución aleatoria de tipo uni-
forme, por ello, en primer lugar, el sistema móvil, desconocerá la ubicación
y dará lugar al inicio del proceso de localización del sistema en el entorno.
Una vez iniciado el desplazamiento, dará lugar la adquisición de datos
o muestreo mediante el uso de los sensores láser y/o ultrasonidos. Para-
lelamente, junto con el muestre se producen fluctuaciones sobre la nube
de puntos. Dicha información es muestreada mediante la estimación Ba-
yesiana recursiva, correlacionando los datos muestreados con los posibles
estados previstos.
Al adquirir información sobre entorno, el volumen de la nube de partı́culas
disminuye, ası́ el número de posibles posiciones se reduce y desplaza hasta
la ubicación en convergencia, ası́, se obtiene la ubicación real del sistema
móvil.
3.2 Software 59
Por último, destacar, que dicho algoritmo, es una representación no pa-
ramétrica, ası́ puede ser aproximado a diferentes distribuciones de proba-
bilidad [26].
60 Arquitectura del sistema
Localización y mapeado simultáneo:
Por último, en este apartada se describe un algoritmo de navegación, sien-
do Localización y mapeado simultáneo (SLAM) [25].
Se caracteriza por ser determinado tipo de algoritmo de navegación de sis-
temas móviles, el cual emplea una localización y mapeado simultaneo del
entorno. Ası́, se permite que el sistema móvil sea localizado y pueda des-
plazarse, tanto en entornos parcial o completamente desconocidos.Dada
la generación de un mapa del entorno, y siendo actualizado a partir de la
información obtenida por los diferentes sensores.
El funcionamiento, es el siguiente: A partir del sensorizado del sistema
móvil, generalmente de tipo láser y/o ultrasonidos, da lugar al escanea-
do del entorno, se adquiere información sobre el mismo, como puntos de
referencia y/o distancias relativas a los mismos.
Cuando ha iniciado el movimiento del sistema móvil, con el uso de la odo-
metrı́a, se realiza el calculo la nueva posición estimada, en la cual, se en-
cuentra el sistema móvil. Iterativamente, da lugar un nuevo muestreo del
entorno, para ası́ llevar a cabo una correcta la localización de los diferentes
puntos de referencia mencionados previamente y ası́ forma periódica, re-
pitiendo los mismos cálculos para adquirir las nuevas distancias relativas.
Cabe destacar que dicho algoritmo, no está exento de errores, tales como
odometrı́a. Ası́ mediante técnicas y/o filtros se da la disminución del error
para mejora el ratio y la precisión de la localización. Se presentan algunas
de ellas, tales como:
- Algoritmo Graph SLAM:
Mediante el uso de grafos se da el cálculo en la estimación de la posible
situación actual, y ası́ junto al uso de las diferentes configuraciones pre-
vias, se representa a partir de nodos las distintas posiciones previas en las
cuales que se ha localizado el sistema móvil. Y mediante la conexión con
3.2 Software 61
los nodos se adquiere información retroalimentada, véase (Fig. 3.14).
Figura 3.14: Algoritmo SLAM, nodos
- Algoritmo EKF SLAM:
Basado, en el uso del Filtro Extendido de Kalman, con ello, permite la adqui-
sición de la estimación de la posible situación del sistema móvil. Mediante
previsión de variables no conocidas y muestreo de datos realizado de for-
ma previa.
- Algoritmo Hector SLAM:
Basado en la aplicación de diferentes sistema de sensores inerciales, jun-
to a los múltiples algoritmos de planificación 2D. Esta técnica, no emplea
la odometrı́a del sistema móvil, y por ello, tiene un uso adecuado, para
sistemas móviles localizados en entornos irregulares o bien para sistemas
aéreos.
A partir de la ecuación de Gauss-Newton en los cambios de posición, y ası́
dar lugar al cálculo de la transformación de la información adquirida por
los sensores láser y/o ultrasonidos del entorno al mapa. véase (Fig. 3.15).
62 Arquitectura del sistema
Figura 3.15: Algoritmo Hector SLAM
Navegación autónoma aplicada al robot TIAGo
En lo referente a la a navegación con el robot TIAGo, se ha empleado el algo-
ritmo de navegación, del Modelo adaptativo de localización Monte Carlo, A.M.C.L.
Para ello, se han empleado los módulos de ROS, que incorporan dicho algorit-
mo, para la navegación en robots móviles, dado que permite el soporte para este
robot en concreto [26].
Para la navegación con el robot TIAGo 1, se dispone de sensores ultrasonidos,
ubicados alrededor de la base móvil, tal y como se describió previamente en el
apartado relativo al Hardware, véase (Fig. 3.16), ası́ como sensores láser, ubicados
en la parte inferior para la detección de distancias a los obstáculos y por lo tanto
la generación del mapa a través de los mismos, descritos en (Fig. 3.16)
Por otro lado, en lo referente a los módulos navigation de ROS, emplean las
medidas de los sensores láser, generando una nube de puntos o point cloud, de
las colisiones del láser con los obstáculos, para ası́ poder generar el mapa del
entorno que lo rodea.
A su vez, emplea la odometrı́a con robot, es decir, estudia la posición del
robot en función de las ruedas, ası́ mediante la rotación y desplazamiento que
se ha producido se puede estimar la ubicación del mismo. Todo ello teniendo en
cuenta los cambios de posición producidos por los movimientos de las ruedas
1
https://github.com/pal-robotics/tiago navigation
3.2 Software 63
(a) Sensor láser (b) Sensor ultrasonidos
Figura 3.16: Sensores base TIAGo.
hacia adelante, atrás, junto a los giros.
Por último, TIAGo, incorpora las técnicas SLAM, es decir, simultaneous locali-
zation and mapping, mediante las cuales es capaz de mapear el entorno y locali-
zarse de forma simultánea, lo cual le permite la navegación en entornos desco-
nocidos.
Para la ejecución de la navegación del robot, se han empleado dos ramas
diferencias, en modo simulación, trabajando sobre un PC, en un entorno virtual
para llevar a cabo las pruebas de movimiento, y por otro lado la navegación en
un entorno real.
Entorno de simulación:
En lo referente al entorno de simulación, se ha empleado la herramienta
Gazebo. Se trata de un simulador en 3D destinado a la robótica, de código
abierto. El simulador Gazebo, permite emplear de forma simultánea múlti-
ples motores tales como ODE o Bullet. Por ello se ha empleado dicha he-
rramienta junto con los modelos 3D de TIAGo 2, para poder llevar a cabo
las pruebas de navegación en un entorno virtual, véase (Fig. 3.17).
Para llevar a cabo la ejecución del modelado 3D de simulación, en el cual
depurar el comportamiento del robot, se empleará como se ha comentado
2
https://github.com/pal-robotics/tiago simulation
64 Arquitectura del sistema
Figura 3.17: Navegación autónoma del robot en simulación
previamente, la herramienta Gazebo, y a su vez ROS en paralelo para cargar
la simulación sistema operativo del robot.
En lo referente a la carga del modelo, se emplean los servicios de ROS,
para la carga del modelo generado en Gazebo, un ejemplo de carga de la
ejecución de (Fig. 3.17), se adjunta en (Listing. 3.1).
Listing 3.1: Arranque de entorno modelado en Gazebo
roslaunch tiago 2dnav gazebo tiago navigation public
. launch
El entorno de simulación, ha permitido gestionar y depurar la navegación
del robot, con el fin de reducir errores, aproximar la navegación y ajustar
los coeficientes de seguridad, referentes al radio mı́nimo de seguridad, al-
rededor del robot, para evitar la colisión del mismo, permitiendo ajustar
un radio mayor o menor según se requiera, tales como un mayor radio en
entornos donde se requiera mayor seguridad como pudiera ser ubicacio-
nes con una alta afluencia de personas,véase (Fig. 3.18).
Entorno real:
Una vez realizadas las pruebas en el entorno simulado, se puede proceder
3.2 Software 65
Figura 3.18: Navegación autónoma del robot en simulación, vista dividida
con el mapeo el entorno de trabajo y la localización del robot en el mismo.
Permitiendo la navegación de robot TIAGo a través del mapa generado.
Los métodos de navegación del robot a través del mapa generado se dis-
tinguen como se comento previamente en la descripción, en autónomo o
teleoperado. En lo referente a los métodos dentro del ámbito de los autóno-
mos que han sido empleados, destacar tres tipos diferenciados.
• Selección de punto objetivo gráfico:
Tal y como se muestra en (Fig. 3.19), se puede seleccionar un punto
dentro del mapa generador mediante la opción 2D Navigation Goal, y
visualizado con la herramienta Rviz, como objetivo, y TIAGo, gene-
rará de manera autónoma la trayectoria más optima y se desplazará
hacia dicho punto objetivo.
En caso de detectar obstáculos, re-calculará otra trayectoria óptima
con el fin de llegar a su destino y sin producir ninguna colisión. En
caso de no encontrar un óptimo, por ejemplo por espacio insuficiente
para el paso, quedará en modo espera re-calculando la nueva trayec-
toria hasta poder alcanzar el objetivo.
Para ello, el robot TIAGo, deberá de estar localizado, por lo tanto se
66 Arquitectura del sistema
Figura 3.19: Navegación autónoma del robot en el entorno
establece a través de los servicios de ROS, la configuración en modo
localización tal y como queda adjunto en (Listing. 3.2).
Listing 3.2: Configuración de TIAGo en modo localización
rosservice c a l l /pal navigation sm ”input : ’LOC’ ”
En último lugar, se puede habilitar la visualización del mapa genera-
do con la posición del robot localizado sobre el mismo, a partir descri-
to en (Listing. 3.3), el cual iniciará Rviz con el último mapa generado.
Listing 3.3: Inicio de Rviz para la visualización del mapa generado
rosrun rviz rviz −d ‘ rospack find tiago 2dnav ‘/ config
/rviz/navigation . rviz
El robot es capaz de trabajar con múltiples mapas, permitiendo el
cambio del mismo realizando llamadas al servicio de ROS para el
cambio de mapa, tal y como se describe en (Listing. 3.4).
Listing 3.4: Servicio de ROS para el cambio de mapa
ssh root@tiago −38c
rosservice c a l l /pal map manager/change map
”input : ’MAPNAME’ ”
3.2 Software 67
Siendo en este caso la variable MAP NAME el nombre en cuestión, y
la carga del comando, realizada desde el propio ordenador del robot
TIAGo en cuestión tal y como se puede observar por la conexión SSH
en cuestión.
• Navegación hasta punto objetivo vı́a terminal:
El robot TIAGo, permite la recepción de un punto objetivo para lle-
var a cabo la navegación vı́a terminal, mediante el topic de lectura.
Definiendo como topic, los elementos nodos que emplea ROS, para la
emisión y recepción de datos o mensajes. En concreto, el nodo em-
pleado para la recepción del punto al cual desplazarse es el descrito
en (Listing. 3.5).
Listing 3.5: Topic ROS para la navegación
/move base/goal move base msgs/MoveBaseActionGoal
Al igual que en las configuraciones previas, se requerı́a configurar el
robot en modo localización, tal y como se describió en (Listing. 3.2).
• Navegación hasta punto objetivo vı́a YARP:
Con el fin de agilizar y facilitar el envı́o de mensajes al robot TIAGo,
se ha empleado la herramienta YARP. YARP, es un middelware de
comunicaciones, multiplataforma, que permite en envı́o de mensajes,
tales como datos, imagen, audio entre distintos puertos, siendo estos
los objetos empleados para el envı́o de los datos.
Por ello, se ha empleado YARP, como intermediario para enviar el
punto objetivo a un puerto YARP, y sea YARP, quien se comunique
con el puerto de ROS, para realizar la solicitud de un punto objetivo.
Destacar, que al igual que la configuración de control a través de Rviz
o vı́a terminal, requerirá de una pre-configuración de modo localiza-
ción (Listing. 3.2).
68 Arquitectura del sistema
Mapeado del entorno aplicado al robot TIAGo
A través de este apartado, se describirá la metodologı́a llevada a cabo para
el mapeado del entorno y la generación del mapa del entorno. Tal y como se
describió al inicio de la sección, TIAGo, se encuentra constituido por sensores
láser y ultrasonidos que le permiten llevar a cabo el mapeado del entorno, ası́
como la tecnologı́a SLAM, y la odometrı́a, para su localización, y en casos de un
entorno desconocido mapeado y localización simultánea (Fig. 3.16).
El proceso de mapeado del entorno se realiza a través de los servicios de
ROS para el mapeado del entorno. Dichos servicios pueden ser ejecutados tanto
desde el ordenador del propio robot, como desde un ordenador configurado con
el ROS MASTER del robot a través de la expresión (Listing. 3.6).
Listing 3.6: Configuración de TIAGo en modo mapeado
rosservice c a l l /pal navigation sm ”input : ’MAP’ ”
Una vez arrancado el servicio, se puede proceder a desplazar el robot TIAGo,
para generar el mapa del entorno. El control del robot, se puede llevar a cabo
de múltiples maneras en función de realizar el mapeado para un entorno de
simulación para el depurado de tareas o la ejecución en un entorno real.
Entorno de simulación:
En caso de proceder con el mapeo de un entorno en simulación, se reque-
rirá previamente, arrancar un entorno virtual generado para Gazebo, tal y
como se describe en (Listing. 3.7).
Listing 3.7: Inicio de entorno virtual para el mapeado en simulación
roslaunch tiago 2dnav gazebo tiago mapping public . launch
Una vez iniciado el entorno, y recapitulando con los métodos de desplaza-
miento, se puede proceder con el control tele-operado mediante (Listing.
3.8).
3.2 Software 69
Listing 3.8: Control teleoperado por teclado
rosrun key teleop key teleop . py
Por último, podremos guardar el mapa generado, para posteriormente rea-
lizar una depuración de errores y falsos positivos mediante el servicio de
ROS, descrito en (Listing. 3.9).
Listing 3.9: Guardado del mapa generado en simulación
rosservice c a l l /pal map manager/save map ” directory : ’ ’ ”
˜ / . pal/tiago maps/config
Entorno real:
En lo referente al control de movimiento en el entorno real, se añaden más
posibilidades. Al igual que en el control en simulación se permite el control
desde PC mediante el servicio de ROS, tele-operado por teclado, mostrado
en (Listing. 3.8). Sin embargo, esta permitido el control mediante joystick,
ası́ como aplicaciones implementadas conectadas con el servicio de key te-
leop.
A su vez, el guardado del mapa generado ofrece dos opciones, sobre el
propio robot, tal y como se adjunta en (Listing. 3.10).
Listing 3.10: Guardado del mapa generado del entorno en el propio robot
rosservice c a l l /pal map manager/save map
” directory : ’ nombre directorio ’ ”
Por otro lado, se permite su guardado en el ordenador de desarrollo, me-
diante el comando (Listing. 3.11).
Listing 3.11: Guardado del mapa generado del entorno del pc
rosrun map server map saver
70 Arquitectura del sistema
Para concluir, se puede observar la generación del mapa en tiempo real, a
partir del visor de Rviz, y el servicio de ROS, con un inicio tal que (Listing. 3.12).
Listing 3.12: Visualización del mapa generado
rosrun rviz rviz −d ‘ rospack find tiago 2dnav ‘/ config/rviz
/navigation . rviz
Dicha visualización puede observarse en (Fig. 3.20).
Figura 3.20: Mapeado del entorno
3.2 Software 71
Localización del robot
En el apartado, Localización del robot, se abordará las posibilidades empleadas
para localizar al robot dentro del entorno del trabajo. Para ello, se dispone de
dos posibilidades, bien a partir de una nube de puntos o a partir de un vector
de posición aproximada.
Nube de puntos:
Mediante el servicio de ROS, para la localización de robots a partir de nu-
bes de puntos o point cloud, tal y como se muestra en (Fig. 3.21), se permite
un modo de localización.
Figura 3.21: Localización por nube de puntos
72 Arquitectura del sistema
El servicio de nube de puntos, es un conjunto de vectores en el sistema
de coordenadas cartesianas en 3D, a partir de la cual se realiza la repre-
sentación de la superficie del entorno. A través de ello TIAGo es capaz de
localizarse en el entorno previamente generado. Dicho servicio de ROS,
puede ser solicitado mediante la expresión (Listing. 3.13).
Listing 3.13: Localización por nube de puntos
rosservice c a l l / g l o b a l l o c a l i z a t i o n ”{}”
Dicha nube de puntos, puede ser modificada, aumentando o disminuyen-
do el número de vectores, por lo tanto aumentando o no la precisión de la
localización y por lo tanto los requerimientos de cómputo.
En lo referente a este apartado, se ha realizado una depuración, intentan-
do obtener una localización rápida y correcta, con el fin de disminuir los
requerimientos de procesamiento, sin embargo, se ha podido observar que
el requerimiento mı́nimo del número de partı́culas es de 800 unidades pa-
ra llevar a cabo unos resultados satisfactorios. Dicha modificación puede
ser realizada a partir del fichero amc.yaml, ubicado en (Listing. 3.14).
Listing 3.14: Depuración de localización por nube de puntos
/tiago−public ws/src/tiago navigation/tiago 2dnav/config
/ l o c a l i z a t i o n /amcl . yaml
Siendo el formato del fichero el adjunto en, (Listing. 3.15)
Listing 3.15: Ajuste de localización por nube de puntos
min particles : 500
max particles : 5000
kld err : 0.05
kld z : 0.99
update min d : 0.02
update min a : ! degrees 3.0
3.2 Software 73
resample interval : 1
converge dist threshold : 0.5
Vector de posición aproximada:
Por último, TIAGo, proporciona una localización a través de un vector de
posición aproximada. Para ello al igual que en el método de control para la
navegación en entorno real por Gazebo, se requiere el arranque del entorno
mapeado, descrito en (Listing. 3.12), y tras dicho arranque seleccionar la
opción, 2D Estimate Pose, con el punto y orientación, tal y como se muestra
en (Fig. 3.22)
Figura 3.22: Localización por vector aproximado
74 Arquitectura del sistema
3.2.2. Reconocimiento de voz
Con el fin de poder detectar y reconocer correctamente las solicitudes reali-
zadas por el usuario hacia el robot, se ha requerido la incorporación de compo-
nentes que permitan el reconocimiento de voz.
Para ello, la herramienta seleccionada ha sido speechRecognition [27]. El soft-
ware speechRecognition 3, es una implementación para reconocimiento de voz
escrito en lenguaje python, y desarrollada por el grupo RoboticsLab de la Uni-
versidad Carlos III de Madrid, España.
Se trata de un sistema de reconocimiento de voz basado en el uso de las li-
brerı́as de código abierto pocketsphinix junto a la implementación de puertos de
comunicaciones a través del middelware YARP [28], Italian Institute of Techno-
logy, Italia, permitiendo generar un sistema de reconocimiento de voz comple-
tamente modular.
En lo referente a pocketsphinix 4, se trata de un sistema de librerı́as para el
reconocimiento de voz, ideadas para sistemas embebidos. Versión derivada de
sphinix, generalmente abreviado de CMU Sphinix, siendo este un sistema de li-
brerı́as para el habla y reconocimiento de voz, desarrollado por la Unviversidad
de Carnegie Mellon, Estados Unidos. Actualmente, dicho proyecto consta de un
conjunto de 4 versiones y un sistema para el entrenamiento de modelos acústi-
cos, conocido como SphinixTrain.
A partir de este sistema de reconocimiento de voz modular, basado en puer-
tos, se puede seleccionar la fuente de audio objetivo, enviar los datos sin proce-
sar a través de la red, para llevar a cabo el reconocimiento, y una vez procesado,
poder enviar los resultados del mismo a través de la red para su uso.
Basado en el sistema cliente/servidor, se permite en tiempo de ejecución la
selección del diccionario de reconocimiento solicitado, permitiendo al sistema
unos resultados más veraces al acotar el campo de reconocimiento.
3
https://github.com/roboticslab-uc3m/speech
4
https://github.com/cmusphinx/pocketsphinx
3.2 Software 75
Una vez descrito el sistema de reconocimiento de voz empleado, se proce-
derá a detallar, la creación de los diccionarios requeridos y la configuración de
red para su uso.
Generación de diccionarios:
En lo referente al sistema de reconocimiento de voz, basado en Sphinix,
requiere de una previa generación de diccionarios para su reconocimiento.
El sistema Sphinix, emplea diccionarios de tipo fonético con un mapeado
de las palabras del vocabulario lista a reconocer, ası́ como la secuencia de
los fonemas.
Dicho diccionario basado en fonemas tiene la capacidad de generar pro-
nunciaciones alternativas, permitiendo el reconocimiento ante variantes
de entrada en los fonemas a objetivo (Listing. 3.16).
Listing 3.16: Descomposición en fonemas del vocabulario de reconocimiento en función
de la pronunciación
the TH IH
the ( 2 ) TH AH
Tal y como se puede observar en (Listing. 3.17), el sistema de reconoci-
miento, descompone las palabras objetivo en fonemas a la hora de realizar
el entrenamiento, pos-procesado y detección.
Listing 3.17: Descomposición en fonemas del vocabulario de reconocimiento
hello H EH L OW
world W ER L D
Se trata de un sistema de reconocimiento booleano secuencial, analizando
y descomponiendo en fonemas el audio procesado y comparando poste-
riormente con el diccionario, de manera secuencial,una a una cada una
de las palabras descritas en el diccionario fuente y en caso de encontrar
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot
Design and implementation of solutions for caring for people with the TIAGo robot

Mais conteúdo relacionado

Mais procurados (16)

Tea diseño de robot apodos
Tea diseño de robot apodosTea diseño de robot apodos
Tea diseño de robot apodos
 
Brazo mecanico
Brazo mecanicoBrazo mecanico
Brazo mecanico
 
Desarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-javaDesarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-java
 
Instrumentación de un cuadricóptero para la toma de fotografías aéreas.
Instrumentación de un cuadricóptero para la toma de fotografías aéreas.Instrumentación de un cuadricóptero para la toma de fotografías aéreas.
Instrumentación de un cuadricóptero para la toma de fotografías aéreas.
 
Basic
BasicBasic
Basic
 
Brazo RobóTico
Brazo RobóTicoBrazo RobóTico
Brazo RobóTico
 
Informe 1 robotica industrial
Informe 1 robotica industrialInforme 1 robotica industrial
Informe 1 robotica industrial
 
Traducción Thinking in Python
Traducción Thinking in PythonTraducción Thinking in Python
Traducción Thinking in Python
 
Libro javacontapa
Libro javacontapaLibro javacontapa
Libro javacontapa
 
Manual impacta espanhol
Manual impacta espanholManual impacta espanhol
Manual impacta espanhol
 
tesina-general
tesina-generaltesina-general
tesina-general
 
proyecto final de carrera con kinect
proyecto final de carrera con kinectproyecto final de carrera con kinect
proyecto final de carrera con kinect
 
Arc gis intermedio
Arc gis intermedioArc gis intermedio
Arc gis intermedio
 
Curso de robotica_avanzada_2014
Curso de robotica_avanzada_2014Curso de robotica_avanzada_2014
Curso de robotica_avanzada_2014
 
Introduccion al lenguaje c
Introduccion al lenguaje cIntroduccion al lenguaje c
Introduccion al lenguaje c
 
MANUAL DE LENGUAJE C
MANUAL DE LENGUAJE CMANUAL DE LENGUAJE C
MANUAL DE LENGUAJE C
 

Semelhante a Design and implementation of solutions for caring for people with the TIAGo robot

Aplicaciones Robots Moviles y otros pasatiempos.pdf
Aplicaciones Robots Moviles y otros pasatiempos.pdfAplicaciones Robots Moviles y otros pasatiempos.pdf
Aplicaciones Robots Moviles y otros pasatiempos.pdfAlejandro Torres
 
Manual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuelaManual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuelaAngel De las Heras
 
Desarrollo de un Prototipo de Entornos Virtuales para Fines Didacticos en Emp...
Desarrollo de un Prototipo de Entornos Virtuales para Fines Didacticos en Emp...Desarrollo de un Prototipo de Entornos Virtuales para Fines Didacticos en Emp...
Desarrollo de un Prototipo de Entornos Virtuales para Fines Didacticos en Emp...EILLENMILAGROSVEGASA1
 
Informe - generacion de superficie - secciones transversales en Autocad civi...
Informe - generacion de superficie - secciones transversales en Autocad  civi...Informe - generacion de superficie - secciones transversales en Autocad  civi...
Informe - generacion de superficie - secciones transversales en Autocad civi...Nexus Skb
 
Conteo e identificación de pasajeros por radiofrecuencia
Conteo e identificación de pasajeros por radiofrecuenciaConteo e identificación de pasajeros por radiofrecuencia
Conteo e identificación de pasajeros por radiofrecuenciaPaulo R
 
LENGUAJE BASIC WILBER PINILLA
LENGUAJE BASIC WILBER PINILLALENGUAJE BASIC WILBER PINILLA
LENGUAJE BASIC WILBER PINILLAsena
 
Alejandro tfm
Alejandro tfmAlejandro tfm
Alejandro tfmmpaljacar
 
Introduccion a nodejs
Introduccion a nodejs Introduccion a nodejs
Introduccion a nodejs Erik Gur
 
Introduccion a nodejs_a_traves_de_koans_ebook
Introduccion a nodejs_a_traves_de_koans_ebookIntroduccion a nodejs_a_traves_de_koans_ebook
Introduccion a nodejs_a_traves_de_koans_ebookJose Luis Fernandez
 
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)Miguel Angel Corona Lòpez
 
Microcontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicacionesMicrocontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicacionesCarlos Tovar
 

Semelhante a Design and implementation of solutions for caring for people with the TIAGo robot (20)

Aplicaciones Robots Moviles y otros pasatiempos.pdf
Aplicaciones Robots Moviles y otros pasatiempos.pdfAplicaciones Robots Moviles y otros pasatiempos.pdf
Aplicaciones Robots Moviles y otros pasatiempos.pdf
 
Manual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuelaManual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuela
 
Manual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuelaManual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuela
 
Desarrollo de un Prototipo de Entornos Virtuales para Fines Didacticos en Emp...
Desarrollo de un Prototipo de Entornos Virtuales para Fines Didacticos en Emp...Desarrollo de un Prototipo de Entornos Virtuales para Fines Didacticos en Emp...
Desarrollo de un Prototipo de Entornos Virtuales para Fines Didacticos en Emp...
 
HARDWARE Y SOFTWARE
HARDWARE Y SOFTWAREHARDWARE Y SOFTWARE
HARDWARE Y SOFTWARE
 
main
mainmain
main
 
Tfg g3750
Tfg g3750Tfg g3750
Tfg g3750
 
Informe - generacion de superficie - secciones transversales en Autocad civi...
Informe - generacion de superficie - secciones transversales en Autocad  civi...Informe - generacion de superficie - secciones transversales en Autocad  civi...
Informe - generacion de superficie - secciones transversales en Autocad civi...
 
Conteo e identificación de pasajeros por radiofrecuencia
Conteo e identificación de pasajeros por radiofrecuenciaConteo e identificación de pasajeros por radiofrecuencia
Conteo e identificación de pasajeros por radiofrecuencia
 
LENGUAJE BASIC WILBER PINILLA
LENGUAJE BASIC WILBER PINILLALENGUAJE BASIC WILBER PINILLA
LENGUAJE BASIC WILBER PINILLA
 
Microcontroladores libro
Microcontroladores   libroMicrocontroladores   libro
Microcontroladores libro
 
Alejandro tfm
Alejandro tfmAlejandro tfm
Alejandro tfm
 
62999778 el-grafcet-practica-y-aplicaciones
62999778 el-grafcet-practica-y-aplicaciones62999778 el-grafcet-practica-y-aplicaciones
62999778 el-grafcet-practica-y-aplicaciones
 
Ayuda magna
Ayuda magnaAyuda magna
Ayuda magna
 
Manual de C
Manual de CManual de C
Manual de C
 
Tfm javier eduardo_carrillo_plaza
Tfm javier eduardo_carrillo_plazaTfm javier eduardo_carrillo_plaza
Tfm javier eduardo_carrillo_plaza
 
Introduccion a nodejs
Introduccion a nodejs Introduccion a nodejs
Introduccion a nodejs
 
Introduccion a nodejs_a_traves_de_koans_ebook
Introduccion a nodejs_a_traves_de_koans_ebookIntroduccion a nodejs_a_traves_de_koans_ebook
Introduccion a nodejs_a_traves_de_koans_ebook
 
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
 
Microcontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicacionesMicrocontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicaciones
 

Último

ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 

Último (20)

ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 

Design and implementation of solutions for caring for people with the TIAGo robot

  • 1. DEPARTAMENTO DE INGENIERÍA DE SISTEMAS Y AUTOMÁTICA TESIS DE MÁSTER DISEÑO E IMPLEMENTACIÓN DE SOLUCIONES PARA ATENCIÓN A PERSONAS CON EL ROBOT TIAGO Autor: David Velasco Garcı́a Tutor: Juan González Victores MÁSTER UNIVERSITARIO EN INGENIERÍA INDUSTRIAL LEGANÉS, MADRID AGOSTO 2020
  • 2.
  • 3. UNIVERSIDAD CARLOS III DE MADRID MÁSTER UNIVERSITARIO EN INGENIERÍA INDUSTRIAL El tribunal aprueba la Tesis de Máster titulada “Diseño e implementación de soluciones para atención a personas con el robot TIAGo” realizada por David Velasco Garcı́a. Fecha: Agosto 2020 Tribunal: Dr./Dra. Dr./Dra. Dr./Dra.
  • 4.
  • 5. “In theory, there is no difference between theory and practice. But, in practice, there is” Johannes Lambertus Adriana van de Snepscheut
  • 6.
  • 7. Índice general Índice de tablas XI Índice de figuras XIII Agradecimientos XVII Resumen XIX Abstract XXI 1. Introducción 1 1.1. Robótica asistencial . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Soluciones asistenciales propuestas . . . . . . . . . . . . . . . . . . 4 1.2.1. Visit my home . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2. Catering for Granny Annies Comfort . . . . . . . . . . . . 6 1.2.3. Take the elevator . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.4. Deliver coffee shop orders . . . . . . . . . . . . . . . . . . . 11 2. Estado del arte 13 2.1. Robótica y sectores de actuación . . . . . . . . . . . . . . . . . . . 13 2.1.1. Historia y clasificación de la robótica . . . . . . . . . . . . . 14 VII
  • 8. 2.1.2. Sectores de actuación . . . . . . . . . . . . . . . . . . . . . . 23 2.2. Organismos e instituciones . . . . . . . . . . . . . . . . . . . . . . 35 2.2.1. European Robotics League . . . . . . . . . . . . . . . . . . 35 2.2.2. SciRoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3. Arquitectura del sistema 39 3.1. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.1.1. Robot TIAGo . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.2. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.2.1. Navegación del robot en el entorno . . . . . . . . . . . . . 51 3.2.2. Reconocimiento de voz . . . . . . . . . . . . . . . . . . . . 74 3.2.3. Motor de habla . . . . . . . . . . . . . . . . . . . . . . . . . 79 3.2.4. Vision artificial . . . . . . . . . . . . . . . . . . . . . . . . . 84 3.2.5. Manipulación de objetos . . . . . . . . . . . . . . . . . . . . 101 4. Desarrollo e implementación de soluciones 111 4.1. European Robotics League . . . . . . . . . . . . . . . . . . . . . . . 112 4.1.1. Visit my home . . . . . . . . . . . . . . . . . . . . . . . . . . 112 4.1.2. Catering for Granny Annies Comfort . . . . . . . . . . . . 124 4.2. SciRoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.2.1. Take the elevator . . . . . . . . . . . . . . . . . . . . . . . . 136 4.2.2. Deliver coffee shop orders . . . . . . . . . . . . . . . . . . . 148 5. Análisis económico 155 5.1. Costes de hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 5.2. Costes de software . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 5.3. Costes de mano de obra . . . . . . . . . . . . . . . . . . . . . . . . 161 5.4. Análisis de costes generales . . . . . . . . . . . . . . . . . . . . . . 161 6. Conclusiones 163 6.1. European Robotics League . . . . . . . . . . . . . . . . . . . . . . . 164
  • 9. 6.1.1. Visit my home . . . . . . . . . . . . . . . . . . . . . . . . . . 164 6.1.2. Catering for Granny Annies Confort . . . . . . . . . . . . . 165 6.2. SciRoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 6.2.1. Take the elevator . . . . . . . . . . . . . . . . . . . . . . . . 165 6.2.2. Deliver coffe shop orders . . . . . . . . . . . . . . . . . . . 166 7. Lı́neas futuras 169 7.1. Navegación del robot en el entorno . . . . . . . . . . . . . . . . . . 169 7.2. Reconocimiento de voz . . . . . . . . . . . . . . . . . . . . . . . . . 170 7.3. Motor de habla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 7.4. Visión artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Referencias 173
  • 10.
  • 11. Índice de tablas 2.1. Clasificación de robot por estructura . . . . . . . . . . . . . . . . . 22 3.1. Dimensiones del robot TIAGo . . . . . . . . . . . . . . . . . . . . . 42 3.2. Grados de libertad del robot TIAGo . . . . . . . . . . . . . . . . . 43 3.3. Especificaciones torso del robot TIAGo . . . . . . . . . . . . . . . . 43 3.4. Especificaciones de la base móvil del robot TIAGo . . . . . . . . . 44 3.5. Especificaciones del brazo del robot TIAGo . . . . . . . . . . . . . 45 3.6. Sensorizado del robot TIAGo . . . . . . . . . . . . . . . . . . . . . 48 3.7. Sensorizado de la base del robot TIAGo . . . . . . . . . . . . . . . 49 3.8. Especificaciones eléctricas del robot TIAGo . . . . . . . . . . . . . 49 5.1. Coste robot TIAGo . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 5.2. Coste materiales de impresión 3D . . . . . . . . . . . . . . . . . . . 158 5.3. Coste trabajador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 5.4. Coste desglosado por software . . . . . . . . . . . . . . . . . . . . 160 5.5. Listado de costes anuales . . . . . . . . . . . . . . . . . . . . . . . . 162 XI
  • 12.
  • 13. Índice de figuras 1.1. Navegación en un domicilio. . . . . . . . . . . . . . . . . . . . . . 5 1.2. Mapa del domicilio. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3. Apoyo doméstico en domicilio. . . . . . . . . . . . . . . . . . . . . 7 1.4. Listado de objetos a detectar en el domicilio. . . . . . . . . . . . . 7 1.5. Navegación mediante ascensor. . . . . . . . . . . . . . . . . . . . . 8 1.6. Aproximación al ascensor. . . . . . . . . . . . . . . . . . . . . . . . 9 1.7. Entrada al ascensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.8. Salida del ascensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.9. Apoyo en toma de pedidos en restaurante. . . . . . . . . . . . . . 11 1.10. Escenario pedidos de clientes. . . . . . . . . . . . . . . . . . . . . . 12 2.1. Autómata de madera propulsado a vapor, Arquitas de Tarento. . 15 2.2. Caballero mecánico, Leonardo Da Vinci. . . . . . . . . . . . . . . . 15 2.3. Primer robot comercial, robot Unimation. . . . . . . . . . . . . . . 16 2.4. Robot Mars 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5. Primer robot comercial de la empresa KUKA, robot Famulus. . . 17 2.6. Primer robot móvil bı́pedo, robot ASIMO. . . . . . . . . . . . . . . 18 2.7. Robot Sophia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.8. Robot manipulador, ABB. . . . . . . . . . . . . . . . . . . . . . . . 20 2.9. Robot móvil TurtleBot 2, Clearpath. . . . . . . . . . . . . . . . . . . 20 XIII
  • 14. 2.10. Robot zoomórfico SpotMini, Boston Dynamics. . . . . . . . . . . . 21 2.11. Robot TIAGo, PAL Robotics. . . . . . . . . . . . . . . . . . . . . . . 22 2.12. Robots industriales, ABB Robotics. . . . . . . . . . . . . . . . . . . 24 2.13. Robots inteligente, ABB Robotics. . . . . . . . . . . . . . . . . . . . 25 2.14. Micro-robot HarvardBee, Harvard University. . . . . . . . . . . . 25 2.15. SAM100, Construction Robotics. . . . . . . . . . . . . . . . . . . . 27 2.16. C-V2X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.17. Rehabilitación mediante imitación, robot NAO. . . . . . . . . . . . 29 2.18. Rehabilitación mediante VR. . . . . . . . . . . . . . . . . . . . . . . 30 2.19. Apoyo doméstico mediante localización y manipulación de objetos. 31 2.20. Apoyo laboral en tareas de interactuación. . . . . . . . . . . . . . . 31 2.21. Robot social, Maggie. . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.22. Robot social, Pepper. . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.23. Robot social, TIAGo. . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.24. Robot social, NAO. . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.1. Robot TIAGo, PAL Robotics . . . . . . . . . . . . . . . . . . . . . . 41 3.2. Sistema de elevación del torso en TIAGo . . . . . . . . . . . . . . . 43 3.3. Base móvil del robot TIAGo . . . . . . . . . . . . . . . . . . . . . . 44 3.4. Alcance del brazo manipulador de TIAGo . . . . . . . . . . . . . . 45 3.5. Pinza PAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.6. Soporte porta-herramientas pintado con visualización . . . . . . . 46 3.7. Mano PAL Hey5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.8. Sensor de torque manipulación TIAGo . . . . . . . . . . . . . . . . 48 3.9. Joystick TIAGo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.10. Guiado pasivo indirecto o por maniquı́ . . . . . . . . . . . . . . . 52 3.11. Algoritmo Bubble Local Planner . . . . . . . . . . . . . . . . . . . 54 3.12. Diagrama PND, detección de obstáculos . . . . . . . . . . . . . . . 55 3.13. Criterios de aplicación algoritmo DivConq . . . . . . . . . . . . . 56 3.14. Algoritmo SLAM, nodos . . . . . . . . . . . . . . . . . . . . . . . . 61
  • 15. 3.15. Algoritmo Hector SLAM . . . . . . . . . . . . . . . . . . . . . . . . 62 3.16. Sensores base TIAGo. . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.17. Navegación autónoma del robot en simulación . . . . . . . . . . . 64 3.18. Navegación autónoma del robot en simulación, vista dividida . . 65 3.19. Navegación autónoma del robot en el entorno . . . . . . . . . . . 66 3.20. Mapeado del entorno . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.21. Localización por nube de puntos . . . . . . . . . . . . . . . . . . . 71 3.22. Localización por vector aproximado . . . . . . . . . . . . . . . . . 73 3.23. Diagrama de estados speechRecognition . . . . . . . . . . . . . . . 78 3.24. Diagrama de estados TTS . . . . . . . . . . . . . . . . . . . . . . . 83 3.25. Detección de objetos y personas con tensorflowDetection2D . . . 85 3.26. Diagrama de estados tensorflowDetection2D . . . . . . . . . . . . 86 3.27. Diagrama de estados haarDetection2D . . . . . . . . . . . . . . . . 88 3.28. Diagrama de estados colorRegionDetection2D . . . . . . . . . . . 97 3.29. Reconocimiento facial con facialRecognitionDetection2D . . . . . 99 3.30. Diagrama de estados facialRecognitionDetection2D . . . . . . . . 100 3.31. Control de TIAGo en coordenadas cartesianas . . . . . . . . . . . 102 3.32. Control de TIAGo en coordenadas cartesianas mediante Rviz . . 105 3.33. Control de TIAGo en coordenadas angulares mediante GUI . . . 107 3.34. Control de TIAGo mediante aprendizaje por demostración . . . . 108 3.35. Web GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.1. Diagrama de estados: Visit my home . . . . . . . . . . . . . . . . . 114 4.2. Acceso al domicilio . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 4.3. Checkpoint 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 4.4. Checkpoint 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4.5. Checkpoint 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 4.6. Checkpoint 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 4.7. Seguimiento del usuario . . . . . . . . . . . . . . . . . . . . . . . . 123 4.8. Diagrama de estados: Catering for Granny Annies Comfort . . . . 125
  • 16. 4.9. Navegación hasta el usuario . . . . . . . . . . . . . . . . . . . . . . 127 4.10. Interacción con el usuario . . . . . . . . . . . . . . . . . . . . . . . 129 4.11. Búsqueda de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.12. Manipulación de objetos . . . . . . . . . . . . . . . . . . . . . . . . 134 4.13. Diagrama de estados: Take the elevator . . . . . . . . . . . . . . . 138 4.14. Conexión con dataHub . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.15. Navegación al checkpoint 1 . . . . . . . . . . . . . . . . . . . . . . 141 4.16. Navegación al checkpoint 2 . . . . . . . . . . . . . . . . . . . . . . 143 4.17. Entrada al ascensor . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 4.18. Cambio de planta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 4.19. Salida del ascensor . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 4.20. Diagrama de estado: Deliver coffee shop orders . . . . . . . . . . 150 4.21. Navegación autónoma en el local . . . . . . . . . . . . . . . . . . . 152 4.22. Interacción con los usuarios . . . . . . . . . . . . . . . . . . . . . . 153
  • 17. Agradecimientos En primer lugar, me gustarı́a agradecer a mi familia el apoyo y el ánimo que me han brindado, toda la fortaleza y constancia incondicional que me han dado, que me ha permitido seguir adelante a pesar de las circunstancias e intentar dar siempre lo mejor de mı́. Quisiera agradecer a mi tutor, Dr. Juan González Victores sin el cual este documento no podrı́a haberse realizado, por toda su ayuda, conocimientos y consejos, que me guiaron a lo largo del proyecto. He de agradecer a mis grandes amigos Héctor y Jesús el apoyo constante, el ánimo y la motivación para continuar en todo momento. También quisiera agradecer al grupo Robotics Lab, de la Universidad Carlos III de Madrid, por todos los consejos, conocimientos ası́ como recursos, que me ayudaron a progresar en el proyecto, en especial a todos aquellos compañeros por su incondicional ayuda. Por último, me gustarı́a agradecer a European Robotics League y SciRoc, por su asistencia y los recursos brindados sin los cuales, las pruebas de aplicación de las soluciones en entornos reales controlados no podrı́an haberse dado. XVII
  • 18.
  • 19. Resumen A través del siguiente documento, se presenta la Tesis de Máster, Diseño e implementación de soluciones para atención a personas con el robot TIAGo. Mediante el documento se describirá la implementación de soluciones para la asistencia a personas a través del sistema robótico, de tipo manipulador-móvil, TIAGo. En primer lugar, se describirá la introducción del proyecto, ası́ como su cla- sificación y marco de actuación. En segundo lugar, se presentará el Estado del arte, mediante el cual, se expondrá el concepto de robótica, clasificaciones y sec- tores de actuación, ası́ como algunos ejemplos de las mismas. Posteriormente, se presentarán los organismos y/o instituciones en las cuales se han realizado las pruebas de concepto sobre las implementaciones desarrolladas. Se detallará la Arquitectura del sistema, en la cual se expondrá tanto el Hardware, como el Softwa- re de la plataforma escogida (TIAGo), ası́ como las implementaciones desarrolla- das para la misma. Por último, se presentarán las soluciones para la asistencia desarrolladas, a saber, Visit my home, Catering for Granny Annies Confort, Take the elevator y por último Deliver coffe shop orders. Mediante dichas soluciones, se pro- pone el apoyo a personas en tareas de asistencia, tales como, la localización e interactuación con usuarios, funcionalidades de asistencia comercial, ası́ nave- gación y desplazamiento entre plantas en edificios. Finalmente, se analizarán las conclusiones del proyecto, ası́ como las lı́neas futuras de estudio. XIX
  • 20.
  • 21. Abstract Through the following document, the Master thesis, Design and implementa- tion of solutions for people with the TIAGo robot is presented. The document will describe the implementation of solutions for assistance to people through the robotic system, of manipulator-mobile type, TIAGo. First, an introduction to the project will be described, as well as its classifi- cation and framework. Secondly, the State of the art will be presented, through which the concept of robotics, classifications and performance sectors will be presented, as well as some examples thereof. Subsequently, the organizations and/or institutions in which the proofs of concept on the implementations de- veloped will be presented. The System Architecture will be described, which will detail both the Hardware, as well as the Software, of the chosen platform (TIAGo), as well as the implementations developed for it. Finally, the solutions for assistance developed will be presented, namely, Vi- sit my home, Catering for Granny Annies Comfort, Take the elevator and finally De- liver coffe shop orders Through these solutions, it is proposed to support people in assistance tasks, such as the location and interaction with users, commercial assistance functionalities, as well as navigation and movement between plants in buildings. Finally, the conclusions of the project will be analyzed, as well as future lines of study. XXI
  • 22.
  • 23. Capı́tulo 1 Introducción Durante el desarrollo del Capitulo 1, se pondrá en contexto el proyecto reali- zado. Primero, se enmarcará dentro del campo de la robótica asistencial, analizan- do los aspectos clave de la misma, las distintas áreas de estudio y la clasificación, ası́ como de las tareas a implementar. En segundo lugar, se introducirán los aspectos fundamentales de las tareas a implementar, caracterı́sticas y requerimientos de las mismas. Por último, se analizarán y expondrán las distintas instituciones y/u orga- nizaciones oficiales para el ensayo y ejecución de tareas, tales como la European Robotics League o el SciRoc. A su vez, se expondrá la estructura del documento, los capı́tulos y apartados en los que se presentará el desarrollo e implementación de las soluciones asistenciales propuestas.
  • 24. 2 Introducción 1.1. Robótica asistencial A través de la siguiente sección, se enmarcará el proyecto dentro del cam- po de trabajo de la robótica asistencial, describiendo el concepto, aplicaciones y entorno de trabajo de la misma. En lo referente a la robótica asistencial, es uno de los campos de actuación de la robótica. Definiendo la robótica como una unión de las distintas ramas de las ingenierı́as mecánica, eléctrica, electrónica, bio-médica y de las ciencias de la computación. Como una sinergia de los campos previamente descritos, encargado de el diseño, implementación, construcción, operación y aplicación de sistemas robóticos [1]. El concepto de robot y/o sistema robótico, hace referencia a un o un conjunto de elementos generalmente de tipo electromecánicos, cuyo fin es la aplicación de trabajos. Actualmente, no existe un consenso generalizado acerca del determinado tipo de máquinas que pudieran ser consideradas dentro de la clasificación de tipo robot. No obstante, si acerca de la aplicación que ha de realizar para recibir dicha clasificación, siendo la misma la del desarrollo de tareas de forma flexible, tanto de tipo mecánico como digital. La ejecución de tareas, puede ser de ı́ndole digital, mecánico, ası́ como ambas de forma simultánea. Siendo ambas, las aplicaciones, en el campo de la robótica asistencial. Recapitulando, se puede definir la robótica asistencial, como uno de los cam- pos de actuación de la robótica, centrado en la ejecución de tareas para el apoyo y/o asistencia de personas. Se trata de una rama, especializada en el diseño e im- plementación de sistemas de tipo robótico, cuya interactuación, se da de forma directa con el usuario. En lo referente a sus aplicaciones, generalmente, son enmarcadas en la im- plementación de tareas de rehabilitación para usuarios. Sin embargo, el campo de actuación es mucho más amplio. Puede englobar, tanto tareas de apoyo y
  • 25. 1.1 Robótica asistencial 3 rehabilitación, de ı́ndole médico, relativo a las ciencias de la salud, ası́ como tareas de apoyo de ı́ndole social, aunque también enmarcadas en el campo de la robótica social, dado que se encuentran ı́ntimamente relacionadas, las cuales posteriormente se describirán en el Capı́tulo 2. A las previamente descritas, pue- den añadirse el desarrollo de tareas derivadas de las mismas, ası́ como fusiones de estas.
  • 26. 4 Introducción 1.2. Soluciones asistenciales propuestas En lo referente a este apartado, se detallarán las soluciones propuestas a rea- lizar con el robot. Se describirán las tareas a implementar, a saber, Visit my home, Catering for Granny Annies Confort, Take the elevator y por último Deliver coffe shop orders. 1.2.1. Visit my home La primera solución propuesta será, el desarrollo de la tarea Visit my Home [2] 1. Dicha tarea, se encuentra basada en la capacidad del robot para poder desplazarse y navegar por el entorno de forma autónoma. Para ello, deberá de ser capaz de poder evitar obstáculos, e interactuar con ellos en los casos que sea requerido. A su vez, ha de incorporar funcionalidades para la visión por computador, para permitir el reconocimiento de objetos y personas. Durante desarrollo de la tarea, el robot, ha de navegar en un domicilio de una única planta, el la cual se desplazará por las distintas habitaciones. Todo ello en una secuencia conocida. Sin embargo, durante el desarrollo de dicha secuencia, se interpondrán obstáculos de forma dinámica. Por ello, deberá de poder evitar dichos obstáculos, tales como personas, cajas o semejantes, re-calculando la ruta. En algunos casos, deberá de re-calcular otra ruta óptima en el caso de que no pueda evitar el obstáculo, para ası́ alcanzar la ubicación objetivo. Un ejemplo del mismo será, la imposibilidad del robot para el paso cerrando la puerta. Por lo tanto deberá de re-calcular dicha ruta, para poder acceder a la habitación en cuestión. Se puede observar un caso de uso en, (Fig. 1.1) 1 https://youtu.be/TNIiLmZC7XI
  • 27. 1.2 Soluciones asistenciales propuestas 5 Figura 1.1: Navegación en un domicilio. Durante el desarrollo de la navegación, deberá de reconocer personas y ob- jetos, ası́ como poder interactuar con ellos. En el supuesto de acceder a una ubi- cación, y no poder acceder al punto en cuestión tras calcular las posibles rutas, deberá interactuar con el usuario para solicitar ayuda para ası́ acceder a la ubi- cación requerida. Por último, deberá de seguir al usuario hasta una ubicación desconocida. En lo referente al mapa del domicilio, en el cual el robot se despla- zará, véase (Fig. 1.2) Figura 1.2: Mapa del domicilio.
  • 28. 6 Introducción 1.2.2. Catering for Granny Annies Comfort La segunda solución propuesta, Catering for Granny Annies Comfort [2], se encuentra basada en la interacción del robot con el entorno. Dicha tarea ha de incluir funcionalidades de navegación, visión por computador, reconocimiento de voz y TTS. En esta tarea, el robot ha de ayudar al usuario en tareas cotidianas 2. Para ello, el usuario se lo indicará al robot presionando un botón en una tablet de con- trol. Tras presionar el botón, el robot, deberá de acudir hasta el usuario, que se encontrará ubicado en un punto conocido del domicilio. Tras llegar al punto en cuestión, ha de reconocer por visión al usuario, e interactuar con él, recibiendo una de las siguientes órdenes: Búsqueda de objetos o personas Manipular o traer un objeto Acompañar a una persona a un punto del domicilio Las opciones serán escogidas de forma aleatoria. Un ejemplo de caso de uso, se muestra en, (Fig. 1.3) 2 https://youtu.be/a F0xMyyJ0s
  • 29. 1.2 Soluciones asistenciales propuestas 7 Figura 1.3: Apoyo doméstico en domicilio. Por otro lado, en lo referente a los objetos a detectar, se tratará de útiles y objetos comunes en cualquier domicilio, véase (Fig. 1.4). Figura 1.4: Listado de objetos a detectar en el domicilio.
  • 30. 8 Introducción 1.2.3. Take the elevator La solución propuesta, Take the elevator [3], se encuentra basada en la capa- cidad del robot de poder obtener conocimiento sobre el entorno. Para ello, ha de ser capaz de detectar personas y objetos, ası́ como de poder interactuar con los mismo. Por último, ha de poder navegar y entrar en un ascensor para poder desplazarse entre las distintas plantas de un edificio. La capacidad de detección tiene que ser autónoma. El robot tiene que ser capaz de coger un ascensor con clientes, y ası́ poder llegar a una determinada ubicación en otra planta de ese mismo edificio. Un ejemplo de caso de uso, se observa en, (Fig. 1.5) Figura 1.5: Navegación mediante ascensor. Para poder obtener la planta objetivo, el robot deberá de conectarse con un servidor, conocido como Data Hub. El robot deberá de coger el ascensor junto al los demás usuarios habituales, en este caso, ubicado en un centro comercial, en el cual transcurrirı́a la tarea. Ha de poder entrar y salir del ascensor, ası́ como en la planta correcta, junto a la presencia de personas cercanas y/o en el interior.
  • 31. 1.2 Soluciones asistenciales propuestas 9 Durante el desarrollo de la tarea, deberá de interactuar con los clientes que encuentra, respondiendo a saludos y/o preguntas. A su vez, el deberá inter- actuar, aún en el supuesto de no haber recibido una solicitud por parte de los clientes, con un cliente en concreto, siendo las segunda persona en detectar. En lo referente a la selección de planta, el robot solicitará a los clientes que lo realicen por él. La tarea comenzará con el robot ubicado en un punto alejado del ascensor en la planta 0. Deberá de adquirir información sobre la planta destino. Una vez obtenida dicha información deberá desplazarse por el vestı́bulo hasta alcanzar el ascensor, véase (Fig. 1.6). Durante el trayecto, debe de ser capaz de poder detectar a las personas que encuentre en el mismo. Figura 1.6: Aproximación al ascensor. Tras llegar al ascensor, deberá de esperar a que el resto de cliente entren, sien- do el último en acceder al mismo. El robot deberá de moverse al área cercana, en la cual los clientes se encuentran parados. Anunciará su intención de coger el ascensor, véase (Fig. 1.7).
  • 32. 10 Introducción Figura 1.7: Entrada al ascensor. Tras entrar en el ascensor, deberá de comunicar la planta a la cual desea llegar y pedir confirmación de que seleccionarán la planta. Una vez ha llegado a la planta destino, deberá de interactuar con los clientes para agradecer la ayuda dada. Para finalizar, deberá de salir del ascensor y desplazarse al punto de destino, véase (Fig. 1.8). . Figura 1.8: Salida del ascensor. La duración máxima de dicha tarea no deberá de exceder los 5 minutos.
  • 33. 1.2 Soluciones asistenciales propuestas 11 1.2.4. Deliver coffee shop orders Por último, la solución Deliver coffe shop orders [4], al igual que las tareas pre- viamente comentadas, requiere de la capacidad del robot de adquirir informa- ción del entorno que lo rodea, mediante visión por computador, reconocimiento de voz, ası́ como los sensores láser y ultrasonidos en localización. Al igual que en previas soluciones, ha de ser capaz de detectar personas y objetos, ası́ como interactuar con ellos, para poder ayudar en labores de entrega de pedidos. En lo referente a esta tarea, el robot deberá de ayudar a las personas en una cafeterı́a atendiendo a los clientes, tomando pedidos y entregándolos. Un caso de uso puede observarse en, (Fig. 1.9). Figura 1.9: Apoyo en toma de pedidos en restaurante. Primero, el robot comenzará ubicado en el inicio del salón, alejado de los clientes. Los clientes deberán de llamar la atención del robot. Tras recibir la soli- citud, el robot deberá de dirigirse hacia mesa y analizará el estado de la misma, vacı́a y/o con objetos, mediante visión por computador. En caso de que la mesa está vacı́a, el robot recibirá el pedido de los clientes e
  • 34. 12 Introducción informará a la cocina. Deberá de recordar el pedido ası́ como entregarlo. En el supuesto de que la mesa no estuviera vacı́a, deberá de preguntar a los clientes si desean que se vacı́e la misma. En caso afirmativo, les solicitará que coloquen dichos objetos sobre la bandeja, y tras finalizar, podrá comenzar el proceso de toma de pedidos comentado previamente, véase (Fig. 1.10). Figura 1.10: Escenario pedidos de clientes.
  • 35. Capı́tulo 2 Estado del arte A través del Capı́tulo 2, denominado Estado del arte, se presentará el concepto y algunos de los sectores de actuación de la robótica. En primer lugar, se tratará la definición y consenso de aplicación de la robóti- ca, ası́ cómo posteriormente, su aplicación en los sectores de actuación más rele- vantes, tales como, la robótica en la industria, construcción, transporte y asisten- cia, siendo esta última el sector en el cual se enmarcará el proyecto presentado. En segundo lugar, se tratarán los distintos organismos e instituciones, a través de los cuales se ha llevado a cabo la aplicación y ejecución de las soluciones im- plementadas. Para ello, se detallarán los organismos en cuestión, tales como Eu- ropean Robotics League y SciRoc, ası́ como las aplicaciones implementada en cada institución. 2.1. Robótica y sectores de actuación Tal y como se definió en el Capı́tulo 1, se puede determinar la robótica como una sinergia de las ingenierı́as mecánica, eléctrica, electrónica, bio-médica y de las ciencias de la computación. Es la encargada de el diseño, implementación, construcción, operación y aplicación de sistemas robóticos.
  • 36. 14 Estado del arte A su vez, un robot y/o sistema robótico, hace referencia a un o un conjunto de elementos generalmente de tipo electromecánico, cuyo fin es la aplicación de trabajos. En lo referente a su clasificación en el término de robot y/o sistema robótico, no existe actualmente un consenso generalizado en la determinación de carac- terı́sticas a requerir, no obstante, sı́ respecto de las tareas que ha de llevar a cabo dichos sistemas robóticos. Actualmente, puede ser considerado dentro de la clasificación de robot y/o sistema robótico, aquellos elementos tanto digitales como mecánicos que sean ca- paces de realizar tareas de forma flexible [1]. 2.1.1. Historia y clasificación de la robótica A través de este apartado, se presentarán algunos de los hitos de la robótica más relevantes desde su primer término hasta la actualidad. Posteriormente, se tratará la clasificación y descripción de los mismos en función de su generación y estructura. Historia de la robótica: En lo referente a la historia de la robótica, su primer término, data del siglo I a.C [5]. En siglo I a.C, surgen las primeras descripciones del término autómata. Siendo, el mismo la referencia a sistemas de tipo mecánico que tratan de replicar comportamientos de humanos y/o animales. En el año 420 a.C, se lleva a cabo la construcción de un autómata de madera propulsado a vapor que imitaba el comportamiento de un pájaro, atribuida la construcción a Arquitas de Tarento, véase (Fig. 2.1).
  • 37. 2.1 Robótica y sectores de actuación 15 Figura 2.1: Autómata de madera propulsado a vapor, Arquitas de Tarento. Al-Jazari, diseña los primeros autómatas programables con forma huma- noide en el año 1206. En el año 1495, Leonardo Da Vinci, construye el Caballero mecánico, siendo el mismo, el primer robot humanoide [6], véase (Fig. 2.2). Figura 2.2: Caballero mecánico, Leonardo Da Vinci. Son presentadas las Tres leyes de la robótica por Isaac Asimov en el año 1942, a través de una historia de ciencia ficción con el robot SPD-13, en la revista Astounding Science Fiction.
  • 38. 16 Estado del arte En el año 1956, se presenta el primer robot comercial, de la compañı́a Uni- mation [7], cuyos fundadores fueron George Devol y Joseph Engelberger, sien- do en el año 1961 la primera instalación de dicho robot comercial, véase (Fig. 2.3). Figura 2.3: Primer robot comercial, robot Unimation. En 1971, aterriza en Marte el primer robot Mars 3 [8], diseñado por la Unión Soviética, aunque perdiendo el contacto al poco tiempo, véase (Fig. 2.4). Figura 2.4: Robot Mars 3.
  • 39. 2.1 Robótica y sectores de actuación 17 En el año 1973, es presentado por la empresa KUKA Robot Group, el robot Famulus [9], siendo el primer robot con seis ejes , véase (Fig. 2.5). Figura 2.5: Primer robot comercial de la empresa KUKA, robot Famulus. El primer robot móvil bı́pedo con capacidad de interactuación, es presenta- do por la empresa HONDA Motor Co., en el año 2011, recibiendo el nombre de ASIMO [10], véase (Fig. 2.6).
  • 40. 18 Estado del arte Figura 2.6: Primer robot móvil bı́pedo, robot ASIMO. Posteriormente, en el año 2015, es presentado el robot SOPHIA [11], de la empresa Hanson Robotics Co., siendo un robot móvil bı́pedo, con capa- cidad de interactuación, simulación de expresiones y visión por compu- tador, véase (Fig. 2.7). Figura 2.7: Robot Sophia.
  • 41. 2.1 Robótica y sectores de actuación 19 Clasificación de sistemas robóticos: Mediante este apartado, se llevará a cabo la clasificación de los sistemas robóticos [6]. En primer lugar, serán diferenciados mediante la Generación de los mismos. Posteriormente a través de su estructura. • Clasificación por generación: Los sistemas robóticos, pueden ser clasificados en función de su gene- ración o factor cronológico. Principalmente la clasificación generacio- nal, suele ser diferenciada en primera, segunda y tercera generación. - Primera generación: Se pueden clasificar como robots de primera generación, aquellos sis- temas robóticos, generalmente de tipo robot manipulador, multi-funcional, los cuales permiten un control de tipo manual, secuencia fija y/o va- riable. - Segunda generación: Se pueden clasificar como robots de segunda generación, aquellos sis- temas robóticos, con capacidad de aprendizaje. Dicho aprendizaje se realiza mediante la ejecución de secuencias ya dadas por un opera- dor, a través de la réplica de las mismas. - Tercera generación: Se pueden clasificar como robots de tercera generación, aquellos siste- mas robóticos, que integran sensores en los mismos. Su control es dado por un computador que envı́a las instrucciones requeridas al sistema robótico. • Clasificación por estructura: En lo referente a la clasificación de robots en función de su estructura, es definida por la configuración del mismo. En función de la arquitec- tura los mismos, pueden clasificarse en cinco grupos principales:
  • 42. 20 Estado del arte - Poliarticulados: Poseen un base fija, ası́ como uno o más sistemas de coordenadas. Per- miten un movimiento articular y/o cartesiano, con desplazamientos lineales y/ curvos en el espacio de trabajo. Un ejemplo puede obser- varse en, (Fig. 2.8). Figura 2.8: Robot manipulador, ABB. - Móviles: Poseen la capacidad del desplazamiento en el entorno, generalmente de base móvil ası́ como locomoción articular. En este grupo, pueden incluirse robots de base móvil por elemento rodante, ası́ como movi- mientos articulares tales como por arrastre o extremidades. Se puede observar un robot de base móvil en, (Fig. 2.9). Figura 2.9: Robot móvil TurtleBot 2, Clearpath.
  • 43. 2.1 Robótica y sectores de actuación 21 - Androides: Mediante esta clasificación, se engloban los sistemas robóticos, que tra- tan de reproducir comportamientos cinemáticos de forma parcial y/o total del ser humano. En lo referente a dicha clasificación se incluyen los robot humanoides bı́pedos y los hı́bridos. Se muestra un robot hu- manoide bı́pedo en, (Fig. 2.7). - Zoomórficos: A través de dicha clasificación, se engloban los sistemas robóticos que reproducen comportamientos cinemáticos tanto de forma parcial y/o total de seres vivos, generalmente animales y/o insectos. Principal- mente se pueden sub-clasificar en móviles y o móviles. Se puede ob- servar un robot zoomórfico, de subclase móvil, inspirado en el com- portamiento y fisionomı́a de un perro en, (Fig. 2.10). Figura 2.10: Robot zoomórfico SpotMini, Boston Dynamics.
  • 44. 22 Estado del arte - Hı́bridos: Con la última clasificación, son indexados aquellos sistemas robóticos, que no han podido ser clasificados en los grupos previamente descri- tos o que a su vez, incluyen caracterı́sticas conjuntas de varios grupos sub-clasificados. Un caso de robot hı́brido, como sistema robótico de ba- se móvil y manipulador, se presenta en, (Fig. 2.11). Figura 2.11: Robot TIAGo, PAL Robotics. Por ultimo, se citan algunos ejemplos de cada clasificación para cada configuración en [5], (Tabla. 2.1). Clasificación Ejemplo Poliarticulados Manipuladores, industriales... Móviles Base rodante, bı́pedos... Androides Humanoides, semi-humanoides... Zoomórficos Araña, serpiente, perro... Hı́bridos Móvil-manipulador, zoomórfico-manipulador... Tabla 2.1: Clasificación de robot por estructura
  • 45. 2.1 Robótica y sectores de actuación 23 2.1.2. Sectores de actuación Mediante el siguiente apartado, se presentarán algunos de los sectores de actuación del campo de la robótica, en áreas tales como la industria, construc- ción, transporte o asistencia. Tal y como se ha descrito previamente, la robótica es la sinergia de numerosas áreas, tales como la ingenierı́a mecánica, eléctrica, electrónica y de las ciencias de la computación, las cuales permiten, el diseño, implementación, operación y aplicación de sistemas robóticos. A su vez, dado el concepto de robot y/o sistema robótico, como el elemento y/o conjunto de elementos los cuales permiten la ejecución de tareas, tanto de forma mecánica como digital, su aplicación es elevada, dada la alta versatilidad de los mismos, permitiendo la ejecución en múltiples casos de uso. Se expondrán algunos de los sectores de actuación más relevante, y dada la inherente dificultad de identificar todos los sectores de actuación dada la clasi- ficación relativa a las aplicaciones digitales, se centrará en su aplicación de tipo mecánico, siendo este inmediato dada su evolución histórica. Algunos de los sectores de actuación que se describirán, será la aplicación de la robótica a la industria, construcción, transporte y asistencia. Robótica Industrial En primer lugar se definirá la Robótica Industrial, como una de las aplicacio- nes de la robótica al sector de la industria. Atendiendo en la misma al estudio, diseño, implementación y ejecución de robots y/o sistemas robóticos en procesos industriales [1]. Principalmente pueden clasificarse en cinco tipos de robots y/o sistemas robóti- cos, desde un punto de vista generalizado: Robots manipuladores: El término robot manipulador, hace referencia a aquellos robots cuyo fin es la manipulación y/o procesado, aplicado en tareas de tipo mecánico. Gene-
  • 46. 24 Estado del arte ralmente, se encuentran constituidos por una base fija ası́ como un conjun- to de eslabones articulados, y mediante el desplazamiento relativo de los mismos, se permite el movimiento y desplazamiento del robot en el área de trabajo, para su operación, (Fig. 2.12). Figura 2.12: Robots industriales, ABB Robotics. Robots de aprendizaje o repetición: A través del término robot de aprendizaje/repetición, se referencia a aquellos robots cuyo fin es la repetición o aprendizaje de procesos industriales. Al igual que los robots manipuladores, se definen por una base fija y un conjun- to de eslabones articulados, para permitir la operación del robot en el área de trabajo. Atendiendo a la clasificación de repetición de procesos, dada la replica del mismo, el cual, ha sido previamente realizado por un opera- dor Aprendizaje, para aquellos robots que incluyan el término previo y/o realizan un aprendizaje por cualquier otro método. Robots de computadores: Los robot de computadores, son aquellos robots de fin, la automatización de procesos industriales desde el punto de vista computarizado.
  • 47. 2.1 Robótica y sectores de actuación 25 Robots inteligentes: Con el término robot inteligente, hacemos referencia a aquellos robots que in- corporan medios y/o métodos inteligentes en la interacción con el entorno. Mediante sensores y actuadores que permiten la incorporación de dichas funcionalidades. Ejemplos de los mismos como, sensores láser, ultrasoni- dos, cámaras RGB, RGB-D y sistemas inteligentes para el reconocimiento de voz, TTS, visión artificial, entre otros, véase (Fig. 2.13). Figura 2.13: Robots inteligente, ABB Robotics. Micro/Nano-robots: Con los micro/nano-robot, se entienden a aquellos robots de reducidas di- mensiones, no obstante, su aplicación no determina la clasificación, sino su arquitectura y dimensiones. Se puede observar dicha configuración, en (Fig. 2.14), mediante un micro-robot zoomórfico, inspirado en insectos. Figura 2.14: Micro-robot HarvardBee, Harvard University.
  • 48. 26 Estado del arte Robótica en la Construcción Se definirá la Robótica en la construcción, como otra aplicación de la robótica al sector de la construcción. Atendiendo en la misma al estudio, diseño, imple- mentación y ejecución de robots y/o sistemas robóticos en procesos relacionados con la construcción. En lo referente a esta clasificación, principalmente se puede distinguir en dos tipos diferenciados. En primer lugar, robots cuya construcción se ha implementa- do a partir de maquinaria ya aplicada en el sector de la construcción y al mismo, se ha añadido el sistema robótico. En segundo lugar se incluyen aquellos robot y/o sistemas robóticos los cuales, han sido, implementados especı́ficamente para una aplicación determinada. Dichos sistemas robóticos, permiten automatizar procesos generalmente de ti- po manual, en a la construcción. Por ello con la implementación de sistemas modulares, adaptativos y flexibles, se permite su uso en el sector de la construc- ción. Con tareas tales como el transporte y/o manipulación de elementos, ası́ como ensamblaje y desarrollo de tareas cı́clicas y periódicas. Entre algunos de los sistemas robóticos aplicados a la construcción se puede destacar: SAM100: Mediante el sistema SAM100 [12], implementado por la empresa Construc- tion Robotics, se permite la localización de ladrillos en construcción. Cons- tituido por una plataforma móvil y un brazo manipulador. A través de dicho robot hı́brido, se permite una localización y gestión del inventario de ladrillos, reduciendo el tiempo requerido a un sexto del tiempo en modo manual. Englobado en la clasificación de robot hı́brido de tipo manipulador-móvil, el cual junto a una bomba para el almacenaje de cemento, asiste y oferta apoyo de un operario. Localiza y almacena los ladrillos, ası́ como gestiona
  • 49. 2.1 Robótica y sectores de actuación 27 los requerimientos de cemento para el trabajador. Ası́ minimiza los costes y tiempos requeridos, maximizando los ingresos y aumentando el margen de beneficios, véase (Fig. 2.15). Figura 2.15: SAM100, Construction Robotics. Sistema integrado flexible de fabricación: Investigadores del grupo RoboticsLab [13], de la Universidad Carlos III de Madrid, han implementado un sistema integrado flexible, para la auto- matización de procesos aplicados, en el sector de la construcción, ası́ se permite la automatización de procesos manuales. Con la implementación de dicho sistema flexible, con adaptabilidad a múltiples tareas, se da la ejecución de procesos de transporte y manipulación. Dada tal implemen- tación, a partir de múltiples sistemas integrados para la automatización de los procesos constructivos, se permite junto al ensamblaje con un conjunto con sistemas robóticos, una construcción por planta automatizada. Robótica en el Transporte La Robótica en el transporte, como una aplicación en sector del transporte. Al igual que los casos previamente descritos, lleva a cabo el estudio, diseño, imple- mentación y ejecución de robots y/o sistemas robóticos en procesos relacionados con el transporte.
  • 50. 28 Estado del arte A través de la aplicación de la robótica en el transporte, se tratan de implemen- tar sistemas para la mejora de la seguridad, confort, rendimiento y eficiencia, ası́ como reducción de costes, tiempos, y en los últimos años reducción del efecto contaminante de los medios de transporte. Con la implementación de funcionalidades para medios de transporte y/o bien el las propias infraestructuras del mismo. Se destacan algunos ejemplos de uso de la robótica al transporte: C-V2X: Con el término C-V2X, Cellular vehicle to X [14], se hace referencia a la co- municación de tipo inalámbrico entre los vehı́culos y/o cualquier dispo- sitivo y/o sistemas con capacidad de conexión. Todo ello a través de los dispositivos móviles. A través de este sistema de comunicación, basado en 4G LTE y compatible con 5G, ası́ como optimizado para el uso en vehı́culos autónomos, se pretende la construcción una infraestructura basada en la comunicación entre los distintos dispositivos y con capacidad de conexión a Internet, ioT, véase (Fig. 2.16). Figura 2.16: C-V2X. Robótica Asistencial Tal y como se definió en el Capı́tulo 1, la robótica asistencial, marco en el cual se dará este proyecto. Es uno de los campos de aplicación de la robótica, el cual, se focaliza en la implementación de soluciones para el apoyo y/o asistencia de personas. La interactuación, se da directamente con el usuario.
  • 51. 2.1 Robótica y sectores de actuación 29 En cuanto a las aplicaciones, principalmente se engloban en aquellas dedica- das a tareas de rehabilitación para usuarios. No obstante, su extensión es mayor. Como se comentó previamente, indexa tareas tanto de apoyo y rehabilitación, ası́ como tareas de ı́ndole social. Algunos ejemplos de aplicaciones de las mis- mas: Rehabilitación de usuarios mediante puntos de alcance y/o imitación de robot: Los usuarios han de realizar tareas de alcance de puntos para la rehabili- tación articular y muscular, por ejemplo mediante ejercicios por imitación de robots, véase (Fig. 2.17). Figura 2.17: Rehabilitación mediante imitación, robot NAO.
  • 52. 30 Estado del arte Rehabilitación de usuarios y estipulación sensorial mediante VR: Los usuarios, realizan tareas de rehabilitación mediante realidad virtual, ası́ como la estimulación visual y mejora de reflejos, véase (Fig. 2.18). Figura 2.18: Rehabilitación mediante VR. Apoyo doméstico mediante localización y manipulación de objetos: El sistema robótico proporciona ayuda doméstica mediante la manipula- ción y localización de objetos, siendo esta una de las soluciones que se propondrán y detallaran en el documento en el Capı́tulo 4, en Catering for Granny Annies Comfort [19], véase (Fig. 2.19).
  • 53. 2.1 Robótica y sectores de actuación 31 Figura 2.19: Apoyo doméstico mediante localización y manipulación de objetos. Apoyo laboral en tareas de interactuación: El sistema robótico, interactua, con los usuarios, por ejemplo en la toma de pedidos en un local (restaurante) , apoyo en un comercio para la locali- zación de productos (supermercado). Este ejemplo, se expondrá en detalle en el documento, en el Capı́tulo 4, se presentará con una de las soluciones propuestas, Deliver coffe shop orders, véase (Fig. 2.20). (a) Toma de pedidos en restaurante, robot TIAGo (b) Apoyo en supermercado, robot TIAGo Figura 2.20: Apoyo laboral en tareas de interactuación. Dichas aplicaciones, como se puede observar, engloban numerosas áreas de trabajo, y su clasificación, requiere de varias áreas, siendo estos algunas de las
  • 54. 32 Estado del arte numerosas aplicaciones que pudieran llevar a cabo. Robótica Social Se puede definir la Robótica social, como una de las aplicaciones de la robóti- ca en sector social. Mediante el estudio, diseño, implementación y ejecución de robots y/o sistemas robóticos en procesos relacionados con la interactuación con usuarios. Dicha rama engloba la aplicación de sistemas robóticos, desde un punto de vista más cercano a la interacción del humano con el robot. Se adjuntan algunos ejemplos de robots sociales: Maggie: El sistema robótico, Maggie [15], es un tipo de configuración de robot social, aplicado a interacción con usuarios. Se trata de un robot social, cuya in- teracción con el usuario se realiza mediante reconocimiento de voz y TTS. Incorpora sensores de presión y cámaras para permitir una interactuación a través del tacto, junto a los sistemas de visión artificial, véase (Fig. 2.21). Figura 2.21: Robot social, Maggie.
  • 55. 2.1 Robótica y sectores de actuación 33 Pepper: El sistema robótico, Pepper [17], es otro tipo de configuración de robot so- cial, fabricado por la empresa SoftBank, para la interacción con usuarios y asistencia. La interacción con el usuario, es llevada a cabo a través re- conocimiento de voz y TTS. Consta de una base móvil para permitir el desplazamiento y cámaras para una interactuación mediante sistemas de visión artificial, véase (Fig. 2.22). Figura 2.22: Robot social, Pepper. TIAGo: Mediante el sistema robótico TIAGo [16],se presenta una configuración de robot social, aunque flexible para el desarrollo de aplicaciones industriales de baja carga, dada la versatilidad del mismo. Fabricado por la empresa PAL Robotics, permite la interacción con usuarios, ası́ como su asistencia. A través reconocimiento de voz y TTS, junto a cámaras RGB-D para una interactuación por visión artificial y cálculo de profundidades, se permite una amplia interacción. Constituido por una base móvil para permitir la navegación, ası́ como bazos robóticos para permitir la manipulación, junto a sistemas de visión y sensores de fuerza, véase (Fig. 2.23). La arquitectura del robot TIAGo, será descrita en detalle en el Capı́tulo 3, dado que las soluciones propuestas serán ejecutadas sobre dicha platafor- ma.
  • 56. 34 Estado del arte Figura 2.23: Robot social, TIAGo. NAO: Mediante el sistema robótico, NAO [18], fabricado por la empresa Al- debaran Robotics, se permite la interacción con usuarios ası́ como la asisten- cia. A través del reconocimiento de voz y TTS, junto a las cámaras y los sensores de tacto, se da la interactuación. Se trata de un sistema bı́pedo en el deslazamiento, junto a bazos robóticos para permitir la manipulación y captura de objetos mediante cinco falanges, véase (Fig. 2.24). Figura 2.24: Robot social, NAO.
  • 57. 2.2 Organismos e instituciones 35 2.2. Organismos e instituciones En este apartado, se presentarán algunos de los organismos oficiales dedica- dos al ensayo y ejecución de tareas relativas a la robótica asistencial en la inves- tigación. Dichas instituciones, principalmente, tienen como campo de estudio dentro de la robótica asistencial, aquellas dedicadas al servicio, emergencias, profesional, ası́ como ciudades inteligentes. Instituciones como European Robotics League o SciRoc, permiten el ensayo y ejecución de tareas de los campos de la robótica asistencial, previamente co- mentados. Para ello, se habilitan entornos reales de pruebas donde llevar a cabo dichos ensayos. En segundo lugar, dichas instituciones, organizan torneos durante la ejecu- ción de las pruebas, y en las mismas las distintas universidades y/o centros de investigación, compiten entre sı́, para evaluar la ejecución de las tareas, ası́ co- mo el nivel de precisión, calidad o interacción entre los sistemas robóticos y el entorno. El proyecto European Robotics League, ha sido implementado por un consorcio de socios y revisores, ası́ como una junta asesora, constituida por expertos en el campo de la robótica. Ası́ se permite dada la inherente experiencia las respuestas de emergencia, el diseño de los diferentes protocolos y requisitos a cumplir. 2.2.1. European Robotics League La institución European Robotics League [19], es un organismo oficial, con sede en Europa. Tiene como objetivo la organización y gestión de torneos locales e in- ternacionales. Para ello, se encuentra divida, en cuatro campos de participación, a saber: Consumer: En primer lugar, ERL Consumer, es un campo de actuación cuyo objetivo, es unir avances de la investigación cientı́fica, relativos a la robótica asisten-
  • 58. 36 Estado del arte cial. A través de un sistema de calificación y puntuación en la ejecución de las tareas. Dicho campo se encuentra focalizado en la ejecución de tareas, principalmente en ambientes domésticos. Destacar, que en la ejecución de las mismas, en lo referente a los reque- rimientos o las caracterı́sticas que debe incorporar el robot, se integran algunas tales como, el reconocimiento de personas y objetos. Ası́ como la manipulación de objetos, navegación a través del entorno, habla y recono- cimiento de voz, entre otros. Emergency: En segundo lugar, ERL Emergency, es otro campo dentro de la competición, dedicado, a la robótica al aire libre. Centrado en el apoyo en situaciones de emergencia. Posee un enfoque realista, para su ejecución en múltiples entornos urbanos. Dichos sistemas robóticos, poseen un papel fundamental. En situaciones crı́ticas han de ser capaces de poder actuar a distancia y dar soporte a sistemas de rescate en la detección y/o tareas relativas. En la competición, a fin de tener en cuenta el estado de sistemas crı́ticos, como por ejemplo en situaciones sin acceso a una red de comunicacio- nes para el acceso a Internet o localización por GPS, se insta el desarrollo de sistemas completamente autónomos, con una navegación automática y funcional al aire libre e interiores. En los mismos, se prueban las capacida- des y funcionalidades para poder hacer frente a las situaciones del mundo real. Proffesional: En tercer lugar, ERL Professional, al igual, que el resto de campos previa- mente comentados, se centra en la ejecución de tareas mediante sistemas robóticos, todo ello gestionado y puntuado por un sistema de calificación. En el apartado profesional, se llevan a a cabo la ejecución de tareas desde un ámbito más industrial. Con tareas orientadas a la ejecución de proce-
  • 59. 2.2 Organismos e instituciones 37 sos automatizados de tipo industrial, tales como ensamblajes o procesa- dos, con la incorporación sistemas robóticos con capacidad de navegación autónoma. Smart Cities: Por último, Smart Cities, es una disciplina, dentro de la European Robotics League, orientada a la ejecución de tareas de apoyo con sistemas robóti- cos en grandes instalaciones urbanas, tales como centros comerciales, es- taciones de transporte, tiendas y semejantes. Mediante dicha disciplina, se permite demostrar los diferente beneficios de los sistemas inteligentes automatizados aplicados en el dı́a a dı́a para los ciudadanos. Las compañı́as y centros de investigación, tienen la oportunidad de mos- trar dichos avances y la tecnologı́a, aplicada en un contexto real, ası́ los riesgos e implicaciones de los mismos. 2.2.2. SciRoc El proyecto SciRoc [20], es una institución financiada por UE-H2020. El ob- jetivo fundamental de dicha institución, es la ejecución y ensayo de tareas del campo de la robótica asistencial en el entorno de las ciudades inteligentes. Sci- Roc, es un proyecto derivado de European Robotics League Smart Cities. Destacar como elemento fundamental del mismo, la incorporación de sistemas robóticos, dentro de las ciudades, su integración, ası́ como la inter-conexión de los mis- mos. SciRoc, tal y como se describı́a previamente, es un proyecto financiado por la UE-H2020] apoyado por la European Robotics League (ERL), cuyo fin es trasladar los diferentes torneos y aplicaciones de ERL, al contexto de las ciudades inteli- gentes. Para ello, se llevarán a cabo proyectos en los años 2019 y 2021, tales como el SciRoc, celebrado en Milton Keynes 1, Inglaterra en septiembre de 2019. 1 https://www.youtube.com/watch?v=ZIxgWxU S00
  • 60. 38 Estado del arte Con las funcionalidades implementadas en los distintos apartados de la Eu- ropean Robotics League, ası́ como los robots, se interactuará con los ciudadanos y la infraestructura de la ciudad inteligente, apoyando a los clientes y proporcio- nando servicios.
  • 61. Capı́tulo 3 Arquitectura del sistema Mediante el Capı́tulo 3, denominado Arquitectura del sistema, se expondrán los distintos componentes empleados para el desarrollo de las soluciones propues- tas. En primer lugar se tratará el campo relativo al Hardware, detallando en el mismo, la plataforma a través de la cual se llevarán a cabo la ejecución de las so- luciones propuestas previamente comentadas en el Capı́tulo 1. En dicho aparta- do, se detallará el Hardware empleado, es decir, el robot TIAGo, los componentes del mismo, ası́ como las especificaciones individuales y de conjunto del sistema robótico. En segundo lugar, se abordara el campo del Software, a través del cual se tratarán los distintos módulos requeridos para la ejecución de las soluciones ex- puestas. Se detallarán individualmente los componentes empleados, divididos en secciones relativas al ámbito de aplicación, tales como la manipulación de ob- jetos, la visión por ordenador, reconocimiento de voz, o navegación autónoma entre otras.
  • 62. 40 Arquitectura del sistema 3.1. Hardware En este apartado, se presentará el Hardware, empleado para la ejecución de las soluciones propuestas en el Capı́tulo 1. Tal y como se comentó previamente, para la implementación de soluciones en sistemas robóticos, tales y como son Visit my home, Catering for Granny Annies Confort, Take the elevator y por último Deliver coffe shop orders, se requiere de una plataforma de ejecución en la cual llevarlas a cabo. En primer lugar, se describirá el sistema empleado. Para ello, la plataforma seleccionada, ha sido el robot TIAGo fabricado por la empresa PAL Robotics, con sede en Barcelona. En segundo lugar, se describirán las implementaciones de Hardware añadidas a posteriori sobre el sistema robótico. 3.1.1. Robot TIAGo A través de este apartado, se presentará el sistemas robóticos seleccionado para la ejecución de las soluciones propuestas. El sistema robótico seleccionado, ha sido TIAGo. TIAGo [21], es un robot móvil manipulador, fabricado por la empresa PAL Robotics, con sede en Barcelona. Se trata de un robot hı́brido, principalmente desarrollado para los campos de robótica asistencial. Concretamente ha sido empleado en tareas relativas a las tareas asistenciales. TIAGo tal y como se puede observar en la (Fig. 3.1), se encuentra constituido por una plataforma móvil para permitir la navegación a través del entorno. Junto a la base móvil, se ubica un torso regulable, que le permite adaptarse a las alturas requeridas para el desarrollo de su tarea. Sobre el torso, se encuentra la cabeza, formada por distintas cámaras RGB y RGB-D, para la obtención de imagen y profundidad. Por último, se encuentra constituido por un brazo robótico de 6 [g.d.l]. En el extremo de el brazo consta de un sistema de pinza de 1 [g.d.l].
  • 63. 3.1 Hardware 41 Figura 3.1: Robot TIAGo, PAL Robotics Tras presentar el robot, se procederá a detallar cada uno de los componentes, explicando la constitución de los mismos, dimensiones, pesos y requerimientos eléctricos entre otros.
  • 64. 42 Arquitectura del sistema Especificaciones En el siguiente apartado, se presentan las especificaciones técnicas del robot TIAGo [16], tales como las dimensiones, grados de libertad, torso, base móvil, sensores, brazo manipulador, y sus especificaciones eléctricas. Adicionalmen- te, se describirán las herramientas comerciales ya implementadas para el robot TIAGo. Dimensiones y peso del robot: En primer lugar, en lo referente a las dimensiones del mismo, tal y como se muestra en (Tabla. 3.1), TIAGo, tiene una altura de 110 [cm], en su estado base, sin embargo alcanza los 145 [cm], gracias al motor en su torso que le permite extenderlo, regulado la altura entre 110-145 [cm], para adecuarse a la altura requerida. El diámetro de su base es de 54 [cm], y el peso total de 72 [Kg]. Altura [cm] Base [cm] Peso [Kg] 110-145 54 72 Tabla 3.1: Dimensiones del robot TIAGo Grados de libertad: En segundo lugar, se describirán, sus grados de libertad, para ello, se divi- dirá en cada uno de sus componentes Hardware y analizarán el número de los mismos. Como se puede observar en (Tabla. 3.2), TIAGo, posee una gran cantidad de articulaciones, siendo un total de 7 [g.d.l] en el conjunto brazo-muñeca, permitiéndolo acceder a las posiciones requeridas de su espacio de traba- jo con múltiples configuraciones. A partir de la base, se permite el des- plazamiento en el plano para la navegación, y el torso, junto a la cabeza, permiten ajustar el ángulo de visión de la misma.
  • 65. 3.1 Hardware 43 En lo referente a la herramienta, principalmente, se comercializan dos módu- los, la pinza PAL y la mano Hey5. Base Torso Brazo Muñeca Cabeza Hey5 Mano Pinza PAL 2 1 4 3 2 19 2 Tabla 3.2: Grados de libertad del robot TIAGo Torso: A través de un sistema de elevación regulable TIAGo, véase (Fig. 3.2), puede modificar su altura, permitiéndole adecuarse a la altura requeri- da, modificando como se comentó previamente, su altura entre 110[cm] y 155[cm], tal y como se muestra en (Tabla. 3.3). Extensión máxima [cm] 45 Tabla 3.3: Especificaciones torso del robot TIAGo Figura 3.2: Sistema de elevación del torso en TIAGo
  • 66. 44 Arquitectura del sistema Base móvil: Mediante la base móvil, TIAGo, véase (Fig. 3.3), puede desplazarse, me- diante motores de DC. Se encuentra constituidas por dos ruedas traseras a tracción y una rueda delantera para permitir el giro. Figura 3.3: Base móvil del robot TIAGo En lo referente al sistema de conducción es diferencial y su velocidad máxi- ma es de 1 [m/s], tal y como se muestra en (Tabla. 3.4). Drive System Velocidad máxima [m/s] Diferencial 1 Tabla 3.4: Especificaciones de la base móvil del robot TIAGo Brazo manipulador: Como se comento previamente al inicio del apartado, TIAGo, consta de un brazo robótico de 6 [g.d.l], que le permite la manipulación de objetos dentro de su área de trabajo desde múltiples configuraciones. Su alcance es de 87 [cm], véase (Fig. 3.4), en su máxima extensión.
  • 67. 3.1 Hardware 45 Figura 3.4: Alcance del brazo manipulador de TIAGo La carga máxima soportada es de 2 [Kg], tal y como se puede observar en, (Tabla. 3.5). Alcance [cm] Carga máxima [Kg] 87 2 Tabla 3.5: Especificaciones del brazo del robot TIAGo En lo referente al extremo del brazo de TIAGo, consta de un sistema de an- claje para herramientas. Actualmente son comercializadas dos versiones, la pinza PAL, y la mano Hey5. • Pinza PAL: Se trata de un módulo con 1 [g.d.l], permitiendo abrir y cerrar la mis- ma, tal y como se puede observar en (Fig. 3.5). No obstante, posee una geometrı́a plana, lo cual lo hace idóneo para la creación de porta- herramientas, diseñados e impresos en 3D, para la adaptación a la herramienta en cuestión.
  • 68. 46 Arquitectura del sistema Figura 3.5: Pinza PAL Siendo un ejemplo de herramienta impresa en 3D, el siguiente sopor- te para la limpieza y pintado de tornillos, (Fig. 3.6). Figura 3.6: Soporte porta-herramientas pintado con visualización • Mano Hey5: En lo referente a la mano Hey5, véase (Tabla. 3.7), posee 19 [g.d.l], tal
  • 69. 3.1 Hardware 47 y como se muestra en (Fig. 3.2), siendo 3 de los mismos actuadores, permitiendo la manipulación de objetos con alta precisión, ası́ como desde múltiples configuraciones. Figura 3.7: Mano PAL Hey5
  • 70. 48 Arquitectura del sistema Sensores: En lo referente a este módulo, se tratarán los sensores por los cuales es- ta constituido el robot TIAGo. Dichos sensores se encuentran distribuidos entre la base móvil, el torso, el brazo y la cabeza. Consta de un micrófono estéreo en el torso, una cámara RGB-D en la cabeza, sensores de fuerza/- torque en la muñeca, véase (Fig. 3.8). Figura 3.8: Sensor de torque manipulación TIAGo A su vez, consta de motores con retroalimentación en el brazo, tal y como se puede observar en, (Tabla. 3.6). Torso Brazo Muñeca Cabeza Micrófono stereo Motors current feedback Fuerza/Torque Cámara RGB-D Tabla 3.6: Sensorizado del robot TIAGo Por último la base, (Fig. 3.3), se encuentra constituida por un sensor láser de tipo LIDAR y sensores de ultrasonidos para la detección de obstáculos, tal y como se describe en (Tabla. 3.7).
  • 71. 3.1 Hardware 49 Base LIDAR/Sonars/IMU Tabla 3.7: Sensorizado de la base del robot TIAGo Especificaciones eléctricas: En lo referente a las especificaciones eléctricas, los requerimientos de ten- sión y amperaje para el funcionamiento del robot TIAGo, son de 35 [V] y 20 [Ah], respectivamente, como se puede observar en, (Tabla. 3.8). Tensión [V] Intensidad [Ah] 35 20 Tabla 3.8: Especificaciones eléctricas del robot TIAGo
  • 72. 50 Arquitectura del sistema 3.2. Software Mediante este apartado se presentará el Software, empleado para la ejecución y desarrollo de las soluciones propuestas en el Capı́tulo 1. Al igual que se comentaba previamente en el apartado del Hardware, para la implementación de las soluciones en el sistema robótico TIAGo, en este caso, las descritas en el Capı́tulo 1. Visit my home, Catering for Granny Annies Confort, Take the elevator y por último Deliver coffe shop orders, requieren junto al sistema Hardware, de un conjunto de módulos Software, que permitan llevar a cabo las tareas requeridas. En lo referente al campo del Software, se ha optado por llevar a cabo un desa- rrollo y ejecución totalmente modular, dividiendo en distintos componentes ca- da una de las funcionalidades, para luego poderse ejecutar de forma paralela y conjunta. Módulos independientes, con capacidad de trabajo tanto individual, como colectiva e interrelacionada, generando una red de módulos que permitan la ejecución de tareas de gran complejidad. La estructura Software, se ha divido en distintos módulos caracterı́sticos, a saber: Navegación autónoma, Reconocimiento de voz, Motor de habla, Visión artificial, Manipulación de objetos y por último, el desarrollo de la Lógica interrelacionada de funcionamiento. Cada uno de los módulos descritos, como se ha comentado previamente, puede trabajar individualmente, permitiendo su aplicación en múltiples tareas, no solo aplicables en sistemas robóticos, sino como funcionalidad de ejecución en distintas áreas de trabajo. Por último, a través del módulo referente a la Lógica interrelacionada de funcio- namiento, se unen todos y cada uno de los módulos para la ejecución de la tarea en concreto, siendo las distintas lógicas expuestas en el Capı́tulo 4. En los distintos sub-apartados se describirán cada uno de los módulos em- pleados para la ejecución de las tareas requeridas.
  • 73. 3.2 Software 51 3.2.1. Navegación del robot en el entorno A través de este apartado, se tratará el aspecto relativo a la navegación del robot en un entorno de trabajo. En primer lugar, se describirá el concepto de navegación del robot en un entorno. En segundo lugar, se describirán algunos de los algoritmos de navegación más relevantes en el marco actual, ası́ como la selección del algoritmo para la navegación en el robot TIAGo. Por último, se describirá el concepto y método aplicado para el mapeado de dicho entorno, ası́ como se describirá los métodos empleados para la locali- zación del robot. Destacar, que dicho proceso será aplicable tanto a un entorno simulado como al entorno real en cuestión. Concepto de navegación del robot La navegación de un robot, es la capacidad para poder guiar al mismo a través de un entorno [22]. Dicha capacidad, hace referencia a los robots de móvi- les, es decir, aquellos con capacidad de poder desplazarse. En lo referente a los tipos de navegación se puede distinguir principalmente en dos tipos diferencia- dos, los robots autónomos y los robots tele-operados. Los robots autónomos, en lo referente a la navegación, son aquellos con ca- pacidad de poder desplazarse por un entorno, evitando los obstáculos que en- cuentren el mismo. A su vez, el grado de autonomı́a y capacidad, es variable y se determina en función de los lı́mites mecánicos, estructurales [g.d.l] y sensoriales del mismo, ası́ como del propio entorno de trabajo para el que este destinado. Por otro lado, los robots tele-operados, hacen referencia a aquellos robots que son controlados directamente por un operador humano, a partir de distintos métodos, tales como control con joystick (Fig. 3.9), mandos de control, paletas, control vı́a pc entre otros.
  • 74. 52 Arquitectura del sistema Figura 3.9: Joystick TIAGo También pueden ser incluidos como métodos de control dentro del tipo de la programación por guiado o aprendizaje de tipo pasivo, es decir, que el operador aporta energı́a para moverlo, como el pasivo indirecto o maniquı́, en el cual el robot replica la acción realizada en un maniquı́ movido por el operador humano, véase (Fig. 3.10). Figura 3.10: Guiado pasivo indirecto o por maniquı́
  • 75. 3.2 Software 53 Algoritmos para la navegación autónoma de robots Mediante este apartado, se llevará a cabo la descripción de algunos de los algoritmos de navegación aplicables a robots móviles más relevantes en el marco actual. En primer lugar, se definirá Algoritmo de navegación, como el conjunto de técnicas, ası́ como operaciones matemáticas que permiten el mapeado y adqui- sición de información para la generación del mapa del entorno, ası́ como la lo- calización y navegación, del sistema móvil dado. A través de los diferentes algoritmos de navegación que se describirán se permitirá la generación del mapa del entorno junto a la localización, ası́ como los cálculos requeridos para la obtención de la ruta en la navegación autónoma. Permitiendo el re-cálculo de la ruta en tiempo real. Se presentarán los algoritmos de navegación [23] [24], Planificador local me- diante burbuja, (Bubble Local Planner), Planificador local basado en técnicas, Divide and Conquer,(DivnConq), Modelos adaptativos de localización Monte Carlo, (AMCL) y por último Localización y mapeado simultáneo, SLAM. Planificador local mediante burbuja: En primer lugar, se llevará a cabo la descripción del algoritmo para la na- vegación Planificador local mediante burbuja, (Bubble Local Planner). Principalmente, este algoritmo, es caracterizado por su clasificación de ti- po reactivo, es decir, el re-cálculo de la ruta para llevar a cabo la evasión de los diferentes obstáculos, se da, por el desplazamiento a través de una dirección a una zona de menor densidad de obstáculos por unidad de área. Dicho algoritmo, puede aplicarse tanto de sensores láser como ultrasoni- dos. A través del uso del algoritmo, se instancia la detección alrededor de dicho sistema móvil, lo cual, es conocido, como frontera de protección. Dicha frontera de protección, posee forma esférica, y por ello recibe el nombre de burbuja.
  • 76. 54 Arquitectura del sistema Mediante esta esfera de detección cuyo volumen es variable, en función del radio, la velocidad de desplazamiento de la misma, junto a frecuencia a la cual se realiza el muestreo con el sensor láser y/o ultrasonido. Una vez detectada la entrada de un factor externo en la misma, se inicia el Rebound angle, o cálculo del ángulo de rebote, es decir, el ángulo requerido para el desplazamiento y la obtención del correspondiente vector de trayectoria hacia una zona donde se de la menor densidad de obstáculos por unidad de área. En caso de detectar obstáculos en dicha ruta, se realiza el mismo proceso de forma iterativa, no obstante, fijando el destino final, siendo este el primer cálculo empleado, véase (Fig. 3.11). Figura 3.11: Algoritmo Bubble Local Planner
  • 77. 3.2 Software 55 Planificador local basado en técnicas, Divide and Conquer: En este apartado, se describe un algoritmo para la navegación de platafor- mas móviles, siendo el mismo el Planificador local basado en técnicas Divide and Conquer, (DivnConq). Al igual que el algoritmo Bubble Local Planner, el algoritmo DivnConq, tam- bién es caracterizado por su tipo reactivo, produciéndose el re-cálculo de la trayectoria y de la ruta en la evasión de los obstáculos, con el cambio de la dirección del sistema móvil a una zona de menor densidad de obstáculos por unidad de área. Mediante el uso de la herramienta Nearness Diagram, (ND), se dará la rela- ción entre el sistema móvil y los obstáculos, junto a los objetivos finales e intermedios. Para ello, es representado a través de los diagramas PND, y con las distancias a los obstáculos, a través de la separación entre secciones y/o regiones, véase (Fig. 3.12). Figura 3.12: Diagrama PND, detección de obstáculos En la misma, se representará mediante las lı́neas de color negro la detec- ción de los diferentes obstáculos ası́ como la proximidad los mismos, eje vertical (Y) . Por otro lado los espacios vacı́os, se indicarán las diferentes posibilidades y/o opciones de zonas a baja densidad. Una vez dado el escaneado, dará lugar el desplazamiento del sistema móvil,
  • 78. 56 Arquitectura del sistema dividido en seis posibles formas de actuación, dependiente de tres criterios de elección y/o actuación: - Criterio de seguridad: A través de este criterio, se clasificará en dos tipos de regiones, seguras o no seguras, por lo tanto, con o sin obstáculos. - Criterio de anchura: Una vez clasificado dentro del entorno seguro, se iniciará el criterio de an- chura siendo el mismo, la referencia de si el ancho es o no superior sobre un valor predeterminado, siendo conocido dicho estado como High Safety Wide Region (HSWR), o por contra, no cumple el requerimiento, y se deno- mina High Safety Narrow Region (HSNR). - Criterio de área de libre circulación: Una vez cumplido el criterio de anchura y que a su vez, el sistema móvil, se encuentre en región (HSWR), se da la detección de si se encuentra en un área de libre circulación ,High Safety in Goal Region (HSGR), o por contra, se localiza en la zona de baja seguridad, Low Safety x Side (LSXS), siendo X la referencia a la entrada de los diferen- tes obstáculos bien por un o dos lados con un determinado ángulo, siendo (LS1S) y/o (LS2S), véase (Fig. 3.13). Figura 3.13: Criterios de aplicación algoritmo DivConq
  • 79. 3.2 Software 57 Por ello, dada la situación, el sistema móvil, bien avanzará hacia el destino objetivo con una baja densidad por unidad de área, o bien mantendrá la posición, retrocederá para ası́ mantener la distancia relativa de seguridad preestablecida.
  • 80. 58 Arquitectura del sistema Modelos adaptativos de localización Monte Carlo: En este apartado se describe el algoritmo de navegación, Modelos adaptati- vos de localización Monte Carlo (AMCL). El algoritmo AMCL [24], se caracte- riza como un algoritmo, cuyo uso es la localización y mapeado del entorno a partir de un sistema móvil. El algoritmo AMCL [24], también conocido como Localización de filtro de partı́culas, lleva cabo la localización a partir de filtros de partı́culas y/o nubes de puntos. Tras una obtención de forma previa del mapa del entorno, el sistema móvil, tiene la funcionalidad de localizarse, a través de un algoritmo, estimando la posición ası́ como la orientación, dependiendo del desplazamiento en el entorno junto a las detecciones, todo ello de forma simultánea. A partir de dicho algoritmo, será representadas las distintas distribuciones de situaciones posibles, en la cual, cada partı́cula de dicha nube de puntos, indicará una de las múltiples posibilidades de estados. La inicialización se dará, a partir de una distribución aleatoria de tipo uni- forme, por ello, en primer lugar, el sistema móvil, desconocerá la ubicación y dará lugar al inicio del proceso de localización del sistema en el entorno. Una vez iniciado el desplazamiento, dará lugar la adquisición de datos o muestreo mediante el uso de los sensores láser y/o ultrasonidos. Para- lelamente, junto con el muestre se producen fluctuaciones sobre la nube de puntos. Dicha información es muestreada mediante la estimación Ba- yesiana recursiva, correlacionando los datos muestreados con los posibles estados previstos. Al adquirir información sobre entorno, el volumen de la nube de partı́culas disminuye, ası́ el número de posibles posiciones se reduce y desplaza hasta la ubicación en convergencia, ası́, se obtiene la ubicación real del sistema móvil.
  • 81. 3.2 Software 59 Por último, destacar, que dicho algoritmo, es una representación no pa- ramétrica, ası́ puede ser aproximado a diferentes distribuciones de proba- bilidad [26].
  • 82. 60 Arquitectura del sistema Localización y mapeado simultáneo: Por último, en este apartada se describe un algoritmo de navegación, sien- do Localización y mapeado simultáneo (SLAM) [25]. Se caracteriza por ser determinado tipo de algoritmo de navegación de sis- temas móviles, el cual emplea una localización y mapeado simultaneo del entorno. Ası́, se permite que el sistema móvil sea localizado y pueda des- plazarse, tanto en entornos parcial o completamente desconocidos.Dada la generación de un mapa del entorno, y siendo actualizado a partir de la información obtenida por los diferentes sensores. El funcionamiento, es el siguiente: A partir del sensorizado del sistema móvil, generalmente de tipo láser y/o ultrasonidos, da lugar al escanea- do del entorno, se adquiere información sobre el mismo, como puntos de referencia y/o distancias relativas a los mismos. Cuando ha iniciado el movimiento del sistema móvil, con el uso de la odo- metrı́a, se realiza el calculo la nueva posición estimada, en la cual, se en- cuentra el sistema móvil. Iterativamente, da lugar un nuevo muestreo del entorno, para ası́ llevar a cabo una correcta la localización de los diferentes puntos de referencia mencionados previamente y ası́ forma periódica, re- pitiendo los mismos cálculos para adquirir las nuevas distancias relativas. Cabe destacar que dicho algoritmo, no está exento de errores, tales como odometrı́a. Ası́ mediante técnicas y/o filtros se da la disminución del error para mejora el ratio y la precisión de la localización. Se presentan algunas de ellas, tales como: - Algoritmo Graph SLAM: Mediante el uso de grafos se da el cálculo en la estimación de la posible situación actual, y ası́ junto al uso de las diferentes configuraciones pre- vias, se representa a partir de nodos las distintas posiciones previas en las cuales que se ha localizado el sistema móvil. Y mediante la conexión con
  • 83. 3.2 Software 61 los nodos se adquiere información retroalimentada, véase (Fig. 3.14). Figura 3.14: Algoritmo SLAM, nodos - Algoritmo EKF SLAM: Basado, en el uso del Filtro Extendido de Kalman, con ello, permite la adqui- sición de la estimación de la posible situación del sistema móvil. Mediante previsión de variables no conocidas y muestreo de datos realizado de for- ma previa. - Algoritmo Hector SLAM: Basado en la aplicación de diferentes sistema de sensores inerciales, jun- to a los múltiples algoritmos de planificación 2D. Esta técnica, no emplea la odometrı́a del sistema móvil, y por ello, tiene un uso adecuado, para sistemas móviles localizados en entornos irregulares o bien para sistemas aéreos. A partir de la ecuación de Gauss-Newton en los cambios de posición, y ası́ dar lugar al cálculo de la transformación de la información adquirida por los sensores láser y/o ultrasonidos del entorno al mapa. véase (Fig. 3.15).
  • 84. 62 Arquitectura del sistema Figura 3.15: Algoritmo Hector SLAM Navegación autónoma aplicada al robot TIAGo En lo referente a la a navegación con el robot TIAGo, se ha empleado el algo- ritmo de navegación, del Modelo adaptativo de localización Monte Carlo, A.M.C.L. Para ello, se han empleado los módulos de ROS, que incorporan dicho algorit- mo, para la navegación en robots móviles, dado que permite el soporte para este robot en concreto [26]. Para la navegación con el robot TIAGo 1, se dispone de sensores ultrasonidos, ubicados alrededor de la base móvil, tal y como se describió previamente en el apartado relativo al Hardware, véase (Fig. 3.16), ası́ como sensores láser, ubicados en la parte inferior para la detección de distancias a los obstáculos y por lo tanto la generación del mapa a través de los mismos, descritos en (Fig. 3.16) Por otro lado, en lo referente a los módulos navigation de ROS, emplean las medidas de los sensores láser, generando una nube de puntos o point cloud, de las colisiones del láser con los obstáculos, para ası́ poder generar el mapa del entorno que lo rodea. A su vez, emplea la odometrı́a con robot, es decir, estudia la posición del robot en función de las ruedas, ası́ mediante la rotación y desplazamiento que se ha producido se puede estimar la ubicación del mismo. Todo ello teniendo en cuenta los cambios de posición producidos por los movimientos de las ruedas 1 https://github.com/pal-robotics/tiago navigation
  • 85. 3.2 Software 63 (a) Sensor láser (b) Sensor ultrasonidos Figura 3.16: Sensores base TIAGo. hacia adelante, atrás, junto a los giros. Por último, TIAGo, incorpora las técnicas SLAM, es decir, simultaneous locali- zation and mapping, mediante las cuales es capaz de mapear el entorno y locali- zarse de forma simultánea, lo cual le permite la navegación en entornos desco- nocidos. Para la ejecución de la navegación del robot, se han empleado dos ramas diferencias, en modo simulación, trabajando sobre un PC, en un entorno virtual para llevar a cabo las pruebas de movimiento, y por otro lado la navegación en un entorno real. Entorno de simulación: En lo referente al entorno de simulación, se ha empleado la herramienta Gazebo. Se trata de un simulador en 3D destinado a la robótica, de código abierto. El simulador Gazebo, permite emplear de forma simultánea múlti- ples motores tales como ODE o Bullet. Por ello se ha empleado dicha he- rramienta junto con los modelos 3D de TIAGo 2, para poder llevar a cabo las pruebas de navegación en un entorno virtual, véase (Fig. 3.17). Para llevar a cabo la ejecución del modelado 3D de simulación, en el cual depurar el comportamiento del robot, se empleará como se ha comentado 2 https://github.com/pal-robotics/tiago simulation
  • 86. 64 Arquitectura del sistema Figura 3.17: Navegación autónoma del robot en simulación previamente, la herramienta Gazebo, y a su vez ROS en paralelo para cargar la simulación sistema operativo del robot. En lo referente a la carga del modelo, se emplean los servicios de ROS, para la carga del modelo generado en Gazebo, un ejemplo de carga de la ejecución de (Fig. 3.17), se adjunta en (Listing. 3.1). Listing 3.1: Arranque de entorno modelado en Gazebo roslaunch tiago 2dnav gazebo tiago navigation public . launch El entorno de simulación, ha permitido gestionar y depurar la navegación del robot, con el fin de reducir errores, aproximar la navegación y ajustar los coeficientes de seguridad, referentes al radio mı́nimo de seguridad, al- rededor del robot, para evitar la colisión del mismo, permitiendo ajustar un radio mayor o menor según se requiera, tales como un mayor radio en entornos donde se requiera mayor seguridad como pudiera ser ubicacio- nes con una alta afluencia de personas,véase (Fig. 3.18). Entorno real: Una vez realizadas las pruebas en el entorno simulado, se puede proceder
  • 87. 3.2 Software 65 Figura 3.18: Navegación autónoma del robot en simulación, vista dividida con el mapeo el entorno de trabajo y la localización del robot en el mismo. Permitiendo la navegación de robot TIAGo a través del mapa generado. Los métodos de navegación del robot a través del mapa generado se dis- tinguen como se comento previamente en la descripción, en autónomo o teleoperado. En lo referente a los métodos dentro del ámbito de los autóno- mos que han sido empleados, destacar tres tipos diferenciados. • Selección de punto objetivo gráfico: Tal y como se muestra en (Fig. 3.19), se puede seleccionar un punto dentro del mapa generador mediante la opción 2D Navigation Goal, y visualizado con la herramienta Rviz, como objetivo, y TIAGo, gene- rará de manera autónoma la trayectoria más optima y se desplazará hacia dicho punto objetivo. En caso de detectar obstáculos, re-calculará otra trayectoria óptima con el fin de llegar a su destino y sin producir ninguna colisión. En caso de no encontrar un óptimo, por ejemplo por espacio insuficiente para el paso, quedará en modo espera re-calculando la nueva trayec- toria hasta poder alcanzar el objetivo. Para ello, el robot TIAGo, deberá de estar localizado, por lo tanto se
  • 88. 66 Arquitectura del sistema Figura 3.19: Navegación autónoma del robot en el entorno establece a través de los servicios de ROS, la configuración en modo localización tal y como queda adjunto en (Listing. 3.2). Listing 3.2: Configuración de TIAGo en modo localización rosservice c a l l /pal navigation sm ”input : ’LOC’ ” En último lugar, se puede habilitar la visualización del mapa genera- do con la posición del robot localizado sobre el mismo, a partir descri- to en (Listing. 3.3), el cual iniciará Rviz con el último mapa generado. Listing 3.3: Inicio de Rviz para la visualización del mapa generado rosrun rviz rviz −d ‘ rospack find tiago 2dnav ‘/ config /rviz/navigation . rviz El robot es capaz de trabajar con múltiples mapas, permitiendo el cambio del mismo realizando llamadas al servicio de ROS para el cambio de mapa, tal y como se describe en (Listing. 3.4). Listing 3.4: Servicio de ROS para el cambio de mapa ssh root@tiago −38c rosservice c a l l /pal map manager/change map ”input : ’MAPNAME’ ”
  • 89. 3.2 Software 67 Siendo en este caso la variable MAP NAME el nombre en cuestión, y la carga del comando, realizada desde el propio ordenador del robot TIAGo en cuestión tal y como se puede observar por la conexión SSH en cuestión. • Navegación hasta punto objetivo vı́a terminal: El robot TIAGo, permite la recepción de un punto objetivo para lle- var a cabo la navegación vı́a terminal, mediante el topic de lectura. Definiendo como topic, los elementos nodos que emplea ROS, para la emisión y recepción de datos o mensajes. En concreto, el nodo em- pleado para la recepción del punto al cual desplazarse es el descrito en (Listing. 3.5). Listing 3.5: Topic ROS para la navegación /move base/goal move base msgs/MoveBaseActionGoal Al igual que en las configuraciones previas, se requerı́a configurar el robot en modo localización, tal y como se describió en (Listing. 3.2). • Navegación hasta punto objetivo vı́a YARP: Con el fin de agilizar y facilitar el envı́o de mensajes al robot TIAGo, se ha empleado la herramienta YARP. YARP, es un middelware de comunicaciones, multiplataforma, que permite en envı́o de mensajes, tales como datos, imagen, audio entre distintos puertos, siendo estos los objetos empleados para el envı́o de los datos. Por ello, se ha empleado YARP, como intermediario para enviar el punto objetivo a un puerto YARP, y sea YARP, quien se comunique con el puerto de ROS, para realizar la solicitud de un punto objetivo. Destacar, que al igual que la configuración de control a través de Rviz o vı́a terminal, requerirá de una pre-configuración de modo localiza- ción (Listing. 3.2).
  • 90. 68 Arquitectura del sistema Mapeado del entorno aplicado al robot TIAGo A través de este apartado, se describirá la metodologı́a llevada a cabo para el mapeado del entorno y la generación del mapa del entorno. Tal y como se describió al inicio de la sección, TIAGo, se encuentra constituido por sensores láser y ultrasonidos que le permiten llevar a cabo el mapeado del entorno, ası́ como la tecnologı́a SLAM, y la odometrı́a, para su localización, y en casos de un entorno desconocido mapeado y localización simultánea (Fig. 3.16). El proceso de mapeado del entorno se realiza a través de los servicios de ROS para el mapeado del entorno. Dichos servicios pueden ser ejecutados tanto desde el ordenador del propio robot, como desde un ordenador configurado con el ROS MASTER del robot a través de la expresión (Listing. 3.6). Listing 3.6: Configuración de TIAGo en modo mapeado rosservice c a l l /pal navigation sm ”input : ’MAP’ ” Una vez arrancado el servicio, se puede proceder a desplazar el robot TIAGo, para generar el mapa del entorno. El control del robot, se puede llevar a cabo de múltiples maneras en función de realizar el mapeado para un entorno de simulación para el depurado de tareas o la ejecución en un entorno real. Entorno de simulación: En caso de proceder con el mapeo de un entorno en simulación, se reque- rirá previamente, arrancar un entorno virtual generado para Gazebo, tal y como se describe en (Listing. 3.7). Listing 3.7: Inicio de entorno virtual para el mapeado en simulación roslaunch tiago 2dnav gazebo tiago mapping public . launch Una vez iniciado el entorno, y recapitulando con los métodos de desplaza- miento, se puede proceder con el control tele-operado mediante (Listing. 3.8).
  • 91. 3.2 Software 69 Listing 3.8: Control teleoperado por teclado rosrun key teleop key teleop . py Por último, podremos guardar el mapa generado, para posteriormente rea- lizar una depuración de errores y falsos positivos mediante el servicio de ROS, descrito en (Listing. 3.9). Listing 3.9: Guardado del mapa generado en simulación rosservice c a l l /pal map manager/save map ” directory : ’ ’ ” ˜ / . pal/tiago maps/config Entorno real: En lo referente al control de movimiento en el entorno real, se añaden más posibilidades. Al igual que en el control en simulación se permite el control desde PC mediante el servicio de ROS, tele-operado por teclado, mostrado en (Listing. 3.8). Sin embargo, esta permitido el control mediante joystick, ası́ como aplicaciones implementadas conectadas con el servicio de key te- leop. A su vez, el guardado del mapa generado ofrece dos opciones, sobre el propio robot, tal y como se adjunta en (Listing. 3.10). Listing 3.10: Guardado del mapa generado del entorno en el propio robot rosservice c a l l /pal map manager/save map ” directory : ’ nombre directorio ’ ” Por otro lado, se permite su guardado en el ordenador de desarrollo, me- diante el comando (Listing. 3.11). Listing 3.11: Guardado del mapa generado del entorno del pc rosrun map server map saver
  • 92. 70 Arquitectura del sistema Para concluir, se puede observar la generación del mapa en tiempo real, a partir del visor de Rviz, y el servicio de ROS, con un inicio tal que (Listing. 3.12). Listing 3.12: Visualización del mapa generado rosrun rviz rviz −d ‘ rospack find tiago 2dnav ‘/ config/rviz /navigation . rviz Dicha visualización puede observarse en (Fig. 3.20). Figura 3.20: Mapeado del entorno
  • 93. 3.2 Software 71 Localización del robot En el apartado, Localización del robot, se abordará las posibilidades empleadas para localizar al robot dentro del entorno del trabajo. Para ello, se dispone de dos posibilidades, bien a partir de una nube de puntos o a partir de un vector de posición aproximada. Nube de puntos: Mediante el servicio de ROS, para la localización de robots a partir de nu- bes de puntos o point cloud, tal y como se muestra en (Fig. 3.21), se permite un modo de localización. Figura 3.21: Localización por nube de puntos
  • 94. 72 Arquitectura del sistema El servicio de nube de puntos, es un conjunto de vectores en el sistema de coordenadas cartesianas en 3D, a partir de la cual se realiza la repre- sentación de la superficie del entorno. A través de ello TIAGo es capaz de localizarse en el entorno previamente generado. Dicho servicio de ROS, puede ser solicitado mediante la expresión (Listing. 3.13). Listing 3.13: Localización por nube de puntos rosservice c a l l / g l o b a l l o c a l i z a t i o n ”{}” Dicha nube de puntos, puede ser modificada, aumentando o disminuyen- do el número de vectores, por lo tanto aumentando o no la precisión de la localización y por lo tanto los requerimientos de cómputo. En lo referente a este apartado, se ha realizado una depuración, intentan- do obtener una localización rápida y correcta, con el fin de disminuir los requerimientos de procesamiento, sin embargo, se ha podido observar que el requerimiento mı́nimo del número de partı́culas es de 800 unidades pa- ra llevar a cabo unos resultados satisfactorios. Dicha modificación puede ser realizada a partir del fichero amc.yaml, ubicado en (Listing. 3.14). Listing 3.14: Depuración de localización por nube de puntos /tiago−public ws/src/tiago navigation/tiago 2dnav/config / l o c a l i z a t i o n /amcl . yaml Siendo el formato del fichero el adjunto en, (Listing. 3.15) Listing 3.15: Ajuste de localización por nube de puntos min particles : 500 max particles : 5000 kld err : 0.05 kld z : 0.99 update min d : 0.02 update min a : ! degrees 3.0
  • 95. 3.2 Software 73 resample interval : 1 converge dist threshold : 0.5 Vector de posición aproximada: Por último, TIAGo, proporciona una localización a través de un vector de posición aproximada. Para ello al igual que en el método de control para la navegación en entorno real por Gazebo, se requiere el arranque del entorno mapeado, descrito en (Listing. 3.12), y tras dicho arranque seleccionar la opción, 2D Estimate Pose, con el punto y orientación, tal y como se muestra en (Fig. 3.22) Figura 3.22: Localización por vector aproximado
  • 96. 74 Arquitectura del sistema 3.2.2. Reconocimiento de voz Con el fin de poder detectar y reconocer correctamente las solicitudes reali- zadas por el usuario hacia el robot, se ha requerido la incorporación de compo- nentes que permitan el reconocimiento de voz. Para ello, la herramienta seleccionada ha sido speechRecognition [27]. El soft- ware speechRecognition 3, es una implementación para reconocimiento de voz escrito en lenguaje python, y desarrollada por el grupo RoboticsLab de la Uni- versidad Carlos III de Madrid, España. Se trata de un sistema de reconocimiento de voz basado en el uso de las li- brerı́as de código abierto pocketsphinix junto a la implementación de puertos de comunicaciones a través del middelware YARP [28], Italian Institute of Techno- logy, Italia, permitiendo generar un sistema de reconocimiento de voz comple- tamente modular. En lo referente a pocketsphinix 4, se trata de un sistema de librerı́as para el reconocimiento de voz, ideadas para sistemas embebidos. Versión derivada de sphinix, generalmente abreviado de CMU Sphinix, siendo este un sistema de li- brerı́as para el habla y reconocimiento de voz, desarrollado por la Unviversidad de Carnegie Mellon, Estados Unidos. Actualmente, dicho proyecto consta de un conjunto de 4 versiones y un sistema para el entrenamiento de modelos acústi- cos, conocido como SphinixTrain. A partir de este sistema de reconocimiento de voz modular, basado en puer- tos, se puede seleccionar la fuente de audio objetivo, enviar los datos sin proce- sar a través de la red, para llevar a cabo el reconocimiento, y una vez procesado, poder enviar los resultados del mismo a través de la red para su uso. Basado en el sistema cliente/servidor, se permite en tiempo de ejecución la selección del diccionario de reconocimiento solicitado, permitiendo al sistema unos resultados más veraces al acotar el campo de reconocimiento. 3 https://github.com/roboticslab-uc3m/speech 4 https://github.com/cmusphinx/pocketsphinx
  • 97. 3.2 Software 75 Una vez descrito el sistema de reconocimiento de voz empleado, se proce- derá a detallar, la creación de los diccionarios requeridos y la configuración de red para su uso. Generación de diccionarios: En lo referente al sistema de reconocimiento de voz, basado en Sphinix, requiere de una previa generación de diccionarios para su reconocimiento. El sistema Sphinix, emplea diccionarios de tipo fonético con un mapeado de las palabras del vocabulario lista a reconocer, ası́ como la secuencia de los fonemas. Dicho diccionario basado en fonemas tiene la capacidad de generar pro- nunciaciones alternativas, permitiendo el reconocimiento ante variantes de entrada en los fonemas a objetivo (Listing. 3.16). Listing 3.16: Descomposición en fonemas del vocabulario de reconocimiento en función de la pronunciación the TH IH the ( 2 ) TH AH Tal y como se puede observar en (Listing. 3.17), el sistema de reconoci- miento, descompone las palabras objetivo en fonemas a la hora de realizar el entrenamiento, pos-procesado y detección. Listing 3.17: Descomposición en fonemas del vocabulario de reconocimiento hello H EH L OW world W ER L D Se trata de un sistema de reconocimiento booleano secuencial, analizando y descomponiendo en fonemas el audio procesado y comparando poste- riormente con el diccionario, de manera secuencial,una a una cada una de las palabras descritas en el diccionario fuente y en caso de encontrar