LosadaGonzalez Antonio TD 2022

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 448

i

Escola Internacional de Doutoramento

Antonio Losada González

TESE DE DOUTORAMENTO

APLICACIONES EN SISTEMAS DE NAVEGACIÓN EN


INTERIORES DE ALTA PRECISIÓN

Dirixida polo doutor:

Manuel Pérez Cota

Ano 2022

i
Escola Internacional de Doutoramento

Manuel Pérez Cota

FAI CONSTAR que o presente traballo, titulado “Aplicaciones en sistemas


de navegación en interiores de alta precisión”, que presenta Antonio Losada
González para a obtención do título de Doutor, foi elaborado baixo a súa
dirección no programa de doutoramento “Programa de Doutoramento en
Sistemas de Software Intelixentes e Adaptables”.

Ourense, 4 de xullo de 2022

O Director da tese de doutoramento

Dr. Manuel Pérez Cota

ii
“No envíes a un humano para hacer el trabajo de una máquina”

Matrix

“No existen preguntas sin respuesta, solo preguntas mal formuladas”

Matrix

iii
Agradecimientos
Tengo que empezar agradeciendo su colaboración a mi director de tesis, el Dr.
Manuel Pérez Cota, porque más que un director ha sido un amigo, al que
conozco desde hace muchos años. Por su tiempo, su actitud siempre positiva,
ese buen humor y el saber ver la parte positiva de todas las situaciones, sus
consejos y su insistencia para que terminara este trabajo a pesar de mi
costumbre en dispersarme y abarcar nuevas áreas, ha permitido que fuera
posible finalizar esta tesis.

Es imposible no citar a mi gran amigo, el Dr. Florentino Fernández Riverola


(Floro para los amigos). Han pasado 34 años desde que comenzó nuestra
amistad, y sabemos que, aunque pasen años sin vernos siempre estaremos ahí.
Gracias por su tiempo, su experiencia, su visión, por su claridad de ideas y por
sus consejos para definir la línea a seguir en algunos momentos en los que
estaba algo perdido.

Gracias también a mis hijos Daniel y Xulia. Aunque suene muy trillado, son lo
mejor que me ha pasado, y gracias a sus aficiones, el futbol y el taekwondo que
me han proporcionado cientos de horas de espera en el coche. Sin esas horas
no habría sido posible escribir esta tesis.

Gracias a mi mujer, por aguantar los cambios de humor cuando las cosas no
iban como esperaba y por las horas comunes que le ha robado este trabajo.

Es imposible olvidarse de mis padres, que con mucho esfuerzo y cariño me han
educado y me han permitido formarme para que pudiera llegar hasta aquí, y
gracias a mi hermano por estar siempre ahí cuando lo necesito.

A mi padre.
Aunque sea irracional, quiero pensar que donde está puede verme.

iv
Prólogo
Hay pocas cosas más impresionantes que la robótica antropomórfica. Esos
entes artificiales que cada vez se parecen más a nosotros. Son capaces de
moverse, hablar e interactuar con su entorno. Tienen movimientos, acciones y
respuestas cada vez más imprevisibles y un aspecto más humano. Una de las
capacidades más espectaculares de los robots es su movilidad autónoma. Que
sean capaces de establecer sus propias rutas y navegar en nuestros propios
entornos es algo que llama mucho la atención. Cada vez son más conscientes
de su entorno, si es que se puede emplear esta expresión, y en entornos muy
acotados, los robots más avanzados son capaces de navegar únicamente
empleando la visión, a costa de ejecutar complejísimos modelos neuronales
que requieren de cantidades ingentes de información junto con no menos
ingentes cantidades de procesamiento para proceder al entrenamiento de estos
modelos. Por este motivo, estos sistemas están relegados a ser producidos por
grandes multinacionales y grandes equipos de investigación.

Para el resto de los proyectos que involucran navegación autónoma es


necesario emplear sistemas de localización o también llamados sistemas de
posicionamiento. Mediante estos sistemas, los robots son capaces de obtener la
posición, normalmente de modo absoluto, en la que están situados en el área
de cobertura, de modo que pueden emplear esta información, conjuntamente
con la indicación de la posición destino a la que deben llegar, para establecer
una ruta de navegación. Por todos es conocido el omnipresente GPS (Global
Positioning Ssytem). Empleando balizas satelitales es capaz de calcular la posición
de cualquier objeto con un receptor GPS en la superficie terrestre. En nuestro
caso, para la navegación de robots dentro de estructuras se necesita un sistema
de localización en interiores. Estos sistemas son similares en concepción lógica
a los sistemas de navegación en exteriores, pero normalmente son mucho
menos complejos. Los sistemas de navegación global no son aptos para
navegación en interiores por dos motivos principales: por precisión, por grado
de penetración o por ambos. Normalmente los sistemas de navegación en

v
exteriores tienen rangos mínimos de precisión del orden de decenas de
metros. Aplicado a una casa, sería como no ser capaces de identificar si el robot
se encuentra dentro o fuera de la ella, o incluso en la casa del vecino. En otros
muchos casos, las señales de las balizas no son capaces de atravesar muros y
paredes, como pasa con la débil señal de los satélites de la constelación GPS.
Por estos motivos, es necesario emplear una tecnología diferente para los
sistemas de localización en interiores. En contraposición con los sistemas de
localización global que, en su mayor parte, emplean ondas de radio, los
sistemas de localización en interiores emplean una variedad mucho mayor de
tipos de señales. Tenemos sistemas que emplean señales ópticas con luz visible
o luz concentrada como láseres, señales de acústicas tanto en el rango audible
como en el rango ultrasónico, señales de radio y campos magnéticas. Existen
decenas de modelos de sistemas de navegación en interiores, dependiendo de
las señales empleadas, su cobertura, su ámbito y las características internas de
desarrollo. La mayoría de ellos se diseñan de un modo relativamente universal,
sin limitarlo a las características de un entorno concreto, con lo que pueden
ser empleados en multitud de proyectos, pero como contrapartida, no pueden
aprovechar las características diferenciales del entorno para el que han sido
diseñados. El sistema que se propone en esta tesis se denomina SAPPO (Sistema
de Alta Precisión de Posicionamiento). Es un sistema de localización en espacios
interiores de muy alta precisión diseñado específicamente para ser empleado
en el interior de una casa. Forma parte de un ecosistema de mejora de la
accesibilidad en una casa para personas tetrapléjicas llamado HAURA [1].
Dado que se pretende que las capacidades económicas no sean un requisito
para poder implantar SAPPO, se ha intentado que sus costes se mantengan en
rangos muy bajos. Para alcanzar su objetivo, no solo será necesario conseguir
que cada una de las balizas y el dispositivo que debe portar el robot para su
localización sean muy económicos, sino que también, el número de balizas que
deben instalarse sea el mínimo posible. Debido a que se pretende que sea un
dispositivo doméstico, debe poder instalarse sin conocimientos técnicos
elevados y su configuración no debe requerir de complejos procesos de

vi
entrenamiento. y dado que necesita ser el sistema principal de navegación de
robots de tamaño grande por la casa, su precisión debe ser muy alta para
conseguir que un robot de gran tamaño sea capaz de realizar las maniobras de
navegación dentro de una casa o piso, en la que normalmente los espacios de
tránsito son reducidos.

vii
Índice general

Índice de Tablas…………………….………..………..………………….………..xi

Índice de Figuras…………………………………….……….…………….….......xii

1 Introducción ................................................................................................ 1
1.1 Antecedentes ............................................................................................ 1
1.2 Hipótesis de partida ................................................................................. 3
1.3 Metodología de investigación ................................................................. 4
1.4 Contexto y evolución de la investigación ............................................... 6
1.5 Estructura de la memoria ...................................................................... 12

2 Los sistemas de localización ...................................................................... 17


2.1 Introducción .......................................................................................... 17
2.2 Evolución de los sistemas de localización ............................................ 18
2.3 Sistemas de localización en interiores .................................................. 23
2.4 Clasificación de los sistemas de localización en interiores.................. 24
2.5 Resumen del capítulo ............................................................................ 30

3 Robots de servicio ...................................................................................... 33


3.1 Introducción .......................................................................................... 33
3.2 Clasificación de tareas y campos de aplicación .................................... 36
3.3 Interfaz hombre-máquina ..................................................................... 38
3.4 Robótica cognitiva e interacción social ................................................ 40
3.5 Componentes de un robot de servicio ................................................. 41
3.6 Competiciones de robots de servicios .................................................. 62
3.7 Resumen del capítulo ............................................................................ 64

4 Sistemas de localización en interiores: estado del arte y elección


tecnológica ......................................................................................................... 67
4.1 Introducción .......................................................................................... 67
4.2 Análisis de señales a emplear para localización en interiores ............ 68
4.3 Sistemas de localización de alta precisión con ultrasonidos ............... 90
4.4 Sistemas de localización en interiores más representativos .............. 103
4.5 Resumen del capítulo .......................................................................... 111

5 SAPPO. Sistema de Alta Precisión de POsicionamiento ........................ 113


5.1. Introducción ........................................................................................ 113
5.2. Función de cada elemento .................................................................. 114
5.3. Descripción de las balizas .................................................................... 116
5.4. Codificación de la señal ....................................................................... 125
5.5. Sistema de sincronización ................................................................... 125

viii
5.6. Descripción del hardware.................................................................... 126
5.7. Composición de las balizas .................................................................. 132
5.8. Algoritmo de obtención de medidas concurrentes ........................... 140
5.9. Problemática en sistemas de localización con arrays de sensores ... 153
5.10. Filtrado de señales ............................................................................ 164
5.11. Estimación de la orientación ........................................................... 168
5.12. Resumen del capítulo....................................................................... 178

6 RODI. Robot de servicio para investigación y pruebas de SAPPO ........ 181


6.1 Introducción ........................................................................................ 181
6.2 Componentes e imágenes ................................................................... 182
6.3 Sistema de locomoción ........................................................................ 187
6.4 Resumen del capítulo .......................................................................... 197

7 DANI. Robot de servicio de exploración y telepresencia ....................... 199


7.1 Introducción ........................................................................................ 199
7.2 Sensores y actuadores .......................................................................... 200
7.3 Estructura, componentes y composición modular ............................ 201
7.4 Software de control .............................................................................. 213
7.5 Sistema de procesamiento del lenguaje natural ................................ 218
7.6 Sistema de navegación ......................................................................... 220
7.7 Resumen del capítulo .......................................................................... 229

8 Resultados obtenidos ............................................................................... 231


8.1 Introducción ........................................................................................ 231
8.2 Diseño de las pruebas y entorno de ejecución .................................. 231
8.3 Evaluación estática ............................................................................... 236
8.4 Evaluación dinámica ............................................................................ 247
8.5 Resultados obtenidos en otros módulos de HAURIA ....................... 250
8.6 Resumen del capítulo .......................................................................... 255

9 Conclusiones y trabajo futuro ................................................................. 259


9.1 Introducción ........................................................................................ 259
9.2 Evolución y mejoras en SAPPO........................................................... 260
9.3 Evolución de otros módulos de HAURIA .......................................... 264
9.4 Resumen del capítulo .......................................................................... 269
Anexo I. Acrónimos ......................................................................................... 289

Anexo II. Tipos y propiedades de los transceptores de ultrasonidos ............ 293

Anexo III. Cálculo de precisión entre dos transductores en SAPPO ............ 311

Anexo IV. Cálculo de cobertura de SAPPO en una habitación real ............. 329

ix
Anexo V. Navegación de un robot diferencial con CoppeliaSim .................. 335

Anexo VI. Estudio cinemático de la caminata bípeda en robots de servicio 343

Anexo VII. XULIA ........................................................................................... 369

Anexo VIII. La Infrabola ................................................................................. 405

Anexo IX. ROMAI. Robot manipulador inteligente. Estudio cinemático .... 419

10 Referencias ............................................................................................... 271

x
Índice de Tablas

Tabla 4.2.1 Tecnologías de sistemas de localización en interiores. ................. 71

Tabla 5.7.1. Consumo de los modos de sueño del chip Atmega328. ............. 138

Tabla 8.3.1 Datos estadísticos de la media rápida ........................................... 239

Tabla 8.3.2 Valores estadísticos de las medidas con media móvil. ................. 241

Tabla 8.3.3 Datos estadísticos del procesado por filtro EMA. ....................... 242

Tabla 8.3.4 Datos estadísticos del procesado con el filtro de Kalman. .......... 244

Tabla 8.3.5 Información estadística de la muestra. ......................................... 245

xi
Índice de Figuras

Figura 1.4.1. Módulos de HAURIA. ..................................................................... 8

Figura 1.4.2. Componentes de los nodos de comunicaciones. .......................... 9

Figura 1.4.3. Imagen de DANI. ........................................................................... 11

Figura 1.4.4. Imagen de la Infrabola. ................................................................. 12

Figura 2.2.1 Astrolabio. ....................................................................................... 19

Figura 2.2.2 Sextante. .......................................................................................... 19

Figura 2.2.3. SONAR. Cálculo de posiciones relativas empleando el sonido. . 20

Figura 2.2.4. LORAN. Localización mediante torres de radio. ........................ 20

Figura 2.2.5. OMEGA. Sistema de posicionamiento global. ............................. 21

Figura 2.2.6. Sistema GPS con un mínimo de 6 satélites accesibles. ................ 22

Figura 2.2.7. Comparativa de precisión de distintos sistemas de localización. 22

Figura 2.3.1. Distribución mínima de balizas por habitación. ......................... 24

Figura 2.4.1. Multiplexación por división en el tiempo. ................................... 28

Figura 2.4.2. Acceso múltiple por división de frecuencias (FDMA). ............... 29

Figura 2.4.3. FHSS. Espectro ensanchado con salto de frecuencia.................. 29

Figura 2.4.4. DSSS. Información con el patrón pseudoaleatorio. .................... 30

Figura 2.4.5. OFDM. Transmisión de frecuencias ortogonales. ....................... 30

Figura 3.5.1. Control de lazo abierto. ................................................................ 42

Figura 3.5.2. Control de lazo cerrado. ............................................................... 42

Figura 3.5.3 Sensor de sonido............................................................................. 44

Figura 3.5.4 Reloj con batería para usar con microcontroladores. .................. 44

Figura 3.5.5 Fotorresistencia. .............................................................................. 44

Figura 3.5.6 Microcámara. .................................................................................. 45

Figura 3.5.7 Sensor de humedad. ....................................................................... 45

xii
Figura 3.5.8 Sensor de temperatura de objetos por infrarrojos. ...................... 46

Figura 3.5.9 Tira de presión para medición de fuerza...................................... 46

Figura 3.5.10 Encoder óptico. ............................................................................ 46

Figura 3.5.11 Sensor de posición. ....................................................................... 47

Figura 3.5.12 Sensor Hall de inducción magnética. ......................................... 47

Figura 3.5.13 Unidad IMU MPU-6050. .............................................................. 48

Figura 3.5.14 Sensor de ultrasonidos HC-SR04. ................................................ 49

Figura 3.5.15 Detector de distancias por infrarrojos. ........................................ 49

Figura 3.5.16 Sensor de proximidad infrarrojo. ................................................ 49

Figura 3.5.17 Medidor láser de distancias TOF10120. ...................................... 50

Figura 3.5.18 Sensor LIDAR. .............................................................................. 51

Figura 3.5.19 Kinect XBox 360. .......................................................................... 51

Figura 3.5.20 Sensor de detección de movimiento. .......................................... 51

Figura 3.5.21 Sensor de detección de gas. ......................................................... 52

Figura 3.5.22 Sensor de vibración. ..................................................................... 52

Figura 3.5.23 Sensor de caída. ............................................................................ 52

Figura 3.5.24. Tipos de articulaciones................................................................ 54

Figura 3.5.25. Partes de un cilindro hidráulico de pistón. ............................... 55

Figura 3.5.26. Partes de un servomotor. ............................................................ 57

Figura 3.5.27. Bobinados de un motor paso a paso. ......................................... 57

Figura 3.5.28. Configuración diferencial. .......................................................... 59

Figura 3.5.29. Configuración triciclo [45]. ........................................................ 60

Figura 4.2.1. Tipos de señales empleadas en los sistemas de localización. ...... 70

Figura 4.2.2. Comparativa rango de cobertura y precisión. ............................. 70

Figura 4.2.3. Esquema de funcionamiento de un LIDAR ................................ 77

xiii
Figura 4.2.4. Área de una baliza con emisión perpendicular al suelo. ............ 88

Figura 4.3.1. Distribución de balizas en el ILS Constellation. .......................... 92

Figura 4.3.2. Cobertura máxima de una baliza en SAPPO. .............................. 92

Figura 4.3.3, Cobertura de balizas situadas en el techo de [122]. ................... 94

Figura 4.4.1. Imagen de Active Bat. .................................................................. 104

Figura 4.4.2. Unidad Cricket con conexión RS232. ........................................ 105

Figura 4.4.3. Hexamite. Propuesta de distribución de tags. ........................... 105

Figura 4.4.4. Hexamite. Array de receptores. .................................................. 106

Figura 4.4.5. Esquema modular de 3D-LOCUS [177]. ................................... 107

Figura 4.4.6. Unidad DOLPHIN [123]. ........................................................... 108

Figura 4.4.7. DOLPHIN. Distribución modular [123].................................... 108

Figura 4.4.8. LOSNUS. Ejemplo de distribución de transmisores. ................ 109

Figura 4.4.9. LOSNUS. Esquema de conectividad. ......................................... 109

Figura 4.4.10. TELIAMADE. Distribución de nodos....................................... 110

Figura 5.1.1 Logo del sistema de posicionamiento SAPPO. ........................... 113

Figura 5.3.1. Cobertura de baliza instalada en el techo. ................................. 116

Figura 5.3.2. Cono de emisión ultrasónico. ..................................................... 117

Figura 5.3.3. Área de colisión a 1,70 m de altura. ........................................... 118

Figura 5.3.4. Volumen cubierto por el cono de emisión de una baliza. ........ 118

Figura 5.3.5. Proyección en suelo de cobertura de un transceptor. .............. 119

Figura 5.3.6 Área cubierta por una baliza con 4 transductores. ..................... 120

Figura 5.3.7. Área de localización con dos balizas instaladas en el techo...... 121

Figura 5.3.8. Ajuste de posición con balizas instaladas a 1,70 m. ................... 122

Figura 5.3.9 Área de localización con balizas con arrays. ............................... 123

Figura 5.3.10. Área de intersección de las balizas. .......................................... 124

xiv
Figura 5.6.1. Imagen de un sensor de distancia SRF-H04. ............................. 127

Figura 5.6.2. Imagen de un transceptor de radiofrecuencia de 433 MHz..... 129

Figura 5.6.3.Esquema básico de modulación ASK. ......................................... 130

Figura 5.6.4. Esquema del circuito receptor. ................................................... 130

Figura 5.6.5. Modulación de la señal de los módulos SRF04. ........................ 131

Figura 5.6.6. Encapsulado ATMEga328. .......................................................... 132

Figura 5.7.1. Componentes modulares de las balizas...................................... 132

Figura 5.7.2. Diseño 3D de la caja de las balizas. ............................................. 134

Figura 5.7.3. Placa PCB de la baliza de conexión a corriente de 220V. ......... 135

Figura 5.7.4. Baliza para conexión directa a 220V AC. ................................... 135

Figura 5.7.5. Módulo baliza con fuente de alimentación. .............................. 136

Figura 5.7.6. PCB de baliza de alimentación por baterías. ............................. 137

Figura 5.8.1. Pasos para efectuar una lectura. ................................................. 141

Figura 5.8.2 Multirruta. ..................................................................................... 143

Figura 5.8.3 Multirrutas opuestas. .................................................................... 143

Figura 5.8.4 Intersección esférica. .................................................................... 150

Figura 5.8.5 Reajuste de las medidas. ............................................................... 152

Figura 5.9.1. Cálculo de distancia y recorrido del ultrasonido. ..................... 154

Figura 5.9.2. Cálculo de la apotema (punto central de posicionamiento). .. 154

Figura 5.9.3. Cálculo de la apotema. ................................................................ 155

Figura 5.9.4. Geometría del array de emisores. ............................................... 156

Figura 5.9.5 Cálculo modificado de la apotema. ............................................. 157

Figura 5.9.6 Radio intermedio. ......................................................................... 158

Figura 5.9.7 Segunda apotema modificada. .................................................... 158

Figura 5.9.8. Vista superior de DANI con el array de sensores. ..................... 159

xv
Figura 5.9.9. Distancias totales a dos balizas. ................................................... 160

Figura 5.9.10. Distancias a las balizas según la disposición del robot. ........... 162

Figura 5.9.11. Cambio de trayectorias calculadas. ........................................... 162

Figura 5.9.12 Disposición de lo baliza y el anillo del robot. ........................... 163

Figura 5.9.13. Error según los grados de desviación en la orientación. ........ 163

Figura 5.9.14. Error dependiente de la distancia a 15 grados. ....................... 164

Figura 5.11.1 Sistema de lectura de orientación ............................................. 170

Figura 5.11.2 Apertura del cono de radiación de los transductores. ............. 170

Figura 5.11.3 Resolución geométrica de la orientación. ................................ 171

Figura 5.11.4 Formulación para el cálculo del punto P11. ............................. 172

Figura 5.11.5 Triángulo de cálculo. ................................................................. 173

Figura 5.11.6 Anillo de sensores del robot girado........................................... 174

Figura 5.11.7 Cálculo de orientación simple. .................................................. 176

Figura 5.11.8 Cálculo del ángulo contra el origen de coordenadas. ............. 176

Figura 5.11.9 Diagrama del algoritmo de orientación. ................................... 178

Figura 6.2.1. Descomposición modular de RODI. .......................................... 182

Figura 6.2.2. Mitad del anillo de emisores de ultrasonidos y su soporte. ...... 183

Figura 6.2.3. Encoder de lectura de velocidad angular. ................................. 184

Figura 6.2.4. Sensor infrarrojo para encoder. ................................................. 185

Figura 6.2.5. PCB de conexión de sensores. .................................................... 186

Figura 6.2.6. Descripción de componentes de RODI. .................................... 187

Figura 6.3.1. Vista posterior de RODI con los encoder y servos..................... 189

Figura 6.3.2. Motos paso a paso NEMA. ........................................................... 190

Figura 6.3.3. Controlador de potencia de un motor paso a paso. ................. 190

Figura 6.3.4. Componentes de un controlador PID........................................ 192

xvi
Figura 6.3.5. Fluctuación con Kp alto. ............................................................. 194

Figura 6.3.6. Actuación de la acción derivativa y proporcional...................... 195

Figura 6.3.7. Acción proporcional e integral. .................................................. 196

Figura 7.3.1.DANI. Ubicación de componentes.............................................. 202

Figura 7.3.2. Identificación modular................................................................ 203

Figura 7.3.3. Arduino Mega 2560. .................................................................... 205

Figura 7.3.4. Articulaciones de DANI............................................................... 205

Figura 7.3.5. Explicación gráfica del par. ........................................................ 206

Figura 7.3.6. Articulación derecha. .................................................................. 207

Figura 7.3.7. Detalle de piezas de la articulación, ........................................... 207

Figura 7.3.8. Detalle de la situación de las piezas en el brazo real. ................ 208

Figura 7.3.9. Modelos STL para impresión 3D. ............................................... 208

Figura 7.3.10. Perfil de las manos. .................................................................... 209

Figura 7.3.11. Base de DANI. Imagen exterior e interior. .............................. 209

Figura 7.3.12. Descripción de componentes de la base. ................................. 210

Figura 7.3.13. Sistema de odometría. ............................................................... 210

Figura 7.3.14. Sensor de proximidad por infrarrojo TCRT5000. .................. 211

Figura 7.3.15. Señales PWM. ............................................................................. 212

Figura 7.3.16. Configuración triciclo [45]. ...................................................... 212

Figura 7.4.1 Pantalla de control del software de gestión de DANI. ............... 214

Figura 7.4.2 Articulación del hombro. ............................................................. 216

Figura 7.6.1 Plano de la planta superior de la casa. ........................................ 221

Figura 7.6.2 Círculo de proximidad. ................................................................ 223

Figura 7.6.3 Menú principal del sistema de navegación. ................................ 224

Figura 7.6.4 Segmentos de la ruta segura. ....................................................... 224

xvii
Figura 7.6.5 Identificación de obstáculos ........................................................ 225

Figura 7.6.6 Planificación de navegación......................................................... 226

Figura 7.6.7 Ruta de enlace al grafo de navegación. ....................................... 227

Figura 7.6.8 Definición de atajos de aproximación. ....................................... 228

Figura 7.6.9 Ajuste de posición para enlace con la trayectoria. ..................... 229

Figura 8.2.1Representación gráfica de la media. ............................................ 233

Figura 8.2.2 Representación de la moda de la distribución. .......................... 234

Figura 8.2.3 Representación de la mediana. ................................................... 234

Figura 8.2.4 Forma visual de la distribución de probabilidad. ....................... 235

Figura 8.3.1 Gráfico de dispersión de las medidas. ......................................... 237

Figura 8.3.2 Histograma de error de las medidas. .......................................... 238

Figura 8.3.3 Gráfico de dispersión de las posiciones. ..................................... 239

Figura 8.3.4 Rangos de los errores de las medidas. ......................................... 239

Figura 8.3.5 Comparativa de algoritmos de recuperación de las medidas. ... 240

Figura 8.3.6 Medidas filtradas mediante una media móvil. ............................ 241

Figura 8.3.7 Medidas de distancia procesadas con filtro EMA. ...................... 242

Figura 8.3.8 Medidas de distancia procesadas con el Filtro de Kalman. ....... 243

Figura 8.3.9 Comportamiento de los filtros media móvil, EMA y Kalman. ... 244

Figura 8.3.10 Dispersión de las medias obtenidas con filtro de Kalman. ...... 245

Figura 8.3.11 Gráfica de los módulos de los vectores sobre la media. ........... 246

Figura 8.3.12 Distribución de medidas alrededor del punto medio. ............. 247

Figura 8.4.1 Distribución de las posiciones durante la trayectoria. ............... 248

Figura 8.4.2 Trayectoria en forma de cuadrilátero. ........................................ 249

Figura 8.5.1 Placa del reconocimiento del premio. ........................................ 253

Figura 8.5.2 Pantalla de control y visualización del brazo articulado. ........... 255

xviii
Figura 9.2.1 Distribución de posiciones recuperadas sin filtrado. ................. 260

xix
1
1 Introducción

En esta tesis se propone el desarrollo un sistema de alta precisión para


localización en interiores que permita ubicar robots de servicio con precisión
subcentimétrica. Dado que el concepto de interiores abarca un amplio
espectro de ubicaciones que pueden estar dedicadas a fines muy diversos y
cuyas características obligarán a realizar desarrollos muy específicos, este
trabajo se ha centrado en el problema concreto de la localización en espacios
interiores de hogares.

Al haber focalizado el problema en la localización dentro de casas o pisos,


surgen una serie de requisitos adicionales y condicionantes que podrán ser
explotados para conseguir un sistema válido. A mayores de los requisitos de
precisión previamente comentados, para que un sistema de este tipo pueda
tener la posibilidad de ser implantado en el mayor número de hogares posible
debe ser económico, estar formado por componentes fácilmente disponibles,
ser muy sencillo de instalar y configurar, requerir el despliegue del mínimo
número de componentes por habitación, y que cada uno de estos
componentes requiera la mínima cantidad de infraestructura posible.

1.1 Antecedentes
La propuesta original de este sistema data del año 2014, en el que comienza
nuestra relación con el Instituto Novo Ser 1 de Rio de Janeiro, en Brasil. Esta

1 https://www.novoser.org.br

1
Antecedentes

organización sin ánimo de lucro tiene entre sus finalidades mejorar la vida de
personas discapacitadas con movilidad reducida, llevando a cabo programas
de integración con personas parapléjicas y tetrapléjicas. Fue creado por la
familia de Ricardo González en el año 2002, después que éste sufriera un
grave accidente de tráfico que lo dejó tetrapléjico. Un alto porcentaje de
usuarios del Instituto Novo Ser padecen tetraplejia, lo que genera una
necesidad casi permanente de ayuda externa para todas las tareas de su vida,
incluso para las más cotidianas. Por este motivo, cualquier ayuda que les
permita alcanzar cierto grado de libertad será un avance importante en la vida
de estas personas.

Desde esta organización se solicitó la creación de un ecosistema que permitiera


mejorar la vida de personas con tetraplejia dentro de su hogar, consiguiendo
que alcanzaran un mayor grado de libertad mediante medios tecnológicos,
aunque manteniendo el sistema dentro de un rango de costes muy contenido,
dado que las capacidades económicas medias en Brasil son bajas y el sobrecoste
que ocasiona el mantenimiento diario de una persona dependiente es alto.

Dentro del ecosistema resultaba clave el apartado de mejora de la movilidad,


donde se identificó como sistema base imprescindible el desarrollo de un
sistema de localización en interiores (ILS, Indoor Location System) que
permitiera la navegación de robots autónomos, como una silla de ruedas
robótica o un robot de servicio de vigilancia y telepresencia. La presente tesis
se centra en el desarrollo de este sistema de localización en interiores de alta
precisión para navegación de robots autónomos dentro de una vivienda
estándar.

Un sistema de localización en interiores permitirá tener ubicado en todo


momento una estación móvil o un robot dentro de la vivienda con suficiente
precisión para que sea capaz de navegar, desplazarse por la casa y realizar las
maniobras necesarias para moverse entre las distintas habitaciones. Los
requisitos de precisión dentro de una casa son mucho más estrictos que en
ubicaciones mucho más abiertas, dado que los pasillos suelen ser estrechos,
entre 80 y 100 centímetros, y normalmente será necesario realizar maniobras

2
Introducción

precisas para entrar en las habitaciones. A mayores, hasta hace muy pocos años,
las viviendas no se diseñaban con conducciones para un cableado de
comunicaciones general, y todos los sistemas de localización con cierta
precisión necesitan balizas que se emplearán como puntos de referencia fijos
para posicionar los robots, por lo que será necesario diseñar un sistema que
haga uso del mínimo cableado posible, desplegando el menor número de
balizas en cada habitación.

1.2 Hipótesis de partida


La investigación en el campo de los sistemas de localización en interiores se
viene desarrollando desde hace más de 40 años, por lo que resulta complicado
realizar una aportación novedosa en el área. Sin embargo, debido
fundamentalmente a su complejidad de instalación y alto coste asociado, este
tipo de sistemas no ha sido ampliamente implantado, por lo que casi todas las
propuestas realizadas se han quedado en el ámbito del laboratorio, no siendo
necesario, en estos casos, realizar un análisis preciso de su aplicación en un
entorno real específico. En el caso que nos ocupa, el sistema que se describe
en el presente trabajo de investigación tiene como aplicación específica la
implantación dentro de viviendas. Por este motivo, debe cumplir una serie de
requisitos que no sería necesario analizar para pruebas genéricas en entorno
de laboratorio, o para implantación en naves u otros entornos interiores con
características distintas.

Esta especificidad es lo que distingue a este trabajo de todos los desarrollos


analizados en este campo de investigación, aportando sus características
diferenciales para conseguir el objetivo propuesto.

Así pues, partiendo del escenario descrito en la Sección 1.1, el presente trabajo
de investigación pretende demostrar la hipótesis de partida que establece que
es posible implementar un sistema de posicionamiento de alta precisión en una vivienda
estándar mediante el uso de dispositivos de bajo coste y con una baja densidad de balizas
por habitáculo, que sirva como base para el desarrollo de un sistema de navegación de
robots de servicio autónomos.

3
Metodología de investigación

1.3 Metodología de investigación


El método científico tradicional pretende dar soporte a problemas del mundo
ya existentes. Su objetivo es conseguir alcanzar descripciones de distintos
elementos, objetos o su comportamiento, de forma que sean precisas, concisas
y verificables. En ingeniería no se pretende describir, sino que se pretende
crear, cambiar o transformar, no se pretende encontrar algo existente, se
pretende crear algo nuevo. Los ingenieros parten de la realidad y su
comportamiento y la emplean para conseguir crear artefactos beneficiosos y
útiles.

Para alcanzar una solución efectiva y eficiente a un problema, el mejor modo


es abordarlo con un paradigma de resolución de problemas que haya
demostrado su eficacia. Por lo tanto, después revisar múltiples metodologías de
investigación, se ha elegido la metodología DSR (Design Science Research) como
la que mejor encaja en el desarrollo del sistema propuesto en esta tesis doctoral,
favoreciendo la adquisición de conocimiento e innovación a partir del
problema y los procesos experimentales, que después de su inclusión en la
solución, permiten la creación de un ciclo de mejora continua, por las
siguientes razones:
• La metodología DSR posee un enfoque práctico para resolver problemas.
• Presenta un enfoque que permite que la solución se mejore de modo
continuo, dado que es incremental, posibilitando la inclusión de cambios
y mejoras basados en la evidencia en cualquier fase de la construcción del
artefacto.

DSR representa un enfoque de investigación cuyo objetivo es la construcción


de artefactos que sean capaces de ofrecer una solución a un problema de un
dominio dado. El problema debe ser complejo y la solución que ofrece el
artefacto debe ser innovadora. DSR es una metodología iterativa en la que se
suceden las fases de diseño, construcción y evaluación durante múltiples
aproximaciones, hasta generar el artefacto final con el que se alcanzan los
objetivos propuestos.

4
Introducción

Con DSR no solo se pretende alcanzar la solución al problema, sino que esta
solución debe ser efectiva y eficiente, proporcionando una nueva utilidad para
su usuario [2].

Como se describe en [3], se distinguen cuatro tipos de artefactos: (i)


constructores (vocabularios y símbolos), (ii) modelos (abstracciones,
representaciones y paradigmas), (iii) métodos (algoritmos y prácticas) y (iv)
construcciones o instanciaciones (implementaciones y prototipos). En
concreto, dentro del sistema que se desarrolla en el marco del presente trabajo
de investigación se generan tanto artefactos de tipo iii (nuevos algoritmos de
comunicación adaptados al hardware construido), como de tipo iv (prototipos
para el sistema de posicionamiento y dos robots de servicio experimentales).

Según [4], en la aplicación de la metodología DSR se definen tres ciclos


denominados ciclo de Relevancia, de Diseño y de Rigor.

• En el ciclo de Relevancia se realiza el estudio del arte, se identifica de forma


precisa el problema y el dominio del mismo. Deben especificarse de forma
clara los requisitos del artefacto, para posteriormente analizar todos los
trabajos de investigación relevantes sobre el estado de las investigaciones
en el dominio del problema planteado.
• Más tarde, en el ciclo de Diseño, se parte de los requisitos iniciales y de los
conocimientos extraídos en la fase anterior, en la que se han analizado
todos los trabajos de interés acerca del dominio del problema sobre el que
se aplicará el artefacto. En el ciclo de diseño se itera sobre las fases de
diseño, construcción y evaluación, hasta conseguir que el artefacto cumpla
sus requisitos.
• Finalmente, en el ciclo de Rigor se asegura que el diseño esté basado en
teorías científicas y modelos reconocidos, empleando procesos y métodos
establecidos. Una vez generado un artefacto útil y que cumpla con sus
requisitos, podrán publicarse los resultados pasando a formar parte de la
base de conocimiento que podrá contribuir al avance de otras
investigaciones sobre el mismo dominio del problema.

5
Contexto y evolución de la investigación

1.4 Contexto y evolución de la investigación


Como se comentó anteriormente, el sistema de posicionamiento en interiores
que se describe en el presente trabajo de investigación es uno de los módulos
que componen un ecosistema mayor, denominado HAURIA (Hogar Accesible
Unificando Robótica e Inteligencia Artificial), que fue diseñado para la mejora de
la accesibilidad global en el hogar de personas con tetraplejia.

La accesibilidad global o accesibilidad universal es el grado en el que todas las personas


pueden utilizar un objeto, visitar un lugar o acceder a un servicio, independientemente
de sus capacidades técnicas, cognitivas o físicas 2. Es una condición indispensable e
imprescindible para garantizar la participación de todas las personas
independientemente de las posibles limitaciones funcionales que puedan
tener.

Esta es la definición de accesibilidad que podemos encontrarnos en la


Wikipedia. A partir de aquí debemos colocarnos en los peores escenarios
posibles y enumerar la cantidad de sencillas acciones o manipulaciones que
damos por sentado que puede realizar cualquier persona, y que sin embargo
una persona con graves limitaciones físicas no podrá realizar. El mundo está
pensado para personas sin limitaciones físicas y sólo recientemente y en algunas
situaciones, la legislación está obligando a convertir en accesibles ciertos
servicios para personas con ciertas limitaciones. Cada vez más, las propiedades
de accesibilidad de los servicios ya se contemplan desde su diseño inicial.
Muchas veces la palabra accesibilidad está ligada a discapacidad, pero es la
capacidad de superación la que permite, en muchos casos, que estas personas
superen sus limitaciones para ser capaces de desarrollar su vida en un mundo
que no ha sido diseñado para ellos.

Sólo centrándonos en las limitaciones físicas, el espectro es inmenso. En el


ecosistema HAURIA se ofrecerán soluciones que mejorarán la accesibilidad,
combinando múltiples tecnologías existentes, centrándose en una de las

2 Fuente: https://es.wikipedia.org/wiki/Accesibilidad [Acceso: 25-may-2022]

6
Introducción

limitaciones físicas más severas, como es la tetraplejia, en un lugar concreto


como es el hogar.

Esta dolencia, en la mayoría de los casos, es consecuencia de un accidente, que


ocasiona la rotura de la columna vertebral a la altura de las vértebras
superiores. Según la afectación vertebral en la rotura, en lo referente a
miembros manipulativos, suele ocasionar la pérdida de movilidad total en las
piernas y la pérdida total o parcial de movilidad en los brazos que, en caso de
no ser total, los movimientos suelen quedar drásticamente limitados a
pequeños desplazamientos voluntarios de alguna de las articulaciones, y en
muchos casos, con una reducción muy significativa de la fuerza y la precisión.

Con un simple ejercicio de empatía, podremos imaginar, como decenas de


acciones que ni siquiera pensamos en lo afortunados que somos por poderlas
realizar, ahora ya no son posibles. El mundo se transforma en una extraña
prisión en la que estamos encerrados y en la que cualquier tarea se convierte
en una odisea. Con HAURIA se pretenden romper algunas de las barreras que
se encuentran estas personas, definiendo un entorno accesible que les permita
incrementar su libertad e independencia con un objetivo similar al
desarrollado en otros trabajos como [5] [6] [7] donde se proponen sistemas
de domotización parcial de hogares diseñados de forma específica para
personas con discapacidad.

HAURIA presenta una solución tecnológica para convertir la mayoría de los


hogares actuales en hogares accesibles empleando tecnologías de la
información junto con técnicas directamente extraídas de investigaciones en
robótica e inteligencia artificial.

HAURIA se compone de los módulos mostrados en la Figura 1.4.1. Los


módulos desarrollados o en vía de desarrollo se pasarán a describir en las
siguientes secciones:

7
Contexto y evolución de la investigación

SAPPO
Sistema de
posicionamiento
de alta precisión
para robots

ROMAI Red de
módulos de
RObot control.
MAnipulador Sensores y
Inteligente actuadores

HAURIA
Inteligencia
artificial.
Infrabola XULIA
Módulo de
Sistema de Interface de
interacción con control central interacción
dispositivos hombre -
por infrarrojos máquina

VILMA
Vehículo DANI
Inteligente con Robot de
Movilidad servicio,
Autónoma. telepresencia
Silla de ruedas e interacción
autoguiada

Figura 1.4.1. Módulos de HAURIA.

SAPPO (Sistema de Alta Precisión de POsicionamiento).

Para permitir la localización y navegación autónoma de los robots de servicio


contemplados dentro del proyecto HAURIA es necesario desarrollar un sistema
de posicionamiento de muy alta precisión. Este sistema es el núcleo central de
la investigación realizada en esta tesis, siendo descrito de modo detallado en el
Capítulo 5.

Red de comunicaciones de sensores

La base de HAURIA está compuesta por todos los nodos de comunicaciones


interconectados. HAURIA debe tener la capacidad de interactuar con la casa y
con sus habitantes, por lo que debe sentir lo que ocurre en ella, para lo que
empleará los sensores conectados a los nodos de comunicación. Como se
define en [8], la domotización es más que un control de calefacción, luces y
aire acondicionado. Para recuperar información de la casa, HAURIA poseerá

8
Introducción

una red de pequeños módulos de control que se comunicarán entre sí para


hacer llegar toda la información de los sensores que tengan conectados hasta
la inteligencia artificial que controlará esta nueva casa inteligente. De forma
similar a las redes propuestas en [9] [10] [11], estos pequeños módulos están
basados en un hardware de control específico que posee los componentes que
se muestran en la Figura 1.4.2:

Módulo de control distribuído

Microcontrolador ATmega328
Módulo
comunicaciones
RF24L01

Sistema de
control de Interacción con sensores y actuadores
alimentación de
sensores
Sistemas de
control de 5 Entradas digitales y 4 entradas analógicas
energía y Módulos
apagado de
totalmetne configurables
comunicaciones
sensores

Figura 1.4.2. Componentes de los nodos de comunicaciones.

Estos pequeños módulos contienen en su firmware una implementación de un


sistema de comunicaciones con capacidad de autoenrrutamiento dinámico,
autodescubrimiento y autoconfiguración.

A su vez, dado que estos sistemas se emplearán en hogares, debería tener un


sistema sencillo de configuración. Al activar un nuevo módulo en su
localización final, él mismo se presentará al sistema, buscará su ruta de
comunicación con la unidad central, y solicitará su identificador de
comunicaciones en la red.

Estos módulos poseen un conjunto de entradas y salidas con las que pueden
interactuar con un número casi ilimitado de sensores y actuadores. Aunque no
está propuesto en el diseño inicial, una de las ampliaciones debería permitir
gestionar todos los nodos desde un teléfono móvil de forma similar al trabajo
presentado en [12].

9
Contexto y evolución de la investigación

HAURIA. Módulo central de control

Una vez desplegados los nodos de comunicaciones, definiremos el módulo


central de control. HAURIA es un sistema inteligente que tiene es su base un
cerebro cuyo contenido ha sido modelado empleando el lenguaje de
inteligencia artificial AIML (Artificial Intelligence Mark-up Language). HAURIA
será un bot conversacional extendido con capacidad emocional y comandos de
interacción embebidos en sus respuestas AIML.

AIML es un lenguaje especialmente desarrollado para crear bots


conversacionales. Actualmente tenemos muchos ejemplos de este tipo de
chatbots, como pueden ser Siri, Cortana o Google Now. HAURIA podrá simular
una conversación humana, podrá recibir comandos en lenguaje natural para
interactuar con cualquiera de los actuadores instalados en la telaraña de
comunicaciones de la casa, podrá ofrecer cualquier información recuperada
de los sensores o recuperar información directamente de internet para
contestar preguntas conocidas, podrá leer correos, buscar información
personal, realizar llamadas e interactuar con los robots móviles presentes en la
casa, que a su vez tendrán su propia inteligencia artificial.

XULIA. Interface de comunicación hombre-máquina

El objetivo de este módulo, es otorgar mayor independencia en el hogar a


personas con graves limitaciones físicas. Para alcanzar este objetivo
pretendemos que sean capaces de emplear ordenadores, tabletas y teléfonos
móviles en condiciones similares de productividad a personas que no tengan
sus limitaciones. Para ello se ha desarrollado un sistema de control universal de
sistemas con Windows® denominado XULIA. Este mismo software se empleará
por el centro de control de HAURIA para gestionar las lecturas y los actuadores
en la casa empleando la voz, de modo similar a trabajos como [13]. En el Anexo
VII se describen de forma detallada las características y funcionalidades de
XULIA.

10
Introducción

DANI (Domótica Avanzada con Navegación Inteligente).

El ecosistema de HAURIA incluye el robot de servicio DANI, de forma similar


a trabajos como [8] en donde el sistema de automatización está conectado con
dos pequeños robots de servicio. DANI es un androide de tamaño natural que
podrá navegar de forma autónoma por la casa empleando el sistema de
localización SAPPO, transportando pequeños objetos o simplemente
transmitiendo datos sobre el entorno, tanto a HAURIA como a su usuario.

Figura 1.4.3. Imagen de DANI.

En la Figura 1.4.3 puede apreciarse la estructura exterior de DANI. Dado que


posee un sistema de navegación autónoma, será capaz de responder a
comandos tales como vete a la cocina, trazando automáticamente la trayectoria
y evitando cualquier posible obstáculo imprevisto, dado que posee 4 sensores
de ultrasonidos para detección de obstáculos. Sus funcionalidades y
características se detallan en el Capítulo 7.

InfraBola

La Infrabola es un dispositivo que es capaz de reproducir los comandos


empleados por los mandos de infrarrojos para comunicarse con los
dispositivos. Tiene forma de bola, con dos semicircunferencias como puede
apreciarse en la Figura 1.4.4.

11
Estructura de la memoria

Figura 1.4.4. Imagen de la Infrabola.

HAURIA y DANI se comunican con la Infrabola empleando RF o Bluetooth.


Mediante la Infrabola, HAURIA puede realizar cualquier envío de cualquier
comando que se transmita mediante ondas de luz infrarroja, simulando
cualquier mando, de forma que puede controlar televisiones, minicadenas,
dispositivos de aire acondicionado, etc.

La Infrabola posee un software específico de control por voz que puede ser
instalado en cualquier PC o tableta con Windows®. Con una funcionalidad
similar a la expuesta en [14]. Este software permite configurar la Infrabola y
grabar los distintos comandos procedentes de mandos de infrarrojos y
asociarlos con códigos o palabras. Empleando únicamente esta aplicación
pueden controlarse los dispositivos mediante la voz. La Infrabola se detalla en
el Anexo VIII.

ROMAI (RObot MAnipulador Inteligente).

ROMAI es un brazo articulado para manipulación de objetos que está diseñado


para ser anclado a una silla de ruedas robótica o a la cama del usuario. Posee
una cámara para trazar trayectorias a los objetos que son marcados con un
puntero láser y un lidar para escanear su morfología, de forma que puede
estudiar la mejor forma de cogerlos. ROMAI se detalla en el Anexo IX.

1.5 Estructura de la memoria


Este documento recoge los aspectos más destacados de la investigación llevada
a cabo en relación con la presente tesis doctoral, estructurándose en 9
capítulos, 9 anexos y un último apartado donde se recopilan las referencias
bibliográficas utilizadas durante el desarrollo del trabajo.

12
Introducción

En el Capítulo 1 se contextualiza el problema que se pretende resolver en el


ámbito de la presente investigación, indicando los motivos por los que se ha
desarrollado este trabajo, enunciando la hipótesis de partida y estableciendo la
metodología que se seguirá para su demostración. Además, se aporta una visión
general del ecosistema donde se implantará la solución propuesta. Por último,
se presenta la estructura del documento de memoria de la presente tesis
doctoral.

En el Capítulo 2 se realiza una introducción a los sistemas de localización, tanto


de posicionamiento global como de uso específico en interiores, detallando sus
principales funcionalidades y aplicaciones, y describiendo las características
que permiten realizar una clasificación de las distintas implementaciones
existentes en la actualidad. Comienza con una visión histórica de los sistemas
de localización global y la necesidad de su creación, pasando a realizar una
introducción específica a los sistemas de localización en interiores y finalizando
con una clasificación exhaustiva dependiendo de las características de los
mismos.

El Capítulo 3 lleva a cabo una revisión del estado del arte en relación con los
robots de servicio, estudiando los diversos tipos existentes e identificando los
distintos campos de aplicación. Inicialmente se analizan las distintas formas de
interacción hombre-máquina y se introducen los conceptos de interacción
social y robótica cognitiva. A continuación, el capítulo detalla los componentes
habituales que componen un robot de servicio a nivel de sensores y actuadores,
analizando en detalle los sistemas de locomoción disponibles en la actualidad
para este tipo de sistemas. El capítulo concluye presentando las competiciones
de ámbito internacional más relevantes en el área y realizando un resumen de
las conclusiones más relevantes.

En el Capítulo 4 se comienza con una descripción del estado del arte en el


campo de investigación de los IPS (Indoor Positioning System), pasando en una
segunda parte a centrarse en los IPS que se desarrollan sobre la tecnología de
medición de distancias mediante ondas ultrasónicas.

13
Estructura de la memoria

El Capítulo 5 se centra en la descripción precisa de SAPPO (Sistema de Alta


Precisión de POsicionamiento). SAPPO es el sistema de localización en interiores
basado en ultrasonido para implantación en hogares desarrollado en esta tesis.

El Capítulo 6 describe a RODI (RObot DIferencial). Este robot es la estación


móvil que ha sido diseñada para probar el sistema de localización, dado que el
objetivo de SAPPO es la localización en interiores, de forma que permita una
navegación autónoma de robots de servicio. RODI es un pequeño robot de
servicio diseñado para investigación, que permite probar el sistema de
localización en un pequeño entorno de laboratorio.

En el Capítulo 7 se describe el robot de servicio DANI (Domótica Avanzada con


Navegación Inteligente). DANI es un robot de servicio de tamaño humano
natural, que será empleado conjuntamente con SAPPO para realizar tareas de
telepresencia en el hogar.

En el Capítulo 8 se muestran los resultados obtenidos con SAPPO en lo


referente a cobertura, complejidad de despliegue y precisión de sus medidas.
Adicionalmente se incluyen los objetivos alcanzados en algunos de los módulos
de HAURIA que han sido desarrollados.

El Capítulo 9 contiene las conclusiones extraídas de esta investigación y las


líneas futuras para mejorar el sistema tanto del sistema de posicionamiento
como de algunos de los módulos de HAURIA..

En el Anexo I se detallan todos los acrónimos empleados en la tesis.

Los Anexos II al IX se dividen en tres bloques temáticos:

En el primer bloque, que comprende los Anexos II, III y IV, contiene
información e investigaciones necesarias para el desarrollo del Capítulo 5.
Tratan sobre los distintos tipos de hardware de ultrasonidos, realizando
estudios de precisión y cobertura de este tipo de sensores.

El segundo bloque se compone de los Anexos V y VI donde se realizan


simulaciones cinemáticas de robots de servicio con arquitectura cinemática
diferencial y bípeda. Estos anexos están relacionados con el Capítulo 6 y el

14
Introducción

Capítulo 7 respectivamente, aunque finalmente no se empleara el sistema de


locomoción bípeda para DANI por los costes que supondría.

Finalmente, en los Anexos VII, VIII y IX se describen en profundidad tres


módulos del ecosistema de accesibilidad HAURIA que ha sido introducido en
la Sección 4 del Capítulo 1.

A continuación, se detalla el contenido de cada uno de los anexos:

En el Anexo II se describen los distintos tipos de sensores de ultrasonidos


comerciales que se pueden encontrar actualmente, explicando sus
características y sus puntos destacables. En la sección final del anexo se realiza
una elección motivada del tipo de sensor seleccionado para SAPPO.

En el Anexo III se realiza un estudio muy detallado de la precisión máxima que


puede obtenerse en las medidas realizadas entre dos transductores de
ultrasonidos básicos.

En el Anexo IV se realiza un estudio muy preciso del área de cobertura de


SAPPO en una habitación rectangular real en la que se han instalado solo dos
balizas.

En el Anexo V se analiza la simulación del sistema de navegación mediante un


robot de servicio similar a RODI, de arquitectura cinemática del tipo
diferencial, en el entorno de simulación para robótica CoppeliaSim.

En el Anexo VI se realiza una simulación de la cinemática aplicada a la camina


bípeda de un robot de servicio humanoide.

En el Anexo VII se describe a XULIA. XULIA es la interfaz hombre-máquina


del ecosistema HAURIA que permite que personas con tetraplejia interactúen
y controlen ordenadores con sistema operativo Windows®, empleando la voz.

En el Anexo VIII se describe la Infrabola. Este dispositivo forma parte de


HAURIA y de DANI permitiendo su interacción con cualquier dispositivo
electrónico que pueda ser operado con un mando a distancia por infrarrojos.

15
Estructura de la memoria

En el Anexo IX se describe ROMAI. ROMAI es un brazo robótico articulado


guiado por láser. En este anexo se describen sus capacidades y se realiza un
estudio cinemático del mismo.

16
2.1 Introducción
2 Los sistemas de localización
2
Un sistema de localización general hace posible que una estación móvil pueda
ser ubicada en un área definida con un cierto grado de precisión. Para
conseguir esta localización, resulta necesaria la utilización de puntos de
referencia, que pueden ser pasivos o activos.

Los puntos pasivos forman parte del fondo en el que se mueve la estación móvil,
pudiendo ser naturales o artificiales. Como ejemplo de referencia pasiva
natural puede citarse el polo norte magnético para sistemas que emplean el
campo magnético terrestre, mientras que un ejemplo de referencia pasiva
artificial puede ser un código QR (Quick Response) utilizados por los sistemas
posicionales de información.

En el caso de puntos de referencia activos, estos estarán formados por


dispositivos electrónicos con capacidad de emisión o recepción de algún tipo
de señal, denominándose comúnmente balizas a aquellos dispositivos de
referencia activos que emiten señales. De esta forma, mediante el empleo de
señales que viajan desde, o hacia los dispositivos que se encuentran en los
puntos de referencia, es posible el cálculo de la posición de un objeto con
distintos niveles de precisión. Esta forma simple de funcionamiento resulta
aplicable a cualquier tipo de sistema de localización.

17
Evolución de los sistemas de localización

2.2 Evolución de los sistemas de localización


La curiosidad y el ansia de conocimiento ha llevado al ser humano a alcanzar
las cotas actuales de desarrollo. Desde los albores de la humanidad, siempre se
ha querido ver más allá, siempre había exploradores que arriesgaban sus vidas
para conocer lo que se encontraba lejos de su hogar. En un inicio, el hogar era
el punto de referencia conocido, y a partir de él, los exploradores debían
conocer la posición relativa en la que se encontraban para ser capaces de
volver. Los primeros sistemas de localización empleaban mapas relativos al
punto de partida, pero con el tiempo, comenzaron a incorporar puntos de
referencia que permitían conocer sus posiciones relativas, facilitando la
comunicación entre ellos. Era necesaria la capacidad computacional del ser
humano para conocer la posición.

Una vez que la exploración se extendía más allá de los puntos que se podían
percibir con los sentidos, fue necesario emplear puntos de referencia de mayor
alcance, como el sol o la posición de las estrellas. Con estos puntos globales los
mapas comenzaron a alcanzar grandes tamaños, por lo que fue necesaria su
normalización para que pudieran ser empleados por personas distintas a sus
creadores. El empleo de las estrellas permitió conocer la localización de los
exploradores en posiciones que se encontraban fuera de los mapas. Los mapas
son una representación de un territorio ya explorado, en donde se reflejaba la
distancia relativa de todos los elementos que describía. Los primeros mapas
datan del año 7.000 A.C., y desde entonces se han ido evolucionando y
perfeccionando hasta tener un alcance que puede abarcar todo el globo
terráqueo.

De esta forma, durante cientos de años se emplearon los mapas conjuntamente


con la posición de los astros medida de forma artesanal. Con el paso del tiempo,
se fueron desarrollando distintos instrumentos para medir alguna de las
coordenadas necesarias para efectuar una localización de forma más precisa.
Así, el astrolabio, que puede verse en la Figura 2.2.1, fue inicialmente inventado
por los griegos, y se introdujo en la península ibérica en el siglo XI por los
árabes.

18
Los sistemas de localización

Figura 2.2.1 Astrolabio 3.

Este instrumento permitía determinar la latitud conociendo la hora, o la hora


conociendo la latitud, mediante la medición de la altura de las estrellas en el
cielo. Fue empleado hasta bien entrado el siglo XVIII. En el siglo XII se tiene
constancia de la primera brújula empleada en navegación marítima, que se
usaba conjuntamente con los mapas para determinar la dirección. En 1590
Davis inventó el cuadrante, que permitía obtener la altura del sol con más
precisión que el astrolabio. En 1750 apareció el sextante, que permitía obtener
la latitud de una forma mucho más precisa, siendo empleado hasta el siglo XX.
En la Figura 2.2.2 se muestran las partes que componen un sextante. A mayores,
en el siglo XIX apareció el cronómetro, que permitía calcular la longitud
mientras la latitud se calculaba con el sextante.

Figura 2.2.2 Sextante 4.

No fue hasta bien entrado el siglo XX cuando entra en juego la tecnología y


comienzan a aparecer los primeros sistemas electrónicos de localización
relativa, como el SONAR (SOund Navigation And Ranging) en 1910 o el RADAR

3 Fuente: https://es.wikipedia.org/wiki/Astrolabio [Acceso: 7-mar-2022]


4 Fuente: https://infovisual.info/es/transporte/sextante [Acceso: 7-mar-2022]

19
Evolución de los sistemas de localización

(RAdio Detecting And Ranging) en 1930, capaces de medir la distancia relativa a


distintos objetos. Por su parte, el SONAR emite una onda sonora a través del
agua que, al rebotar contra los objetos, retorna al emisor. Conociendo la
velocidad de desplazamiento del sonido en el medio, y el tiempo transcurrido
entre la emisión y la recepción de la señal, se puede calcular la distancia a la
que se encuentra el objeto (ver Figura 2.2.3).

Figura 2.2.3. SONAR. Cálculo de posiciones relativas empleando el sonido 5.

El RADAR emplea el mismo principio que el SONAR pero utiliza señales de


radio, y mediante el cálculo del tiempo de recorrido total de la señal y el ángulo
de recepción, consigue ubicar los objetos en el aire.

Con la segunda guerra mundial, se comenzaron a desarrollar sistemas de


localización absoluta que permitían la localización de objetos en un área
definida empleando como balizas torres de radio. Los primeros sistemas que
surgieron en esta época fueron LORAN(Long RAnge Navigation) [15](Figura
2.2.4), GEE y DECCA [16], todos ellos entre los años 1940 y 1944.

Figura 2.2.4. LORAN. Localización mediante torres de radio 6.

5 Fuente: https://www.abc.es/segunda-guerra-mundial/armamento/20141014/abci-armas-sonar-
guera-mundial-201410140701.html [03-feb-2022]
6 Fuente: https://www.navixy.com/ [Acceso: 03-02-2022]

20
Los sistemas de localización

El siguiente gran salto en los sistemas de localización fue el empleo de balizas


situadas en satélites móviles sincronizados, de los que era conocida su posición
en todo momento. En este tipo de sistemas, la posición de un objeto móvil en
la superficie terrestre se calcula midiendo su distancia con respecto a un
conjunto mínimo de satélites (entre tres y cuatro), tal y como se indica la Figura
2.2.5, donde cada satélite define una circunferencia de localizaciones posibles.

Figura 2.2.5. OMEGA. Sistema de posicionamiento global 7.

El primer sistema satelital fue TRANSIT [17], también conocido como


NAVSAT(Navy Navigation Satellite System), que era capaz de proporcionar una
localización en un lugar cada hora. Posteriormente se desarrolló OMEGA [18],
que fue el primer sistema de posicionamiento con ámbito global.

En el año 1999 comenzó a funcionar el sistema GPS (Global Positioning System)


en su primera versión. La implantación inicial constaba de 24 satélites, pero
estaba diseñado para operar con hasta 32, de los que actualmente hay 31
operativos. El sistema está diseñado para que en cualquier momento se
encuentren visibles 6 satélites desde cualquier punto de la superficie terrestre,
tal y como muestra la Figura 2.2.6, consiguiendo con ello precisiones del rango
de 15 metros. En el caso de combinar las medidas de distancia de los satélites
con información de localización de torres terrestres, como en el AGPS (Assisted
Global Positioning System), la precisión puede reducirse a 3 metros.

7Fuente: https://www.nosolotendencias.es/cosas-que-no-sabias-sobre-los-gps/ [Acceso: 03-02-


2022]

21
Evolución de los sistemas de localización

Figura 2.2.6. Sistema GPS con un mínimo de 6 satélites accesibles desde cualquier punto 8.

Posteriormente, se fueron desplegando otros sistemas de navegación satelital


como GLONASS (Global'naya Navigatsionnaya Sputnikovaya Sistema) por parte
de Rusia, NaviC en la India, BeiDou de China y Galileo de la Unión Europea.

En la Figura 2.2.7 se muestra una comparativa de precisión de varios de los


sistemas de localización mencionados anteriormente. En la Figura se ha
incluido la comparativa con un sistema inercial, que emplea únicamente sus
sensores de aceleración y giro, después de una hora de funcionamiento.

Figura 2.2.7. Comparativa de precisión de distintos sistemas de localización 9.

De este modo, con la implantación general y combinada de los sistemas GPS se


ofrece una solución global satisfactoria al problema de posicionamiento global
en entornos exteriores. Sin embargo, un aspecto fundamental a tener en
cuenta acerca de las señales recibidas desde los satélites es su bajísima potencia.

8 Fuente: https://es.wikipedia.org/wiki/GPS [Acceso: 3-feb-2022]


9 Fuente: https://en.wikipedia.org/wiki/Omega_(navigation_system) [Acceso: 3-feb-2022]

22
Los sistemas de localización

Los receptores de satélite deben ser capaces de captar señales de -127 dBm
(decibels en miliwats) de intensidad. Para hacerse una idea del nivel ínfimo de
potencia que esto supone, el ruido térmico en la banda de 1 Hz a temperatura
ambiente es de -174 dBm, lo que significa que estas señales se encuentran
ligeramente por encima del ruido de fondo.

Así pues, la escasa potencia de la señal recibida desde los satélites hace que esta
se vea muy afectada por la existencia de muros y paredes, de modo que resulta
necesario tener visión directa con los satélites para poder captar de forma
correcta su señal, lo que supone un grave problema para el uso de esta
tecnología en interiores.

2.3 Sistemas de localización en interiores


Como se ha comentado anteriormente, los sistemas de localización global no
resultan efectivos en espacios interiores, bien porque su precisión no es
suficiente para poder distinguir si la estación móvil se encuentra dentro o fuera
del recinto, como en el caso de TRANSIT, DECCA o los sistemas de localización
por GSM (Global System for Mobile communications), bien porque debido a la baja
intensidad de las señales emitidas desde las balizas, esta no es capaz de atravesar
los muros o tejados de las edificaciones.

Estas limitaciones obligaron a desarrollar sistemas de locación específicos para


interiores denominados IPS (Indoor Positioning System), que se fundamentan en
las mismas ideas que los sistemas de localización global, a excepción de las
complejidades inherentes a los sistemas satelitales, en los que las balizas (los
satélites) son puntos de referencia móviles en trayectoria de caída libre hacia
la tierra. Los nodos en los sistemas IPS también se dividen en estaciones móviles
y balizas, pero en la inmensa mayoría de sus implementaciones las balizas están
localizadas en puntos fijos conocidos. En este tipo de sistemas, se lleva a cabo
el cálculo de la posición del nodo correspondiente a la estación móvil con
respecto a la posición de las balizas, que no tienen por qué cubrir toda el área
de localización. Teniendo en cuenta que los espacios interiores suelen estar

23
Clasificación de los sistemas de localización en interiores

compartimentados, resulta habitual que cada habitáculo contenga sus propias


balizas, tal y como muestra la Figura 2.3.1.

Figura 2.3.1. Distribución mínima de balizas por habitación (en rojo) para localización 2D en interiores.

2.4 Clasificación de los sistemas de localización en interiores


Los sistemas de localización en interiores pueden clasificarse en base a multitud
de parámetros, y cada combinación de los mismos generará un sistema con
unas determinadas características. En los siguientes apartados se recogen los
distintos criterios de clasificación utilizados, que en última instancia definirán
las características de cada sistema de localización específico.

Tipo de señal a detectar

Existen multitud de señales diferentes que pueden ser empleadas por los
sistemas de localización para llevar a cabo su misión. Entre otras, destacan las
señales electromagnéticas como RF (Radio Frequency), Bluetooth, ZigBee, Wifi
(Wireless Fidelity), VLC (Visible Light Communication), luz visible mediante
procesamiento de imágenes, luz visible mediante reconocimiento de patrones,
sonido audible, ultrasonidos, campo magnético terrestre y guías magnéticas.

Tipo de medida

Los sistemas de localización pueden emplear las medidas de los TOF (Time Of
Flight) de las señales entre las balizas y las estaciones móviles. Los algoritmos de

24
Los sistemas de localización

trilateración, se basan en el cálculo de las intersecciones de las circunferencias


definidas por las distancias recorridas por estas señales. Otra alternativa es
emplear el TDOA (Time Difference Of Arrival), en el que se calcula la posición
mediante la diferencia del tiempo de llegada de las señales sincronizadas de
distintas balizas. En los algoritmos de triangulación se emplea el AoA (Angle of
Arrival), calculando la posición de la estación móvil mediante la detección del
ángulo de llegada de las señales de varias balizas.

Tipo de sincronismo

En los sistemas donde resulta necesario medir tiempos de vuelo de señales, es


imprescindible conocer con precisión su instante de emisión. Para ello, pueden
emplearse sistemas de sincronización continua entre balizas, de forma que las
balizas emiten un patrón conocido o realizan emisiones distribuidas en slots de
tiempo separados, o puede emplearse sincronización puntual, de forma que
emisor y receptor se sincronizan en el momento de emitir la señal con cada
operación de medida.

Precisión

Representa una de las características más importantes de los sistemas de


localización y, en función del nivel general de granularidad requerido, se
distinguen tres clases:

• Posicional: un sistema de localización posicional simplemente indica que la


estación móvil se encuentra al lado de un punto de referencia. Sistemas de
este tipo suelen emplear RFID (Radio Frequency Identification) pasivo o
patrones como códigos QR. Estos sistemas solo proporcionan la
información del punto de referencia que se encuentra más próximo a la
estación móvil, si hay alguno.
• Habitáculo: con este nivel de precisión, el sistema es capaz de identificar la
habitación o el habitáculo en donde se encuentra la estación móvil a
localizar, pero no ofrece información de la ubicación concreta donde está
dentro de la habitación. Son sistemas de localización discreta.

25
Clasificación de los sistemas de localización en interiores

• General: un sistema de localización general, o continua, es capaz de obtener


las coordenadas de localización de la estación móvil en 2D o 3D con un
cierto grado de precisión. Así, es posible encontrar (i) sistemas súper
precisos (del orden de nanómetros) como los brazos detectores de
anomalías en fabricación de piezas, (ii) sistemas con precisión milimétrica,
como algunos sistemas de ultrasonido, (iii) centimétrica, como los sistemas
basados en UWB (Ultra Wide Band), (iv) métrica, como los sistemas basados
en Bluetooth, Wifi, ZigBee, o incluso los conocidos sistemas de
posicionamiento global como GPS, Galileo, GLONASS, y (v) kilométrica,
como los sistemas de posicionamiento basados en huellas de detección de
potencia de señal GSM.

Sistema centralizado o distribuido

La mayoría de los sistemas de localización son de tipo centralizado, dado que


la ubicación se calcula con información de las posiciones relativas de la estación
móvil a las balizas, que son los puntos de referencia conocidos. En otros casos,
las estaciones móviles hacen las veces de estación móvil y de baliza, dado que
no reciben las señales directamente de las balizas, sino que son capaces de
calcular su posición recuperando información de otras estaciones móviles
cercanas, que en última instancia la recuperan de algunas balizas distribuidas
por el área de localización.

Puntos de referencia absolutos o relativos

Como se comentó en la Sección 2.1, todos los sistemas de posicionamiento


necesitan puntos de referencia o balizas, que pueden ser absolutos o relativos.

Se dice que un sistema de localización utiliza posicionamiento absoluto cuando


se conoce la posición exacta de los puntos de referencia con bastante precisión,
pudiéndose calcular la distancia o la posición de la estación móvil con respecto
a los puntos de referencia, mediante alguna de las técnicas descritas en el
Apartado 2.4.3.

26
Los sistemas de localización

En el caso de posicionamiento relativo, es posible conocer la distancia relativa


de la estación móvil a otros objetos del entorno, aunque no se conoce la
posición absoluta de ninguno de ellos. La estación móvil debe ir detectando
estos puntos de referencia y obtener la posición relativa entre ella y los puntos
detectados. Los radares y los sónares pertenecen a este tipo de sistemas, de
forma que la estación móvil obtiene su posición relativa con respecto a los
objetos que encuentra, permitiéndole mantener la distancia para no colisionar
con ellos.

Función de sus elementos

Todo sistema de localización que emplea la emisión de señales está formado


por dos tipos de nodos: las balizas y la estación móvil. Las balizas son los puntos
de referencia de los que se conoce su posición, mientras que la estación móvil
corresponde con el nodo que debe ser localizado. En los casos en que resulta
necesario calcular la distancia o la posición relativa a las balizas empleando
señales que deben ser emitidas y recibidas, siempre puede asignarse la
capacidad de emisión a las balizas, a la estación móvil, o incluso a ambos.
Dependiendo de la opción seleccionada, el sistema de localización tendrá
distintas características.

Codificación de las señales

Las señales (emitidas y recibidas) pueden estar codificadas en (i) banda base,
también conocida como banda estrecha, o (ii) banda ancha.

• Codificación en banda base o banda estrecha

En la codificación en banda base la transmisión emplea todo el canal, por lo


que no es posible que dos emisores transmitan a la vez. Para permitir esta
posibilidad, el sistema más empleado de acceso al medio es la multiplexación
por división de tiempo (TDM, Time Division Multiplexing), en la que cada emisor
emplea un slot de tiempo diferente para transmitir su información, y resulta
necesario establecer sistemas de sincronización para que cada emisor conozca

27
Clasificación de los sistemas de localización en interiores

exactamente dónde se encuentran los límites de su slot de tiempo. La Figura


2.4.1 esquematiza este enfoque.

Figura 2.4.1. Multiplexación por división en el tiempo.

Otra de las técnicas empleadas para el acceso múltiple en banda base es CSMA
(Carrier Sense Multiple Access), en la que el transmisor está constantemente a la
escucha del canal e intenta identificar si otro transmisor lo está ocupando,
esperando hasta que esté libre para comenzar su transmisión. CSMA presenta
dos variantes CSMA/CD (Carrier Sense Multiple Access / Collision Detection) y
CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance). En CSMA/CD el
emisor comienza la transmisión cuando detecta que el canal está libre, y una
vez iniciada sigue escuchando el canal por si otro emisor ha comenzado a
transmitir al mismo tiempo, anulando la transmisión en caso de detectar la
transmisión simultánea. En CSMA/CA, cuando el trasmisor detecta el canal
libre espera un pequeño slot de tiempo aleatorio leyendo el canal, si nadie lo
reserva, envía un micro paquete de información de la reserva del canal y espera
durante otro pequeño slot de tiempo. Si el canal sigue libre, comienza la
transmisión.

En canales de radiofrecuencia o de comunicación por ultrasonidos se emplea


CSMA/CA, dado que la diferencia de potencia entre la señal emitida y la
recibida es muy grande y resultaría muy complejo detectar la señal recibida en
el canal, además de la necesidad obvia de tener que disponer de dos antenas,
una para transmisión y otra para recepción.

• Codificación en banda ancha

En la codificación en banda ancha se emplean múltiples frecuencias para


realizar la transmisión simultánea de varios emisores a la vez. El tipo más básico
de multiplexación de banda ancha es FDMA (Frequency-Division Multiple Access),

28
Los sistemas de localización

donde cada transmisor emplea una frecuencia distinta. La Figura 2.4.2 muestra
cómo se divide el espectro total en frecuencias separadas.

Figura 2.4.2. Acceso múltiple por división de frecuencias (FDMA).

Dentro de este tipo de modulación, que hace uso de varias frecuencias de


forma simultánea en el mismo canal, se pueden implementar dos tipos de
codificación: (i) FHSS (Frequency Hopping Spread Spectrum) o (ii) DSSS (Direct
Sequence Spread Spectrum), aunque en la actualidad se ha mejorado este último
mediante el empleo de OFDM (Orthogonal Frequency-Division Multiplexing).

En la codificación FHSS la información se transmite empleando distintas


frecuencias, pero no de forma simultánea, sino que se van realizando saltos de
frecuencia cada cierto número de microsegundos, tal y como muestra la Figura
2.4.3. De esta forma se consigue un sistema de transmisión mucho más inmune
al ruido, puesto que, aunque se produzcan alteraciones en una frecuencia
dada, el ruido no afectará a la información transmitida en otras frecuencias. A
mayores, FHSS transmite códigos de redundancia conjuntamente con los
datos, para permitir la recuperación de fragmentos de información
corrompida.

Figura 2.4.3. FHSS. Espectro ensanchado con salto de frecuencia.

En DSSS la información se codifica realizando una combinación de los datos


con un patrón pseudoaleatorio, de forma que cada bit se corresponde con una
secuencia de combinaciones de bits como se parecía en la Figura 2.4.4. De esta
forma, si se corrompe algún bit de la secuencia, el receptor es capaz de
recomponer el bit con el resto de la secuencia. Además, en el caso de que la

29
Resumen del capítulo

transmisión sea simultánea, es posible recuperar la información de cada


transmisor si se utiliza un tamaño de bit suficientemente largo.

Figura 2.4.4. DSSS. Operación de combinación de la información con el patrón pseudoaleatorio.

Inicialmente con DSSS se transmitía toda la información empleando el mismo


canal, pero en versiones más actuales se utiliza OFDM para dividir el canal en
portadoras ortogonales (que no se ven afectadas entre sí) con el fin de
aumentar el caudal de datos a transmitir. Con OFDM la transmisión se realiza
en múltiples frecuencias, tal y como muestra en la Figura 2.4.5.

Figura 2.4.5. OFDM. Transmisión mediante portadores de frecuencias ortogonales.

2.5 Resumen del capítulo


Este capítulo ha introducido los aspectos más relevantes relacionados con los
sistemas de localización de uso específico en interiores. Inicialmente, se
comienza efectuando una descripción general y una revisión de los sistemas de
localización a lo largo de la historia, puesto que los conceptos base de
funcionamiento son similares a todos ellos. A continuación, se explica el modo
de funcionamiento de los sistemas de posicionamiento global, como GPS, dado
que son de uso común y mantienen muchas similitudes con los sistemas de
posicionamiento en interiores, o IPS. En relación con este tipo de sistemas, se
identifican y detallan las características que permiten realizar una clasificación
de las distintas implementaciones existentes en la actualidad, realizando una
breve explicación sobre cada una de ellas.

Una vez introducidos los conceptos básicos dentro del campo de los sistemas
de localización en general, y más concretamente de los sistemas de localización

30
Los sistemas de localización

en interiores, el Capítulo 3 proporciona una introducción a los robots de


servicio, puesto que, aunque los IPS pueden ser empleados para localizar
personas, una de las principales aplicaciones tecnológicas de estos sistemas es
servir como base de funcionamiento de sistemas de navegación de robots de
servicio.

En este capítulo se asientan las bases teóricas que permiten identificar las
distintas características de clasificación de los sistemas de localización, que
servirán como base de estudio y comparativa en el análisis sobre sistemas
existentes realizado en el Capítulo 4.

31
3
3 Robots de servicio

3.1 Introducción
La ciencia que se encarga del diseño de robots es la robótica. La robótica
aglutina varias disciplinas como la informática, la electrónica, la física y la
inteligencia artificial, con el objetivo de diseñar máquinas con capacidad de
captar su entorno a través de sensores, procesar esta información y realizar
tareas de modo autónomo adaptándose a las condiciones recuperadas por los
sensores, aunque de forma más genérica también se aplica la definición de
robot a cualquier máquina articulada con capacidad de interactuar con su
entorno, o incluso cualquier máquina con capacidad de ser programable para
realizar una tarea.

La robótica comenzó a salir de los laboratorios en la década de los 70, momento


a partir de cual se ha ido implantado de forma paulatina en fábricas para la
realización de trabajos de precisión, muy repetitivos o peligrosos, siempre que
su beneficio compensara los altos costes de implantación. Por países, Singapur
es el país con más robots por número de empleados, con 918 robots instalados
por cada 10.000 empleados, mientras que España se sitúa entre los 15 países
cuyas industrias se encuentran más robotizadas, con 113 robots por cada 10.000
empleados, según fuentes del año 2019 [19]. Este tipo de robots trabajan
normalmente en un entorno muy bien definido, como cadenas de producción,
y están diseñados específicamente para el fin para el que fueron creados, no
teniendo la capacidad de adaptarse a cambios en su entorno. Los robots

33
Introducción

manufactureros industriales han sufrido una lenta evolución mejorando


características de fiabilidad, coste y precisión, pero su estructura y utilidad no
ha variado significativamente en todos estos años dado que el objetivo para el
que fueron diseñados tampoco ha cambiado. En la actualidad son más
configurables, son programables de modo mucho más gráfico e intuitivo,
incluso empleando realidad virtual y realidad aumentada, pero los
movimientos y sus capacidades siguen siendo similares.

Sin embargo, los grandes avances producidos en el área de la robótica en los


últimos años han motivado que los robots salgan del ámbito industrial. En la
década de los 80 se comenzaron a realizar investigaciones sobre la aplicación
de los robots a tareas que estaban reservadas solo para los humanos, y que no
se llevaban a cabo en un entorno industrial. Así, con el abaratamiento de los
costes y la aplicación de nuevas técnicas de inteligencia artificial los robots son
capaces de adaptarse a entornos cambiantes, y se están diseñando nuevas
interfaces para que puedan interactuar con los humanos de una forma mucho
más natural que la habitual programación estática. De esta forma, los robots
más actuales soportan nuevas capacidades de control e interacción,
permitiendo realizar tareas de control de seguridad, telepresencia,
teleoperación, servicios en el hogar, entretenimiento y soporte al cuidado de
personas mayores o discapacitados, entre otras.

Los avances para que esta generación más actual de robots pueda llevar a cabo
nuevas funcionalidades provienen de la mejora constante tanto del hardware,
sobre todo en el apartado sensorial, como del software, con nuevos algoritmos
de aprendizaje automático. Los actuadores eléctricos, mecánicos y neumáticos
son conocidos desde hace muchos años, pero la captación del entorno y su
procesamiento mediante microordenadores de tamaño reducido que pudieran
ser portados por pequeños robots con un consumo optimizado de energía, no
ha sido posible hasta las últimas décadas.

Una vez que se disponía del hardware necesario para captar los datos
procedentes de entornos cambiantes, el verdadero problema era el
procesamiento de toda la información disponible para llevar a cabo tareas

34
Robots de servicio

útiles para el ser humano. Adicionalmente, al haber introducido el robot en


entornos no especializados, y resultar necesaria su interacción con personas sin
amplios conocimientos técnicos, las interfaces de usuario para la comunicación
humano-máquina también debían ser rediseñadas para permitir una
interacción que se asemejara lo máximo posible a la interacción entre
humanos.

Motivado por los avances logrados hasta el momento, en los últimos años se
han ido incorporando a fábricas de grandes corporaciones (como Stellantis 10,
Mercedes, etc.) otros tipos de robots que son capaces de moverse entre
humanos y trabajar colaborativamente con ellos, adoptando incluso la forma
de exoesqueletos para ayudar a realizar ciertas tareas que requieren de fuerza
física.

Estas nuevas aplicaciones se encuadran dentro de lo que se conoce como


robótica de servicio. Un robot de servicio se define como un dispositivo
electromecánico que realiza su trabajo de forma total o parcialmente
autónoma, llevando a cabo tareas útiles para el bienestar del ser humano que
son realizadas en un entorno compartido con este. En la robótica de servicio,
los robots deben trabajar en entornos cambiantes compartiendo ubicación con
seres humanos y animales, por lo que deben estar diseñados para interactuar
con ellos utilizando protocolos de seguridad, evitando colisiones, y
esquivándolos siempre que sea necesario para llevar a cabo el fin que se les ha
encomendado. Normalmente, son dispositivos móviles con capacidad de
manipulación definidos como “aquel que trabaja de manera parcial o totalmente
autónoma, desarrollando servicios útiles para el bienestar de los humanos y equipos. Pueden
ser móviles y con capacidad de manipulación”. Esta definición de la IFR (International
Federation of Robotics) es una adaptación (más actual) de la dada anteriormente por
el IPA (Fraunhofer Institute for Produktionstechnik und Automatisierung) [20], que
establece que un robot de servicio es “un dispositivo móvil programable, que desarrolla
servicios de manera total o parcialmente automática; entendiendo por servicios a aquellas

10 https://www.stellantis.com/

35
Clasificación de tareas y campos de aplicación

tareas que no sirven directamente a la industria de fabricación de bienes, sino a la realización


de servicios a las personas o a los equipos”.

3.2 Clasificación de tareas y campos de aplicación


El número de tareas que se pueden catalogar dentro de este ámbito es inmensa,
pero la IFR [21] distingue los siguientes grandes tipos: (i) tareas relacionadas
con el bienestar de las personas (protección, rescate, entretenimiento,
búsqueda en entonos de desastres, guía, etc.), (ii) tareas relacionadas con el
mantenimiento de equipos e instalaciones (reparación, limpieza) y (iii) otras
tareas (vigilancia, inspección, recuperación de datos).

Campos de aplicación

Actualmente existen robots de servicio operando en ámbitos tan diversos como


el espacio, la construcción, la limpieza, el ámbito médico, el nuclear, la
agricultura, el doméstico o de oficina, el militar, ocio y entretenimiento,
submarino, logística y almacenaje, o conducción autónoma. De entre todos
ellos, las aplicaciones de servicio más innovadoras tienen que ver con los
ámbitos espacial y médico, por lo que a continuación se recogen algunos
ejemplos de robots de servicio desarrollados en estos campos.

• Ámbito del espacio

Dados los altos presupuestos con los que se trabaja en la industria espacial, ha
sido la primera impulsora en el desarrollo de robots aplicados a tareas que no
guardan relación directa con la industria manufacturera. Así, el primer robot
teleoperado fue la Surveyor 1, que fue lanzada a la luna el 30 de mayo de 1966
y capturó 11.150 fotografías hasta que dejó de funcionar en julio de ese mismo
año. En abril de 1967 aterriza la Surveyor 3, que es el primer robot espacial con
capacidad de manipulación a través de una draga con la que excavó el suelo
lunar.

En este ámbito también destacaron las sondas de exploración espacial Voyager


1 y 2, las Pioneer y las más actuales New Horizons y Helios 1. En su conjunto, son

36
Robots de servicio

robots teleoperados que tienen cierta capacidad de reacción y operación


remota, aunque los robots más complejos con capacidad de operación
semiautónoma en el ámbito espacial han sido los rovers enviados a Marte. A este
respecto, el primer rover, Mars 3, fue enviado en el año 1971 y perdió la
conexión 20 minutos después de su aterrizaje, siendo sucedido por los rovers
Curiosity y Perseverance [22]. Estos dos últimos vehículos son complejos robots
móviles con capacidad de exploración semiautónoma. Para operar estos robots,
cada día se envían los objetivos que debe alcanzar y, una vez introducidos, el
robot los lleva a cabo de forma totalmente autónoma, esquivando obstáculos y
estableciendo rutas alternativas donde sea necesario.

Los rovers están equipados con multitud de sensores como telémetros láser o
cámaras de luz visible, así como diverso equipamiento científico para el análisis
de la atmósfera y del terreno. Como sistema de locomoción emplea 6 ruedas
distribuidas en 3 ejes, siendo el primero y el último, directivos, y posee
articulaciones para recolección de muestras.

• Ámbito médico

La aplicación más innovadora de los robots en medicina se encuentra en el


campo de la cirugía [23], donde el robot más conocido es el sistema DaVinci,
desarrollado por Intuitive Surgical Inc 11. Por el momento, este es un robot de
teleoperación dotado de mandos hápticos que permiten la transmisión a su
operador de las sensaciones de fuerza al realizar las operaciones. También
posee cámaras endoscópicas estereoscópicas con las que se puede ver el campo
de operación en 3D con total sensación de profundidad. El operador es capaz
de manipular y operar los brazos robóticos a través de sus dos mandos, uno
para cada mano. Fue empleado por primera vez en una operación de
extracción de vesícula en el año 2000. Como ejemplo de la actual implantación
de los robots de servicio, el Hospital Álvaro Cunqueiro de Vigo posee una
unidad del robot DaVinci, junto con una instalación robótica para la
distribución de las comidas.

11 https://www.intuitive.com/

37
Interfaz hombre-máquina

• Ámbito doméstico

Dentro del campo doméstico existen multitud de labores que pueden ser
realizadas por robots de servicio como el cuidado de personas mayores [24]
[25], la ayuda y soporte a personas con discapacidad [26], limpieza [27] [28]
[29] [30] [31], vigilancia y telepresencia [32] [33] [34] o entretenimiento [35]
[36] [37] [38].Aunque no resulta tan espectacular, el campo donde mayor
crecimiento ha tenido la aplicación de robots de servicio ha sido el de la
limpieza en el hogar, donde existen en la actualidad robots aspiradora que se
encuentran operativos en millones de hogares. Estos pequeños dispositivos,
normalmente con estructura cinemática diferencial (dos ruedas motrices con
control de velocidad independiente) son capaces de mapear el entorno,
establecer rutas de limpieza, navegar de forma totalmente autónoma por el
hogar y coexistir con total seguridad con los humanos y sus mascotas. Sus
características definen con total exactitud un robot de servicio.

3.3 Interfaz hombre-máquina


Los sistemas de control de los robots han ido evolucionando con el paso del
tiempo, siendo controlado en sus inicios mediante un simple teclado y/o ratón
como cualquier otro dispositivo electrónico. En la actualidad, entre los sistemas
más habituales de interacción con un robot de servicio, destacan los siguientes:

• Interacción por medios mecánicos: son los más comunes e incluyen


dispositivos de control con botones, palancas o joysticks, o el uso del ratón
y el teclado.
• Interacción táctil a través de pantallas: la miniaturización de componentes
ha permitido disponer de pantallas táctiles a coste económico, permitiendo
mucha más expresividad y posibilitando la modificación de forma dinámica
del aspecto de la interfaz según las necesidades.
• Dispositivos hápticos: representan la evolución de los sistemas mecánicos de
interacción con robots teleoperados. Mediante mandos vinculados al tacto
(hápticos) el operador puede recibir retroalimentación del estado de

38
Robots de servicio

manipulación de los miembros de un robot. El teleoperador puede sentir


la fuerza que necesita emplear el robot para realizar sus tareas. Uno de los
robots más conocidos que emplea esta interfaz hombre-máquina es el robot
médico DaVinci, comentado con anterioridad.
• Reconocimiento de gestos o movimientos: este tipo de interfaz sustituye a
los sistemas mecánicos mediante el uso de una cámara que captura los
movimientos gestuales del operador, para reproducirlos en el robot. Son
más económicos, pero no permiten retroalimentación háptica.
• Interacción ocular a partir del reconocimiento de la mirada: en el caso de
usuarios con discapacidad, muchos de los sistemas de interacción vistos
hasta ahora no resultan válidos. Es el caso de personas con esclerosis lateral
amiotrófica (ELA) o tetraplejia, que no pueden utilizar sistemas mecánicos
o de captación gestual, pero sí pueden emplear sistemas de seguimiento de
la mirada.
• Interacción por voz: la voz es el sistema de comunicación por excelencia en
los seres humanos, y puede ser empleado por casi la totalidad de las
personas incluyendo la mayoría de las personas discapacitadas.
• Interacción en base a señales electrofisiológicas: dentro de este tipo de
interfaces se encuentran los que emplean señales cerebrales, o BCI (Brain-
Computer Interface), y los que emplean los impulsos nerviosos musculares, o
EMG (ElectroMyoGram). Las señales EMG han sido utilizadas con éxito para
el control de exoesqueletos o miembros articulados. Estas señales se
recuperan leyendo los impulsos eléctricos de los nervios musculares,
normalmente con sensores no invasivos. En casos extremos en los que no es
posible emplear ninguno de los sistemas citados anteriormente, como en
etapas muy avanzadas de ELA en la que algunos enfermos pierden la
capacidad de mover los músculos de los ojos, con interfaces BCI es posible
recuperar directamente del cerebro la información de las acciones que
desea realizar el usuario. Existen dos tipos de interfaces BCI:
o No invasivos: cascos de detección superficial de señales bioeléctricas, que
deben ser ajustados a la cabeza con gel transmisor de señales eléctricas.

39
Robótica cognitiva e interacción social

o Invasivos: requieren llevar a cabo una incisión en el cráneo para


implantar un chip con un array de detectores de señales bioeléctricas.

3.4 Robótica cognitiva e interacción social


Dado que los robots de servicio operan en entornos humanos, deben saber
relacionarse con ellos de forma clara e intuitiva. Por este motivo, se ha creado
una nueva disciplina denominada robótica cognitiva, que se encarga del
estudio de las interacciones entre robots y humanos.

La robótica cognitiva se fundamenta en la construcción de robots que traten el


fenómeno cognitivo combinando distintos factores como:

• Aspectos físicos: en la actualidad, los robots más avanzados son capaces de


simular de modo fidedigno la apariencia humana, llegando incluso a
expresar emociones. Así, en [39] se describe un robot con capacidad de
expresar sentimientos, de forma que permite una interacción más cercana
con los humanos.
• Aspectos éticos: inicialmente los robots desenvolvían su actividad en
entornos controlados y aislados, pero los robots de servicio trabajan
conjuntamente con los seres humanos, incluso donde estos últimos
desarrollan sus actividades cotidianas. Hay pocos robots que se encuentren
lo suficientemente evolucionados como para aplicar conceptos éticos a su
programación, sin embargo, la conducción autónoma es una de las
funciones más complejas del ser humano que en un breve período de
tiempo será asumida por robots en entornos reales, para la que ya existen
prototipos funcionales circulando por las carreteras. En el momento en que
estos vehículos sean totalmente autónomos y no puedan solicitar la
cooperación de su conductor, tendrán que resolver problemas éticos en el
momento en que se encuentren en una situación de peligro, donde los
cálculos le indiquen que todas las opciones implican daños a sí mismo o a
otras personas. En este caso, se espera que el robot de servicio sea capaz de
ordenar los daños que se producirán y tome la mejor decisión. Estos

40
Robots de servicio

criterios de ordenación deben contener reglas éticas, y trabajos como [40]


[41] describen y analizan este tipo de casuísticas.
• Aspectos culturales y sociales: como se comentó anteriormente, los robots
de servicio desarrollan su actividad en entornos cotidianos del ser humano,
por lo que deben tenerse en cuenta aspectos culturales del ámbito en el que
estos robots deben llevar a cabo su cometido. En [42] se citan y se discuten
distintos aspectos culturales a tener en cuenta en el diseño de robots de
servicio.
• Aspectos de inteligencia: por norma general, todos los robots de servicio
interactivos deben poseer un conjunto mínimo de capacidades, como, por
ejemplo:
o Capacidad de evaluar su entorno y tomar decisiones.
o Capacidad de visión e interpretación del entorno.
o Capacidad de comunicación por voz, puesto que es el medio de
interacción más empleado por los seres humanos.
o Capacidad de memorización y recuerdo de actividades e interacciones
realizadas en el pasado.
o Capacidad para aprender y generar nuevo comportamiento, que deberá
superar ciertos filtros para verificar que resulta éticamente válido, como
se expone en [43].

3.5 Componentes de un robot de servicio


Todo sistema robótico debe poseer un sistema de control, y todos los sistemas
de control pueden clasificarse en sistemas de lazo abierto o sistemas de lazo
cerrado. Los sistemas de lazo abierto toman una parametrización de entrada,
procesan dichos parámetros mediante un algoritmo, que envía sus resultados
o salidas a los actuadores (motores y otros dispositivos mecánicos) para
producir una modificación en el proceso del mundo real, y generan finalmente
una salida (ver Figura 3.5.1). En este tipo de sistemas, el algoritmo no es capaz
de modificar sus salidas en función de las condiciones del medio o del resultado
generado en el entorno real por los actuadores.

41
Componentes de un robot de servicio

Variables Algoritmo Proceso


de entrada Actuadores Salida
de control real
Figura 3.5.1. Control de lazo abierto.

Sin embargo, el tipo de control que se encuentra normalmente en los robots


es de lazo cerrado, donde se requieren tanto sensores como actuadores. El
proceso comienza con una parametrización o variables de entrada que pasan
por un algoritmo que toma como base estos parámetros, y mediante su
combinación con la lectura obtenida por los sensores que están monitorizando
el proceso real, produce una serie de salidas que deben proporcionarse a los
actuadores. Los actuadores modifican el proceso del mundo real, y
posteriormente, estas modificaciones son medidas por los sensores verificando
que se alcanza el estado objetivo. En caso de que los sensores no devuelvan los
valores esperados, se ajustan de nuevo los valores de los actuadores y se reinicia
el ciclo (ver Figura 3.5.2). De esta forma, el algoritmo de control puede
modificar los valores enviados a los actuadores de forma continua hasta que
detecte que los sensores devuelven los valores esperados. En este tipo de
sistemas siempre se verifica que el entorno real se encuentra en el estado
adecuado.

Variables
Algoritmo
de Actuadores Proceso real Salida
entrada de control

Sensores

Figura 3.5.2. Control de lazo cerrado.

Sensores

La percepción del entorno es una de las características clave de un robot. Es


complicado definir hoy en día un robot, dado que, en el campo de
investigación en agentes virtuales inteligentes, podría considerarse que los
agentes son robots, pero independientemente de que estos sean físicos o

42
Robots de servicio

virtuales, un robot es un sistema modular programable capaz de operar de


forma autónoma o semiautónoma captando información directamente del
entorno (real o virtual) y con capacidad de realizar acciones que puedan
modificar este mismo entorno. En esta definición puede apreciarse que, de
forma intrínseca, un robot incorpora la capacidad de explorar y recuperar la
información del entorno en el que opera, siendo necesario para ello la
utilización de sensores.

Aunque en un entorno virtual, los sensores no captan magnitudes reales, sí que


deben estar modelados para comportarse de forma que devuelven valores muy
próximos a los que captarían sus homólogos en un entorno real, por lo que
podemos definir un sensor como un dispositivo que capta magnitudes físicas o
virtuales, del entorno en el que opera el robot. Estas magnitudes pueden ser la
intensidad de la luz, temperatura, sonido, imágenes del entorno, etc. El robot
procesará los valores captados y deberá tomar las decisiones para relacionarse
con el entorno.

• Tipos de sensores empleados en robots de servicio

• Micrófonos: los micrófonos permiten captar el sonido audible. Son


empleados para la detección de sonido, pero su función principal es la de
captar la voz humana en sistemas de interacción hombre-máquina mediante
lenguaje natural. Para ser funcionales necesitan una etapa de digitalización
posterior que es realizada mediante hardware especializado.
• Sensor de sonido: son dispositivos muy sencillos que se emplean para
detectar si hay personas en un lugar concreto, escuchando los sonidos que
se emiten en el entorno. Calculan la media de la intensidad del sonido
audible y devuelven un solo valor con este dato, indicando si detectan
actividad sonora o vocal (Figura 3.5.3).

43
Componentes de un robot de servicio

Figura 3.5.3 Sensor de sonido.

• Tiempo: es complicado definir el tiempo y por el momento esta dimensión


no puede captarse directamente, pero existen dispositivos que establecen
líneas temporales precisas de forma que es posible obtener una medida del
tiempo transcurrido hasta el instante actual. Esta medida es empleada por
los robots de servicio para identificar los momentos en los que deben
realizar ciertas tareas (Figura 3.5.4).

Figura 3.5.4 Reloj con batería para usar con microcontroladores.

• Iluminación: estos sensores se emplean para identificar de forma sencilla el


nivel de iluminación de un determinado lugar. Devuelven como salida un
único dato de información con el nivel de luminosidad detectado (Figura
3.5.5). Combinando la hora actual, con el sensor de sonido y el de
luminosidad, un robot puede inferir si es de día o de noche, o si su usuario
ha abierto las persianas o todavía está durmiendo.

Figura 3.5.5 Fotorresistencia.

• Cámaras: la cámara es uno de los sensores que devuelve una mayor cantidad
de información y suele requerir de una mayor capacidad computacional
para su procesamiento. Normalmente los robots de servicio poseen dos
cámaras sensibles a la luz visible (Figura 3.5.6), que en algunos casos se
encuentran complementadas con una tercera cámara sensible a la luz
infrarroja, permitiendo ver en la oscuridad empleando emisores led

44
Robots de servicio

infrarrojos. Dotados de visión estereoscópica, los robots son capaces de


mapear su entorno, obteniendo información de todos los objetos, su forma
y la distancia a la que se encuentra de los mismos. Esta área de investigación
se encuentra actualmente muy activa debido a los grandes avances
realizados en aprendizaje profundo y CNN (Convolutional Neural Network).

Figura 3.5.6 Microcámara.

• Presión, humedad y temperatura ambiental: estos tres sensores devuelven


las medidas típicas que se obtienen del ambiente. Con ellas, un robot de
servicio puede operar distintos dispositivos para controlar las condiciones
de confort en una vivienda, o avisar en caso de posibles desviaciones de
algunos de los parámetros. En determinados sistemas como los sistemas de
localización en interiores basados en ultrasonidos, estos sensores se
emplean para el cálculo preciso de la velocidad del sonido en el ambiente,
dado que su valor se ve alterado por la presión, la humedad (Figura 3.5.7)
y, sobre todo, por la temperatura, resultando fundamental para poder
calcular los tiempos de vuelo de la señal con mayor exactitud.

Figura 3.5.7 Sensor de humedad.

• Temperatura de objetos: este tipo de sensor es capaz de medir la radiación


infrarroja emitida por un objeto a distancia (Figura 3.5.8). En robots de
servicio puede emplearse para detectar si alguno de los habitantes de la casa
presenta una temperatura anormal, comprobar si se está cocinando o se ha
dejado algún recipiente en la cocina encendida, comprobar el correcto
funcionamiento de radiadores, etc.

45
Componentes de un robot de servicio

Figura 3.5.8 Sensor de temperatura de objetos por infrarrojos.

• Fuerza: en su construcción normalmente se emplean tiras de presión


(Figura 3.5.9). Este tipo de sensor se puede emplear para modular la
interacción de los miembros del robot con el entorno, coger objetos,
interactuar con personas o animales, etc.

Figura 3.5.9 Tira de presión para medición de fuerza.

• Odométricos: estos sensores son capaces de medir la distancia recorrida por


el robot. Normalmente son sensores compuestos que están formados por
encoders de tipo óptico-infrarrojo (Figura 3.5.10) o Hall. Los encoders
suelen ser objetos planos con forma de círculo que giran conjuntamente
con la rueda, pudiendo tener marcas magnéticas, que detectan los sensores
Hall, o huecos, que detectan los sensores infrarrojos. Con cada marca o
hueco, la rueda se desplaza un número definido de unidades métricas.

Figura 3.5.10 Encoder óptico.

• Sensor angular de posición: detectan el ángulo que forman las dos partes
de una articulación (Figura 3.5.11), como codos u hombros. Cuando no se
emplean servomotores, son fundamentales para detectar el lugar donde
debe parar el motor, mientras que cuando se emplean servos (que pueden
ser posicionados en un lugar angular concreto) se utilizan como mecanismo
de retroalimentación para verificar que el motor se ha detenido en el lugar
correcto.

46
Robots de servicio

Figura 3.5.11 Sensor de posición.

• Sensor Hall de inducción magnética: estos sensores son capaces de detectar


el campo magnético, o la variación del mismo (Figura 3.5.12). Suelen
emplearse en encoders odométricos para detectar la velocidad de giro de
las ruedas en entornos sucios, como vehículos a motor.

Figura 3.5.12 Sensor Hall de inducción magnética.

• Magnetómetros: son las conocidas brújulas electrónicas. Estos sensores se


emplean para conocer la orientación del robot, aunque en entornos
interiores tienen poca utilidad, puesto que el débil campo magnético de la
tierra se ve alterado por la estructura del edificio y todos sus componentes,
y el norte magnético varía dependiendo de estas alteraciones, incluso
dentro de una misma habitación. Esta variación se utiliza por algunos
sistemas de localización en interiores que emplean la detección de huellas
magnéticas para el establecimiento de la posición.
• Acelerómetros: son capaces de detectar la aceleración en los tres ejes. Dado
que un objeto en reposo está en caída libre hacia la tierra con una
aceleración de 1G, al girar el acelerómetro este valor se mantiene constante,
pero se distribuye a lo largo de los tres ejes de coordenadas. Midiendo esta
distribución es posible conocer la inclinación del objeto. Integrando las
aceleraciones absolutas resulta factible el cálculo de la velocidad de un
objeto, aunque debido a los errores acumulados este valor se distancia de la
realidad en poco tiempo.

47
Componentes de un robot de servicio

• Giróscopos: son sensores muy precisos que obtienen la velocidad angular,


normalmente en los tres ejes. Devuelven un valor que, una vez procesado,
indica el número de grados por segundo que está rotando el robot.
• Unidades IMU: aunque pueden adquirirse por separado, normalmente los
acelerómetros y los giróscopos se integran en sensores llamados unidades
IMU (Inertial Measurement Unit), que habitualmente también incorporan un
magnetómetro. Estos sensores permiten calcular la velocidad, orientación y
posición de un robot móvil en relación con el punto de inicio de su
movimiento (Figura 3.5.13). La velocidad se calcula integrando las
aceleraciones que se obtienen del acelerómetro, mientras que la distancia
recorrida se calcula integrando las velocidades, lo que unido a los cambios
de orientación o giros medidos por el giróscopo provee información acerca
de la posición y orientación en la que se encuentra el robot. En robots
móviles terrestres estos cálculos se combinan con los obtenidos por el
sistema odométrico con el fin de eliminar errores, pero en drones aéreos
solo pueden ser combinados con sistemas de posicionamiento con balizas
externas como GPS o similares, o desarrollos a medida.

Figura 3.5.13 Unidad IMU MPU-6050.

• Sensores de proximidad: estos sensores son capaces de medir la distancia


entre el robot y los objetos que se encuentran en su entorno. Dentro de esta
clasificación existen sensores de distintos tipos:
o Ultrasonidos: representan el tipo de sensor más económico para medir
distancias. Por poco más de 1 € es posible conseguir hoy en día un sensor
con un alcance de 5 m y precisiones milimétricas, aunque el problema
fundamental es su directividad (Figura 3.5.14). Puesto que normalmente
tienen un ángulo de apertura de 30 grados. En cuanto aumentan las
distancias cubren espacios grandes, siendo capaces de detectar la
existencia de un objeto en algún punto de la zona de cobertura, aunque

48
Robots de servicio

no son capaces de localizar el lugar exacto hasta que se encuentran más


cerca. Esta característica puede resultar positiva o negativa, puesto que
por un lado no resultan necesarios sistemas mecánicos adicionales de
barrido para cubrir áreas grandes, pero por otro no es posible identificar
la posición de los objetos de forma precisa, hasta que se encuentren muy
próximos.

Figura 3.5.14 Sensor de ultrasonidos HC-SR04.

o Infrarrojo de distancia: los sensores de distancias de infrarrojos son mucho


más caros (del orden de 25 veces). Son empleados para distancias cortas,
dado que normalmente tienen un alcance máximo de 2 metros con
mucha menor apertura del haz (Figura 3.5.15).

Figura 3.5.15 Detector de distancias por infrarrojos.

o Infrarrojos de detección de obstáculos: este tipo de sensores son mucho más


económicos, sólo tienen un diodo emisor y un diodo receptor de luz
infrarroja (ver Figura 3.5.16). No tienen la capacidad de medir
distancias, solo son capaces de detectar si tienen un obstáculo delante a
cierta distancia. Su capacidad de detección suele oscilar entre 0,5 y 2
centímetros.

Figura 3.5.16 Sensor de proximidad infrarrojo.

49
Componentes de un robot de servicio

o Láser: hasta hace pocos años el precio de los sensores láser era
prohibitivo para la robótica de servicio, pero con el desarrollo de los
sensores del tipo TOF10120 (Figura 3.5.17) que permiten realizar la
medición mediante diodos de avalancha de fotón único, se ha
popularizado enormemente su uso. Estos diodos son capaces de
provocar una avalancha de cargas eléctricas adicionales con la detección
de uno o muy pocos fotones. Estos sensores son extremadamente
directivos, emitiendo un haz láser concentrado que puede ser detectado
al rebotar en los objetos. Son capaces de medir distancias comprendidas
entre 10 y 150 cm. Dada su extraordinaria directividad, normalmente se
colocan en soportes móviles con dos ejes, con los que son capaces de
componer un mapa 3D de todos los objetos que se encuentren a su
alcance.

Figura 3.5.17 Medidor láser de distancias TOF10120.

o Contacto: son los sensores de proximidad más simples. Son sensores


electromecánicos que están compuestos por un interruptor que activa
una señal eléctrica al ser pulsado debido a la colisión con objetos.
Podemos encontrarlos formando parte de todas las aspiradoras
robóticas, siendo responsables de la detección de la colisión con
paredes, sillas, etc.
• LIDAR: los sensores LIDAR (Laser Imaging Detection And Ranging) son una
combinación de un sensor láser de alto rendimiento, un dispositivo
mecánico rotativo y la electrónica de procesamiento necesaria (Figura
3.5.18). Estos sensores mapean los 360 grados del entorno a largas
distancias, del orden de decenas de metros, pudiendo llegar a superar
incluso los 100 metros. Son capaces de obtener una imagen 3D del entorno
con una cadencia superior a 10 veces por segundo. El problema
fundamental de estos sensores es su coste, que supera los 70.000 € por
unidad, además de resultar necesaria una enorme potencia de cálculo para

50
Robots de servicio

poder procesar los más de 600 mapas de 360 grados que se generan por
segundo.

Figura 3.5.18 Sensor LIDAR.

• Kinect: es un dispositivo integrado que Microsoft® incorporó a sus consolas


XBox 12. El Kinect Xbox 360 (Figura 3.5.19) es un sensor de 29 cm de ancho
y 9 cm de alto que integra una cámara a color RGB (Red-Green-Blue) de
640x480 y 30 FPS (Frames Per Second), un micrófono matricial capaz de
detectar la dirección del sonido, una cámara de obtención de imágenes de
profundidad y un procesador y software de reconocimiento de voz, caras y
captura del movimiento de las posiciones de las articulaciones del cuerpo
humano en 3D. Dada la buena relación características-coste, es un sensor
ampliamente utilizado en robots de servicio con propósitos de
investigación.

Figura 3.5.19 Kinect XBox 360.

• Sensor de detección de movimiento: estos sensores son capaces de detectar


el movimiento de objetos y personas (Figura 3.5.20). Son los sensores
básicos en los sistemas de seguridad y alarma en viviendas. Un robot puede
emplearlos para detectar movimiento de personas o animales cercanos.

Figura 3.5.20 Sensor de detección de movimiento.

12 https://www.xbox.com/

51
Componentes de un robot de servicio

• Sensores de detección de gas: no son sensores típicos en robots de servicio,


pero en viviendas con cocinas de gas puede resultar interesante su
incorporación como medida de seguridad (Figura 3.5.21). También hay
sensores de detección de CO2, gas radón y otros muchos tipos de gases que
pueden encontrase en el aire.

Figura 3.5.21 Sensor de detección de gas.

• Sensor de vibración: en robots móviles terrestres no tienen aplicación, pero


en drones aéreos pueden detectar el mal funcionamiento de una hélice,
permitiendo aterrizar el dron antes de que se dañe (Figura 3.5.22).

Figura 3.5.22 Sensor de vibración.

• Sensor simple de inclinación: estos sensores son muy sencillos y solo


detectan que el robot ha superado un cierto grado de inclinación (Figura
3.5.23). El aspecto positivo es que suelen ser pasivos, con lo que no
requieren electricidad, pudiendo ser empleados para apagar el robot
cuando este se cae.

Figura 3.5.23 Sensor de caída.

• Propiedades de los sensores

Como se ha comentado anteriormente, la función principal de un sensor es


ofrecer uno o varios valores de medidas de una o varias señales. Las
características de los valores devueltos definen el funcionamiento del sensor,
pudiendo clasificarse según los siguientes aspectos:

52
Robots de servicio

• Error: es la diferencia entre el valor verdadero y el valor medido.


Normalmente se especifica en forma de promedio.
• Resolución: establece el cambio más pequeño que se puede medir.
• Precisión: su valor es inversamente proporcional al error y directamente
proporcional a la resolución.
• Sensibilidad: viene dado por el valor mínimo de la variable medida que
produce un cambio en la salida.
• Linealidad: indica qué tan cerca está la correlación entre la entrada y la
salida a una línea recta.
• Rango: establece la diferencia entre el valor máximo y mínimo que puede
ser medido.
• Tiempo de respuesta: establece el tiempo mínimo que debe transcurrir
entre un cambio de la señal a medir y que este cambio esté disponible en la
salida asociada al sensor. Representa la capacidad del sensor de seguir las
variaciones de la entrada.
• Tiempo de medida: en los sensores de lectura discreta de señales continuas
representa el tiempo transcurrido entre la solicitud de medida al sensor y la
entrega de su valor.
• Frecuencia: indica el número de medidas de la señal que el sensor es capaz
de entregar por unidad de tiempo.
• Derivas: condiciones físicas o variaciones de otras magnitudes que afectan a
la salida del sensor, como temperatura, vibración, etc.

Actuadores

Un actuador representa cualquier dispositivo que permite a un robot


interactuar con el entorno en el que se encuentra. Casi todos los actuadores
mecánicos están compuestos por motores que, junto con articulaciones
mecánicas, forman brazos articulados y manos, pinzas, ventosas de succión y
cualquier tipo de efector final con el que el robot interactúa con los objetos del
mundo real.

53
Componentes de un robot de servicio

Los tipos de articulaciones que pueden formar parte de los brazos articulados
son: (i) rotacional, (ii) planar, (iii) cilíndrica, (iv) esférica y (v) de tornillo
(Figura 3.5.24). Las más utilizadas en robots de servicio son las rotacionales y
las de tornillo, cuando es necesario obtener un alto par de los motores y una
elevada precisión.

Figura 3.5.24. Tipos de articulaciones 13.

En cuanto a los tipos de motores más empleados en la construcción de robots


de servicio, destacan los siguientes:

• Hidráulicos

Un circuito con un actuador hidráulico está formado por una fuente de alta
presión, que proporciona un caudal controlado de un fluido viscoso no
comprimible a través de mangueras no deformables. En el caso de los robots,
el fluido llega al barril del cilindro hidráulico, convirtiendo la presión en un
desplazamiento lineal del vástago del cilindro que permite juntar o separar las
distintas partes de una articulación. La Figura 3.5.25 esquematiza este modo de
funcionamiento. Aunque existen otros tipos de actuadores hidráulicos, como
los motores hidráulicos rotativos, estos no se suelen aplicar en robots.

13Fuente: https://coparoman.blogspot.com/2013/05/12-grados-delibertad-de-un-robot.html [5-


feb-2022]

54
Robots de servicio

Figura 3.5.25. Partes de un cilindro hidráulico de pistón 14.

Las ventajas de este tipo de motor son su alta capacidad de carga, su velocidad
y su precisión, aunque tienen desventajas como su complejidad, el coste y el
peso, dado que requieren de múltiples componentes accesorios como la etapa
de alta presión, válvulas electromecánicas y mangueras de alta presión. Debido
a su coste, no suelen emplearse en robots de servicio, pero sí son empleados en
proyectos punteros en investigación a nivel mundial en robot bípedos como
Atlas, el robot más avanzado de la empresa Boston Dynamics 15 que emplea
actuadores hidráulicos impresos en 3D.

• Neumáticos

Tienen el mismo principio que los actuadores hidráulicos, pero en vez de


trabajar con líquido trabajan con aire. Resultan mucho menos precisos puesto
que el aire es un elemento comprimible, por lo que no suelen emplearse en
articulaciones de robots, pero su uso sí es común en robots industriales
formando parte de los efectores finales, donde se emplean para coger o
succionar objetos. Una de sus ventajas principales es que no necesitan circuito
de retorno, puesto que el aire puede ser expulsado al exterior una vez utilizado,
lo que simplifica el número de componentes necesarios.

14 Fuente: http://www.ashm.mx/blog/partes-de-los-cilindros-hidraulicos/ [Accedido: 5-feb-2022]


15 Fuente: https://www.bostondynamics.com/atlas [Accedido: 5-feb-2022]

55
Componentes de un robot de servicio

• Eléctricos

Los actuadores eléctricos son sencillos de instalar, puesto que solo requieren el
motor y la etapa de control y potencia, estando esta última ya incluida en el
propio motor en algunos casos, como en los servos. Son precisos y fiables, pero
tienen poca potencia y requieren la utilización de cajas reductoras, lo que
aumenta su potencia y su peso, pero reduce su velocidad.

Los motores eléctricos se clasifican en motores de corriente continua o


corriente alterna, siendo los primeros los utilizados en la inmensa mayoría de
robots de servicio. Dentro de los motores de corriente continua, es posible
realizar la siguiente clasificación:

• Servomotores: los servomotores, o servos, son dispositivos ampliamente


empleados en la construcción de robots de servicio. Dada su disponibilidad
actual a muy bajo coste, se utilizan en casi todos los proyectos de robótica.
Se clasifican en dos grandes tipos: (i) servos de rotación continua y (ii)
servos de rango de giro limitado.

Los servos de rotación continua reciben una señal de entrada que indica la
velocidad y el sentido del giro, y una vez iniciado el giro rotan de forma
continua hasta que cesa la señal de control. En los servos de giro limitado
se proporciona una señal que indica la posición en la que debe colocarse su
brazo. Una vez alcanzada la posición, el servo se para y la mantiene de forma
autónoma. La señal debe refrescarse cada cierto tiempo. Mediante ciertas
modificaciones físicas y electrónicas, un servo de giro limitado puede
transformarse en un servo de rotación continua. Ambos pueden ser de tipo
analógico o digital, aunque hoy en día casi todos son de tipo digital.

La Figura 3.5.26 presenta las distintas partes que forman un servomotor: (i)
la cubierta, (ii) la tarjeta de control, (iii) el motor, (iv) el juego de
engranajes y (v) el potenciómetro o resistencia variable. La tarjeta de
control se encarga de recibir las instrucciones de posicionamiento del servo
y enviar la potencia necesaria al motor, después de leer la posición del servo
con el potenciómetro. El juego de engranajes o reductora permite reducir

56
Robots de servicio

la velocidad de rotación e incrementar el par. El potenciómetro es una


resistencia variable que está conectado al eje de salida y gira de forma
solidaria con él. Su lectura por parte de la placa de control indica la posición
del eje de salida.

Figura 3.5.26. Partes de un servomotor 16.

• Motores paso a paso: los motores paso a paso permiten controlar el giro del
motor con una precisión muy alta, pero poseen muy poca fuerza en
comparación con los servos o los motores de corriente continua. Existen
varios tipos de motores paso a paso, pero todos poseen múltiples bobinados
que son activados por grupos de forma secuencial para parar el motor en
las distintas posiciones. En la Figura 3.5.27 se muestra el interior de un
motor paso a paso con los distintos bobinados.

Figura 3.5.27. Bobinados de un motor paso a paso.

• Motores de corriente continua con escobillas: los motores de corriente


continua se emplean en robots de servicio formados por ruedas o hélices.

16 Fuente: https://www.mecatronicalatam.com/es/tutoriales/motor/motores-electricos/motor-
de-corriente-continua/servomotor/ [Acceso: 5-feb-2022]

57
Componentes de un robot de servicio

Aunque existen diversas variantes, sus características diferenciadoras no son


de especial relevancia para el presente trabajo de investigación.
• Motores brushless: estos motores son relativamente recientes y no requieren
de escobillas, puesto que la conmutación la realiza un circuito electrónico.
Dado que necesitan electrónica de potencia específica y los propios motores
son más complejos, su coste es más elevado en comparación con los motores
tradicionales, pero a igualdad de peso proporcionan más potencia, más
durabilidad y menos mantenimiento, por lo que suelen ser empleados en
drones aéreos, que requieren altas revoluciones de rotación durante
periodos largos de tiempo.
• Altavoces: permiten que el robot se comunique en lenguaje natural con sus
usuarios, y en los robots de entretenimiento posibilitan la reproducción de
música y el sonido de las películas.
• Iluminación (visible e infrarroja): en el caso de robots de servicio con
navegación por imagen, hace posible que el robot navegue por estancias sin
iluminación empleando proyección de luz infrarroja.
• Pantallas: permiten comunicación gráfica con los usuarios. En caso de
pantallas táctiles, también representan un mecanismo de interacción.

Sistemas de locomoción de robots de servicio

La mayoría de los robots de servicio emplean ruedas para desplazarse, puesto


que son un mecanismo simple y económico. Dentro de las disposiciones más
comunes en el uso de ruedas se encuentran (i) la diferencial, con dos ruedas,
(ii) el triciclo, con tres ruedas y (iii) ackerman, con cuatro ruedas, siendo este
último simplificable al modelo triciclo. A continuación, se realiza una breve
descripción de la formulación matemática básica de los modelos diferencial y
triciclo.

• Configuración diferencial: un robot con configuración diferencial consta


de un par de ruedas motrices, más una rueda loca que solo realiza funciones
de soporte. Esta configuración es sencilla y estable, pero presenta
problemas de mantenimiento de trayectorias en línea recta, dado que es

58
Robots de servicio

necesario garantizar que los motores de ambas ruedas giren exactamente al


mismo tiempo. En [44] se desarrolla formalmente el modelo cinemático de
un robot de geometría diferencia como sigue (Figura 3.5.28):

Figura 3.5.28. Configuración diferencial.

La Ecuación (3.1) permite el cálculo de la velocidad lineal del robot, que


depende de las velocidades lineales de cada una de las ruedas. Las
Ecuaciones (3.2) y (3.3) se emplean para obtener la posición en el plano
dependiendo del tiempo. Una vez conocida la posición inicial, se debe
calcular la distancia recorrida en cada unidad de tiempo, y al integrar esta
medida, se obtiene el desplazamiento. La Ecuación (3.4) permite conocer
la nueva orientación una vez transcurrido un tiempo prefijado.

𝑉𝑉𝑟𝑟 (𝑡𝑡) + 𝑉𝑉𝑙𝑙 (𝑡𝑡) 𝑟𝑟�𝜔𝜔𝑅𝑅 (𝑡𝑡) + 𝜔𝜔𝐿𝐿 (𝑡𝑡)�


𝑣𝑣(𝑡𝑡) = � �= (3.1)
2 2

𝑥𝑥 (𝑡𝑡) = 𝑥𝑥 (𝑡𝑡𝑜𝑜 ) + � 𝑣𝑣(𝑡𝑡) cos(𝜃𝜃(𝑡𝑡)) 𝑑𝑑𝑑𝑑 (3.2)


∆𝑡𝑡

𝑦𝑦(𝑡𝑡) = 𝑦𝑦(𝑡𝑡𝑜𝑜 ) + � 𝑣𝑣(𝑡𝑡) sin(𝜃𝜃(𝑡𝑡)) 𝑑𝑑𝑑𝑑 (3.3)


∆𝑡𝑡

𝜃𝜃(𝑡𝑡) = 𝜃𝜃 (𝑡𝑡𝑜𝑜 ) + � 𝜔𝜔(𝑡𝑡) 𝑑𝑑𝑑𝑑 (3.4)


∆𝑡𝑡

59
Componentes de un robot de servicio

Mediante las Ecuaciones (3.5) y (3.6) se calcula el radio de giro y la


velocidad angular, respectivamente. Finalmente, en la Ecuación (3.7) se
observa la relación entre la velocidad angular y la velocidad lineal.

𝑉𝑉𝑟𝑟 (𝑡𝑡) − 𝑉𝑉𝑙𝑙 (𝑡𝑡)


𝜔𝜔(𝑡𝑡) = � � (3.5)
𝐿𝐿
𝐿𝐿 𝑉𝑉𝑟𝑟 + 𝑉𝑉𝑙𝑙
𝑅𝑅 = � � (3.6)
2 𝑉𝑉𝑟𝑟 − 𝑉𝑉𝑙𝑙

𝑉𝑉𝑟𝑟 (𝑡𝑡) + 𝑉𝑉𝑙𝑙 (𝑡𝑡)


𝑉𝑉(𝑡𝑡) = 𝜔𝜔𝜔𝜔 = � � (3.7)
2

• Configuración en triciclo: en [45] se presentan los cálculos para estimar la


posición de un robot móvil con geometría de triciclo. En la Figura 3.5.29 se
esquematiza un robot con este tipo de geometría, en el que se supone la
instalación de dos encoders en las ruedas traseras para detectar la velocidad
angular.

Figura 3.5.29. Configuración triciclo [45].

Aunque es posible seleccionar distintos puntos de referencia en el vehículo


para su guiado, se tomará como punto de referencia el punto medio entre
ambas ruedas (punto P en la Figura 3.5.29). La distancia recorrida por el
punto P en un intervalo de tiempo, puede ser calculada mediante la
Ecuación (3.8):

1
∆𝑠𝑠 = (∆𝑆𝑆𝑅𝑅 + ∆𝑆𝑆𝐿𝐿 ) (3.8)
2

donde 𝑆𝑆𝑅𝑅 y 𝑆𝑆𝐿𝐿 representan las distancias recorridas por las ruedas derecha
e izquierda, respectivamente. La variación en la orientación del vehículo,
∆𝜃𝜃, viene dada por la Ecuación (3.9):

60
Robots de servicio

1
∆𝜃𝜃 = (∆𝑆𝑆𝑅𝑅 − ∆𝑆𝑆𝐿𝐿 ) (3.9)
𝑑𝑑
donde d representa la distancia entre ambas ruedas. Mediante la
integración de las Ecuaciones (3.8) y (3.9) se obtiene, respectivamente:

1
𝑠𝑠(𝑡𝑡) = (𝑆𝑆𝑅𝑅 (𝑡𝑡) − 𝑆𝑆𝐿𝐿 (𝑡𝑡)) (3.10)
2

1
𝜃𝜃(𝑡𝑡) = 𝜃𝜃(0) + (𝑆𝑆𝑅𝑅 (𝑡𝑡) − 𝑆𝑆𝐿𝐿 (𝑡𝑡)) (3.11)
𝑑𝑑

donde 𝑠𝑠(𝑡𝑡) es la distancia recorrida por el punto P y 𝜃𝜃(𝑡𝑡) representa la


orientación del vehículo, ambas para un tiempo, t, dado. La Ecuación (3.11)
permite conocer la orientación del vehículo en cualquier instante de
tiempo, y las coordenadas x e y correspondientes al punto P pueden
calcularse mediante:
𝑡𝑡
1
𝑥𝑥(𝑡𝑡) = 𝑥𝑥(0) + � �𝑆𝑆̇ 𝑅𝑅 (𝑡𝑡) + 𝑆𝑆̇ 𝐿𝐿 (𝑡𝑡)� cos(𝜃𝜃(𝑡𝑡))𝑑𝑑𝑑𝑑 (3.12)
2
0

y
𝑡𝑡
1
𝑦𝑦(𝑡𝑡) = 𝑦𝑦(0) + � �𝑆𝑆̇ 𝑅𝑅 (𝑡𝑡) + 𝑆𝑆̇ 𝐿𝐿 (𝑡𝑡)� sin(𝜃𝜃(𝑡𝑡)) 𝑑𝑑𝑑𝑑 (3.13)
2
0

Utilizando estas ecuaciones, es posible obtener una posición aproximada


del robot en el tiempo. La gran ventaja de la odometría reside en su
simplicidad y bajo coste. Sin embargo, además de necesitar una frecuente
calibración como consecuencia del desgaste y pérdida de presión de las
ruedas, desajuste de los ejes, etc., esta técnica es muy sensible a las
imprecisiones causadas por el deslizamiento de las ruedas e irregularidades
en el suelo. Además, en caso de robots que puedan portar peso, la diferencia
de carga es otro factor que puede afectar al agarre, con lo que influirá
directamente en las medidas odométricas, aunque en este caso, es posible
diseñar un modelo que permita corregir las desviaciones introducidas a
partir del peso y distribución de la carga.

61
Competiciones de robots de servicios

3.6 Competiciones de robots de servicios


La Robocup 17 es una ambiciosa competición internacional en la que se pretende
incentivar la investigación en los campos de la robótica y la inteligencia
artificial. Su nombre viene de la primera disciplina incorporada en la
competición, en la que se definía un objetivo muy ambicioso del que nos
encontramos a enorme distancia en la actualidad. En concreto, se pretende
conseguir que en el año 2050 un equipo de robots autónomos puedan
competir en un partido de futbol entre iguales con la selección de Brasil,
aunque como se indica en [46] [47], el objetivo más realista es lograr que un
equipo de futbol formado por robots autónomos pueda enfrentarse de forma
competitiva contra un equipo humano.

La Robocup está diseñada para crear robots que operen en el mundo real
cubriendo áreas de investigación como la inteligencia artificial, robótica, fusión
sensorial, aprendizaje automático, planificación en tiempo real, visión,
estrategias de toma de decisiones, control de motores, arquitecturas
multiagente, razonamiento en tiempo real y modelado cognitivo.

Aunque la competición contempla la creación de robots de tamaño


equiparable al de un humano, debido a sus altos costes de desarrollo se han
creado ligas independientes de simulación para investigar sobre sistemas
cooperativos y sistemas multiagente, tal y como se describe en [48]. En las
últimas ediciones se han ampliado las ligas de simulación en la competición, y
en 2020 ya existían ligas de simulación para su reto principal: el campeonato
de futbol de humanoides de tamaño medio, lo que propicia que más equipos
de investigación puedan participar, dado que anteriormente se empleaban 4
robots Nao 18 de 58 cm de altura con un coste por unidad que superaba los
10.000 €.

Dentro de la RoboCup tiene lugar una de las competiciones internacionales


más conocidas a nivel mundial en el ámbito de los robots de servicio

17 https://www.robocup.org/
18 https://www.softbankrobotics.com/emea/es/nao

62
Robots de servicio

domésticos: la categoría RoboCup@Home, iniciada en el año 2006. Esta categoría


tiene por objetivo el desarrollo de robots de servicio completamente
autónomos que realicen tareas de servicio y asistencia con gran relevancia en
aplicaciones domésticas personales. Se promueve que los robots desplieguen
habilidades de interacción natural con los usuarios y con su entorno de
operación. Ejemplos de estas habilidades son la localización y navegación
segura en ambientes no conocidos, la comunicación natural humano-robot por
voz y gestos, así como poseer capacidades visuales para el reconocimiento y la
manipulación de objetos. Promueve el desarrollo de capacidades de
interacción con el entorno especialmente interesantes como coger objetos o
verter líquidos de un recipiente a otro, que resultan fundamentales para
superar las pruebas establecidas.

De este modo, en la RoboCup@Home se establecen una serie de objetivos que se


mantienen a lo largo de las distintas ediciones para poder analizar el progreso
y la evolución de los sistemas robóticos, tal y como se detalla en [49]. En la
actualidad, los objetivos a alcanzar en las distintas pruebas existentes son los
siguientes:

• Navegación: planificar rutas y navegar de forma segura entre humanos y


mascotas, evitando obstáculos no conocidos.
• Mapeo: construir una representación del entorno parcialmente conocido.
• Reconocimiento de personas: detección y reconocimiento de seres
humanos.
• Seguimiento de personas: identificar la posición de una persona y seguirla.
• Reconocimiento de objetos: detectar y reconocer distintos objetos
presentes en el entorno.
• Manipulación de objetos: agarrar, mover o colocar un objeto, apertura de
puertas.
• Reconocimiento de gestos: capacidad de reconocer e interpretar gestos
humanos.
• Cognición: comprender y razonar a partir de la información dada.

63
Resumen del capítulo

• Cooperación con humanos: ser capaz de realizar acciones combinadas con


interacción humana.
• Comunicación con humanos: reconocimiento y procesamiento del
lenguaje natural.

La competición se divide en tres ligas: (i) la Domestic Standard Platform League,


donde se plantean un conjunto de tareas domésticas que deben ser resueltas
por los robots, (ii) la Social Standard Platform League, centrada en aspectos de
interacción social entre robots y humanos y (iii) la Open Platform League, que
ofrece la mayor libertad y permite que los equipos muestren sus mejores
tecnologías sin estar limitados por la necesidad de llevar a cabo pruebas
específicas. En cada nueva edición las pruebas incrementan su dificultad y se
incorporan nuevas pruebas, pero siempre se mantienen las anteriores, aunque
sus requisitos pueden estar implícitos en niveles de exigencia más complejos
de las pruebas existentes.

3.7 Resumen del capítulo


En este capítulo se ha realizado un análisis del estado actual del campo de
investigación de la robótica de servicio, comenzando por la introducción de los
conceptos generales de la robótica para posteriormente ir delimitando las
características diferenciales de los robots de servicio dentro del área de la
robótica. Principalmente, los robots de servicio se identifican como tal debido
al conjunto de tareas que son capaces de realizar y a los entornos donde las
realizan, estas deben tener interés para las personas realizando tareas no
especializadas en las que resulta necesario captar y manipular el entorno,
siendo este compartido por personas.

Aunque normalmente se requiere que un robot de servicio tenga ciertas


capacidades autónomas y sea capaz de captar el entorno para modificar su
conducta en consecuencia, normalmente se han incluido dentro de este
ámbito de la robótica otros tipos de robots que sirven de ayuda a especialistas

64
Robots de servicio

de diversos ámbitos, pero sin ser capaces de realizar tareas de forma autónoma,
como puede ser el conocido robot quirúrgico DaVinci.

En el capítulo se tratan las principales tareas y campos de aplicación en la que


se pueden encontrar robots de servicio actualmente describiendo ejemplos en
los campos de la exploración espacial y el ámbito médico por ser de especial
interés y en el ámbito doméstico por ser uno de los principales responsables de
la amplia difusión de este tipo de robots.

El capítulo continúa con una descripción de los principales métodos de control


e interacción que se emplean en los robots de servicio como clásicos sistemas
electromecánicos, las pantallas táctiles o mediante la voz humana, pasando por
sistemas gestuales de detección de la posición de las extremidades humanas,
sistemas de detección de la posición de los ojos o cabeza y los más modernos
sistemas de manipulación hápticos, finalizando con los sistemas neuronales del
tipo BCI, EGG o EMG.

En la siguiente sección se trata la temática de la robótica cognitiva, que cada


vez adquiere más peso en el diseño de robots, sobre todo en el ámbito de los
robots de servicio, dado que normalmente este tipo de robots debe operar de
forma autónoma entre personas pertenecientes a una determinada cultura, por
lo que sus acciones y sus decisiones deben considerarse válidas en el entorno
para el que ha sido diseñado.

En la parte final del capítulo se realiza un estudio de los distintos sistemas


físicos que pueden formar parte de un robot de servicio, explicando los
principios básicos de funcionamiento de sus sensores, actuadores y los sistemas
de locomoción más comunes.

El capítulo termina describiendo la RoboCup, que es la competición por


excelencia en el mundo de la robótica de servicios con su sección
RoboCup@Home, en la que presentan proyectos multitud de equipos
internacionales que deben superar una serie de pruebas perfectamente
definidas que se mantienen a lo largo del tiempo incrementando su

65
Resumen del capítulo

complejidad. De esta forma pueden compararse los resultados entre distintos


años analizando las mejoras.

66
4 Sistemas de localización en interiores: estado
del arte y elección tecnológica
4
4.1 Introducción
La investigación principal de esta tesis se centra en la implementación un
sistema de posicionamiento de alta precisión para una vivienda estándar, en el
que se utilizan dispositivos de bajo coste y se emplea un número mínimo de
balizas por habitáculo, para conseguir desarrollar un sistema de navegación
autónoma para robots de servicio. Teniendo en cuenta que uno de estos robots
autónomos puede ser una silla de ruedas, cuyo margen de maniobra para
entrar por la puerta de una habitación desde un pasillo no adaptado puede
llegar a ser de escasos centímetros, el sistema de localización subyacente debe
ser capaz de ubicar los robots con una precisión elevada, tanto de forma estática
como dinámica.

Teniendo en cuenta lo comentado anteriormente, resulta fundamental el


análisis de las distintas alternativas existentes en la actualidad para la
construcción de sistemas de posicionamiento en interiores. Así, los primeros
trabajos que presentaron sistemas de localización en interiores de alta precisión
(inferior a 3 cm) datan del año 1970. Desde entonces, han pasado más de 50
años de evolución en los que se han empleado todo tipo de medidas físicas
relacionadas con el medio, llegando al estado actual donde los sistemas más
modernos son capaces de combinar la lectura de distintas magnitudes para
estimar una posición.

67
Análisis de señales a emplear para localización en interiores

En este sentido, en los últimos años se han realizado avances muy


prometedores, debido fundamentalmente a la proliferación de las redes
inalámbricas y los protocolos de comunicación asociados. Aunque los sistemas
actuales de localización que emplean este tipo de señales no alcanzan una
precisión muy alta, sí que permiten la localización con una precisión aceptable
empleando únicamente señales que se encuentran disponibles en la mayoría
de los edificios, hecho que posibilita realizar el despliegue de este tipo de
sistemas con un coste muy contenido.

Para estructurar el análisis llevado a cabo en este capítulo acerca de los sistemas
de localización, se comienza evaluando las distintas alternativas existentes en
relación con los tipos de señales a medir, analizando los diferentes sistemas que
emplean cada una de estas señales. Del estudio realizado se extraen las
capacidades fundamentales que ofrece cada una de ellas, lo que posibilita una
elección razonada de la opción que más se adecúa a los requisitos funcionales
del sistema a desarrollar. Una vez seleccionado el tipo de magnitud y la señal
física a emplear para el cálculo de las medidas de distancia, las siguientes
secciones del capítulo se centran en analizar los trabajos más relevantes que
documentan los sistemas desarrollados que hacen uso de la magnitud
seleccionada para el cálculo de la posición en robots móviles.

4.2 Análisis de señales a emplear para localización en interiores


Esta sección presenta, y evalúa de forma crítica, las distintas magnitudes físicas
que son empleadas en la actualidad para el cálculo de distancias en interiores,
con el fin de identificar las mejores opciones para la construcción del sistema
de posicionamiento de alta precisión que permita validar la hipótesis de
partida.

A este respecto, los sistemas de localización existentes utilizan medidas de


magnitudes físicas que se pueden propagar por el medio de forma artificial, o
medir de modo natural. En concreto, los sistemas de localización en interiores
emplean alguna de las siguientes señales, o una combinación de ellas:

68
Sistemas de localización en interiores: estado del arte y elección tecnológica

• Ondas electromagnéticas:
o VLC (Visible Light Communication).
o Luz visible mediante reconocimiento de patrones o formas:
 Reconocimiento de formas (Visión artificial).
 Reconocimiento de patrones como balizas.
o LASER (Light Amplification by Stimulated Emission of Radiation).
o Luz infrarroja.
o Señales de RF (Radio Frequency):
 RF banda estrecha mediante ToF (Time of Flight).
 UWB (Ultra Wide Band).
 RF mediante detección de huellas de potencia de señal (RSSI, Radio
Signal Strength Indicator).
 RF empleando protocolos estándar (mediante RSSI):
• Bluetooth.
• Wifi.
• ZigBee.
 RF mediante localización por proximidad:
• RFID (Radio Frequency IDentification).
• Ondas acústicas:
o Ultrasonidos.
o Ondas acústicas audibles.
• Campo magnético terrestre.

En este sentido, la Figura 4.2.1 muestra una clasificación de los distintos tipos
de señales empleadas por los sistemas de localización en interiores, mientras
que la Figura 4.2.2 compara las distintas tecnologías de localización teniendo
en cuenta la precisión como criterio.

69
Análisis de señales a emplear para localización en interiores

Sistemas de
Localización en
interiores

Luz visible e Campo magnético


Sonido Ondas de radio
infrarroja terrestre

Códigos QR, guías de


Ultrasonidos UWB
color, etc

Sonido audible Visión artificial RF mediante ToF

VLC con lámparas led RSSI con protocolos


emitiendo paquetes estandar: Bluetooth,
mediante la luz Wifi, ZigBee

Láser RFID

Infrarrojos

Figura 4.2.1. Tipos de señales empleadas en los sistemas de localización en interiores.

Figura 4.2.2. Comparativa entre rango de cobertura de cada baliza (eje Y) y precisión (eje X), de las distintas
tecnologías empleadas en los sistemas de localización [50].

70
Sistemas de localización en interiores: estado del arte y elección tecnológica

De forma complementaria, la Tabla 4.2.1 resume las principales ventajas e


inconvenientes de las tecnologías más empleadas en la construcción de
sistemas de localización en interiores.
Tabla 4.2.1 Comparativa de las tecnologías más empleadas en la construcción de sistemas de
localización en interiores.

Tecnología Ventajas Inconvenientes


-Necesita una distribución concreta de
Luz visible -Emplea lámparas led ya las lámparas.
codificada existentes. -Necesita electrónica específica de
control para cada lámpara.
-Puntos de referencia pasivos.
-Dependiente de la iluminación.
-Los puntos de referencia no
Reconocimiento de -Capacidades computacionales medias.
necesitan cableado.
patrones -No siempre es posible colocar
-El hardware de detección son
patrones en los lugares necesarios.
cámaras estándar.
-Sólo son necesarias dos cámaras -Proceso de configuración muy
para proporcionar visión complejo, dado que necesita aprender
estereoscópica. la disposición del entorno.
-No necesita instalación de -Altas necesidades computacionales.
Visión artificial
balizas. -Pequeños cambios del entorno
-El mismo hardware puede pueden implicar una reconfiguración
emplearse para detectar completa.
obstáculos imprevistos. -Dependiente de la iluminación.
-Altísima directividad.
-Imposibilidad de atravesar objetos
-Altísima precisión.
Láser tanto grandes como pequeños.
-Alta cobertura lineal.
-Altísima precisión para situar balizas.
-Altos costes.
-Sistemas detección /
proximidad. -Radiación IR no atraviesa cuerpos.
-No interferencias o falsas -Muy corto alcance.
Infrarrojos
detecciones. -Requiere una densidad muy alta de
-Precisión alta a muy corta despliegue de balizas.
distancia.
-Muy extendida y barata. -Alcance muy limitado.
Bluetooth -Compatibilidad. -Alta fluctuación de la señal.
-Bajo nivel interferencias. -Baja precisión.
-Baja precisión.
-Tecnología extendida.
-Alcance limitado.
Wifi -Coste de infraestructura
-Se ve afectado por cambios físicos del
reducido.
entorno.
-Maximización vita útil batería. -Baja potencia de emisión.
ZigBee
-Asequible económicamente. -Señal muy fluctuante según entorno.
-Señal muy afectada por el entorno.
-Largo alcance (100 m).
-En los sistemas actuales presenta una
-Baja densidad nodo (1 nodo por
UWB pérdida muy acusada de precisión sin
cada 100 m2).
línea de visión.
-Precisión media-alta.
-Coste muy elevado.
-Puede verse afectado por
-Puede verse afectado por cambios en
Campo magnético cambios en el mobiliario.
el mobiliario o presencia de personas.
terrestre -No precisa de infraestructura.
-Precisión baja.
-Muy económica.
-Limitaciones dependientes de la
-Diversidad tecnológica
RFID frecuencia.
(pasivo/activo).
-Alto coste de infraestructuras.

71
Análisis de señales a emplear para localización en interiores

-Precisión baja para localización -Compatibilidad.


global. -Alcance muy reducido.
-Precisión alta para
localizaciones en puntos
concretos.
-Elevada precisión.
-Requiere una densidad alta de nodos
-No produce interferencias.
(1 nodo por 1 o 2 m2).
-Las señales no se propagan
Ultrasonidos -Alcance limitado.
fuera del recinto.
-Coste de infraestructura elevado.
-No se ve afectada por las
-Despliegue costoso.
condiciones de iluminación.
-Posibilidad de transmisión en
-Alto número de interferencias en su
banda ancha con electrónica
rango de frecuencias de trabajo.
Sonidos audibles genérica comercial.
-Bajo alcance lineal sin ser molesto para
-Bajo coste de los altavoces.
los humanos.
-Alta precisión.

A continuación, los siguientes apartados detallan más en profundidad las


características de cada una de las magnitudes a detectar, inicialmente
presentadas en la Figura 4.2.1.

Luz visible codificada

Los sistemas de localización que emplean luz visible codificada usan los puntos
de luz existentes para incorporar el código de emisión de cada una de las
balizas, pudiendo así identificar la baliza correspondiente (y obtener su
localización). Estos sistemas tienen una granularidad media en cuanto a
precisión de localización, pudiendo emplear las mismas lámparas led que
iluminan las estancias para enviar la información del código de baliza. Su
precisión depende del número de lámparas instaladas, de la distancia entre
ellas y de su potencia de emisión, pudiendo llegar a precisiones de un metro
cuadrado.

En [51] [52] [53] [54] [55] [56] se presentan varios trabajos que emplean esta
tecnología como sistema de localización, caracterizándose todos ellos por una
baja precisión junto con la necesidad de instalar puntos de luz en posiciones
concretas, lo que dificulta mucho su despliegue. Aunque estos puntos pueden
reaprovecharse como fuente de iluminación tradicional, en una vivienda
común, la ubicación de los puntos de luz atiende a criterios de usabilidad y
habitabilidad, por lo que, en general, no constituye una buena solución.

72
Sistemas de localización en interiores: estado del arte y elección tecnológica

En [52] se presenta un sistema de localización en interiores basado en la


emisión de información mediante las propias lámparas led posicionadas en el
techo de cualquier oficina, a las que es necesario incorporar hardware
adicional. Se desarrolla un hardware de recepción independiente mediante un
fotodiodo y hardware adicional que necesita de un teléfono móvil para
procesar la información. El trabajo se centra únicamente en estudiar la
viabilidad tecnológica, indicando que es posible alcanzar velocidades de
comunicación de entre 1 y 1,5 Mb con codificación OOK (On-Off Keying) y
código Manchester (0 estable en todo el tiempo del bit y 1 con flanco de subida
o bajada en la mitad del tiempo del bit). No hay estudios de cobertura, pero
para su implantación es necesario instalar hardware especializado en todas las
lámparas, lo que incrementa enormemente su coste de despliegue.

En [53] se explota la capacidad de cobertura con posibilidad de emplear una


sola baliza con una distancia lineal de detección de hasta 54 m. En este trabajo
se estudia la capacidad de detección de la señal de emisión a larga distancia,
para ubicación de presencia en pasillos sin localización precisa, dado que sólo
identifica la presencia del robot en la zona de cobertura de la baliza.

En [56] se presenta un sistema de localización por VLC de muy alta precisión


(del orden de 10 cm) empleando la medida de los ángulos de incidencia de la
luz de tres lámparas. Como puntos negativos, en el prototipo analizado, las
lámparas se sitúan artificialmente muy próximas entre sí, y en posiciones no
naturales. Adicionalmente, el hardware de detección del ángulo de incidencia
es un dispositivo comercial profesional extremadamente costoso, por lo que,
aunque se acerca a la precisión requerida, no cumple los requisitos de coste.

En [55] se presenta un hardware específico, implementado con una lente a


una distancia fija de un panel fotorreceptor para estimar el ángulo de
incidencia del emisor de luz. Emplea una fuente común y varios
fotorreceptores para conseguir una precisión de 1 m, que resulta muy baja para
el escenario contemplado en el presente trabajo de investigación.

73
Análisis de señales a emplear para localización en interiores

En [54] se presenta una revisión de distintas técnicas empleadas en la


construcción de sistemas VLC, documentando los grados de precisión
alcanzados por cada una de ellas. En el estudio, la precisión oscila entre 1 m y
2 m, sólo consiguiendo alcanzar los 30 cm con los sistemas más complejos y
costosos, que emplean la emisión de radiación lumínica con espectro
ensanchado.

En resumen, el despliegue de sistemas de localización que utilizan luz visible


codificada resulta complejo, puesto que todas las lámparas deben tener
hardware específico para la emisión de luz pulsada, o deben encontrase
enlazadas mediante un cable de comunicaciones. Teniendo en cuenta las
características específicas del dominio de aplicación objeto de estudio, en una
vivienda estándar donde no existen conexiones de datos entre los puntos de
luz y se necesitan alcanzar precisiones muy inferiores a un metro, la luz visible
codificada resulta inadecuada para el propósito que se persigue en el presente
trabajo de investigación.

Reconocimiento de patrones

El empleo de patrones localizados en puntos conocidos puede ser empleado


como sistema de posicionamiento. En los casos más sencillos la localización es
posicional, de forma que, si una cámara es capaz de leer el patrón, esto indica
que se encuentra muy cerca de él. En otros sistemas más complejos,
conociendo el tamaño real y la forma del patrón pueden deducirse con cierta
precisión variables como la distancia o el ángulo de visión que pueden ser
empleados para obtener una localización, que puede ser refinada obteniendo
estas variables de la detección de otros patrones localizados en la misma
estancia. Sin embargo, este tipo de medida no carece de inconvenientes. Dado
que para que una cámara detecte el patrón, debe estar orientada hacia el
mismo, por lo que será necesario disponer, o de múltiples patrones en todas
las direcciones (opción no muy recomendable en viviendas) o de un sensor
equipado con un array de cámaras. Por otra parte, para distancias largas de
varios metros, las cámaras deben ser de muy alta resolución para permitir

74
Sistemas de localización en interiores: estado del arte y elección tecnológica

captar los patrones o estos deben ser de gran tamaño. Dado que normalmente
se trabaja con resoluciones medias o altas, la capacidad de cómputo para
localizar e identificar los patrones en movimiento en tiempo real es muy alta.

En múltiples sistemas se ha empleado esta tecnología. En [57] se propone un


sistema posicional mediante la detección de patrones del tipo de códigos QR.
En [58] se describe un sistema similar en el que se emplean códigos QR para
extraer información cultural del lugar en donde se lee el código.

En [59] se propone otro sistema posicional que permite mediante la lectura de


códigos QR generados por él mismo, obtener la localización en coordenadas
GPS del lugar donde se ubica el código.

En [60] se propone un sistema particular en el que se emplean patrones


invisibles para el ojo humano situados en el techo, solo detectables con cámaras
infrarrojas. La densidad de patrones empleado fue de 24 patrones por metro
cuadrado cubriendo un área de 64 m2. Con estos datos, el sistema presenta una
precisión de 1 cm. Los resultados son muy buenos, aunque hay que tener en
cuenta que no en todos los lugares se dispone de un techo plano para cubrir
con un tapiz con patrones, de forma que estos no resulten distorsionados según
el punto de vista por columnas, o incluso ocultados por lámparas u otros
objetos. Para conseguir visualizar los patrones, las cámaras están equipadas con
emisores led infrarrojos de alta potencia.

Visión artificial

Debido al incremento de la calidad y resolución de las cámaras de video y a la


miniaturización e incremento de la capacidad de cómputo de los sistemas
empotrados, ya hace algunos años que es posible desarrollar sistemas robóticos
que puedan mapear su entorno para realizar una navegación autónoma. Entre
sus características resaltables están la falta de necesidad de balizas, pero por el
momento, las fases de configuración de estos sistemas son muy complejas y
específicas para cada entorno, siendo necesario entrenar el robot con múltiples
imágenes etiquetadas desde distintos puntos de vista obtenidas del entorno por
el que deben navegar. En la actualidad, estos sistemas emplean CNN que

75
Análisis de señales a emplear para localización en interiores

necesitan ser entrenadas mediante algoritmos de aprendizaje profundo


alquilando tiempo en centros computacionales de alto rendimiento.

En [61] [62] se realizan estudios de los trabajos presentados en el ámbito de la


navegación por visión concluyendo que es posible que un robot navegue de
forma autónoma empleando solo este sistema.

En [63] se presenta un trabajo en el que se emplea tanto un sonar como una


cámara con visión estereoscópica. Esta es una de las primeras aproximaciones
del año 1998 donde la cámara obtenía solo información de los bordes de los
objetos que captaba, identificando esquinas que eran corroboradas por el
sonar.

En [64] se presenta uno de los primeros trabajos realizados con CNN en el que
se muestra un pequeño robot navegando por un tapiz blanco en el que se sitúa
un obstáculo que debe ser esquivado.

En [65] se muestra un trabajo más evolucionado de navegación combinada de


IR (InfraRed) y visión artificial mediante algoritmos de CNN. Este trabajo trata
las posibilidades de navegación esquivando varios objetos.

En [66] se presenta un trabajo completo de navegación mediante técnicas de


CNN en el que un dron es capaz de navegar de forma autónoma por un edificio
siguiente la ruta establecida según la imagen de las zonas que han sido
proporcionadas en el proceso de aprendizaje de la CNN.

La navegación o posicionamiento empleando sólo imágenes requiere el


procesamiento en tiempo real de gran cantidad de información, por lo que los
robots deben poseer potentes dispositivos de cómputo que incrementan su
coste. Pero el problema fundamental para ser aplicado de forma general es su
complejidad de implantación, requiriendo una configuración muy
especializada.

Láser

La luz láser suele ser empleada normalmente en sistemas de mapeo del entorno
y detección de obstáculos de alta precisión. Aunque logra una alta precisión,

76
Sistemas de localización en interiores: estado del arte y elección tecnológica

presenta el problema de la directividad, puesto que el láser debe estar


perfectamente orientado entre emisor y receptor para poder ser detectado por
ambos en un sistema de localización. Esta dependencia hace que su uso sea
muy complicado en sistemas móviles de localización en interiores, puesto que
obligaría a que tanto el emisor como el receptor estuvieran perfectamente
alineados en todo momento. Sin embargo, también existe la posibilidad de
alinear el robot móvil con las balizas únicamente en un plano, montando un
sistema rotativo de alta velocidad llamado LIDAR (Laser Imaging Detection and
Ranging) en el otro, de forma que sea posible detectar la incidencia del láser
desde varios ángulos. La Figura 4.2.3 muestra el esquema básico de
funcionamiento de un sistema LIDAR.

Figura 4.2.3. Esquema de funcionamiento de un LIDAR 19.

Este tipo de sistemas basan su funcionamiento en la emisión de un haz láser,


normalmente de luz infrarroja, y la detección de los fotones resultantes del
rebote contra algún objeto. El haz de luz se proyecta en un punto muy preciso,
por lo que para poder cubrir áreas más amplias es necesario montar el emisor
y el receptor de luz en un dispositivo rotatorio con el que será capaz de cubrir
hasta 360 grados en cada una de las rotaciones, siendo capaz así de mapear
todo su entorno.

Este tipo de soluciones se emplean en sistemas SLAM (Simultaneous Location


And Mapping) para mapear el entorno con total precisión, si bien existen pocos
trabajos en los que se hayan empleado como sistemas de localización de alta
precisión.

19 Accesible en https://www.generationrobots.com/

77
Análisis de señales a emplear para localización en interiores

Uno de los problemas fundamentales que tiene su uso, es la altísima velocidad


de propagación del haz de luz, que hace extremadamente complejo poder
medir el tiempo de vuelo de la señal. Para ser capaces de realizar una medida
entre un emisor y un receptor, ambos deben estar perfectamente
sincronizados, hasta tal punto que sólo es posible conseguirlo con relojes
atómicos, dado que tanto emisor como receptor deben conocer el instante de
tiempo en el que se ha lanzado el haz láser para poder calcular su tiempo de
vuelo. Otra alternativa, es disponer de un espejo en las balizas, de modo que
orientando con total precisión el láser contra el espejo pueda medirse
mediante un interferómetro la diferencia de fase entre la onda enviada y la
rebotada, pero estos sistemas son complejos de operar debido a la altísima
precisión necesaria para su orientación y la escasa diferencia entre las fases de
ambas señales. Por estos motivos, actualmente el láser suele emplearse en
sistemas LIDAR de alta precisión para mapeado del entorno o detección de
obstáculos. En estos sistemas ya no es necesario un sistema de sincronización,
puesto que emisor y receptor son el mismo dispositivo y se puede detectar el
tiempo de vuelo mediante la identificación de la diferencia de fase entre la
onda emitida y la onda recibida. La función de estos sistemas LIDAR no es
localizar una estación móvil, sino mapear el entorno identificando los objetos
que se encuentran alrededor del LIDAR, midiendo la distancia a la que se
encuentran y la morfología de los mismos.

En lo relativo al sistema de posicionamiento que se pretende desarrollar en la


presente investigación, debe tenerse en cuenta que debe instalarse en una
vivienda, por lo que debe ser posible su utilización con otras personas y
animales que hacen uso simultaneo del mismo entorno. En este sentido, la luz
láser tiene el problema añadido de que puede resultar dañino para la salud si
se orienta hacia los ojos de una persona o un animal.

Sin embargo, a pesar de los inconvenientes comentados, se han llevado a cabo


trabajos en los que se emplean sistemas láser para detección del ángulo de
incidencia con buenos resultados.

78
Sistemas de localización en interiores: estado del arte y elección tecnológica

En [67] se presenta un sistema de localización en interiores con un emisor-


receptor similar a un LIDAR y reflectores que hacen las funciones de balizas en
puntos conocidos. La estación móvil es capaz de detectar su posición midiendo
la distancia a los reflectores, empleando un emisor-receptor rotativo, aunque
no se tiene en cuenta que su localización pueda verse obstaculizada por objetos
habituales presentes en una vivienda. Ofrece una solución precisa, pero de muy
alto coste, que no se adapta a las especificaciones requeridas en la presente
investigación.

En [68] se presenta la utilidad más común de los sistemas láser en localización,


el escaneo del entorno en sistemas SLAM. En este caso, el láser se emplea para
mapear el entorno y comparar el mapa obtenido con el mapa del entorno para
localizar la posición. Se emplea un filtro de Kalman para reducir los errores de
las estimaciones. En [69] también se propone un sistema SLAM en el que se
emplea láser para mapear el entorno.

En [70] se introduce la patente de un sistema de localización empleando


balizas láser emisoras situadas en puntos conocidos con hardware similar a un
LIDAR (que realiza un barrido de varios grados de cobertura) y un array de
fotorreceptores cubriendo los 360 grados en el robot a localizar. Los resultados
son muy buenos, obteniendo precisiones mínimas de 5 cm en localización,
pero para evitar los obstáculos en una vivienda sería necesario ubicar las balizas
a la altura de los ojos, pudiendo resultar dañino para la salud. Adicionalmente,
la altura de las balizas emisoras y del receptor deben ser exactamente iguales,
lo que obligaría a levantar en exceso el receptor del móvil.

Como resumen, mediante el uso de láser resulta factible alcanzar precisiones


cercanas a los 3 cm, aunque en la mayoría de los casos el coste de despliegue
es muy alto y se requiere una elevada precisión a la hora de ubicar las balizas y
los sensores de la estación móvil.

Luz infrarroja

Otra de las señales que se emplean en sistemas de localización es la luz


infrarroja. Este tipo de luz es invisible para el ojo humano y compatible con la

79
Análisis de señales a emplear para localización en interiores

salud, siempre que se emplee con rangos moderados de potencia. Tiene como
ventaja el empleo de emisores muy económicos y la capacidad directiva de los
emisores y receptores manteniendo una cobertura de unos 20 grados por
emisor. Este sistema suele emplearse normalmente colocando los emisores en
el techo orientadas hacia el suelo requiriendo una alta densidad de balizas, lo
que complica y encarece el despliegue. Debido a la complejidad de obtener
medidas de tiempo de vuelo, dado que las señales viajan a la velocidad de la
luz, normalmente se localizan los robots identificando las balizas de infrarrojos
desde las que se recibe señal. Conociendo la ubicación de los emisores y el
rango de cobertura de la emisión de cada baliza, es posible tener un área
posible en el que se encuentra el robot a localizar. El problema de la mayoría
de estos sistemas, es la baja precisión.

En [71] se presenta un empleo muy particular de la emisión de luz infrarroja


en los sistemas de localización. En este caso se emplea como canal de
sincronización en combinación con emisores y receptores de ultrasonidos. Las
balizas emisores se sitúan en el techo, de forma que el cono de emisión de
ultrasonidos de las balizas es perpendicular al suelo y el robot se localiza en el
suelo. Se emplean pulsos codificados de luz infrarroja para marcar el instante
de envío del pulso de ultrasonidos para poder calcular su tiempo de vuelo. El
problema de este tipo de disposición es su baja cobertura y al emplear luz
infrarroja, se suman sus problemas de reflectividad y su incapacidad de
atravesar objetos a los que ya tienen los ultrasonidos. El rango de precisión que
refiere, es el mismo que se encuentra en los sistemas de localización por
ultrasonidos, sobre 3 cm, aunque sus resultados se refieren a espacios de
cobertura de 2 m2.

En [72] definen un sistema de posicionamiento de altísima precisión con


precisiones de 2 cm empleando un sensor en el robot móvil con un array de
leds que calculan la diferencia de fase de llegada de las señales de infrarrojos
procedentes de varias balizas. Si bien para conseguir estos resultamos definen
un entorno de simulación en el que las balizas se encuentran a menos de 2 m
del robot y es posible cubrir solo 1 m2 con dos balizas.

80
Sistemas de localización en interiores: estado del arte y elección tecnológica

En [73] se muestra un sistema con una tecnología distinta, dado que el


receptor de luz infrarroja es una cámara. Basa su funcionamiento en el
despliegue en el techo de un patrón de emisores de luz infrarroja. Una cámara
situada en el robot orientada hacia el techo detecta el patrón e infiere su
posición. La precisión es variable, aunque bastante buena, de entre 5 y 20
centímetros, pero la necesidad de situar en el techo múltiples emisores de luz
infrarroja que no pueden emplearse para otro fin, complica mucho su
despliegue, dado que es necesario cablear las conexiones entre los emisores
infrarrojos. Estos sistemas suelen verse muy alterados por las condiciones
lumínicas visibles, pero en el artículo no se realiza ningún estudio sobre la
afectación lumínica a la detección del patrón de infrarrojos.

En [74] se presenta un sistema de muy alta precisión mediante el desarrollo de


un hardware a medida que se compone de una placa fotodetectora y una lente
concentradora. Este hardware es capaz de reconocer con precisión tanto el
ángulo de incidencia de la luz infrarroja como la potencia de la luz recibida.
Las pruebas se han realizado definiendo trayectorias circulares de un radio
máximo de 60 cm obteniendo resultado en el rango de milímetros de error. El
problema sigue siendo la escasa cobertura y la necesidad de instalación de
múltiples receptores para cubrir un área pequeña.

El último trabajo analizado es uno de los más citados dado que representa uno
de los primeros sistemas de localización en interiores implantados con éxito.
En [75] se presenta un sistema de localización en el que se emplean emisores
infrarrojos ubicados en el techo a muy corta distancia entre ellos. Cada uno de
ellos emite de forma continua a intervalos regulares una señal con su código
de baliza. El receptor debe decodificar la información recibida e identificar los
emisores infrarrojos que tiene a su alcance para calcular su posición
aproximada. Dependiendo de la densidad de los emisores y de los ángulos de
cobertura, el error puede oscilar entre decenas de centímetros y algún metro.
Este sistema presenta problemas en su despliegue dado que requiere una
cantidad importante de emisores en el techo para alcanzar una precisión del
orden de centímetros.

81
Análisis de señales a emplear para localización en interiores

Radio-frecuencia mediante mapeo de huellas RSSI (Bluetooth, ZigBee,


Wifi)

La localización por ondas de radio es un tema muy complejo. Debido a la


altísima velocidad de propagación de las ondas de radio, ninguno de los
sistemas de localización en interiores conocidos, que puedan ser implantados
a un coste razonable emplea la medida del tiempo de vuelo de la señal. El
sistema de localización en exteriores más conocido que emplea la medida del
tiempo de vuelo de ondas de radio, es el GPS, pero para hacer esto posible,
debe emplear un sistema de sincronización mediante relojes atómicos para los
satélites, de forma que una vez sincronizados los patrones de emisión de varios
satélites consiguen que los receptores GPS terrestres alcancen precisiones
temporales similares a las de estos relojes atómicos.

En los sistemas de localización en interiores en los que se emplean ondas de


radio, normalmente emplean la lectura de intensidad de la señal de radio
(RSSI) mediante el mapeado de las intensidades de señal leídas en multitud de
posiciones del área de localización. El conjunto de las medidas de intensidad
de señal electromagnética de una determinada zona se denomina huella
electromagnética. Normalmente se emplean varias balizas, comprobando la
potencia de recepción de la señal de cada una de ellas. Combinando esta
información es posible ubicar el robot en una zona definida con baja precisión.
Este sistema tiene una precisión válida para sistemas de posicionamiento
empleados en localización, pero no resulta válido para sistemas de navegación
autónoma dado que los errores oscilan entre 1 m y varios metros.

La tecnología de medición de intensidad de la señal ha sido empleada en


trabajos como [76] en donde se emplea una única baliza emisora para localizar
la ubicación de modo lineal, obteniendo resultados con un error demasiado
amplio que oscila entre los 2 y 8 metros. En [77] se emplea un móvil para portar
un beacon bluetooth, mientras la señal se recibe en tres puntos conocidos. El
sistema combina la información de la señal recibida en cada uno de los tres
puntos para estimar una posición con una precisión de 2,2 m que se reduce a
11 cm en el mejor de los casos mediante algoritmos de filtrado, a costa de

82
Sistemas de localización en interiores: estado del arte y elección tecnológica

retrasar la estabilidad de la medida, aunque esta precisión no se obtiene de


modo estable.

En [78] se emplean 9 balizas emisoras de bluetooth para ser detectadas por el


móvil y triangular su posición mediante detección de potencia de señal
recibida. En este caso las lecturas muestran desviaciones cercanas a 1 m que
son de las menores, de forma estable, obtenidas por esta tecnología.

Grandes empresas como Microsoft también se han introducido en este campo


desarrollando sistemas como RADAR [79] en el que emplean firmas de
intensidad de señal para calcular una ubicación 2D con márgenes de error de
4 m.

UWB mediante cálculo de tiempo de vuelo

Aunque se encuadra dentro de las técnicas de localización por radiofrecuencia,


su empleo de la modulación de las ondas de radio es muy específico. En este
tipo de tecnología, se generan patrones de radio en los que se emplean pulsos
de una duración de nanosegundos. A fecha de inicio de esta tesis (en el año
2014) el coste de esta tecnología era prohibitiva, siendo de decenas de miles de
euros en pequeñas instalaciones. A día de hoy su precio se ha reducido
considerablemente, pero se sigue manteniéndose cerca de los 3.000 € para una
pequeña instalación, lo que está muy lejos de los requisitos de coste del trabajo
desarrollado en esta tesis.

Con esta tecnología es posible obtener precisiones de localización del orden


de 10 cm, e incluso menores en los sistemas más caros y avanzados, aunque
estas precisiones solo se consiguen mediante instalaciones con visión directa
entre las balizas y el robot móvil. En el caso de que se encuentren obstáculos o
tenga que atravesar paredes, las precisiones bajan hasta los 50 cm o más,
dependiendo del sistema. En cuanto a cobertura, este sistema es, con diferencia
el que presenta más cobertura con menos balizas, pudiendo cubrir un círculo
de 100 m de radio con una sola baliza, siendo necesario instalar un mínimo de
dos balizas para obtener una localización en 2D, aunque aplicado a este trabajo,
este rango no tiene utilidad, dado que una habitación estándar en una casa,

83
Análisis de señales a emplear para localización en interiores

rara vez tiene más de 10 m de largo y en el caso de tener que atravesar paredes
pierde totalmente su efectividad, siendo necesario colocar balizas en todas las
habitaciones para mantenerla, con lo que se disparan los costes de
implantación.

El abaratamiento del coste de este tipo de sistemas se basa en la disponibilidad


del chip DWM1000 [80] que permite rangos de precisión mínimos teóricos de
10 cm. En [81] se ha realizado un trabajo de análisis de este tipo de chips en
pacas de desarrollo económicas obteniendo resultados muy inferiores a los
máximos teóricos. En este trabajo se detalla que la cobertura máxima en
condiciones óptimas de visibilidad es de entre 20 y 30 metros y en caso de
encontrarse objetos o paredes en la línea de visión de las balizas (denominadas
anchors) la cobertura baja a 10 m. En todos los casos la precisión máxima se
establece en 20 cm.

Para soluciones comerciales, la referencia en instalaciones comerciales UWB es


la empresa Pozys® [82] que ofrece un kit básico con 4 anchors (balizas) y 4 tags
(elementos localizables) por 2.790 € publicando precisiones de 10 cm.

Campo magnético terrestre

El empleo de campos magnéticos en los sistemas de localización en interiores


ha sido una de las últimas magnitudes incorporadas a este tipo de sistemas.
Estos sistemas emplean las variaciones de campo magnético ocasionadas por
las estructuras de los edificios. Estas medidas no pueden tratarse de forma
absoluta, pero pueden ser empleadas a modo flujo, de forma que se pueden
detectar patrones en los flujos de variaciones de campo magnético para
identificar la posición de la estación móvil según ésta se mueve. Como puntos
a favor se encuentra la falta de necesidad de instalación de balizas, dado que el
campo magnético está generado directamente por la tierra, pero como puntos
negativos tenemos la baja precisión, errores de localización, variabilidad en el
tiempo y la afectación por cualquier cambio físico que ocurra en el edificio. A
estos problemas hay que sumar la dificultad de instalación y configuración,
dado que hay que realizar un estudio de la huella magnética de cada casa, no

84
Sistemas de localización en interiores: estado del arte y elección tecnológica

garantizando que estas variaciones puedan ser útiles en algunas habitaciones.


Estos sistemas tienen muy baja precisión, siendo estas de decenas de metros.
Los errores típicos de estos sistemas rondan los 5 m, aunque en situaciones muy
concretas, trabajos como [83] publican precisiones cercanas al metro, que
sigue distando mucho de las precisiones requeridas. En [84] se analiza la
posibilidad de emplear el campo magnético terrestre como base para un
sistema de localización en interiores llegando a la conclusión de que es posible
obtener precisiones en el rango de cm en situaciones óptimas, aunque no llega
a desarrollar un prototipo operativo. En [85] también se propone un sistema
de navegación mediante huella magnética en el que publican una precisión
máxima de 60 cm en sus pruebas.

RFID

Dentro de la tecnología RFID hay que diferenciar los sistemas que emplean
tags o etiquetas activas y las pasivas, encontrándose mucho más difundidos los
sistemas de localización posicional mediante RFID que emplean tags pasivos.
Estos sistemas poseen dos componentes principales, por un lado, están los tags
pasivos, que son extremadamente pequeños, no necesitan alimentación y están
compuestos por un pequeño chip ultraplano y una antena, normalmente con
forma espiral localizada alrededor del chip. El otro componente son las balizas,
estas son siempre activas y se encargan de emitir ondas de radiofrecuencia
codificadas, de cierta intensidad, que una vez que son captadas por la antena
de los tags, mediante inducción electromagnética, genera una corriente
eléctrica que enciende el tag para que éste, verifique el código de la baliza y
transmita su código de identificación. Al emplear tags pasivos, normalmente,
el tag debe encontrarse a escasos centímetros o incluso milímetros, de la baliza
para poder activarse. En el caso de los sistemas RFID con tags activos, los tags
poseen baterías de muy larga duración, dado que su potencia de emisión es
muy baja, consiguiendo un rango de cobertura muy superior a los tags pasivos,
a costa de multiplicar los costes y el tamaño.

85
Análisis de señales a emplear para localización en interiores

Tanto los sistemas con RFID activo, como los pasivos, son capaces de identificar
su posición cuando los tags se encuentran bajo la cobertura de una o varias
balizas. Conociendo la cobertura de cada baliza, en caso de detectar la señal de
varias de ellas, puede triangularse el área de localización con cierta precisión,
que depende del alcance máximo de las balizas. Realmente no calculan
distancias, sino que asumen que el robot se encuentra dentro del área de
emisión de las balizas. Por su propia naturaleza, estos sistemas no se pueden
emplear en navegación de robots, dado que sería necesario disponer de un
altísimo número de balizas para garantizar cierta precisión, si bien tienen muy
baja precisión global, pueden llegar a tener alta precisión local, dado que con
balizas de muy baja potencia es posible garantizar que el robot está localizado
muy próximo a la baliza.

Trabajos como [86] [87] [88] han empleado esta tecnología para crear
sistemas de localización en interiores, dando resultados con precisiones en
localización posicional de pocos centímetros, lo que significa que cuando el tag
de un robot móvil es identificado por una baliza, este que se encuentra a
centímetros de la misma, pero estos valores nunca pueden ser empleados para
localizar el robot en cualquier posición. En [87] el robot móvil emplea tags
pasivos, lo que reduce su coste, dada su simplicidad, pero debido a que es
necesario activarlos para proceder a la lectura de su identificador, los tiempos
de lectura son mayores, mientras que en [86] se emplean tags activos, mucho
más aparatosos y complejos, pero con un mayor rango de detección, pero
manteniendo las características generales de estos sistemas.

Dada la naturaleza de esta tecnología, tampoco resulta válida para ser


empleada en un sistema de posicionamiento en interiores de alta precisión.

Ultrasonidos

Conjuntamente con señales UWB, este es el único tipo de señales que puede
emplearse en sistemas de localización en interiores, consiguiendo precisiones
de muy pocos centímetros, llegando en los mejores sistemas a precisiones
milimétricas, con un coste muy bajo. Los ultrasonidos tienen la ventaja de

86
Sistemas de localización en interiores: estado del arte y elección tecnológica

poseer una baja velocidad de propagación. Esta baja velocidad comparada con
las ondas de radio hace posible medir su tiempo de vuelo con dispositivos
electrónicos de bajo coste. También tiene sus inconvenientes, como son la
imposibilidad de atravesar paredes, el bajo rango de cobertura lineal que no
suele pasar de 12 m en dispositivos económicos y un ángulo de cobertura que
suele ser de un máximo de 30 grados. Si bien, estas limitaciones pueden operar
a nuestro favor en el entorno en el que se ha propuesto instalar el sistema de
localización. Dentro de una vivienda, una habitación difícilmente tendrá una
longitud superior a 12 m, por lo que un solo transductor de ultrasonidos podrá
cubrirla linealmente. En cuanto a la imposibilidad de superar paredes, nos
permitirá separar de forma precisa las emisiones de cada una de las
habitaciones, de forma que, si se activaran las balizas de dos habitaciones por
encontrarse ambas dentro de la cobertura de los paquetes de radio, solo podría
recibir el pulso de ultrasonidos enviado por el robot la baliza que se encuentre
en la misma habitación que él. El ángulo de cobertura de cada transductor sí
es una limitación importante, para la que se propondrán alternativas en este
trabajo.

Como se ha indicado, uno de los mayores problemas de los sistemas de


localización con ultrasonidos es la cobertura por baliza, normalmente es
necesario desplegar un alto número de balizas para conseguir cubrir incluso
pequeñas superficies, como puede ser una habitación. Habitualmente el área
de superposición de cada grupo de tres balizas, necesarias para obtener una
localización, no supera los 4 m2, como se puede extraer de las medidas
obtenidas de trabajos como [89] [90] [71] [91]. En la inmensa mayoría de estos
sistemas, las balizas se ubican en el techo emitiendo hacia el suelo como en
[51] [92] [90] [93]. Esta ubicación nos garantiza siempre que la señal llega
perfectamente a la estación móvil, dado que esta se encontrará en el suelo a
menos de 3 metros de las balizas, y entre las balizas y la estación móvil no puede
haber obstáculos, pero dadas las características físicas de los transductores de
ultrasonidos, que normalmente tienen un cono de radiación de 30 grados, y
dada la corta distancia entre la baliza y la estación móvil, el cono abre

87
Análisis de señales a emplear para localización en interiores

demasiado poco, con lo que cubre un área muy pequeña del suelo como se ve
en la Figura 4.2.4.

Figura 4.2.4. Área cubierta por una baliza con emisión perpendicular al suelo.

Trabajos con este tipo de colocación de las balizas pueden encontrarse en [94]
[92] [90] [93]. En otros sistemas, las balizas se colocan en el techo orientadas
con cierto ángulo hacia el suelo como en [95] [96] [89]. Supuestamente con
esta distribución se esperaría obtener un mayor grado de cobertura,
reduciendo el número de balizas necesarias, si bien en ninguno de estos
trabajos se hace ningún estudio de cobertura, ni de instalación y distribución
de balizas en entornos reales, por lo que no es posible comparar los resultados
en cuanto a esta métrica.

Los ultrasonidos son una alternativa válida para el desarrollo de un sistema de


localización en interiores de alta precisión, que puede adaptarse perfectamente
a una vivienda por precisión, cobertura y costes, siempre que sea posible
reducir el número de balizas que es necesario desplegar para cubrir todo al
área.

Sonidos audibles

Los sonidos audibles son un tipo de señal interesante para ser empleado en
sistemas de localización. Una de las primeras características es el acceso sencillo
al hardware de emisión, dado que cualquier altavoz estándar puede emitir
frecuencias de sonido audible comprendidas entre 5 y 20 KHz. Por otra parte,
es muy económico implementar sistemas de banda ancha, dado que cualquier
altavoz es capaz de generar sonido en varias frecuencias dentro del rango
audible, cuando los transductores de ultrasonido de bajo coste están diseñados
para trabajar de forma óptima en una sola frecuencia. Pero normalmente

88
Sistemas de localización en interiores: estado del arte y elección tecnológica

tienen problemas de cobertura con baja potencia y en cuanto la potencia


sonora se amplía resultan molestos. Estos inconvenientes los hace válidos para
sistemas de posicionamiento estático de personas, donde solo es necesario
solicitar la posición en momentos puntuales, pero no resultan atractivos para
sistemas de navegación de robots que requieran recuperar su posición de
forma constante durante el transcurso de la navegación.

En [97] se desarrolla el sistema 3D-LOCUS que emplea señales acústicas


comprendidas entre 5 y 25 KHz con codificación de señal mediante espectro
ensanchado empleando DSSS (Direct Sequence Spread Spectrum). Los resultados
son realmente buenos, mostrando medias de error de precisión de 1 cm, pero
a pesar de que es posible emplear transductores con mucho mayor ángulo de
emisión, dado que emplea ondas sonoras de frecuencias audibles, el alcance
por baliza no supera los 5 m. En el estudio de cobertura que realizan en [97]
en entorno de laboratorio, consiguen cubrir un área cuadrada de 16 m2 con 7
balizas situadas en el techo, lo que se traduce en que resulta necesario colocar
una baliza por cada 2 m2. Este estudio también muestra que, en los lados del
área cuadrada de cobertura, los errores crecen proporcionalmente a la
distancia. Aunque pueda parecer que el número de balizas necesarias es alto,
la densidad conseguida es muy buena, dado que hay que tener en cuenta que
este sistema permite la localización en 3D por lo que es necesario obtener las
distancias a tres balizas para establecer una localización. A pesar de ello, tanto
por número de balizas a desplegar, como por su sistema típico de conexión en
el que todas las balizas están conectadas por cable, este sistema no sería apto
para su empleo en una vivienda.

En [98] se describe el sistema Beep. Este sistema ha sido diseñado para ser
empleado en dispositivos estándar como teléfonos o tabletas. En su diseño
inicial, las balizas son altavoces conectados a una tarjera de sonido, lo que
implica que será necesario cablear todas las balizas y en caso de cubrir amplios
espacios será necesario usar repetidores de sonido. Emplea TOF para trilaterar
la posición de la estación móvil, que puede ser un teléfono inteligente que
recuperará la información de las balizas para procesarla y obtener su

89
Sistemas de localización de alta precisión con ultrasonidos

localización. La estación móvil debe identificar un patrón de frecuencias


específico enviado por las balizas. En el estudio se detalla una precisión del
orden de los 60 cm que resulta demasiado baja, y no presenta datos de
afectación del ruido en las frecuencias audibles a las medidas de localización.
Tampoco incorpora información sobre la perturbación auditiva que producen
sus señales.

En [99] se presenta el sistema Darevil, que tiene como particularidad el


emplear triangulación mediante el cálculo de los ángulos de incidencia del
sonido en el receptor móvil. Para realizar las lecturas emplea un array de
micrófonos. En el estudio detallan errores comprendidos entre 16 y 520
centímetros.

En [100] se realiza el diseño de un sistema adaptado para la localización de


personas empleando sonido audible. El sistema permite emplear tanto TDMA,
como FDMA (Frequency-division multiple Access) y CDMA (Code Division Multiple
Access) presentando errores inferiores a 10 cm, aunque la falta de estudios
analizando la afectación por el nivel de ruido y la falta de estudios sobre
cobertura, no permiten analizar la posibilidad de implantación en un entorno
real.

4.3 Sistemas de localización de alta precisión con ultrasonidos


A partir de este punto, el estudio se centrará en los sistemas de localización
mediante ultrasonidos. Una vez analizadas todas las posibles señales a emplear
y debido a la altísima precisión necesaria en el posicionamiento, solo queda la
posibilidad de emplear ultrasonidos o bien señales de radiofrecuencia de
banda ancha (UWB), siendo los ultrasonidos, los únicos con los que
potencialmente se conseguirían precisiones milimétricas a un coste reducido.
En los trabajos analizados en los que se empleaba UWB, su coste era muy
superior y la ventaja del rango de alcance de decenas de metros no resultaba
útil en una vivienda, dado que en cuanto necesitaba atravesar paredes, su
precisión se reducía de pocos centímetros a varias decenas de centímetros y en
los sistemas económicos basados en el chip Decawave DWM1000 [80], ni

90
Sistemas de localización en interiores: estado del arte y elección tecnológica

siquiera era capaz de superar los 10 m de cobertura con objetos interfiriendo


la línea de visión. Dada la altísima complejidad de desarrollar un hardware
específico de UWB y el objetivo de conseguir un coste muy bajo para las balizas,
esta alternativa también ha sido descartada, con lo que finalmente se han
seleccionado las ondas de ultrasonidos como la magnitud que deberá ser
empleada para conseguir un posicionamiento de alta precisión.

Una vez seleccionada la magnitud física aparecen varias alternativas inherentes


al empleo de ultrasonidos que se irán tratando en los siguientes puntos,
analizando distintos trabajos.

Tipos de referencia

Como se describió en el Apartado 2.4.6 hay sistemas que sólo obtienen la


posición de forma relativa a otros objetos que encuentran en su entorno, y
sistemas que obtienen una posición absoluta en el área de localización. Entre
los primeros se encuentran multitud de trabajos como [101] [102] [103] [104]
[105] [106] [107] [108] [109] [110] [111] [112] [113] [114] en los que las
señales de ultrasonidos se emplean como sonar para mapear su entorno. Este
tipo de sistemas solo comparten la necesidad de medir el tiempo de vuelo de
la señal de ultrasonidos con los sistemas de localización global, por lo que no
serán analizados más trabajos de este tipo en los siguientes apartados.

Ubicación de las balizas

La inmensa mayoría de los trabajos revisados están diseñados para poder ser
empleados de modo universal en cualquier instalación, por lo que sitúan las
balizas en el techo de los habitáculos como en [115] [92] [93] [71] [116]
[117], calculando la distancia entre las balizas y la estación móvil que se
encuentra en el suelo, necesitando un mínimo de tres medidas para obtener
una localización. Esta disposición aplicable a cualquier instalación, presenta el
inconveniente de tener una muy baja cobertura y no aprovecha la capacidad
máxima de emisión lineal de los transductores de ultrasonidos. Cada
transductor, incluso en los tipos más económicos, es capaz de cubrir una
distancia lineal de 8 a 12 metros y su cono de radiación alcanza los 30 grados.

91
Sistemas de localización de alta precisión con ultrasonidos

Empleando la disposición más habitual con la colocación en el techo de las


balizas (Como en el caso del sistema Constellation que puede verse en la Figura
4.3.1), en una casa estándar cuya altura es de 2,50 m, dado que es el mínimo
legal en la actualidad, la cobertura no supera los 1,5 m2 en el suelo, aunque
presenta como ventaja, el tener la certeza de que no encontraremos obstáculos
entre las balizas y los dispositivos a localizar.

Figura 4.3.1. Distribución de balizas en el ILS Constellation.

En otro tipo de disposición muy poco explorada y sobre la que no hemos


encontrado ningún trabajo con implantaciones en localizaciones reales, se
sitúan los emisores a cierta altura, con su cono de emisión paralelo, o casi
paralelo al suelo como en [118] [119] [120] [121]. En la Figura 4.3.2 puede
verse esta disposición, con una baliza emitiendo su señal con el centro del cono
de emisión formando un ligero ángulo con el suelo.

Figura 4.3.2. Cobertura máxima de una baliza en SAPPO.

De este modo ampliaríamos la cobertura de cada uno de los transceptores hasta


su límite teórico de distancia, pero esta disposición presenta dos tipos de
inconvenientes:

92
Sistemas de localización en interiores: estado del arte y elección tecnológica

• Por un lado, necesitamos mantener el sensor móvil dentro de ciertos rangos


de altura al suelo, dado que es necesario que entren dentro del cono de
radiación de la baliza.
• Por otro lado, es necesario que no exista ningún objeto voluminoso a la
altura del cono de radiación de la baliza, dado que los ultrasonidos no
pueden atravesar objetos voluminosos, aunque las ondas de sonido pueden
cubrir el espacio tras objetos relativamente pequeños.
• Los ultrasonidos son muy directivos (normalmente 30 grados de apertura
por transductor) por lo que es necesario mantener la orientación entre los
sensores del robot y las distintas balizas.

En la Figura 4.3.2 se muestra el cono de radiación ultrasónico que


correspondería a la superficie 3D que cubriría una única baliza situada en la
pared de la cama orientada de modo paralelo al suelo. Con transductores de 9
m de alcance, su cono de cobertura se extendía hasta 9 m de distancia e iría
ensanchándose según se aleja de la baliza.

La mayor parte de los trabajos analizados se centran en describir sistemas de


localización muy precisos empleando distintas tecnologías dentro del ámbito
de los ultrasonidos, pero en casi ninguno de ellos se realizan estudios de
complejidad de despliegue en entorno real ni estudios precisos del área de
cobertura que posibilita la localización en despliegues en entornos reales, ni
de ubicaciones, ángulos de inclinación y colocación de las balizas.

Gran parte de los trabajos se realizan en entornos de laboratorio, donde se


colocan las balizas en el techo orientadas con cierto ángulo hacia el suelo
donde se sitúa la estación móvil a localizar como en [96] [95]. En estos casos,
el área de cobertura real sería la resultante del solapamiento de los conos de
radiación ultrasónica de todas las balizas, que normalmente es bastante
pequeña y está centrada en la habitación como puede apreciarse en la Figura
4.3.3.

93
Sistemas de localización de alta precisión con ultrasonidos

Figura 4.3.3, Cobertura de balizas situadas en el techo de [122].

Función de las balizas (emisión-recepción)

La función desempeñada por las balizas dentro de los sistemas de localización


por ultrasonidos condiciona el comportamiento y las características del sistema,
éstas pueden encargarse de emitir el pulso de ultrasonidos, recibirlo, o incluso
poseer capacidad para ambas funciones.

• Balizas emisoras del pulso de ultrasonidos

Normalmente las balizas son siempre emisoras y los robots móviles son los que
reciben el pulso de ultrasonidos, de esta forma es el robot el que tiene la
información para realizar el cálculo de su posición.

En un sistema de localización con balizas es posible asignar la función de


emisión y recepción tanto al robot móvil como a las balizas. En los trabajos en
los que se realiza una localización distribuida como en [123] [121] [124], todos
los sensores tienen la capacidad de emisión y recepción, dado que tanto las
balizas como los robots son puntos de referencia. En caso de que las balizas
sean las que emitan el pulso de ultrasonidos y el robot sea el receptor,
normalmente tenemos un sistema de alto consumo debido a su emisión
constante, pero muy escalable en lo relativo al número de robots a localizar
dado que los robots son receptores pasivos, como en el sistema GPS global.

94
Sistemas de localización en interiores: estado del arte y elección tecnológica

Dentro de este comportamiento se engloban todos los sistemas de emisión de


banda ancha, dado que aprovechan la capacidad de emisión simultánea de
todas sus balizas, como los mostrados en [125] [126] [127] [128].

En el caso de emplear codificación de señal en banda estrecha, para el acceso


al medio por las balizas para la emisión del pulso de ultrasonidos, puede
emplearse TDMA como en [129] [130] [131], en el que cada baliza emplea su
slot de tiempo para transmitir, con lo que tendremos un ligero incremento de
la imprecisión originada por el movimiento de robot, dado que la velocidad de
los ultrasonidos es relativamente lenta, la medida de cada baliza se realizará en
un instante de tiempo diferente, lo que incorporará un error al combinarlas
para calcular la posición del robot debido a su desplazamiento, aunque este
error puede ser reducido estimando la posición en cada una de las lecturas.

En otros trabajos como [116] el robot envía un pulso de radio activando las
balizas de modo secuencial. El problema con este sistema es su lentitud en
despliegues grandes, debido al alto número de balizas.

• Robot como emisor del pulso de ultrasonidos

En el caso contrario, en que sea el robot el que transmita el tren de pulsos de


ultrasonidos, las balizas no consumirán casi energía mientras no les llegue el
paquete de radio de sincronización solicitando una medición, con lo que
mantendrán un consumo de energía reducido. Tampoco tendremos el
problema de latencia o el error producido por el movimiento de los robots ni
siquiera en sistemas de banda estrecha, dado que el robot móvil transmitirá al
mismo tiempo el tren de pulsos a todas las balizas a su alcance. Pero aparecen
otros problemas, dado que las balizas son las que reciben el pulso de
ultrasonidos, son éstas las que miden el tiempo de vuelo que necesita el robot
para calcular su posición, con lo que después de la medida hay que diseñar un
procedimiento para que transmitan esta información al robot o a un nodo
central para realizar los cálculos de posición.

Ejemplos de este modo de funcionamiento pueden verse en [119] [93] [94].


Este modo no se aconseja para entornos cooperativos de robots, dado que

95
Sistemas de localización de alta precisión con ultrasonidos

todos ellos estarían solicitando sus medidas a la vez, lo que complicaría mucho
el sistema, dado que tendría que diseñarse un sistema que evite las posibles
colisiones.

Codificación de la señal

Dentro de los trabajos de investigación que encontramos sobre sistemas de


localización empleando ultrasonidos tenemos varios tipos de codificación de la
señal. Como clasificación inicial, la información enviada por los transductores
de ultrasonidos puede estar codificada en banda estrecha o en banda ancha.

• Codificación de la señal y acceso al medio en banda estrecha

Se codifica en banda estrecha cuando los transceptores emiten en una única


frecuencia. Una de las limitaciones más importantes es la imposibilidad de
transmisión simultánea de varias balizas. Para poder emplear el mismo medio,
las balizas deben sincronizarse entre sí repartiendo el canal en slots de tiempo
mediante la técnica TDMA (Time Division Multiple Access).

Mediante este tipo de acceso al medio, los transductores de las balizas envían
un tren de pulsos de ultrasonidos solo en el slot de tiempo que le corresponde,
que son recibidos por los transceptores destino como en [123] [132] [124]
[133]. En casi todos los trabajos de este tipo, los transductores emiten una
portadora de 40 KHz que se considera un estándar en emisión de ultrasonidos.
Los sensores receptores detectan la presencia de la portadora en el medio
devolviendo el tiempo transcurrido desde la señal de inicio de la medida. Estos
sistemas están muy difundidos y encontramos hardware básico muy económico
que implementa los sistemas de generación de onda, amplificación, trasmisión
y detección de presencia de la portadora, y también tenemos otros módulos
mucho más complejos con posibilidad de configuración como emisor o
receptor para poder medir tiempos de vuelo de la señal. Esta alternativa tiene
como inconveniente la imposibilidad de codificar información en la propia
señal y la incapacidad de transmisión simultánea de varias balizas a la vez, así
como la necesidad de un sistema de sincronización externo.

96
Sistemas de localización en interiores: estado del arte y elección tecnológica

Un caso particular es el mostrado en [134] [89] donde se emplean ultrasonidos


de banda estrecha, pero en este caso se emplean distintos tipos de
transductores, cada uno diseñado para una frecuencia distinta. Esta
aproximación permite que todas las balizas transmitan su pulso en banda
estrecha a la vez sin interferencias, pero complica el hardware, dado que la
estación móvil debe tener uno o varios receptores para cada tipo de frecuencia.

• Codificación de la señal en banda ancha

Otra parte de los trabajos emplean codificación de la señal empleando espectro


ensanchado mediante CDMA (Code Division Multiple Access) como [135] [92]
[136], lo que permite que múltiples balizas actúen como emisoras de modo
simultáneo. Dentro de esta tecnología los sistemas de ultrasonidos emplean
FHSS o DSSS y en algún trabajo han empleado OFDM. Ejemplos de sistemas
de este tipo se muestran en [137] [92] [138] [139] [120] [140] [141].

En FHSS se realiza la transmisión de la información empleando múltiples


portadoras, saltando continuamente entre ellas. Dado que cada parte de la
información se transmite empleando una portadora distinta es muy inmune al
ruido que al aparecer en una frecuencia debe coincidir con la frecuencia de
transmisión y solo alterará el bit emitido en esa frecuencia.

En DSSS se suele trabajar con varias frecuencias simultáneamente asignando


cada frecuencia a una baliza distinta, pero la base de esta técnica consiste en
codificar cada bit de información como un código de múltiples bits, de forma
que, aunque se pierda o modifique la información de algún bit del código,
pueda reconstruirse la información original. El estándar 802.11 recomienda
emplear 11 bits por bit transmitido, aunque se considera que 100 es el número
óptimo. Esta técnica reduce la tasa de transmisión de información en cada
canal, siendo esta ya muy baja empleando ultrasonidos.

Emplear FHSS o DSSS permite una mayor tolerancia al ruido y tanto FHSS
como DSSS permiten la coexistencia de varias emisiones de modo simultáneo,
cada una en una frecuencia diferente. En algún sistema como [142] se emplea
espectro ensanchado con transmisión en frecuencias portadoras ortogonales

97
Sistemas de localización de alta precisión con ultrasonidos

(OFDM), perpendiculares entre sí, lo que permite transmitir a baja velocidad


con una alta inmunidad al ruido y a la detección de señales en multitrayecto.

Adicionalmente, si empleamos patrones definidos en la transmisión, podemos


emplear el mismo patrón como sistema de sincronización con lo que no
necesitamos un sistema adicional, de forma similar al sistema GPS global.

El coste a pagar al emplear ultrasonidos de banda ancha, es el alto incremento


de la complejidad de los sistemas y la indisponibilidad de módulos básicos
económicos de modulación comerciales, teniendo que desarrollar desde cero
todo el hardware. Adicionalmente tendremos que mantener todas las balizas
sincronizadas de modo muy preciso.

Sistemas de sincronización

El sistema de sincronización puede tener dos funciones, por una parte, en el


caso de emplear codificaciones de las señales de ultrasonidos que no permitan
la emisión concurrente, debe garantizar el acceso al medio sin colisiones por
parte de las balizas, cuando estas operen como emisoras, como en [143] [144]
[145] [90]. En estos trabajos se mantiene la sincronización de las balizas en
todo momento mediante cable o la emisión de paquetes de radio.

Otra de sus funciones, es la de permitir calcular con precisión el tiempo de


vuelo o la diferencia de tiempo de vuelo de la señal de ultrasonidos entre las
balizas y el robot móvil como en [96] [146] [147] [148] [149]. La
sincronización se emplea dentro del algoritmo de cálculo de tiempo de vuelo
tanto en los casos de sincronización puntual, estableciendo el momento del
envío del pulso o paquete de ultrasonidos, como en sincronización
permanente, para mantener sincronizadas las emisiones de pulsos o los
patrones de ultrasonidos emitidos por las balizas.

La sincronización puede realizarse de modo permanente o puntual.

• Sincronización permanente en sistemas de banda ancha

El sistema de sincronización permanente mantiene los relojes de todas las


balizas y el robot sincronizados en todo momento. De forma periódica o

98
Sistemas de localización en interiores: estado del arte y elección tecnológica

continua es necesario realizar tareas de resincronización para garantizar que


todos los relojes están sincronizados. Este sistema es el empleado en la
codificación de patrones en la señal empleando portadoras de espectro
ensanchado. Durante todo el tiempo que se está recibiendo la señal, el robot
se está sincronizando con las balizas empleado los patrones contenidos en la
señal. Adicionalmente, las propias balizas deben tener un sistema adicional de
sincronización entre ellas, o bien leyendo la señal del resto de las balizas o bien
mediante el envío periódico de señales de radio de sincronización. Este sistema
permite la transmisión continua de las balizas permitiendo un alto número de
robots en el área de localización sin que se vea afectado el rendimiento, dado
que los robots móviles son pasivos, pero tiene como inconveniente el alto
consumo de energía debido a la transmisión constante. Un ejemplo de este
sistema puede encontrarse en [150].

• Sincronización permanente en sistemas de banda estrecha

Si empleamos la codificación de la señal mediante portadoras de 40 KHz, de


modo que no es posible realizar la emisión simultánea desde varias balizas,
deben mantenerse sincronizadas todas las balizas y establecer un algoritmo de
acceso al medio por tiempo compartido (TDMA) de modo que cada baliza
tiene un espacio temporal en el que debe realizar su trasmisión de la onda de
ultrasonidos para no solaparse. En este caso, las balizas se sincronizan
empleando paquetes de radio de sincronismo y emplean la precisión de su reloj
para mantener el sincronismo entre paquetes. Cada operación de medida
necesitará un envío del paquete de ondas ultrasónicas de cada baliza en su slot
de tiempo. Una vez que todas hayan realizado su envío el robot podrá
triangular su posición. Este sistema de envío y sincronización requerirá que
periódicamente, las balizas y el robot se resincronicen con la baliza maestra,
para mantener todos, la misma señal de reloj. Con este método empleamos un
hardware mucho más sencillo y seguimos mantenimiento la posibilidad de
escalar el sistema e incorporar más robots sin alterar el modo de trabajo, dado
que los robots serán pasivos. El robot sabe el instante de tiempo en que le toca
transmitir a cada baliza y sabe cuándo detecta la onda de ultrasonidos, con lo

99
Sistemas de localización de alta precisión con ultrasonidos

que puede calcular el tiempo de vuelo. Tiene como inconveniente la latencia,


dado que hasta que todas las balizas terminen de enviar su pulso, no puede
localizarse y genera imprecisiones originadas por el movimiento del robot,
dado que, aunque estemos trabajando en tiempo de centésimas de segundo, si
el robot se encuentra en movimiento, cada baliza transmite su pulso en un
lugar ligeramente distinto. Sistemas que emplean sincronización por
radiofrecuencia entre las balizas son [137] [122] [151]. En muchos otros casos,
dado que están diseñados en laboratorio y no contemplan la complejidad de
un despliegue cableado, las balizas están sincronizadas por cable como [138]
[152] [153] [154].

• Sincronización puntual

La otra alternativa es la sincronización puntual. Mediante este sistema, cada vez


que se realiza una transmisión de ultrasonidos se envía un paquete de radio
informando del momento del inicio de transmisión como en [146] [155]. La
distancia recorrida por el tren de pulsos de ultrasonidos depende del tiempo y
el tiempo sería la suma del tiempo de vuelo del paquete de radio y el tiempo
de vuelo del tren de pulsos ultrasonidos como podemos ver en las Ecuaciones
(4.1) a (4.3):

𝑑𝑑 𝑣𝑣𝑠𝑠
𝑑𝑑 = 𝑣𝑣𝑠𝑠 (𝑡𝑡𝑠𝑠 + 𝑡𝑡𝑐𝑐 ) = 𝑣𝑣𝑠𝑠 �𝑡𝑡𝑠𝑠 + � = 𝑣𝑣𝑠𝑠 𝑡𝑡𝑠𝑠 + 𝑑𝑑 (4.1)
𝑐𝑐 𝑐𝑐

𝑣𝑣𝑠𝑠 𝑣𝑣𝑠𝑠 𝑣𝑣𝑠𝑠 𝑡𝑡𝑠𝑠


𝑑𝑑 − 𝑑𝑑 = 𝑑𝑑 �1 − � = 𝑣𝑣𝑠𝑠 𝑡𝑡𝑠𝑠 => 𝑑𝑑 = 𝑣𝑣 (4.2)
𝑐𝑐 𝑐𝑐 �1 − 𝑠𝑠 �
𝑐𝑐
𝑣𝑣𝑠𝑠
≪ 1 => 𝑑𝑑 = 𝑣𝑣𝑠𝑠 𝑡𝑡𝑠𝑠 (4.3)
𝑐𝑐

Donde 𝒗𝒗𝒔𝒔 es la velocidad del sonido, 𝒕𝒕𝒄𝒄 es el tiempo empleado por el paquete
radio en llega al sensor de destino, 𝒕𝒕𝒔𝒔 es el tiempo que tarda en detectar el
pulso de ultrasonidos el destino una vez ha recibido el paquete radio y c es la
velocidad de la luz. Como la velocidad de la luz es muy superior a la del sonido,
a efectos prácticos, el tiempo de vuelo del paquete radio no es relevante en la
medición y por tanto la medida sólo depende del tiempo de vuelo del pulso de
ultrasonidos como se deduce de la Ecuación (4.3).

100
Sistemas de localización en interiores: estado del arte y elección tecnológica

Dentro de los sistemas de sincronización puntual, de forma general se emplean


señales de radio dado que no tienen ni las limitaciones de cobertura ni de
colisión de obstáculos de los ultrasonidos, pero en [71] se ha empleado señales
de infrarrojos para la función de sincronización, aunque resulta un punto
diferencial no aporta ninguna característica resaltable.

Cabe destacar el trabajo mostrado en [156], que aunque presenta errores


cercanos al medio metro no emplea sistemas de sincronización, dado que
calcula las posiciones de estaciones móviles empleando el efecto doppler por
el que las ondas cambian su frecuencia dependiendo de la dirección y
velocidad relativa entre el emisor y el receptor.

Cálculo de la posición

En cuanto al sistema de cálculo de las medidas a emplear para obtener la


localización hay dos opciones, puede medirse el tiempo de vuelo de la señal de
ultrasonidos entre la baliza y el robot o puede medirse el ángulo de incidencia,
incluso en trabajos como en [116] se mide el tiempo de vuelo a un sensor con
3 receptores equidistantes en un plano y con esta información se calcula el
ángulo de incidencia.

• Tiempos de vuelo

Entre los sistemas que emplean el tiempo de vuelo de la señal, hay dos tipos,
los que emplean el tiempo de vuelo de cada una de las balizas independiente y
los que calculan la diferencia de tiempo de vuelo entre las señales de todas las
balizas.

En los sistemas que emplean el tiempo de vuelo de cada baliza de forma


independiente, conociendo el tiempo de vuelo y la velocidad de propagación
del sonido en el aire, se calcula de forma muy precisa la distancia a cada una
de las balizas. Mediante trilateración, obteniendo tres medidas de distancia a
tres puntos conocidos se puede calcular la intersección de las esferas generadas
por cada una de las medidas de distancia permitiendo calcular la posición del
robot. En [157] [155] [146] [153] pueden encontrarse trabajos que emplean

101
Sistemas de localización de alta precisión con ultrasonidos

esta técnica. En estos sistemas las balizas deben estar perfectamente


sincronizadas entre sí y con el robot.

En otro tipo de sistemas como [158] [159] [95] [160] [161] [162] [163] [164]
se emplea la diferencia del tiempo de vuelo. En este caso no se tiene el tiempo
de vuelo de cada baliza de forma independiente, sino que se obtiene el tiempo
transcurrido entre la recepción de los ultrasonidos de cada baliza. En estos
sistemas, las balizas tienen que estar sincronizadas entre sí, pero no con el
robot. En este caso deben emplearse cálculos hiperbólicos para conocer la
ubicación del robot.

• Ángulo de incidencia

Para localizar el robot también pueden emplearse algoritmos de triangulación.


En este caso es necesario conocer el ángulo de incidencia de las emisiones de
ultrasonidos de tres balizas sobre el robot. Ejemplos de esta técnica se
encuentra en los trabajos [165] [118] [166] [116] [139]. Adicionalmente, en
algún trabajo se emplea la triangulación mediante la obtención de los ángulos
de incidencia de las ondas de ultrasonidos mediante el cálculo de la diferencia
de fase con la que inciden las ondas en dos sensores próximos, pero estos
trabajos ofrecen precisiones muy bajas por debajo del rango exigible a este
proyecto.

LOS (Line Of Sight) vs NLOS (No Line Of Sight)

Los ultrasonidos no pueden traspasar objetos grandes como muros o armarios,


por lo que todos los trabajos analizan el comportamiento de sus sistemas con
línea de visión directa entre emisor y receptor. Con los objetos pequeños, a
corta distancia del objeto, la onda vuelve a cubrir el espacio detrás del objeto.
Aunque no puedan atravesar objetos, si pueden reflejarse en otros objetos y
conseguir alcanzar posiciones que se encuentran detrás de los objetos que no
pueden traspasar, pero tergiversando las medidas de tiempos de vuelo. Algunos
trabajos emplean esta característica para ampliar su cobertura, como en [144]

102
Sistemas de localización en interiores: estado del arte y elección tecnológica

[167] en los que se analiza el comportamiento de las ondas reflejadas para la


localización de la estación móvil y los errores producidos por las reflexiones.

Tipo de desarrollo de hardware de los sensores

Para el desarrollo del hardware pueden emplearse varias alternativas. Puede


realizarse un desarrollo hardware específico donde en todos los casos
analizados, al menos los transceptores empleados siempre son comerciales,
como en [168] [136] [111]. En otros casos se amplían estudios existentes
basándose en hardware ya desarrollado con anterioridad como en [169] [170]
[171] que se basan en Cricket [152], el sistema Teliamade [172] que se basa
en ATLINTIDA [173] o [94] que emplea el hardware de DOLPHIN [123].
Normalmente los desarrollos de hardware emplean una combinación de
sensores, o parte de los mismos, comerciales junto con desarrollos propios para
conseguir alcanzar las características propuestas.

4.4 Sistemas de localización en interiores más representativos


Aparte de todos los trabajos analizados, en la siguiente sección se describirán
más en detalle los sistemas de localización en interiores más importantes hasta
la fecha que se han hecho un nombre dentro de esta disciplina de
investigación.

Active Bat

En Active Bat [174], las balizas se sitúan en el techo formando una malla. Todas
las balizas se encuentran cableadas entre sí operando como receptoras de las
ondas de ultrasonido. El sistema está diseñado para localizar a personas dentro
de una estancia interior, donde cada persona porta un dispositivo que contiene
un emisor de ultrasonidos y un emisor de infrarrojos, este dispositivo debe estar
bien orientado hacia el techo, donde se encuentran las balizas receptoras. Para
realizar una medida, el dispositivo móvil emite un código infrarrojo
identificando el dispositivo que solicita la medida y un paquete de pulsos de
ultrasonidos al mismo tiempo, las balizas detectan la señal infrarroja con la que

103
Sistemas de localización en interiores más representativos

inician el contador del tiempo de vuelo y en cuanto detectan la señal de


ultrasonidos paran el contador y envían el tiempo de vuelo recuperado a una
estación central para explotar la información de localización. La estación
central debe identificar la lectura de tiempos de vuelo correctos de un mínimo
de tres balizas para calcular la posición.

Este sistema tiene una alta precisión, 5 cm de precisión en el 95% de las


medidas, pero tiene el gran inconveniente de necesitar cablear todas las balizas
necesitando una alta densidad de balizas (ver Figura 4.4.1) para localizar
estaciones móviles en pequeños espacios.

Figura 4.4.1. Imagen de Active Bat, de la página web de la Cambridge University.

Cricket

El sistema de localización en interiores Cricket [175], es uno de los más citados,


siendo también una de las primeras aproximaciones de alta precisión. Fue
desarrollado por el MIT como parte del proyecto Oxygen. En este sistema se
distribuyen las balizas por el techo en posiciones equidistantes entre sí. Las
balizas tienen la función de emisión. Como sistema de sincronización se
emplean paquetes de radiofrecuencia. En un ciclo de localización, las balizas
emiten un paquete de radio con su identificador y localización y al mismo
tiempo emiten un pulso de ultrasonidos. Dado que emplean banda estrecha,
solo una baliza puede transmitir al mismo tiempo. El receptor móvil (ver Figura
4.4.2) recupera el paquete de radio e inicia el contador de tiempo hasta la
detección del paquete de ultrasonidos. Una vez detectado calcula la diferencia
de tiempo entre la llegada de los dos paquetes, con lo que obtiene el tiempo
de vuelo del ultrasonido. Una vez que realiza esta operación con tres balizas

104
Sistemas de localización en interiores: estado del arte y elección tecnológica

calcula su posición. En su segunda versión, este sistema tiene una precisión muy
alta de 2 cm, pero tiene una tasa de refresco muy baja que normalmente no
excede de 1 Hz y depende del área a localizar, dado que las balizas deben emitir
de modo secuencial y entre emisiones deben esperar el tiempo necesario para
que el tren de pulsos de ultrasonidos recorra su distancia máxima y se disipe su
potencia para que no sea detectado en la siguiente lectura.

Figura 4.4.2. Unidad Cricket con conexión RS232.

Hemanite

Hexamite [176] es uno de los poquísimos sistemas de localización por


ultrasonidos comerciales que actualmente se encuentra en venta online en
http://www.hexamite.com/

Figura 4.4.3. Hexamite. Propuesta de distribución de tags.

Hexamite admite emplear sus balizas y tags de distintas formas, de modo que
admite tanto instalarlos en el techo como paralelos al suelo como se muestra
en la Figura 4.4.3, esto implica que la instalación es muy costosa y específica
para cada entorno. Los tags solo poseen un transductor de ultrasonidos por lo

105
Sistemas de localización en interiores más representativos

que debe garantizarse que este se encuentre orientado hacia las balizas. Dada
la necesidad de orientación precisa, normalmente es necesario desplegar una
gran cantidad de balizas para cubrir grandes espacios. El dispositivo a localizar
tendrá un tag HX19T16-IP42 que emitirá un paquete de radiofrecuencia con
su identificador y al mismo tiempo emitirá el paquete de pulsos de
ultrasonidos. Las balizas receptoras HX19R recuperan la información de
identificación y calculan el tiempo de vuelo del tren de pulsos de ultrasonidos
guardando esta información que será transmitida posteriormente mediante
radiofrecuencia a un ordenador central (ver Figura 4.4.4).

Figura 4.4.4. Hexamite. Array de receptores.

3D-LOCUS

La característica más resaltable de 3D-LOCUS [97] es que emplea señales


acústicas en vez de ultrasónicas. Las señales de ultrasonidos tienen una
frecuencia superior a los 20 KHz empleando normalmente los 40 KHz. 3D-
LOCUS emplea señales acústicas entre 5 y 25 KHz. Para calcular la posición,
emplea el algoritmo de trilateración mediante el cálculo del tiempo de vuelo
de las señales de sonido. En el entorno de laboratorio sobre el que se realizaron
los análisis de 3D-LOCUS, las balizas estaban cableadas empleando LVDS (low-
voltage differential signaling) para sincronización y BusCAN (Bus Controller Area
Network) para transmitir información, aunque según sus características también
admitiría la conexión inalámbrica de las balizas empleando Bluetooth para
transmitir datos y RF (radio frequency) a 433 MHz para sincronizar las balizas.

106
Sistemas de localización en interiores: estado del arte y elección tecnológica

Para permitir la emisión simultánea emplea codificación CDMA (Code Division


Multiple Access) lo que lo hace más inmune al ruido, aunque también admite el
empleo del acceso al medio empleando TDMA (Time Division Multiple Access).

Una característica única es que calcula el tiempo de vuelo de las señales entre
nodos calculando el tiempo de vuelo de la ida más el tiempo de vuelo de la
vuelta dado que los nodos son emisores y receptores a la vez. Presenta
precisiones medias muy altas de 1 cm, pero sigue requiriendo la instalación de
una alta densidad de balizas para cubrir espacios amplios, dado que su rango
de cobertura por baliza no supera los 5 m lineales, lo que obliga a que su
disposición más típica es la colocación de balizas en el techo orientadas hacia
el suelo. En su esquema de funcionamiento, todas las balizas están cableadas y
conectadas a un ordenador central, como se muestra en la Figura 4.4.5.

Figura 4.4.5. Esquema modular de 3D-LOCUS [177].

Dolphin

Dolphin (Distributed Object Location System for Physical-space Internetworking) [123]


se incluye en esta lista porque es la referencia de los sistemas con ultrasonidos

107
Sistemas de localización en interiores más representativos

de localización distribuida. Es un sistema de localización distribuida en el que


todos los nodos son iguales (Figura 4.4.6), son tanto emisores como receptores.

Figura 4.4.6. Unidad DOLPHIN [123].

Emplear un numero bajo de balizas fijas, de las que es necesario conocer su


posición, y a partir de estas balizas es capaz de posicionar el resto de los
elementos. Este sistema puede ser empleado para localización en entornos de
robots móviles colaborativos. Todos los nodos contienen tanto un transceptor
de radio como cuatro transductores de ultrasonidos. Para efectuar una
localización, un nodo A transmite un tren de pulsos de ultrasonidos y un
paquete de radio con información de identificación y posición actual, el resto
de los nodos recuperan el paquete de radio e inician el contador de tiempo
hasta recuperar el paquete de pulsos de ultrasonidos para calcular la distancia
a partir del tiempo de vuelo. En cuanto un nodo recupere información de otros
tres nodos puede calcular su posición. Cada nodo mantiene una tabla con las
distancias a los nodos alcanzables, como se puede ver en el esquema de la
Figura 4.4.7.

Figura 4.4.7. DOLPHIN. Distribución modular [123].

108
Sistemas de localización en interiores: estado del arte y elección tecnológica

LOSNUS

LOSNUS (Localization of Sensor Nodes by Ultra-Sound) [145]. Está diseñado para


localizar dispositivos estáticos. En LOSNUS las balizas se emplean como
emisoras y se pueden situar tanto en el techo como en una pared con emisión
paralela al suelo. En este último caso los transmisores se distribuyen por toda
la pared como se muestra en la Figura 4.4.8 extraída del trabajo de definición
del sistema.

Figura 4.4.8. LOSNUS. Ejemplo de distribución de transmisores.

Cada medida se inicia con la activación de las balizas por parte de una unidad
central. Una vez activadas, estas transmiten secuencialmente a intervalos
conocidos su paquete de pulsos de ultrasonidos. Los receptores reciben tanto
la señal de inicio de transmisión como los paquetes de pulsos de ultrasonidos y
los tiempos de llegada de cada uno de ellos. Los receptores deben conocer las
ubicaciones de cada una de las balizas y su orden de transmisión y con esta
información combinan los tiempos en una unidad central (ver Figura 4.4.9) de
llegada mediante el algoritmo de resolución de diferencia de tiempo de llegada
de las señales.

Figura 4.4.9. LOSNUS. Esquema de conectividad.

109
Sistemas de localización en interiores más representativos

Sobre este sistema no hay ejemplos de despliegues en entornos reales, pero sus
pruebas en laboratorio han entregado resultados de precisión milimétricos.

TELIAMADE

La distribución básica de componentes de TELIAMADE [172] divide el sistema


en un nodo central o controlador y los nodos distribuidos que realizan la
función de balizas (ver Figura 4.4.10). La comunicación entre el nodo central
y las balizas se realiza mediante radiofrecuencia empleando el protocolo
ZigBee como se indica en el estudio publicado en [178]. TELIAMADE presenta
la capacidad de reconfiguración inalámbrica, lo que hace que su despliegue y
configuración sea más sencillo.

Figura 4.4.10. TELIAMADE. Distribución de nodos.

El nodo central se encarga de sincronizar a todos los nodos mediante el envío


de secuencias de paquetes de radio de forma periódica. Empleando los
paquetes de radio y un pulso de ultrasonidos de banda estrecha, los nodos
obtienen la distancia a las balizas. Como particularidad, la información de
identificación de las balizas se codifica en el paquete de pulsos de ultrasonidos.
Una vez que el nodo móvil recupera tres tiempos de vuelo procedentes de tres
balizas, envía la información al nodo central que procede a calcular su posición,
dado que los nodos no tienen información de las posiciones de las balizas.

Este sistema es único en cuanto a la capacidad de codificar información en los


paquetes de ultrasonidos de banda estrecha, pero mantiene los mismos

110
Sistemas de localización en interiores: estado del arte y elección tecnológica

problemas de cobertura y la necesidad de una alta densidad de balizas dada su


ubicación en el techo, más la complejidad de su despliegue y el no poder ser
adoptado por muchos tipos de localizaciones interiores.

4.5 Resumen del capítulo


El capítulo comienza definiendo los requisitos del sistema que se pretende
desarrollar en esta tesis para posteriormente estudiar múltiples sistemas de
localización existentes junto con las tecnologías empleadas desde la perspectiva
del ajuste a este tipo de requisitos. Se inicia el estudio evaluando los distintos
tipos de señales empleados en sistemas de localización en interiores y
describiendo las características de cada tipo de señal junto con las capacidades
de los sistemas que las emplean. En este apartado se evalúan los sistemas basado
en señales como luz visible codificada (VLC), láser, luz infrarroja, ondas de
radio (UWB, Bluetooth, RF, ZigBee), ondas acústicas (sonido audible y
ultrasonido), captación de luz visible (patrones, imágenes) y campo magnético
terrestre. Se analizan los puntos positivos y negativos de cada señal mediante el
estudio de las características más resaltables de varios trabajos en los que se
emplean. Una vez analizadas todas las señales que son empeladas en sistemas
de localización en interiores, se toma la decisión de emplear los ultrasonidos
como señal base de detección de distancias por sus características de altísima
precisión, alcance medio y disponibilidad de hardware de bajo coste para el
desarrollo de las balizas y sensores.

En las siguientes secciones, el estudio se centra en los sistemas de localización


en interiores que emplean ondas ultrasónicas, analizando los distintos
componentes, protocolos, sistemas de sincronización y codificación de las
ondas ultrasónicas.

Casi todos los sistemas de este tipo, menos los de localización distribuida,
emplean dos tipos de componentes bien diferenciados, las balizas, que son los
dispositivos electrónicos que se encuentran ubicados en puntos fijos conocidos
y pueden estar conectados entre sí mediante cableado o de forma inalámbrica
y los dispositivos de localización móvil que se sitúan en el robot. Inicialmente

111
Resumen del capítulo

se estudian las distintas posibilidades de colocación de las balizas, dado que la


elección de una de ellas definirá sus características de cobertura máxima.

Se continúa analizando otra de las características básicas de estos sistemas que


es la función de cada uno de estos componentes, dado que las balizas pueden
emplearse como emisores o como receptores e incluso como emisores-
receptores en sistemas de cálculo de posición distribuida. Finalmente se
terminan analizando puntos como la codificación de la señal, los sistemas de
sincronización y la tecnología empleada en la medida de las distancias.

En el capítulo se han seleccionado los ultrasonidos como señal de medición de


distancias para el trabajo propuesto en esta tesis y se han analizado todas las
posibles combinaciones tecnológicas empleadas en sistemas de localización
que emplean este tipo de señal. En el siguiente capítulo se expondrán las
características técnicas del sistema que se ha desarrollado en este trabajo.

112
5 SAPPO. Sistema de Alta Precisión de
POsicionamiento
5
5.1. Introducción
SAPPO, cuyo logo se muestra en la Figura 5.1.1, es un sistema de
posicionamiento en interiores, que permitirá ubicar robots móviles en
cualquier lugar de una vivienda, empleando señales de ultrasonido en banda
base a 40 KHz.

Figura 5.1.1 Logo del sistema de posicionamiento SAPPO. 20

Para que esto sea posible, estará compuesto por un conjunto de balizas y un
dispositivo situado en el robot móvil que se quiera localizar. Las balizas estarán
ubicadas en puntos fijos conocidos y estarán repartidas por toda la casa. Para
su funcionamiento sólo será necesario la instalación del cable de alimentación,
ya que las comunicaciones se realizarán de modo inalámbrico. Uno de los

20 Fuente: https://dibujosa.com/dibujosgratisapp.php?codigo=18806 [Acceso: 4-abr-2022]

113
Función de cada elemento

objetivos principales de todo el sistema es limitar al mínimo el número de


balizas necesarias para conseguir la localización en toda la casa, o al menos en
todas las áreas en las que se encuentren caminos de circulación que pueda
seguir el robot para desplazarse de una habitación a otra.

Cada uno de los robots móviles a localizar, deberán disponer de un dispositivo


electrónico que le permita comunicarse con las balizas y recuperar la
información de distancia a cada una de las balizas alcanzables desde el
dispositivo en cada una de las habitaciones. Este dispositivo será el encargado
de realizar los cálculos necesarios para determinar la posición del robot.

5.2. Función de cada elemento


El sistema de localización está compuesto por balizas y por robots móviles.
Inicialmente podría seleccionarse como emisor o receptor a cualquiera de los
elementos, pero la elección asignará conjuntos de características distintas al
sistema.

El asignar el rol de recepción a los robots móviles y el emisor a las balizas nos
permite generar un sistema escalable que permite la coexistencia de varios
robots en la misma habitación, pero el inconveniente, al haber seleccionado
una portadora de banda base a 40 KHz, es que no pueden transmitir todas las
balizas a la vez, de modo que siempre habrá una pequeña diferencia de tiempo
entre la transmisión de cada baliza, que generará imprecisiones cuando el
robot se encuentre en movimiento. Adicionalmente, el retraso en las medidas
ocasionada por este retardo generará un menor número de medidas por
unidad de tiempo. En este caso, debemos tener en cuenta que este retardo
entre transmisiones no será despreciable, dado que entre cada medida tiene
que transcurrir un tiempo mínimo para que la energía del tren de pulsos de
ultrasonidos se disipe. Teniendo en cuenta el alcance de los transductores
empleados y calculando la distancia máxima que puede llegar a recorrer el
ultrasonido, dado que no queremos que genere falsas detecciones positivas en
la siguiente medida, debemos esperar un mínimo de 3 centésimas de segundo.

114
SAPPO. Sistema de Alta Precisión de POsicionamiento

Por los anteriores motivos, se ha seleccionado como emisor al robot móvil y


como receptores a las balizas, de modo que el emisor enviará un paquete de
radio de sincronización global para todas las balizas y después enviará un pulso
ultrasónico omnidireccional que detectarán todas las balizas a la vez, con lo que
no se generarán retardos en movimiento. El paquete de radio que envía el
robot móvil identifica el robot que solicita la medida, de modo que pueden
coexistir varios robots a la vez en el mismo espacio, siempre que no soliciten
medidas de posicionamiento de modo simultáneo.

El sistema elegido tiene inicialmente dos problemas, por un lado, es poco


escalable, dado que una misma emisión de las balizas no puede ser empleada
para localizar a todos los robots a la vez, pero por otra parte debemos tener en
cuenta que, en nuestro sistema, en toda la casa tendremos solo uno o dos robots
(VILMA y DANI), por lo que no es necesario crear un sistema escalable que
permite localizar varios dispositivos de modo simultáneo.

Adicionalmente, este sistema genera un segundo problema, dado que el robot


móvil envía el paquete de sincronización de radio con información del robot
que solicita la medida, y son cada una de las balizas las que miden el tiempo de
vuelo de las ondas de ultrasonido, la información de los tiempos de vuelo la
tiene cada una de las balizas de modo independiente, por lo que será necesario
transmitir toda esta información al robot móvil para que este pueda calcular su
posición. Dada la emisión múltiple de información simultánea, en este punto
deben controlarse las posibles colisiones.

Se ha escogido esta configuración dado que tiene como ventajas, la precisión


de la localización, e incrementa notablemente el número de medidas que
pueden efectuarse por segundo, en detrimento del número máximo de robots
que puede gestionar en una misma habitación.

115
Descripción de las balizas

5.3. Descripción de las balizas


5.3.1. Ubicación de las balizas para mejorar su cobertura

Este apartado está íntimamente relacionado con uno de los requisitos


principales del sistema. Se debe tener en cuenta que el objetivo de la tesis es
desarrollar un sistema real que pueda ser implantado en una vivienda estándar,
y para que la implantación no sea muy compleja, debe requerir la instalación
del menor número de balizas posible, dado que cada baliza debe ser cableada
al menos con la alimentación. Para los lugares donde resulte especialmente
complicado cablear una baliza puede emplearse un hardware específico de
muy bajo consumo que permite periodos largos de recambio de baterías, pero
este sistema debe ser empleado como medida excepcional, dado que será
necesario revisar y cambiar sus baterías cuando se agoten, lo que complica el
mantenimiento del sistema.

Figura 5.3.1. Cobertura de baliza instalada en el techo.

En la mayor parte de los sistemas de posicionamiento por ultrasonidos, las


balizas se sitúan en el techo, como se puede apreciar en la Figura 5.3.1, en
donde se ha dibujado solo una baliza en el techo orientada hacia el suelo. El
área cubierta por cada baliza aumenta notablemente con la distancia, pero con
esta disposición estamos limitados por la altura de la planta. Resulta evidente
que cuanto más lejos se encuentren las balizas del dispositivo a posicionar se
tendrá un mayor rango de cobertura por baliza, siempre que nos mantengamos
dentro del alcance físico. En la Figura 5.3.1 podemos ver el área de cobertura

116
SAPPO. Sistema de Alta Precisión de POsicionamiento

de un solo sensor sobre el suelo, que normalmente se ve todavía más reducida


dado que el receptor del robot se encuentra a cierta altura del suelo.

Figura 5.3.2. Cono de emisión ultrasónico.

Para calcular el área cubierta por un transceptor podemos simplificar el cono


de radiación pasándolo a 2D como podemos ver señalado en la Figura 5.3.2 en
líneas rojas y convertirlo en un triángulo isósceles como sigue: la mayoría de
los transceptores de ultrasonidos tienen un ángulo de emisión de 30 grados y
teniendo en cuenta que la suma total de los ángulos del triángulo que forma la
radiación es de 180 grados, cada uno de los ángulos inferiores es de 75 grados.

𝑏𝑏
𝛽𝛽 2 𝛽𝛽 (5.1)
tan = => 𝑏𝑏 = tan · 2ℎ
2 ℎ 2
siguiendo la Ecuación (5.1) y teniendo en cuenta una altura del techo de 2,5
m, obtenemos un círculo de 1,34 metros de diámetro de cobertura de la
radiación en el suelo, lo que representa un área de

1,34 2
𝜋𝜋 · 𝑟𝑟 2 = 𝜋𝜋 · � � = 1,41 𝑚𝑚2 (5.2)
2

como puede apreciarse, el área cubierta por cada baliza con un único
transceptor de ultrasonidos es extremadamente pequeña, siendo necesario
desplegar un número muy alto de balizas para cubrir una única habitación.

Teniendo esto en cuenta y sabiendo que el sistema debe ser empleado en una
casa estándar, debe tenerse en cuenta las características de una casa a sus
distintas alturas. Si queremos alcanzar el mayor grado de cobertura debe
cambiarse la ubicación de los sensores, en vez de estar ubicados en el techo y
orientados hacia el suelo, estarán ubicados a una altura de 1,70 m y orientados

117
Descripción de las balizas

paralelamente al suelo. Esta orientación no podría ser aplicada de modo


universal, sin embargo, es una configuración perfectamente adaptada a las
disposiciones de los objetos en la mayoría de las viviendas. Para que esta
disposición sea válida, el cono de radiación de las balizas no debe encontrarse
con ningún objeto en su trayecto. Reflexionando sobre la ubicación de los
objetos con altura superior a 1,70 m en una vivienda, encontramos que todos
los objetos altos se ubican en las paredes, estando el centro de las habitaciones
libre a esa altura, por lo que no encontramos obstáculos a la altura indicada.
Con esta disposición podremos cubrir las habitaciones de modo longitudinal
aprovechando la capacidad de emisión lineal de cada uno de los transceptores,
dado que normalmente las habitaciones son más largas y anchas que altas.

Figura 5.3.3. Área de colisión a 1,70 m de altura.

Como podemos ver en la Figura 5.3.3, a 1,70 m no encontramos obstáculos en


el centro de las habitaciones, con lo que las ondas de ultrasonidos no
colisionarían con ningún objeto, por lo es posible obtener medidas directas.

Figura 5.3.4. Volumen cubierto por el cono de emisión de una baliza en SAPPO.

118
SAPPO. Sistema de Alta Precisión de POsicionamiento

En esta Figura 5.3.4 puede apreciarse una simulación del área de radiación de
un solo transceptor de ultrasonidos. en la que puede apreciarse el incremento
del área de cobertura mediante el cambio de orientación.

Con el cambio de orientación y calculando de nuevo el triángulo aproximado


resultante de la zona de cobertura, pero ahora con una altura de 9 m, que es la
distancia media máxima que alcanzan la mayoría de los sensores de
ultrasonidos, tenemos una superficie de cobertura de 18 m2 que es un 1300%
de la superficie cubierta con las balizas en el techo.

Debemos tener en cuenta que el área de proyección ya no es el área del círculo


de proyección en el suelo, sino el área de todo el triángulo del cono de
radiación proyectado a 9 metros de distancia de la baliza.

En la Figura 5.3.5 podemos ver la primera planta de la casa que se ha empleado


para probar el prototipo del sistema. En la misma. se puede apreciar la
proyección sobre el suelo del área de cobertura de un solo transceptor de
ultrasonidos sobre el salón, que tiene una longitud de 10 metros.

Figura 5.3.5. Proyección en suelo de cobertura de un transceptor de ultrasonidos.

Aun así, podemos ver que el espacio sin cubrir sigue siendo demasiado grande.
Debemos tener en cuenta que cada transceptor contiene solo la electrónica de

119
Descripción de las balizas

generación de portadora de ultrasonidos más los módulos amplificadores de


señal y los de decodificación de lectura para leer los pulsos de ultrasonidos.
Estos transceptores deben estar controlados por un microcontrolador para
recuperar la información de las transmisiones. El conjunto de los transceptores
de ultrasonido, la electrónica de potencia y el microcontrolador se denomina
baliza y deben tener conexión con la red eléctrica. Pero en ningún caso estamos
limitados a que una baliza contenga solamente un transceptor de ultrasonidos.
Dado que cada baliza debe estar cableada a la red eléctrica, debemos limitar el
número de balizas a desplegar y para ello se ha incorporado a cada una de ellas
un array de 4 transceptores de ultrasonidos para cubrir una zona de 90 grados.
Con esta nueva configuración, cada una de las balizas cubre un área circular
de 90 grados de arco y 9 metros de distancia, cuyo centro es la propia baliza,
no habiendo ninguna limitación que impida unir dos arrays de 4 transceptores
y construir una única baliza con 8 transceptores para cubrir un arco de 180
grados y 9 metros de radio o incluso colocar 16 transceptores para cubrir los
360 grados.

En la Figura 5.3.6 se puede ver en amarillo el área de cobertura que se obtiene


con una sola baliza con 4 transductores.

Área de
cobertura

Baliza

Figura 5.3.6 Área cubierta por una baliza con 4 transductores.

120
SAPPO. Sistema de Alta Precisión de POsicionamiento

Con esta nueva disposición, una sola baliza con un arco de cobertura de 90
grados cubriría 63.59 m2 llegando a cubrir hasta 254 m2 teóricos en espacio
libre, ampliando el número de transductores de la baliza hasta cubrir los 360
grados.

Figura 5.3.7. Área de localización con dos balizas instaladas en el techo.

Como muestra la Figura 5.3.7, para conocer la cobertura real del sistema
debemos calcular la intersección de las áreas de cobertura de dos balizas, dado
que es el número mínimo de medidas que necesitamos tomar para triangular
una posición en el plano.

2 √3
𝐴𝐴 = � 𝜋𝜋 − � 𝑟𝑟 2 (5.3)
3 2

La Ecuación (5.3) representa el área de intersección entre las áreas de


cobertura de las dos balizas. En el caso propuesto en el que estamos empleando
balizas con cobertura de 90 grados de arco, el área de cobertura por las dos
balizas es la mitad que el área de cobertura total y en este ejemplo asumimos
que la distancia entre balizas es igual a la distancia máxima de cobertura que
son 9 m. Con estos datos obtenemos que el área máxima que pueden cubrir
dos balizas distanciadas 9 m con 4 transceptores cubriendo un arco de 90
grados es de 49,74 m2 que corresponde a la mitad del área de cobertura total.
En la Figura 5.3.7 podemos ver la intersección de dos círculos y podemos
apreciar encuadrada en color verde la zona que correspondería a la habitación
y en color gris la zona de la intersección del área de emisión de estas dos balizas
con arco de cobertura de 90 grados. En el ejemplo, la habitación tendría 81 m2

siendo un tamaño excesivo. Cuanto menor sea la distancia entre las balizas y
más corta la habitación, el área de intersección cubrirá un mayor porcentaje

121
Descripción de las balizas

de la habitación. Con esta nueva disposición las limitaciones normalmente


vienen marcadas por las posiciones de las paredes, dado que los sensores que
podemos emplear oscilan entre 9 y 14 metros de cobertura lineal y difícilmente
podremos encontrar en una casa estándar una habitación de más de 14 m de
largo.

En nuestro sistema es posible realizar el cálculo de la posición con solamente


dos balizas, dado que conocemos la altura a la que están situadas las balizas y
conocemos la altura del receptor.

Figura 5.3.8. Triángulo de ajuste de posición con balizas instaladas a 1,70 m de altura.

Como podemos ver en la Figura 5.3.8, el emisor del robot se encuentra a 1,45
m y la baliza a 1,70 m. Aunque el emisor del robot no esté situado en el plano
de las balizas, conociendo la altura del sensor del robot y la altura de las balizas
podemos obtener C, y podemos obtener A calculando la distancia entre la
baliza y el sensor del robot mediante el sistema de posicionamiento, con estas
dos medias podemos calcular fácilmente B, ya que todas las medidas forman
un triángulo rectángulo. Resolviendo B tenemos una de las medidas necesarias
para triangular la posición en el suelo. Con el mismo procedimiento debemos
obtener otra distancia desde otra baliza posicionada en un lugar distinto para
obtener una ubicación precisa.

Para obtener una localización en dos dimensiones necesitamos un mínimo de


2 medidas de distancia a dos balizas siempre que, por disposición de las balizas,
uno de los dos puntos de intersección de las circunferencias de cobertura de
cada una de ellas corresponda con valores imposibles por no encontrarse en el
habitáculo o podamos descartarlo mediante medidas de posiciones cercanas o

122
SAPPO. Sistema de Alta Precisión de POsicionamiento

por el cálculo de la trayectoria. Al necesitar dos medidas, la superficie total de


cobertura estará compuesta por el área de intersección de ambas balizas.
Adicionalmente hay que tener en cuenta que las balizas deberán recibir una
señal de ultrasonidos, pero esta señal debe ser emitida por el robot móvil, por
lo que es necesario tener en cuenta la cobertura del sistema instalado en el
robot. Finalmente, el área final total de cobertura será la intersección de un
mínimo de dos balizas junto con el robot, que puede quedar reducido a la
intersección de las dos balizas, siempre que el robot comparta el mismo rango
de cobertura.

Figura 5.3.9 Área de localización con balizas con arrays de transductores instaladas paralelas al suelo.

En la Figura 5.3.9 puede verse el gráfico de intersección de las áreas de


cobertura de las balizas en una habitación real de grandes dimensiones. En la
Figura 5.3.10 podemos ver una representación gráfica del cálculo de cobertura
en una habitación de una planta de una vivienda, en donde entran en juego
las paredes (en verde) para calcular la cobertura total. En esta representación,
para que sea más gráfica, se ha asumido que la anchura de la habitación es igual
a la distancia máxima de cobertura de la baliza (9 metros en los transceptores
más económicos) y que la longitud de la habitación supera por muy poco esta
distancia máxima de cobertura. En esta situación ideal de máxima cobertura
con dos balizas es de 38 m2.

123
Descripción de las balizas

Baliza 2 Baliza 1

Perímetro
Área útil de de la
localización habitación
de objetos

Perímetro del Perímetro del


área cubierta área cubierta
por la Baliza 1 por la Baliza 2

Figura 5.3.10. Área de intersección de las balizas.

En el Anexo II puede verse de modo detallado el algoritmo de cálculo


empleado para calcular la cobertura real de este sistema en una habitación de
4,5 m de anchura y 11,5 m de longitud.

Dado que los transceptores de ultrasonidos son directivos y el robot debe ser
capaz de emitir ultrasonidos que alcancen a cualquiera de las balizas,
independientemente a su orientación, el robot debe montar un array de
transceptores de ultrasonidos. Teniendo en cuenta su rango de cobertura de
30 grados por transceptor para todo el alcance, debe poseer un anillo circular
de 12 transceptores para cubrir los 360 grados, de este modo,
independientemente a su orientación, será capaz de tener a su alcance las
balizas.

Mediante esta disposición, siempre que respetemos las condiciones, podremos


emplear solo dos balizas en cualquier habitación rectangular. Siempre que no
supere los 9x9 metros podremos emplear transceptores muy económicos y en
caso de que los supere podemos alcanzar los 14x14 metros con transceptores
de mayor coste. Esta disposición nos permite reducir al mínimo el número de
balizas a desplegar con lo que reducimos los tiempos de despliegue, la
necesidad de instalación de cableado y el coste del despliegue total.

5.3.2. Estimación de densidad de balizas

Dada la altísima cobertura con solo dos balizas, para calcular el área de
cobertura en una habitación real será necesario calcular el área teniendo en
cuenta las limitaciones impuestas por las paredes. En el caso de la planta de la
casa en donde se realizaron las pruebas de desarrollo del sistema, empleando

124
SAPPO. Sistema de Alta Precisión de POsicionamiento

dos balizas de las más económicas con rango de cobertura de 9 metros, tenemos
una cobertura real de 37,4 m2 en una habitación muy grande con una
superficie de 45 m2. En el Anexo II se muestra el procedimiento completo para
realizar el cálculo de cobertura de la planta.

5.4. Codificación de la señal


De entre todas las posibilidades se ha seleccionado la codificación de la señal
de ultrasonidos empleando una portadora en banda base de 40 KHz, dado que
existe multitud de hardware muy económico disponible, empleando este
sistema de codificación. Los dispositivos transductores con portadoras de 40
KHz están muy probados y dada la sencillez de la portadora tienen una muy
alta velocidad de detección de la señal, lo que incidirá en la posibilidad de
aumentar la frecuencia de muestreo, y mejorar la precisión de las medidas, que
será necesaria para mantener la precisión al localizar robots en movimiento.

En el Anexo III enumeramos los transceptores disponibles comercialmente


que emplean portadoras simples de 40 KHz. Disponemos de varios modelos
con características diferentes en cuanto a coste, cobertura lineal, ángulo de
apertura de la señal y posibilidades de configuración y programación.
Físicamente los modelos también son diferentes poseyendo dos
configuraciones, los que emplean un mismo transductor para emitir y para
recibir la señal y los que emplean uno para cada función.

5.5. Sistema de sincronización


Al emplear transductores con portadora simple de 40 KHz no es posible enviar
información en la señal, ni emplear la señal como mecanismo de
sincronización, ni tampoco es posible transmitir con dos transceptores de
modo simultáneo desde dos ubicaciones diferentes en el mismo espacio de
cobertura, ya que sus ondas de sonido provocarían interferencias entre sí, no
siendo posible detectar ninguna de ellas correctamente, y en caso de ser
detectadas no sería posible identificar su origen. Por este motivo la

125
Descripción del hardware

sincronización es necesaria para el funcionamiento del sistema de medición y


debe ser realizada de modo independiente a la propia señal.

De entre las distintas alternativas, se ha empleado un mecanismo de


sincronización por transmisión de ondas de radiofrecuencia. Antes del inicio
de un ciclo de localización, el robot móvil enviará simultáneamente el tren de
pulsos de ultrasonidos y un paquete de sincronización de radio que será
recuperado por todas las balizas, momento en el que todas iniciarán el
contador de tiempo para calcular el tiempo de vuelo de la señal de
ultrasonidos. Cuando detecten el tren de pulsos de la portadora de
ultrasonidos, pararán el contador de tiempo y almacenarán el tiempo medido
para enviarlo posteriormente al robot. Una vez que el robot recupere las
medidas de las balizas suficientes podrá triangular su posición. El tiempo de
vuelo del paquete de radio se considera nulo dada la altísima velocidad relativa
de las ondas de radio con respecto a las ondas de sonido, con lo que se puede
despreciar. Uno de los puntos a tener en cuenta en este sistema de
sincronización es el sistema de detección de los paquetes de radio, dado que,
aunque el tiempo de vuelo de las ondas electromagnéticas es despreciable en
distancias muy cortas, la codificación, decodificación y detección del paquete
de radio, si es un factor a tener en cuenta en caso de estar trabajando con
precisiones de localización muy altas.

5.6. Descripción del hardware


Tanto en las balizas como en el robot es necesario disponer de cuatro sistemas,
el sistema de sincronización, el sistema de comunicación, el sistema de medida
y el sistema de cómputo.

5.6.1. Transductores de ultrasonidos SRF04. Modificación de sensores para


el empleo en sistemas de posicionamiento

El hardware de ultrasonidos está compuesto por los transductores de


ultrasonidos. Tanto el robot como las balizas contienen un array de
transductores de ultrasonidos, por lo que será necesario escoger un dispositivo

126
SAPPO. Sistema de Alta Precisión de POsicionamiento

de bajo coste, ya que este coste se multiplicará por el número de componentes


del array.

En el anexo III se enumeran los distintos transceptores comerciales actuales.


Entre los disponibles al inicio del desarrollo de este proyecto estaba el SRF02 y
el SRF04. El SRF02 tenía un coste muy alto de 30€ por unidad lo que
incrementaría el coste del hardware en exceso. Aunque estos dispositivos
tienen una cobertura muy alta de 12 metros y pueden operar tanto como
emisores como receptores o como detectores de obstáculos, tienen un coste
del orden de 30 veces superior a los transductores seleccionados.

La alternativa son transceptores SRF04. Estos módulos son muy económicos,


con un coste aproximado de 1 € por unidad. Tienen una cobertura de 4,5 m
para detección de obstáculos, en donde la onda ultrasónica realiza el camino
de ida y vuelta, que se transforma en una cobertura lineal de 9 metros con una
precisión media inferior a 2 cm. El inconveniente principal es que solo está
pensado para funcionar como detector de obstáculos. En este modo de
operación el sensor envía un pulso de ultrasonidos y espera hasta que recibe
de nuevo la señal de retorno. El tiempo transcurrido es el tiempo de vuelo de
la señal de ultrasonidos. Al ser un sensor muy económico, el tiempo debe
contabilizarse con un sistema externo.

En el SRF04, la operación de medida de tiempo siempre comienza con el envío


del pulso de ultrasonidos. Como no es posible evitar el envío del pulso
ultrasónico, en su configuración original no es posible emplear un SRF04 como
emisor y otro SRF04 como receptor, dado que el receptor también enviará un
pulso de ultrasonidos.

Figura 5.6.1. Imagen de un sensor de distancia SRF-H04.

127
Descripción del hardware

En la Figura 5.6.1 se ve una imagen del módulo de bajo coste HC-SR04 que es
una de las copias compatibles con el SRF04. Este módulo solo tiene 4 pines, los
dos de alimentación positivo y negativo, echo y trigger. El pin trigger es el
disparador de los pulsos de ultrasonidos y el pin de echo se pone a nivel alto
en cuanto se envía el tren de pulsos de ultrasonidos y se pone a nivel bajo
cuando detecta el tren de pulsos de vuelta, una vez que rebota en algún objeto.
Estos sensores de bajo coste no están diseñados para poder ser empleados
dentro de un sistema de posicionamiento, dado que el mismo sensor realiza la
emisión y la recepción del pulso ultrasónico. Para posibilitar el empleo de este
transceptor únicamente como un receptor hay que eliminar o deshabilitar la
electrónica que realiza la función de envío del tren de pulsos. Con ese objetivo,
simplemente ha sido necesario localizar y desoldar el emisor de pulsos. De esta
forma, la electrónica del transductor realizará todas las etapas para enviar el
tren de pulsos de ultrasonidos, pero dado que se le ha desconectado el emisor
de ultrasonidos estos no podrán generarse y enviarse al aire, y pasará a modo
recepción. Con esta pequeña modificación reconvertimos los transceptores
para operar en modo lectura. Teniendo en cuenta que entre las balizas y el
robot suman 20 transceptores, empleando estos sensores mantenemos el coste
de los transductores de los sistemas de ultrasonido en 20 €.

5.6.2. Hardware de Radiofrecuencia

El hardware de radio se emplea tanto para comunicación como para


sincronización. Inicialmente en el prototipo original se ha empleado el módulo
nRF2401. Este módulo permite mantener el coste extremadamente bajo dado
que tiene un coste de 0,60 € por unidad. Es un módulo complejo que
implementa un protocolo de envío múltiple con gestión de acceso al medio,
control de errores y reenvío automático. Es capaz de transmitir a una velocidad
de 2 Mbps con un alcance de hasta 100 metros en espacios abiertos, siendo
capaz de ampliar esta cobertura hasta 1 Km incorporando una antena externa
y un amplificador.

128
SAPPO. Sistema de Alta Precisión de POsicionamiento

Inicialmente se pretendía emplear el nRF2401 tanto como sistema de


sincronización como sistema de comunicación. Este dispositivo permite
configurar decenas de parámetros para controlar el flujo, errores, paquetes de
ACK (ACKnowledgement), potencia de emisión, acceso al medio y reintentos
de envío. En las pruebas iniciales se detectaban grandes variaciones en cada
una de las medidas que excedían con mucho los márgenes de error de los
transductores.

Después de estudiar los motivos de estas variaciones, se detectó que la pila de


protocolos del nRF2401 ocasionaba estos retardos. El procesamiento de la
información de los paquetes y la puesta a disposición en las capas superiores
de la información de recepción de los paquetes originaba que el instante de
disponibilidad de la información de que había llegado el paquete de radio
fuera muy variable.

Después de realizar cambios en la configuración del módulo para reducir las


posibles variaciones de tiempo como eliminar los reenvíos, eliminar las esperas
por paquetes de ACK y eliminar la espera aleatoria por el acceso al medio, se
habían reducido las variaciones y los errores de las medidas, pero no se han
conseguido eliminar, con lo que ha sido necesario buscar otras alternativas y
separar el hardware de comunicaciones empleado para la comunicación y el
empleado para sincronización.

Figura 5.6.2. Imagen de un transceptor de radiofrecuencia de 433 MHz.

Para intentar eliminar las variaciones aleatorias producidas por la gestión de la


pila de protocolo del módulo nRF2401 ha sido necesario buscar un hardware
de sincronización mucho más simple, que no introdujera retardos debido a la
gestión interna de los protocolos. Se ha seleccionado el hardware de emisión
de radio más simple del que se puede disponer. En la Figura 5.6.2 puede verse

129
Descripción del hardware

el módulo emisor y el módulo receptor de modo independiente. El transmisor


únicamente permite emitir una portadora de 433 MHz. Por otra parte, el
receptor detecta la portadora y pone a nivel alto la patilla de salida. Como
puede verse, entre los dos simulan un canal de comunicación de un solo bit
con errores, dado que constantemente este bit está fluctuando de 0 a 1 debido
a las interferencias, pero al no implementar ninguna lógica no puede
incorporar retardos por el procesamiento de la lógica interna.

El módulo de transmisión emplea modulación ASK (Amplitude Shift Keying).

Figura 5.6.3.Esquema básico de modulación ASK.

Su hardware es muy sencillo, cuando se aplica el valor ALTO a la entrada se


genera la onda de radio y cuando se aplica el valor BAJO deja de transmitir. El
cambio de estado la realiza el transistor de conmutación (ver Figura 5.6.3).

Figura 5.6.4. Esquema del circuito receptor.

El módulo receptor simplemente se sincroniza con la fase de la onda de radio


con el circuito sintonizador, la amplifica y entra en el lazo de seguimiento de
fase (ver Figura 5.6.4). Las pruebas han demostrado que la lectura no es
consistente en el tiempo, perdiendo la fase a los pocos milisegundos, por lo
que es necesario realizar cambios en los datos de entrada de forma constante.

130
SAPPO. Sistema de Alta Precisión de POsicionamiento

Figura 5.6.5. Modulación de la señal de los módulos SRF04.

En la Figura 5.6.5 puede verse como se combina la entrada de datos (en verde)
con la salida de la onda del oscilador (en lila) para generar la onda de radio
que se transmite al aire (en rojo).

5.6.3. Comunicación y sincronización

En el protocolo se envía una comunicación inicial desde el robot para


comunicación y sincronización. En el paquete inicial se envía la información
del código del robot que solicita la operación de localización. Esta información
se transmite codificada mediante el hardware de sincronización. Este mismo
paquete se emplea como sincronización para iniciar el temporizador de
contabilización de tiempo de vuelo de la señal de ultrasonidos.

Al finalizar la operación de localización, cada una de las balizas deben enviar


la información del tiempo de vuelo al robot para que calcule su posición. En
este caso, varias balizas pueden transmitir a la vez su información, por lo para
estas transmisiones se emplean los transceptores nRF2401 dado que gestionan
el acceso al medio concurrente y el control de errores.

5.6.4. Hardware de temperatura y medidas inerciales

La temperatura y humedad son dos factores que inciden en la velocidad de


transmisión de las ondas de ultrasonidos en el medio, por este motivo se ha
incorporado un sensor inercial CMPS09. Este sensor tiene un giróscopo, un
acelerómetro y un magnetómetro junto con un sensor de temperatura.

131
Composición de las balizas

5.6.5. Hardware de procesamiento de señales (Microcontrolador)

Para controlar de todos los sensores, en las balizas se empleará un


microcontrolador atmega328 (Figura 5.6.6) de la marca ATMEL. Este es uno
de los microcontroladores más difundidos en la actualidad y forma parte de
una de las placas de desarrollo más conocidas mundialmente, el Arduino Uno
R3.

El atmega328 se presenta en un encapsulado de 28 pines. Internamente tiene


un procesador de 8 MHz con 32 KB de Flash, 2KB de RAM y 1KB de EEPROM.
El microcontrolador tiene un reloj interno, por lo que solo es necesario
conectar la alimentación para activarlo.

Figura 5.6.6. Encapsulado ATMEga328.

5.7. Composición de las balizas


Cada baliza está compuesta por el subsistema de alimentación, el subsistema de
control, el subsistema de comunicación de radio y el subsistema de recepción
de ultrasonidos (Figura 5.7.1).

Transformador Regulador Transceptor


220V-5V voltaje 5 a 3,3V nRF2401

Array Placa de
Receptor RF
Transductores control
433MHz
HC-SR04 atmega328

Figura 5.7.1. Componentes modulares de las balizas.

132
SAPPO. Sistema de Alta Precisión de POsicionamiento

5.7.1. Descripción de los módulos

La baliza se compone de los siguientes módulos:

• Transformador de 200V-5V: el hardware de consumo normal tiene un


microtransformador con salida de 5 V.
• Regulador de 5V a 3,3V: la placa de la baliza posee un transceptor nRF24L01
que funciona a 3,3V, por lo que es necesario reducir la tensión del
transformador principal de 5V a 3,3V.
• Transceptor nRF24L01: la baliza posee un transceptor de radio con
capacidad de procesamiento desatendido de la pila de protocolos de
comunicación, con identificación de errores mediante códigos CRC, con
opción de envío confirmado con paquetes de ACK y gestión de múltiples
canales.
• Receptor de radio de 433 MHz: es un módulo simple de envío de
información con portadora OOK de 433 MHz. Se emplea como sistema de
sincronización para las medidas de los tiempos de vuelo, dado que no tiene
retardos por la gestión de los protocolos de comunicación.
• Array de transductores de ultrasonidos: cada baliza contiene un array de
transductores compuestos por módulos HC-SR04 modificados para operar
solo como receptores. Estos módulos identifican la recepción del paquete
de pulsos de ultrasonidos. Con una array de 4 transductores, las balizas son
capaces de cubrir 90 grados de arco.
• Placa de control Atmega328: se ha diseñado una placa específica para dar
soporte a un ATmega328 como microcontrolador principal. Este
microcontrolador controla todos los sensores y el hardware de
comunicaciones.

5.7.2. Diseño de la estructura

Para empaquetar todos los componentes que forman parte de la baliza ha sido
necesario diseñar una caja con la forma apropiada para que los sensores de
ultrasonidos cubran el arco de 90°. En la Figura 5.7.2 puede verse esta caja en
la versión de bajo consumo.

133
Composición de las balizas

Figura 5.7.2. Diseño 3D de la caja de las balizas.

Esta versión necesita bastante espacio para incorporar dos packs de pilas para
proporcionar de modo independiente el voltaje necesario para alimentar los
componentes que trabajan a 3,3 y 5 voltios. En la versión alimentada por
corriente alterna a 220 V el tamaño de la caja puede reducirse a la mitad.

5.7.3. Diseño del hardware de consumo estándar

Ha sido necesario diseñar la placa de circuito impreso (ver Figura 5.7.3) para
montar los componentes de control. Esta placa tiene versiones alimentadas con
220 V y la versión alimentada por baterías. La placa está diseñada para poder
ser empleada en un sistema de control domótico dentro de la casa, pudiendo
conectar múltiples tipos de sensores y actuadores. Las placas poseen un módulo
de corte de alimentación de los sensores y actuadores para reducir la energía
consumida. Adicionalmente todas las placas poseen un módulo de
comunicación de radio nRF2401 para comunicarse entre ellas y con el módulo
de control central. El módulo de control está basado en el microcontrolador
atmega328 que necesita una tensión de alimentación entre 3 y 19 voltios para
lo que se ha integrado en la placa un módulo compacto de transformación de
220V a 5V.

134
SAPPO. Sistema de Alta Precisión de POsicionamiento

Sensores Transceptor Transformador


analógicos nRF2401 desde 220V a
5V

ATMega3
28

Regulador
de 5V a 3,3V

Sensores y Transistor de corte de corriente a los sensores para


actuadores digitales reducción de consumo

Figura 5.7.3. Placa PCB de la baliza de conexión directa a corriente de 220V.

En la siguiente Figura 5.7.4 puede verse una imagen de la placa de control de


las balizas con el microtransformador de 200V a 5V.

Figura 5.7.4. Baliza para conexión directa a 220V AC.

En la Figura 5.7.5 se muestra la misma baliza, identificando todos sus


componentes.

135
Composición de las balizas

Transceptor Transformador
Radio Regulador 5V – 3,3V 220v-5v
220V AC 5V DC
Microcontrolador
ATMega328

Tomas
corriente y
sensores

Tomas
Transistor de corte de alimentación de los Cristal del reloj corriente y
sensores 16MHz sensores

Figura 5.7.5. Módulo baliza con fuente de alimentación.

La placa empleada para las balizas de localización es exactamente la misma que


la mostrada en la Figura 5.7.5, añadiendo el módulo de radio simple de
transmisión de portadora a 433MHz.

5.7.4. Diseño del hardware de bajo consumo

Dado que SAPPO está diseñado para operar en viviendas estándar no


cableadas, en algunos lugares donde es necesario situar una baliza para
conseguir ampliar al máximo su cobertura, puede ser posible que no sea fácil
llevar un cable de alimentación, o que directamente no quiera llevarse por
cuestiones estéticas. En este caso hay que emplear balizas alimentadas por
baterías. Para estos casos se ha diseñado una placa especial sin reguladores de
tensión y con transistores de corte de alimentación de corriente a los sensores
que se alimenta directamente con dos packs de baterías, uno para
proporcionar 3,3 V y otro para proporcionar los 5 V que necesitan el resto de
los sensores.

A pesar de no emplear reguladores, el atmega328 sigue teniendo un consumo


bastante elevado como para poder estar alimentado por baterías durante largos
periodos de tiempo, por lo que es necesario emplear los modos de bajo
consumo.

136
SAPPO. Sistema de Alta Precisión de POsicionamiento

El módulo de bajo consumo se basa en el desarrollo de la placa anterior


permitiendo la conexión directa de packs de baterías de 5V y de 3,3V (ver
Figura 5.7.6), dado que el transceptor de radio frecuencia opera a un voltaje
de 3,3V, mientras el resto de los componentes y sensores operan a 5V.

Pines de lectura de sensores


analógicos

Entrada de
Micro voltaje de
ATMega3 baterías
28

Módulo
nRF2401

Pines de conexión de sensores y Transistor de corte de alimentación de


actuadores sensores para reducir consumo

Figura 5.7.6. PCB de baliza de alimentación por baterías.

La capacidad de reducción de consumo viene implementada en el firmware


del microcontrolador. Este micro posee varios modos de sueño en los que
reduce el consumo apagando distintos dispositivos o subsistemas:

• Modo Idle: este modo detiene únicamente la CPU, el control de interrupciones y


los relojes, el conversor analógico digital, etc. siguen funcionando, con lo que no
se ven afectados los dispositivos. Este es un modo básico de suspensión.
• Modo ADC noise reduction: este modo detiene los relojes I/O, CPU y FLASH. Este
modo no altera las medidas del conversor analógico-digital permitiendo mantener
la resolución de medidas. Dado que siguen activos gran parte de los sistemas, se
puede despertar de este modo de trabajo mediante un reset externo, una
interrupción del Watchdog, un reset del Brown-out que controla el nivel de
alimentación, una interrupción del Timer/Counter2 o una interrupción externa
en INT0 o INT 1 entre otras.
• Modo Power-down: en este modo de trabajo el oscilador externo se detiene. Las
interrupciones externas y el Watchdog continúan operando si están habilitados.
En este modo se paran todos los relojes, solo es posible despertar con una
interrupción asíncrona externa o con una interrupción del Watchdog. Es uno de

137
Composición de las balizas

los modos más empleados para conseguir un alto ahorro de energía. En caso de
no disponer de un dispositivo que genere una interrupción externa, es habitual
generar múltiples periodos de letargo seguidos de cortos periodos de actividad en
los que se comprueba el estado para verificar si se sigue en estado activo o se vuelve
a un periodo de letargo.
• Modo Power-save: es similar al modo anterior, pero se mantiene activo el
Timer/Counter2. Permite emplear este timer para despertar, a costa de un mayor
consumo de energía. Si no es necesario, mejor emplear el modo anterior.
• Modo Stand-by: su comportamiento igual a Power-down con la diferencia de que
el oscilador sigue en funcionamiento. Emplea 6 ciclos para activarse.

5.7.4.1. Comparativa de consumo con bajo consumo

En la siguiente tabla se ven los datos comparativos de consumo empleando los


distintos modos de sueño del microcontrolador ATMega328. La electrónica de
las balizas está diseñada para operar en Power-down con el ATmega328
estándar con cristal externo de 16 MHz, lo que ofrece un consumo de 0,03 mA
como se puede ver en la Tabla 5.7.1. Esto implica que, si instalamos una batería
de 2000 mAh, en modo de espera tendría una duración de más de 7 años que
se vería reducida por el tiempo de actividad debido a las solicitudes de
posicionamiento de los robots.
Tabla 5.7.1. Consumo de los modos de sueño del chip Atmega328.

Modo de sueño 16 MHz 8 MHz


Power-down (placa Arduino) 0,15 mA -
Power-down(cristal externo) 0,03 mA 0,03 mA
Idle 12 mA 10,5 mA
ADC Noise reduction 10,9 mA 8 mA
Power-save 2,9 mA 1,3 mA
Stand-by 1,3 mA 0,4 mA

5.7.5. Modificación del algoritmo base para adaptarlo a las balizas de bajo
consumo

En algunas ocasiones, el lugar más favorable para conseguir la mejor cobertura


puede que no esté situado cerca de ninguna toma de electricidad y puede que
sea complicado cablear la alimentación hasta la baliza. Para estos casos, se han
diseñado las balizas de bajo consumo, tanto para una instalación temporal
como definitiva. Estas balizas se alimentan con dos packs de baterías para

138
SAPPO. Sistema de Alta Precisión de POsicionamiento

garantizar la descarga homogénea de todos los módulos de carga. Uno de los


packs alimenta los dispositivos de 5V y otro los de 3,3 V. No emplea reguladores
de tensión para evitar el consumo ocasionado por esta regulación. En el
hardware se implementa un transistor de corte de corriente a los sensores y
actuadores para garantizar que cuando el microcontrolador se encuentre en
modo sueño, ninguno de los dispositivos se encuentre consumiendo energía.

En el caso de que en una habitación exista una o varias balizas de bajo


consumo, estas deben ser despertadas en cuanto el robot entre en la
habitación, para ello, en cuanto pierda el enlace con las balizas de la habitación
de la anterior habitación o ya desde la anterior habitación si no queremos tener
retardos, el robot, que conoce los códigos y el tipo de balizas existentes en cada
habitación enviará de modo indefinido durante 5 segundos paquetes para
solicitar que despierten las balizas, indicando los códigos de baliza que quiere
despertar para evitar que despierten otras balizas en el radio de cobertura del
paquete de RF.

El microcontrolador de cada baliza de bajo consumo entrará en modo Power-


down por un periodo de 5 segundos. Cada 5 segundos se despertará, activará
solo el módulo de comunicaciones nRF2401 durante 100 ms. Si durante este
tiempo no se detecta la recepción de un paquete en el que se solicite que
despierte, volverá a modo sueño. En el caso de que detecte el paquete se
activará y esperará la solicitud de medida.

Volverá a pasar a modo sueño si el robot indica mediante un paquete de RF


que no necesita más lecturas por haberse parado o si transcurre más de 1
minuto sin que se le solicite una lectura.

Con este modo de comportamiento generamos un pequeño retraso en la


activación que puede ser eliminado despertando la baliza cuando el robot se
encuentra todavía en la habitación anterior. Como contrapartida generamos
una baliza que puede mantenerse en espera más de 4 meses con un pack de 5
pilas de formato de tamaño AA.

139
Algoritmo de obtención de medidas concurrentes

5.8. Algoritmo de obtención de medidas concurrentes


El algoritmo básico de recuperación de una lectura involucra las
comunicaciones de radio y ultrasonidos necesarias para recuperar el tiempo de
vuelo desde el robot móvil a todas las balizas y la comunicación de vuelta de las
medidas desde las balizas hasta el robot móvil. Si contamos con un solo robot,
no es necesario complicarlo más, pero en el caso de que exista la posibilidad
de que dos o más robots soliciten sus medidas de modo concurrente, es
necesario gestionar el acceso al medio ultrasónico, dado que al emplear
ultrasonidos de banda estrecha no es posible la emisión simultánea de varios
robots. En los siguientes apartados se describirán los tipos de paquetes
necesarios y el papel que juegan dentro del algoritmo de comunicaciones, para
gestionar un sistema de acceso al medio del tipo CSMA/CA mediante colas
circulares con paso de testigo.

5.8.1. Algoritmo de lectura simple, lecturas múltiples y señales reflejadas

En el esquema de la Figura 5.8.1 se visualizan las comunicaciones que se


realizan entre el robot y las balizas para obtener una localización. Una vez que
el robot inicia la solicitud de la operación de medida con el envío del paquete
de radio de sincronización, se envía un lote de pulsos de ultrasonidos.

140
SAPPO. Sistema de Alta Precisión de POsicionamiento

El robot envía el paquete de radio para solicitar la


lectura de la posición

De modo simultáneo enviará el tren de pulsos de


ultrasonidos

Cada baliza recibirá el paquete de radio e iniciará el


contador de tiempo

Cada baliza detectará el tren de pulsos de ultrasonidos


y para el contador de tiempo

Una vez recuperado el tiempo de vuelo, las balizas


enviarán las medidas al robot móvil

El robot móvil calculará su posición empleando los


tiempos de vuelo recuperados de las balizas

Figura 5.8.1. Pasos para efectuar una lectura.

El robot espera la recepción de la confirmación de llegada de todas las balizas.


En este punto tenemos dos algoritmos diferentes para aplicar.

5.8.1.1. Algoritmo de espera por la atenuación del pulso

En uno de ellos, simplemente enviamos el tren de pulsos de ultrasonidos y


esperamos hasta que la energía del pulso se disipe. Teniendo en cuenta un
alcance de 9 metros y conociendo la velocidad de desplazamiento de pulso de
ultrasonidos, podemos calcular con precisión el tiempo que tardará en
disiparte la energía del pulso de ultrasonidos, de forma que no pueda interferir
con el siguiente pulso de ultrasonidos enviado. Este procedimiento es muy
sencillo de implementar, pero limita la frecuencia de las lecturas de posición,
dado que, en la mayoría de los casos, las balizas se encontrarán a una distancia
inferior al máximo teórico.

141
Algoritmo de obtención de medidas concurrentes

5.8.1.2. Algoritmo de espera por la confirmación de las balizas

Por este motivo, el algoritmo que se implementa en SAPPO pretende agilizar e


incrementar el número de lecturas por segundo, para ello, por cada una de las
balizas, en cuanto detecten el pulso de ultrasonidos, se procederá al envío de
un paquete de confirmación de recepción. Una vez que el robot recupere todos
los paquetes de confirmación de recepción, el robot envía el siguiente pulso de
ultrasonidos.

Este sistema agiliza e incrementa la frecuencia de lecturas por segundo, pero


genera una serie de efectos secundarios de difícil solución. Dado que podemos
tener dos trenes de pulsos de ultrasonidos en el aire con energía suficiente para
que sea posible su detección, las balizas pueden detectar el primer pulso
procedente de alguna trayectoria con rebotes, una vez iniciado el siguiente
ciclo de detección de lectura. Esto originaría que recupere una medida de
distancia totalmente incorrecta. Por consiguiente, para acelerar la frecuencia
de lecturas de distancia, será necesario diseñar un algoritmo que sea capaz de
diferencias las lecturas directas de las lecturas de señal con rebotes.

Dada la construcción de las balizas, resulta relativamente sencillo identificar el


ángulo de incidencia de la señal, aunque con cierto grado de imprecisión.
Debe tenerse en cuenta que cada baliza cuenta con 4 transductores para cubrir
90 grados. Cada uno de ellos cubre un ángulo de 22,25 grados. Para conseguir
corregir las medidas procedentes de rebotes se dispone de dos técnicas.

• Por un lado, pueden identificarse las medidas cuya varianza excede de


cierto valor, siempre pudiendo confirmar estos límites con los datos de
velocidad y orientación del robot. Debe tenerse en cuenta que la variación
de la distancia obtenida de cada baliza debe ser consecuente con la
velocidad de desplazamiento del robot.
• Adicionalmente se puede intentar diferenciar los ángulos de incidencia de
las señales directas y reflejadas, dado que, si los ángulos son
suficientemente diferentes, serán detectados por transductores distintos en

142
SAPPO. Sistema de Alta Precisión de POsicionamiento

la baliza. Si se consigue este objetivo, pueden detectarse señales reflejadas


identificando el ángulo de incidencia de la señal reflejada

Figura 5.8.2 Multirruta.

Como se puede ver en la Figura 5.8.2, en caso de que el emisor emita por todos
los transductores a la vez, si existe una pared al lado del robot, la señal de
ultrasonidos que choca contra la pared saldrá rebotada en un ángulo similar a
la señal real cuyo tiempo de vuelo es menor. En este caso sería muy complicado
detectar o diferenciar la señal reflejada de la principal, si bien, hay que tener
en cuenta que la diferencia de la longitud de ambas trayectorias hará que los
tiempos de vuelo sean muy similares, del orden de microsegundos, lo que
propiciará que sea imposible solicitar una nueva operación de lectura en esos
tiempos tan cortos.

Figura 5.8.3 Multirrutas opuestas.

143
Algoritmo de obtención de medidas concurrentes

En el caso mostrado en la Figura 5.8.3 se puede ver un emisor que emite por
todos los transductores a la vez, en una habitación típica con paredes
contrapuestas y las balizas situadas en una de ellas. La señal de ultrasonidos que
choca contra la pared saldrá rebotada en un ángulo similar a la señal real cuyo
tiempo de vuelo es menor. En caso de que fuera posible iniciar la segunda
lectura, sería muy complicado detectar o diferenciar la señal reflejada de la
principal. Para que el control por varianza funcione, la pared deberá
encontrarse en un rango de distancias muy concreto, dado que, en cualquier
otro caso, la señal reflejada podría recuperarse como una señal real del
siguiente ciclo de lectura. Este problema podría solucionarse si no se emite
radiación por los transductores opuestos a las balizas. Esta actuación resulta
compleja y es totalmente dinámica, con lo que es necesario controlar en todo
momento la orientación del robot con respecto a las balizas. Igualmente es muy
dependiente de la colocación de las balizas, dado que, si se encuentran en
puntos opuestos, no sería posible emplear esta técnica y sería necesario
emplear una técnica dinámica de cálculo de probabilidad de rebotes y
trayectorias posibles de los mismos para identificar las posibles señales
erróneas.

5.8.2. Tipos de paquetes de información para posicionamiento concurrente

Los tipos de paquetes necesarios para que SAPPO pueda acceder de modo
concurrente al medio son los siguientes: Solicitud del servicio de
posicionamiento, aceptación del servicio de posicionamiento, liberación del
servicio de posicionamiento, sincronización de la medida, respuesta de las
medidas y el paquete de pulsos de ultrasonidos. Dependiendo del tipo de
paquete y de sus características pueden ser enviados o recibidos empleando los
transductores de ultrasonidos o el transceptor de radio nRF24L01 o el
transmisor de radio de 433 MHz.

Solicitud de servicio de posicionamiento

Este paquete se emplea para unirse a la cola actual del servicio de


posicionamiento de la habitación. La unión a la cola del servicio de

144
SAPPO. Sistema de Alta Precisión de POsicionamiento

posicionamiento se solicita al robot con el identificador más bajo que será el


coordinador de la cola. Se envía empleando el transceptor nRF24L01.
Tipo paquete Id.RobotSol Id.RobotDes
• Tipo de paquete es: S.
• Id.RobotSol es el identificador del robot que solicita el servicio.
• Id.RobotDes es el identificador del robot al que se le pide la unión a la cola.
Debe tener el identificador más bajo de todos los presentes en la cola. El
identificador se recupera de la lectura de un paquete de paso de testigo.

Aceptación de servicio

Se acepta la entrada en el servicio de posicionamiento. Una vez aceptada la


solicitud de servicio hay que esperar a que llegue el paquete de testigo. Se envía
empleando el transceptor nRF24L01.
Tipo paquete Id.RobotSol Id.RobotDes
• Tipo de paquete: A.
• Id.RobotSol es el identificador que solicita el servicio.
• Id.RobotDes es el identificador del robot coordinador de la cola de servicio.

Paquete de transferencia de testigo

Este paquete se emplea para permitir el acceso concurrente al medio de


transmisión sin colisiones por múltiples robots. Se envía empleando el
transceptor nRF24L01.
Índice Id.Habitación Id.Robot1 Id.Robot2 Id.Robot3 Id.Robot4
• Es un paquete broadcast con ACK por parte del siguiente robot de la cola.
• Tiene dos intentos de envío.
• El índice comienza en 0.
• El paquete contiene todos los identificadores de los robots que comparten
el medio ordenados de menor a mayor.
• En Índice se coloca el índice del siguiente robot que debe transmitir.
• Los identificadores contienen ceros si no hay más robots.

145
Algoritmo de obtención de medidas concurrentes

• Cuando solo hay un robot, el índice será 0 y en Id.Robot1 debe aparecer el


identificador del robot.

Finalización de servicio

Se envía para indicar que se libera la utilización del servicio. Es un paquete


broadcast con ACK por el coordinador de la cola. Este paquete lo escuchan
todos los robots, aunque solo lo confirmará el coordinador de la cola. Si el
robot que tiene el testigo escucha el paquete, eliminará el identificador del
robot del array en el testigo, en todo caso, será el coordinador el que se
encargue de eliminarlo. Se envía empleando el transceptor nRF24L01.
Tipo de paquete Id.RobotSol Id.RobotDes
• Tipo de paquete: D.
• Id.RobotSol es el identificador del robot que solicita la liberación del
servicio.
• Id.RobotDes es el identificador del robot coordinador de la cola.

Sincronización de medida

El robot que tiene el testigo puede solicitar la medida. La operación de medida


se inicia transmitiendo el testigo al siguiente robot. Si solo hay un robot se
comunica la transferencia de testigo al medio y se comienza la operación de
medida enviando el paquete de sincronización de medida. Este paquete se
recibe por las balizas e inician el contador de tiempo para detectar el paquete
de pulsos de ultrasonidos. Se emplea el transmisor simple de 433 MHz para
enviar este paquete.
Tipo de paquete Id.Robot Canal
• Tipo de paquete: M.
• Id.Robot es el identificador del robot que solicita la medida.
• Canal es el canal de comunicaciones del nRF24L01 que deben emplear las
balizas para devolver la medida.

Paquete de pulsos de ultrasonidos

146
SAPPO. Sistema de Alta Precisión de POsicionamiento

Este paquete no contiene información. Está compuesto por un tren de pulsos


de ultrasonidos modulados a una frecuencia de 40 KHz. Este tren de pulsos se
envía al mismo tiempo que el paquete de radio de sincronización.

Respuesta de las medidas

Una vez que las balizas detectan el paquete de pulsos de ultrasonidos paran el
contador de tiempo que iniciaron al recuperar el paquete de sincronización.
El valor de tiempo de vuelo lo devuelven al robot que solicitó la medida por el
canal indicado.
Id. Id.
TT_1 TT_2 TT_3 TT_4 TT_5 TT_6 TT_7 TT_8
Baliza Robot
• Id.Baliza es el identificador de la baliza.
• Id.Robot es el identificador del robot que solicita la medida.
• TT_1 - TT_8 serán los tiempos de vuelo de la señal detectada por cada uno
de los transceptores de la baliza en microsegundos. Si algún transceptor no
detecta la señal de ultrasonidos devolverá un 0, si la baliza no tiene ese
número de transceptor devolverá un -1. El valor menor será el tiempo de
vuelo. Se asume que se emplean balizas de un máximo de 8 transceptores
para cubrir 180 grados.

5.8.3. Descripción de la secuencia del algoritmo de solicitud de medidas


concurrentes

El algoritmo de medida separa la fase de acceso múltiple al medio de la fase de


obtención de la medida. Para el acceso al medio emplea tecnología CSMA/CA.
Dado que para realizar las medidas mediante ultrasonidos se emplea una señal
de ancho de banda estrecho, no es posible que dos o más robots se encuentren
transmitiendo ondas de sonido a la vez. Debe tenerse en cuenta que SAPPO
está diseñado para ser empleado por robots de servicio. Como máximo, en una
misma habitación podrán encontrarse dos robots, y será extremadamente raro
que ambos se encuentren en movimiento. Por este motivo será muy difícil que
dos robots estén solicitando su posicionamiento a la vez a SAPPO, pero aun así

147
Algoritmo de obtención de medidas concurrentes

esa opción no puede ser descartada. Por este motivo SAPPO emplea el sistema
de acceso al medio CSMA/CA visto en el Apartado 2.4.8.

Para iniciar una operación de medida, el robot envía dos paquetes de radio de
tipo broadcast, uno de transferencia de testigo y otro de sincronización, iniciando la
operación de medida. El paquete de sincronización se envía empleando el
transceptor de radio simple de 433 MHz para no generar retrasos por la
electrónica ni por la gestión de la cola de protocolos. El paquete de sincronización
es recibido por las balizas. Conjuntamente con el paquete de radio se envía el
paquete de pulsos de ultrasonidos. En cuanto las balizas reciben el paquete de
sincronización inician un contador de tiempo, y en cuanto reciben paquete de
pulsos de ultrasonidos paran el contador. Una vez que las balizas obtienen el
tiempo de vuelo desde la estación móvil envían un paquete de medida empleando
el transceptor nRF24L01 (que posee control de ACK y CRC) para la estación
móvil, con la información del identificador de baliza, el identificador del robot
y los tiempos de vuelo de todos los transceptores que detectaron el paquete de
pulsos de ultrasonidos. Con esta información, la estación móvil calcula su
posición. Con esta misma información mediante una operación de lectura con
envío de pulso secuencial desde los transductores del robot, también es posible
calcular la orientación aproximada.

Según la velocidad media de propagación de los ultrasonidos en el aire a 20


grados de temperatura, que son 343 m/s, el paquete de pulsos de ultrasonidos
tardará 26 milésimas de segundo en cubrir los 9 metros que representan el
alcance máximo de los transductores SRF04, que será el tiempo máximo de
espera para que el paquete de pulsos de ultrasonidos disipe su energía, y será
el tiempo que debe esperar el robot que solicita la medida para solicitar una
nueva medida con seguridad. Podrá reducirse en algunos milisegundos, dado
que una vez que una baliza detecta el tren de pulsos por primera vez, el resto
de las detecciones tienen que corresponder a rebotes principales o rebotes
secundarios indirectos por lo que se asume que estos rebotes deben consumir
parte de la energía de los ultrasonidos, con lo que el alcance se ve reducido.

148
SAPPO. Sistema de Alta Precisión de POsicionamiento

El robot que tiene el testigo, una vez recibido, debe esperar como mínimo 30
ms para solicitar una nueva medida, que es el tiempo máximo de vuelo de la
señal de ultrasonidos. Este tiempo será empleado por los nuevos robots para
solicitar el servicio de posicionamiento.

En cuanto un robot entra en una habitación, escucha durante 500 ms. Si no


escucha ningún paquete de transferencia de testigo para esa misma habitación,
asume que está solo y comienza a solicitar las medidas.

Si escucha algún paquete de transferencia de testigo, recupera el paquete e


identifica el robot y la habitación. Si la habitación es la suya, asume que hay
más robots empleando SAPPO. Dado que el paquete de transferencia de
testigo se recibe antes de cada solicitud de medida y después hay un tiempo de
espera para permitir que lleguen la señal de ultrasonidos, una vez recuperado
el paquete de transferencia de testigo, identificamos el robot coordinador y
solicitamos el acceso a la cola del servicio de posicionamiento con un paquete
de solicitud de servicio. El robot coordinador contestará indicando que acepta
la petición de unión a la cola del servicio.

A partir de este momento pasarán a formar una cola circular ordenada por el
identificador de cada robot. Cuando hay más de un robot, después de cada
medida se envía un paquete de transferencia de testigo al siguiente robot y del
último al primero. El robot que recibe el paquete de transferencia de testigo lo
acepta enviando un paquete de ACK e inicia su operación de lectura. El robot
que transfiere el testigo tiene tres reintentos, en caso de fallar los tres reintentos
se elimina el robot de la cola y se intenta con el siguiente.

Cuando un robot abandona la habitación lo comunica con un paquete de fin


de servicio de posicionamiento dirigido al coordinador que lo elimina de la
cola y queda pendiente de aplicar cuando le llegue el testigo. Si el paquete es
recibido por el robot que tiene actualmente el testigo, procede a su
eliminación.

149
Algoritmo de obtención de medidas concurrentes

Si un robot forma parte de una cola de servicio en una habitación guardará


este estado y solo podrá solicitar operaciones de medida cuando posea el
testigo.

Si un robot está en una cola de servicio y no recibe el testigo en 5 segundos se


comportará como si acabara de entrar en la habitación. Escucha los paquetes
de transferencia de testigo, si no recibe ninguno asume que está solo, y si recibe
alguno solicita el acceso al servicio de posicionamiento.

5.8.4. Resolución del posicionamiento por trilateración

Para la obtención de la localización en el espacio es necesario tener un mínimo


de tres balizas. En la Figura 5.8.4 se ve una representación de la intersección
de las tres balizas. Normalmente en los sistemas de posicionamiento no es
normal encontrar balizas con emisión omnidireccional, de forma que cubran
el volumen total de una circunferencia, por lo que el volumen cubierto
dependerá de la tecnología empleada. En el caso de SAPPO, las balizas
normales con 4 transductores cubren 90 grados de arco en horizontal y en
vertical, el volumen depende de la apertura del cono de radiación de 30 grados,
lo que implica que el volumen crece con la distancia del punto de
posicionamiento a la baliza.

Figura 5.8.4 Intersección esférica. 21

21 Fuente: https://es.wikipedia.org/wiki/Trilateraci%C3%B3n [Acceso: 26-mar-2022]

150
SAPPO. Sistema de Alta Precisión de POsicionamiento

Con las Ecuaciones (5.4) a (5.10) se calculan los puntos de intersección de las
tres circunferencias. Mediante trilateración esférica es posible obtener el punto
de intersección de las tres esferas que pueden dar como resultado 0, 1 o dos
puntos de intersección. En el caso común de obtener dos puntos necesitamos
discriminar uno de ellos, o empleando una cuarta medida, o bien porque se
encuentra en una ubicación inconsistente con el mapa de navegación del
robot.

𝑟𝑟12 = 𝑥𝑥 2 + 𝑦𝑦 2 + 𝑧𝑧 2 (5.4)

𝑟𝑟22 = (𝑥𝑥 − 𝑑𝑑 )2 + 𝑦𝑦 2 + 𝑧𝑧 2 (5.5)

𝑟𝑟32 = (𝑥𝑥 − 𝑖𝑖 )2 + (𝑦𝑦 − 𝑗𝑗)2 + 𝑧𝑧 2 (5.6)

𝑟𝑟12 − 𝑟𝑟22 + 𝑑𝑑 2
𝑥𝑥 = (5.7)
2𝑑𝑑

(𝑟𝑟21 − 𝑟𝑟22 + 𝑑𝑑 2 )2
𝑦𝑦 2 + 𝑧𝑧 2 = 𝑟𝑟12 − (5.8)
4𝑑𝑑 2

𝑟𝑟12 − 𝑟𝑟32 − 𝑥𝑥 2 + (𝑥𝑥 − 𝑖𝑖 )2 + 𝑗𝑗 2 𝑟𝑟12 − 𝑟𝑟32 + 𝑖𝑖 2 + 𝑗𝑗 2 𝑖𝑖


𝑦𝑦 = = − 𝑥𝑥 (5.9)
2𝑗𝑗 2𝑗𝑗 𝑗𝑗

𝑧𝑧 = �𝑟𝑟12 − 𝑥𝑥 2 − 𝑦𝑦 2 (5.10)

En SAPPO, dado que la navegación se realizará en el plano, aunque exista una


distancia entre la altura de las balizas y la altura del emisor del robot, esta es
conocida en cada una de las habitaciones, por lo que es posible reajustar las
distancias obtenidas para calcular la posición empleando sólo la intersección
de dos circunferencias.

151
Algoritmo de obtención de medidas concurrentes

Figura 5.8.5 Reajuste de las medidas.

En la Figura 5.8.5 puede observarse la localización de la baliza, a 1,70 m del


suelo y la localización del emisor del sistema de localización situado en la
cabeza del robot. Inicialmente no puede emplearse el posicionamiento en el
plano, dado que no comparten plano, pero dado que se conoce la altura de la
baliza y la altura del robot, solo hay que resolver el segmento b del triángulo
rectángulo mediante las Ecuaciones (5.11) a (5.14).

𝑎𝑎2 = 𝑏𝑏 2 + 𝑐𝑐 2 (5.11)

siendo,

𝑐𝑐 = 1,70 − 1,45 (5.12)

𝑎𝑎 = 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 𝑑𝑑𝑑𝑑 𝑙𝑙𝑙𝑙 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 = 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚_𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 (5.13)

𝑏𝑏 = �𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚_𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑2 − 0,252 (5.14)

de forma que para el cálculo de los radios de las circunferencias de intersección


se emplearán los valores de b, en vez de las medidas reales de distancia.

Con este sencillo cambio, las fórmulas simplificadas corresponden a las


Ecuaciones (5.15) a (5.19).

Comenzamos por la representación estándar de las circunferencias,

(𝑥𝑥 − 𝑥𝑥1 )2 − (𝑦𝑦 − 𝑦𝑦1 )2 = 𝑟𝑟12 (5.15)

(𝑥𝑥 − 𝑥𝑥2 )2 − (𝑦𝑦 − 𝑦𝑦2 )2 = 𝑟𝑟22 (5.16)

desarrollando los binomios,

(𝑥𝑥 2 − 2 · 𝑥𝑥 · 𝑥𝑥1 + 𝑥𝑥12 ) − (𝑦𝑦 2 − 2 · 𝑦𝑦 · 𝑦𝑦1 + 𝑦𝑦12 ) = 𝑟𝑟12 (5.17)

152
SAPPO. Sistema de Alta Precisión de POsicionamiento

(𝑥𝑥 2 − 2 · 𝑥𝑥 · 𝑥𝑥2 + 𝑥𝑥22 ) − (𝑦𝑦 2 − 2 · 𝑦𝑦 · 𝑦𝑦2 + 𝑦𝑦22 ) = 𝑟𝑟22 (5.18)

y restando las dos ecuaciones,

(2𝑥𝑥(𝑥𝑥2 − 𝑥𝑥1 ) + 𝑥𝑥12 − 𝑥𝑥22 ) − (2𝑦𝑦(𝑦𝑦1 − 𝑦𝑦2 ) − 𝑦𝑦12 + 𝑦𝑦12 ) = 𝑟𝑟12 − 𝑟𝑟22 (5.19)

se obtiene la ecuación de la recta que pasa por los dos puntos de intersección,
con lo que es posible despejar una de las incógnitas dado que los valores de
𝑥𝑥1 , 𝑥𝑥2 , 𝑦𝑦1 , 𝑦𝑦2 , 𝑟𝑟1 𝑦𝑦 𝑟𝑟2 son conocidos. Una vez despejada debe ser sustituida en la
Ecuación (5.17) para resolver la otra incógnita y dado que el resultado de
despejar la Ecuación (5.17) será una ecuación de segundo grado, pueden
obtenerse hasta dos resultados válidos.

5.9. Problemática de precisión en sistemas de localización por


ultrasonidos con arrays de transductores como SAPPO
La cobertura omnidireccional que puede proporcionar el array de
transductores genera un efecto indeseado al disponer de múltiples
transductores ubicados en lugares diferentes. Dado que los tiempos de vuelo
se calculan desde el transductor más cercano de la estación móvil a la baliza, se
generan cambios bruscos de distancia cuando debido a la orientación entre
ambos, los transductores más cercanos cambian y pasan a ser otros. En estático,
el cálculo de distancia genera medidas con una precisión muy estable, dado
que corresponden con las distancias entre el transductor del robot y el
transductor de la baliza que se encuentran más próximos (ver Figura 5.9.1) y
estos no varían porque el robot no se mueve. En cuanto cambia la orientación
entre el anillo emisor y las balizas, el camino más corto puede involucrar nuevos
transductores, lo que modifica la geometría de las medidas.

153
Problemática de precisión en sistemas de localización por ultrasonidos con arrays de
transductores como SAPPO

Figura 5.9.1. Puntos centrales de referencia para cálculo de distancia y recorrido del ultrasonido.

Para intentar aproximar las medidas del modo más preciso posible,
minimizando las diferencias de distancia originadas por el salto de
transductores, debe calcularse en todo momento la distancia entre el centro
del polígono de cada baliza y el centro del polígono del anillo emisor del robot.

Debe tenerse en cuenta que tanto el anillo de transductores del robot como las
balizas tienen forma de polígono. En el caso del robot tenemos dispositivos con
polígonos de ocho y doce lados (para RODI ocho y para DANI doce) y en el
caso de las balizas, lo más común es que estén compuestos por la cuarta parte
de un polígono de ocho lados.

Para calcular la distancia entre el punto central del anillo del robot y el punto
central del anillo de la baliza debemos calcular las dos apotemas (Figura 5.9.2),
la correspondiente al robot y a la baliza.

Figura 5.9.2. Cálculo de la apotema (punto central de posicionamiento).

154
SAPPO. Sistema de Alta Precisión de POsicionamiento

En cada polígono conocemos la longitud de su lado. En la Figura 5.9.3 se


identifican los parámetros necesarios para realizar el cálculo de la apotema
empleando las medidas de la longitud de su lado.

Figura 5.9.3. Cálculo de la apotema 22.

Con la Ecuación (5.20) se calcula la apotema, para lo que se necesita obtener


los valores tanto del radio como del lado del polígono.

𝑙𝑙 2 (5.20)
� 2
𝑎𝑎 = 𝑟𝑟 − � �
2

Como el radio no es conocido de entrada, de la Ecuación (5.21) obtenemos el


radio del polígono a partir de su lado

𝑙𝑙
𝑟𝑟 = � � (5.21)
360°
2 · 𝑠𝑠𝑠𝑠𝑠𝑠 � �
2 · 𝑛𝑛

En la Figura 5.9.4 podemos ver el polígono que forma el anillo emisor del robot
móvil y se marcan en rojo tanto las apotemas como la distancia máxima hasta
el centro. Los transductores se ubican en la mitad de cada uno de los lados, por
lo que la apotema es la distancia desde el centro del polígono a cada uno de
los transductores.

22 Fuente: https://es.wikipedia.org/wiki/Apotema [Acceso: 1-abr-2022]

155
Problemática de precisión en sistemas de localización por ultrasonidos con arrays de
transductores como SAPPO

Figura 5.9.4. Geometría del array de emisores con el punto central de localización.

Como se aprecia en la Figura 5.9.4 el cálculo es ligeramente más complicado


porque los polígonos se dividen en dos partes y cada una de las partes se separa
de la otra por una pequeña distancia que viene determinada por las
necesidades de la geometría del robot. Esta distancia debe ser tenida en cuenta
y debe incrementarse a la medida de la apotema dado que debe intentarse
aproximar al máximo la medida de distancia. Con la medida de la distancia de
las dos mitades de los polígonos deben calcularse las distintas medidas de las
apotemas. Si se desea obtener la medida con la máxima precisión, siempre
debe incrementarse al resultado de la medida de distancia entre transductores
de cada una de las balizas, la suma de la distancia de los valores de las dos
apotemas que intervienen en la distancia de la medida, la correspondiente al
anillo del robot y la correspondiente a la baliza, dado que, en el robot cada
apotema se ve incrementada ligeramente y de forma diferente por el espacio
entre los dos lados del polígono.

Para calcular las distancias entre cada uno de los transductores al centro
podemos resolver el triángulo que se forma con cada una de estas apotemas
modificadas. Comenzaremos por la apotema central modificada.

156
SAPPO. Sistema de Alta Precisión de POsicionamiento

Figura 5.9.5 Cálculo modificado de la apotema.

En la Figura 5.9.5 se puede ver el triángulo que debemos resolver para calcular
el valor correcto de la apotema teniendo en cuenta el espacio de separación d
entre ambas partes. La apotema modificada central c se calcula como muestra
la Ecuación (5.22).

𝑑𝑑
𝑐𝑐 = 𝑟𝑟 + (5.22)
2
y el valor de r se obtiene de la Ecuación (5.5) empleando el valor del lado del
polígono l, que es un dato conocido. Para continuar se necesita conocer el valor
de b que es la mitad del lado del polígono (ver Ecuación (5.23)) y del ángulo
w, que dado que el polígono tiene 8 lados es la octava parte de 360 (ver
Ecuación (5.24)). La mitad de w se corresponde con el ángulo que forman los
segmentos b y c. Con estos datos puede calcularse la apotema modificada a (ver
Ecuación (5.25)) aplicando el teorema del coseno.

𝑙𝑙
𝑏𝑏 = (5.23)
2
360
𝑤𝑤 = = 45° (5.24)
8
𝑤𝑤
𝑎𝑎 = �𝑎𝑎2 + 𝑐𝑐 2 − 2 · 𝑎𝑎 · 𝑐𝑐 · cos � � (5.25)
2

En la Figura 5.9.6 están dibujados todos los parámetros necesarios para calcular
el resto de las apotemas modificadas correspondientes a un anillo emisor como
el que porta el robot RODI, cuya imagen se muestra en la Figura 5.9.8.

157
Problemática de precisión en sistemas de localización por ultrasonidos con arrays de
transductores como SAPPO

Figura 5.9.6 Radio intermedio.

Conocidos a, b, c es posible obtener todos los ángulos del triángulo abc con lo
que puede calcularse el ángulo v1. Con este valor tenemos v con solo restar v1
de los 180 grados como se puede ver en la Figura 5.9.6, con lo que volvemos a
tener los dos lados a, b y un ángulo v pudiendo calcular el lado e empleando el
teorema del coseno.

Figura 5.9.7 Segunda apotema modificada.

En el último paso tenemos de nuevo los lados del triángulo abe con lo que
podemos calcular el ángulo n y con ello obtener el ángulo n1 restando n a la
octava parte de 360°, con lo que igualmente volvemos a tener los lados b, e y el
ángulo n1 para obtener de nuevo la segunda apotema a1.

El resto de las apotemas son una copia reflejada de las ya calculadas. Los tres
cuartos de polígono restante tienen las mismas dos apotemas modificadas a y
a1.

158
SAPPO. Sistema de Alta Precisión de POsicionamiento

Figura 5.9.8. Vista superior de DANI con el array de sensores y centro de localización.

En la Figura 5.9.9 puede apreciarse de modo muy claro la necesidad de


incorporar las apotemas al cálculo de las medidas, pero también puede
apreciarse el error inherente a dicha aproximación. Podemos ver marcado en
color azul la distancia real recorrida por la onda de ultrasonidos que debe ser
medida por el sistema y en amarillo las distancias que debemos calcular y sumar
adicionalmente para localizar el punto central del anillo del robot con
precisión. Lo deseable es que ambas partes de la medida formaran una recta,
pero puede apreciarse que forman un ligero ángulo.

159
Problemática de precisión en sistemas de localización por ultrasonidos con arrays de
transductores como SAPPO

Figura 5.9.9. Distancias totales a dos balizas para calcular la posición del punto central del array de emisores.

Las apotemas (en color amarillo) siempre parten del centro de los polígonos y
terminan en la mitad de sus lados, que es donde se encuentran los
transductores, y la distancia recorrida por el tren de pulsos de ultrasonidos (en
color azul) siempre parte del centro de los lados de un polígono y es recibido
por otro transductor que se encuentra en el centro del lado del polígono de la
baliza. El sistema siempre calculará la distancia recorrida entre los dos
transductores que se encuentren más próximos. Según estas condiciones,
puede apreciarse que en la mayoría de los casos la apotema (en amarillo)
formará un ángulo con la trayectoria real de la onda de ultrasonidos, lo que
origina un aumento de la distancia medida con respecto a la distancia real de
los centros de los polígonos de la baliza y del robot.

Debe tenerse en cuenta que la contribución del error generado por el


posicionamiento de los transductores en las balizas y en el anillo emisor,
aunque pequeño, es muy variable y afecta de modo distinto dependiendo del
posicionamiento angular relativo entre balizas y anillo emisor y también es
ligeramente dependiente de la distancia entre anillo y balizas. En cuanto
incrementamos la distancia, la contribución del error se reduce, tanto por la
reducción de los ángulos relativos entre la trayectoria de los ultrasonidos y las

160
SAPPO. Sistema de Alta Precisión de POsicionamiento

apotemas y por la reducción de la aportación del error en el valor total de la


medida.

Debido a la configuración del robot, no siempre la distancia más corta


incorpora medidas de los mismos transceptores en el robot móvil y en las
balizas. Según se va desplazando el robot, llegará el momento en que nuevos
transductores entren en juego para calcular la ruta más corta. Antes de que esto
ocurra, la ruta anterior irá acumulando un error en la medida de la distancia
real de modo progresivo y lineal que podrá saltar de modo discreto en el
momento en que nuevos transceptores entren en la medida.

En la Figura 5.9.11 pueden apreciarse dos rutas, una dibujada en color azul y
la otra en color verde, de forma que puede verse el máximo punto de giro
relativo entre estación móvil y baliza para que los ultrasonidos cambien de la
ruta azul a la verde. Puede verse de modo muy claro que la ruta azul de partida
llevaba acumulado un error importante con respecto a la distancia real mínima
de separación de los dos centros de los polígonos. Se aprecia el punto de
partida del centro del anillo del robot móvil, que es el lugar en donde se
encontraba el anillo en su posición inicial. En ese punto los transductores
implicados en el camino mínimo eran los que formaban parte del camino
marcado en azul. Podemos ver la trayectoria de desplazamiento y el punto final
en el que se encuentra el anillo. En el punto final las trayectorias más cortas
están marcadas por las líneas verdes. Mientras el robot sigue la trayectoria, el
error de distancia de la trayectoria azul se ha ido incrementando
progresivamente hasta el cambio de trayectoria a la trayectoria verde, momento
en el cual se produce un salto de error discreto.

161
Problemática de precisión en sistemas de localización por ultrasonidos con arrays de
transductores como SAPPO

Figura 5.9.10. Alteración de las distancias a las balizas según la disposición del robot.

La posición de partida puede verse en la Figura 5.9.10 con la trayectoria del


ultrasonido en color verde y la posición final puede verse en la Figura 5.9.11
con la trayectoria del ultrasonido en color verde y en color azul la trayectoria
del sonido empleando los mismos transductores que en la posición inicial justo
antes de cambiar a la trayectoria verde. En el ejemplo mostrado en la Figura
5.9.11 los ángulos de las trayectorias han sido incrementados por encima de las
posibilidades físicas de los transductores para que se puedan apreciar de un
modo más claro la necesidad de cambio de transductores.

Figura 5.9.11. Cambio de trayectorias calculadas.

En la Figura 5.9.12 se ve la disposición del robot y la baliza con la que se han


realizado las gráficas de acumulación de error por orientación. En verde se
dibuja la distancia calculada por SAPPO y en azul se visualiza la distancia real.
En la situación ideal de partida, el ángulo w sería de 0 grados. En este caso la

162
SAPPO. Sistema de Alta Precisión de POsicionamiento

distancia real es exactamente la distancia entre transductores más la apotema


del anillo del robot, más la apotema del polígono de la baliza.

Figura 5.9.12 Disposición de lo baliza y el anillo del robot.

En la Figura 5.9.13 puede apreciarse la variación de la aportación del error en


cm dependiendo de la orientación. Para realizar la gráfica se ha tenido en
cuenta el error generado con d = 4 m constante. La gráfica muestra el
incremento de distancia medida sobre la distancia real ocasionado por el
incremento del ángulo de orientación entre el transductor más cercano de la
baliza y del robot (nombrado con w en la Figura 5.9.12).

0,450
Variación de la distancia en cm

0,400
0,350
0,300
0,250
0,200
0,150
0,100
0,050
0,000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Variación en grados en la orientación

Figura 5.9.13. Error de medida según varían los grados de desviación en la orientación.

En el gráfico puede verse en el eje horizontal los grados de desviación entre la


apotema y la línea de la trayectoria medida entre transductores. En el eje
vertical se aprecia la contribución al error de la medida de distancia ocasionada
por el ángulo del eje horizontal. Existen en el mercado transductores que
pueden tener un ángulo de cobertura de 80 grados, pero normalmente los
transductores empleados tienen un rango de cobertura de 30 grados con lo
que la apotema puede tener un grado máximo de desviación que oscila entre
+/- 15 grados. Empleando los transductores HC-SR04 puede apreciarse que la

163
Filtrado de señales

contribución al error con la desviación máxima de 15 grados es de 2 mm. Dado


que la distancia máxima que pueden llegar a medir los transductores
económicos es de 9 metros, la gráfica anterior se ha generado manteniendo
una distancia media fija de 4 metros y variando la orientación del robot.

0,200
0,199
0,198
0,197
Variación de distancia en cm

0,196
0,195
0,194
0,193
0,192
0,191
0,190
200 800 1400 2000 2600 3200
Distancia entre baliza y robot en mm

Figura 5.9.14. Error dependiente de la distancia a 15 grados.

Este segundo gráfico de la Figura 5.9.14 muestra cómo afecta la distancia entre
los centros de los polígonos del robot y la baliza a la distribución del error de
medida. El rango de contribución dependiendo de la distancia es de medio
milímetro. Como puede apreciarse a medida que aumenta la distancia el
aumento de la contribución es menor y a partir de 1,5 m se puede considerar
nulo, lo que implica que el error de medida se mantiene consante. En esta
gráfica se ha mantenido el ángulo máximo de desviación entre emisor y balizas
de 15 grados y se ha ido aumentando la distancia de separación entre la baliza
y el robot.

5.10. Filtrado de señales


En los mejores resultados obtenidos sin aplicar filtros se obtiene una desviación
de la media de 25 µs, lo que significa que hay un error medio de 8,5 mm de
media que se encuentra dentro de las especificaciones iniciales en las que se
pretendía conseguir errores del rango de milímetros. Estas precisiones se
consiguen casi en el 90% de las medidas. Sin embargo, el 10% restante genera
medidas que alcanzan varios centímetros de imprecisión.

164
SAPPO. Sistema de Alta Precisión de POsicionamiento

Si se quiere mantener una precisión milimétrica en el 100% de las medidas, es


necesario filtrar la señal de salida. Debe tenerse en cuenta que la señal a filtrar
se corresponde con la salida de SAPPO que es la posición en el plano que ocupa
el robot y para calcular esta posición se emplean las medidas de las balizas. Estas
medidas serán las señales que deben ser filtradas. Aunque es posible emplear
filtros complejos como el filtro Kalman, con el que es posible realizar la
operación directamente sobre la posición, empleando en su fase de estimación
el modelo dinámico del robot, en este caso se empleará únicamente para el
filtrado del ruido dentro en la obtención de las medidas de las balizas, dado
que este modelo dinámico no forma parte del sistema de posicionamiento
SAPPO, cuya función es la de obtener la posición del anillo del robot
únicamente con la información de las balizas. Adicionalmente a esta aplicación
de filtros iniciales a SAPPO, el propio sistema de gestión de trayectorias podría
aplicar un filtro del tipo Kalman para suavizar el seguimiento de la ruta.

En los siguientes apartados se definirá la base matemática para el filtrado


simple de una señal con los filtros de media móvil, el filtro EMA (Exponential
Moving Average) y el filtro de Kalman. Otros filtros complejos muy empleados
para el filtrado de señales son los filtros filtro IIR (Infinite Impulse Response) y el
filtro FIR (Finite Impulse Response). Estos filtros son muy empleados para el
filtrado de señales de audio, dado que pueden ser configurados para eliminar
las partes de la señal que se corresponden con frecuencias que no deben
formar parte de la misma. Para configurarlos se debe conocer con mucha
precisión las características de la señal que debe ser filtrada. En nuestro caso la
señal no sigue ningún patrón, dado que las variaciones de las medidas, e
incluso la frecuencia en tiempo de estas es totalmente aleatoria y depende de
condiciones impredecibles, como las posiciones relativas del robot y las balizas,
las colisiones de los paquetes de comunicaciones, la respuesta de los
transceptores, la generación de interrupciones tanto en el hardware del robot
como de las balizas, el ruido de las señales de radio y de ultrasonidos, etc. Por
lo que se considera que todos estos factores unidos formarán parte del ruido
generado en las señales. Una vez estudiadas estas alteraciones se comprueba de

165
Filtrado de señales

la variabilidad de los tiempos es similar a una distribución normal de media


cero, con lo que resulta válido el empleo de filtros que emplean la media de las
señales como base o que intentan averiguar el valor medio de la señal
minimizando el error de la desviación. Por este motivo se han seleccionado
estos tres filtros para procesar la salida de SAPPO.

5.10.1. Filtro Media móvil

∑𝑛𝑛𝑖𝑖=1 𝑋𝑋𝑖𝑖
𝑋𝑋⃗ = (5.26)
𝑛𝑛
La media móvil es uno de los filtros más sencillos de implementar, aunque tiene
un consumo de memoria superior a otros, debido a que es necesario almacenar
la información de los n valores de la señal de entrada anteriores. En este filtro
se realiza la media continua de los últimos n valores. Tiene una respuesta
bastante rápida cuando n es bajo, pero como contrapartida se ve muy
influenciado por valores muy distantes de la media.

5.10.2. Filtro EMA

La formulación del filtro EMA se muestra en la Ecuación (5.27).

𝑌𝑌(0), 𝑘𝑘 = 0
𝑆𝑆(𝑘𝑘) = � (5.27)
𝛼𝛼𝛼𝛼(𝑘𝑘) + (1 − 𝛼𝛼)𝑆𝑆(𝑘𝑘 − 1), 𝑘𝑘 > 0

donde α es el coeficiente de suavizado entre 0 y 1, Y(k) es el valor de la señal


del sensor actual en el instante k, S(k) es el valor EMA filtrado en el instante k y
S(k-1) es el valor EMA filtrado en el instante anterior k-1.

Este filtro tiene varias ventajas, como el emplear únicamente en memoria el


valor del cálculo de la señal filtrada anterior. Mediante la asignación de
distintos valores de α se controla la suavidad de la señal. Cuanto más bajo,
mayor será la suavidad de la señal de salida y la inmunidad al ruido, pero en
contraposición, la señal se verá más retrasada en el tiempo, con lo que tardará
más en responder a las fluctuaciones o cambios reales de la señal de entrada.

166
SAPPO. Sistema de Alta Precisión de POsicionamiento

5.10.3. Filtro de Kalman

El filtro de Kalman es un algoritmo que permite estimar variables ocultas, no


observables, a partir de variables que pueden ser medidas con cierto error.

La formulación para sistemas estáticos del filtro de Kalman se muestra en las


Ecuaciones (5.28) a (5.32). Inicialmente SAPPO está diseñado para ser
empleado en sistemas de navegación de robots, pero dado que puede ser
empleado en robots con cualquier formulación cinemática, el filtro se
empleará únicamente para eliminar el ruido de las medidas de distancia de las
balizas.

𝑥𝑥�𝑛𝑛,𝑛𝑛 = 𝑥𝑥�𝑛𝑛,𝑛𝑛−1 + 𝐾𝐾𝑛𝑛 (𝑧𝑧𝑛𝑛 − 𝑥𝑥�𝑛𝑛,𝑛𝑛−1 ) (5.28)

𝑥𝑥�𝑛𝑛+1,𝑛𝑛 = 𝑥𝑥�𝑛𝑛,𝑛𝑛 (5.29)

𝑃𝑃𝑛𝑛,𝑛𝑛−1
𝐾𝐾𝑛𝑛 = (5.30)
𝑃𝑃𝑛𝑛,𝑛𝑛−1 − 𝑟𝑟𝑛𝑛

𝑃𝑃𝑛𝑛,𝑛𝑛 = (1 − 𝐾𝐾𝑛𝑛 )𝑃𝑃𝑛𝑛,𝑛𝑛−1 (5.31)

𝑃𝑃𝑛𝑛+1,𝑛𝑛 = 𝑃𝑃𝑛𝑛,𝑛𝑛 + 𝑞𝑞𝑛𝑛 (5.32)

El filtro tiene los siguientes parámetros: en la Ecuación (5.28), 𝑧𝑧𝑛𝑛 es el


resultado de la medición, en la Ecuación (5.30), 𝑟𝑟𝑛𝑛 es la varianza del error de
medición y en la Ecuación (5.32), 𝑞𝑞𝑛𝑛 es la varianza del error del proceso, ambas
varianzas deben seguir una distribución normal del media cero.

La Ecuación (5.28) obtiene el estado actual del sistema y la Ecuación (5.29)


realiza la predicción obteniendo el estado estimado futuro. Dado que
emplearemos el filtro para eliminar el ruido en las medidas, no aplicaremos
ninguna formulación para predecir el estado futuro, por lo que el estado futuro
se iguala al estado actual.

En cada iteración, el algoritmo de Kalman tiene que calcular el estado actual


del proceso para lo que emplea la Ecuación (5.28). Esta ecuación necesita el
estado anterior 𝑥𝑥�𝑛𝑛,𝑛𝑛−1 , junto con la medida 𝑧𝑧𝑛𝑛 y el valor de la ganancia de
Kalman 𝐾𝐾𝑛𝑛 . Los dos primeros valores son conocidos por lo que debe calcularse
la ganancia de Kalman con la Ecuación (5.30) que necesita la varianza del error

167
Estimación de la orientación

del proceso calculada en la iteración anterior 𝑃𝑃𝑛𝑛,𝑛𝑛−1 , junto con la varianza del
error de estimación de la medida 𝑟𝑟𝑛𝑛 , ambos conocidos. La predicción del
estado siguiente se realiza mediante la Ecuación (5.29) que, dado que se está
empleando el filtro para eliminar el ruido de las medidas, no tenemos la
formulación de la estimación dinámica del sistema, por lo que la predicción
del estado siguiente se iguala al estado actual. Finalmente se actualiza el valor
de la covarianza del error del proceso 𝑃𝑃𝑛𝑛,𝑛𝑛 con la Ecuación (5.31) para
finalmente calcular la predicción de la covarianza del error del proceso 𝑃𝑃𝑛𝑛+1,𝑛𝑛
en la Ecuación (5.32).

Una vez calculada la predicción, debe ajustarse la ganancia de Kalman, tarea


que será realizada por la Ecuación (5.30). Para calcular la ganancia de Kalman
se empleará la información de la covarianza en el instante de tiempo anterior
𝑃𝑃𝑛𝑛,𝑛𝑛−1 . Una vez calculada la ganancia 𝐾𝐾𝑛𝑛 , se procede a actualizar el valor de la
covarianza en la Ecuación (5.31) para finalmente estimar la covarianza futura
en la Ecuación (5.32).

5.11. Estimación de la orientación


SAPPO es capaz de obtener medidas de localización del robot con una muy alta
precisión, pero en el arranque, cuando todavía no se tiene medidas de
posicionamiento previas, para intentar seguir una trayectoria no solo es
necesario conocer la posición de partida, sino que es imprescindible conocer
la orientación. Si no se tiene información de orientación, será necesario
avanzar en la dirección en la que esté situado el robot durante un cierto
trayecto, de modo que filtrando las distintas posiciones que el robot va
tomando, podemos calcular con cierta precisión la orientación del robot. Una
vez conocida la orientación, pueden calcularse los parámetros cinemáticos
necesarios para hacer girar el robot y situarlo encima de la trayectoria deseada.
Sería de gran ayuda disponer de la medida de orientación en posición estática,
antes de arrancar la marcha, de modo que el arranque puede realizarse con los
parámetros cinemáticos casi óptimos para alcanzar la trayectoria desde el
inicio.

168
SAPPO. Sistema de Alta Precisión de POsicionamiento

5.11.1. Resolución trigonométrica del sistema de orientación

Uno de los sistemas que podrían emplearse para conocer la orientación es


disponer de dos dispositivos de localización situados en dos lugares diferentes
del robot, pero esta configuración nos obligaría a sobrecargar los robots con
electrónica de localización, no compensando la funcionalidad obtenida.
SAPPO emplea los transductores de los robots como emisores y para ganar
frecuencia de muestreo envía el tren de pulsos de ultrasonidos empleando su
anillo omnidireccional por todos los transductores a la vez. Empleando este
sistema no es posible obtener ningún cálculo de orientación, pero cambiando
ligeramente su programación, será posible enviar los pulsos de modo
secuencial empleando consecutivamente cada uno de los transductores de
ultrasonidos. Dado que es conocida la ubicación de cada uno de los
transceptores dentro del anillo, ajustando con precisión el cálculo de la
geometría del anillo de emisión del robot y la posición y geometría de las
balizas, y obteniendo con mucha precisión las medidas de distancias de cada
uno de los transceptores, y calculando finalmente los transceptores implicados
en la medida más próxima, puede calcularse su apotema y obtener una
estimación del ángulo que forma con el centro del anillo del robot. Esta
medida no tiene una precisión angular muy alta, pero es suficiente para
conseguir que el robot arranque en la dirección correcta, que será reajustada
posteriormente en dinámico.

Para obtener la orientación, el sistema seguirá el siguiente procedimiento:


1. Debe obtener una medida en estático de alta precisión mediante una
emisión omnidireccional del robot.
2. El sistema debe emitir un haz ultrasónico empezando por el primero o el
siguiente transductor según corresponda.
3. Si obtiene una medida de distancia, esta debe ser compatible con la medida
de distancia obtenida en el punto 1. En caso de ser incompatible se desecha.
4. Si la medida es compatible con la posición del robot, grabamos las medidas
obtenidas por cada una de las balizas y el transductor que ha detectado
primero la señal.

169
Estimación de la orientación

5. Continuamos con el punto 2 con el siguiente transductor del anillo.


6. Una vez recuperadas las medidas con todos los transductores,
seleccionamos la menor medida con cada una de las balizas.
7. Trazamos el polígono formado por el robot y las balizas, lo que nos
permitirá aproximar la orientación del robot con bastante precisión.

Figura 5.11.1 Sistema de lectura de orientación

Como se ve en la Figura 5.11.1, al enviar los pulsos de modo secuencial por


cada uno de los transductores del anillo, es posible cubrir los 360 grados de
posibles orientaciones.

Figura 5.11.2 Apertura del cono de radiación de los transductores.

En la Figura 5.11.2 se observa el ángulo de cobertura de la radiación de cada


transceptor del robot involucrado en la medida, que está delimitado mediante
rayas punteadas rosas, junto con el ángulo de apertura de recepción de los

170
SAPPO. Sistema de Alta Precisión de POsicionamiento

transceptores en las balizas delimitado por rayas amarillas. Las balizas


detectarán al robot, siempre que parte del área de cobertura del transceptor
emisor del robot sea capaz de alcanzar el transceptor de la baliza, con lo que el
error depende del número de transceptores y sobre todo del ángulo que son
capaces de cubrir.

Dado que en este caso el anillo emisor de RODI solo tiene 8 transductores, el
error máximo cometido en el cálculo de la orientación sería de 45 grados. Al
calcular los ángulos empleando la información de las dos balizas,
estadísticamente se espera una reducción media del error a la mitad, con lo
que quedaría en un error máximo de 22,5 grados situándonos en una media
de error de 12,25 grados, lo que representa una precisión del 96,52% de media.
Para un anillo de 12 transductores como el de DANI tendría una precisión
esperada del 97,92%. Esta precisión es suficiente para tomar la dirección
correcta en el arranque del movimiento.

En la Figura 5.11.3 se trazan las figuras geométricas que entrarán en juego en


la resolución trigonométrica de la orientación.

Figura 5.11.3 Resolución geométrica de la orientación.

Conocemos los puntos P1 y P2 que son los centros de las balizas. Dado que
conocemos la forma, el lado de los polígonos que forman las balizas y los
transductores involucrados en las medidas de distancia, calculando la apotema
del polígono que forma la baliza (como se indica en la sección 5.9), también
conocemos con precisión los puntos P11 y P12 y como consecuencia
conocemos la longitud del segmento B.

171
Estimación de la orientación

Figura 5.11.4 Formulación para el cálculo del punto P11.

Para calcular el punto P11, primero se calcula a que es la apotema del polígono.
El ángulo w6 es conocido. En un polígono de 8 lados, cada apotema (a) se
separa 22,5 grados de las demás. En la Figura 5.11.4, el ángulo w6 tiene el valor

22,5 · 2 + 11,25 = 56,25 grados (5.33)

calculando el seno de w6 obtenemos c.


𝑐𝑐
sin(𝑤𝑤6) = ⇒ 𝑐𝑐 = 𝑎𝑎 · sin(𝑤𝑤6) (5.34)
𝑎𝑎
Ahora conociendo c y a calculamos b con el teorema de Pitágoras

a2 = 𝑏𝑏 2 + 𝑐𝑐 2 ⇒ 𝑏𝑏 = �𝑎𝑎2 − 𝑐𝑐 2 (5.35)

de forma que si colocamos el centro de coordenadas en P2.

𝑃𝑃11𝑥𝑥 = 𝑃𝑃1𝑥𝑥 − 𝑏𝑏; 𝑃𝑃11𝑦𝑦 = 𝑃𝑃1𝑦𝑦 + 𝑐𝑐 (5.36)

De la misma forma calculamos las coordenadas de P12.

Adicionalmente conocemos las distancias A y C (en verde) desde los


transceptores de las balizas a los transceptores del anillo del robot, que son las
medidas calculadas por SAPPO, dado que conocemos exactamente los
transceptores involucrados en la medida de la orientación tanto en el robot
como en las balizas. También conocemos la longitud de los segmentos A1 y C1,
dado que son la apotema del polígono que forma el anillo del robot.

Será necesario calcular los ángulos w3 y w5 que pueden verse en la Figura


5.11.3. Estos ángulos formarán parte del triángulo aproximado formado por
los lados A+A1, B y C+C1.

172
SAPPO. Sistema de Alta Precisión de POsicionamiento

Figura 5.11.5 Triángulo de cálculo.

En la Figura 5.11.5 puede verse punteado en lila el triángulo base que se


empleará para realizar los cálculos formado por los lados A’, C’ y B, de forma
que A’ = A+A1 y C`= C+C1. Se han traspasado los ángulos w3 y w5 al triángulo
de cálculo, de forma que se calculará una versión aproximada de los mismos.
Aunque el triángulo de cálculo tenga uno de sus vértices en el centro del anillo,
realmente no tiene porqué ser así, dado que dependerá de la longitud de los
segmentos A+A1 y C+C1.

Podemos ver en color rojo el segmento So que atraviesa el centro del anillo del
robot y nos marca la orientación. Debemos calcular el ángulo que forma el
segmento So con el segmento D que une las balizas, nombrado con w2, lo que
nos dará la orientación de la zona central del anillo del robot.

Para ello emplearemos el triángulo aproximado perfecto que forman las


medidas de distancia y que se ve dibujado con líneas punteadas en color lila,
cuya longitud es conocida. Con los tres segmentos del triángulo puede
calcularse empleando el teorema del coseno el ángulo w3 que forman los
segmentos A’ y C’, dado que se conoce de forma aproximada la longitud de los
segmentos A’, C’ y con total precisión la longitud de B.
2 2
𝐵𝐵 2 = 𝐶𝐶 ′ + 𝐴𝐴′ − 2 · 𝐶𝐶 ′ · 𝐴𝐴′ · cos(𝑤𝑤3) ⇒

2 (5.37)
𝐵𝐵 2 − 𝐶𝐶 ′ − 𝐴𝐴′2
𝑤𝑤3 = cos −1 � �
2𝐶𝐶 ′ 𝐴𝐴′

Ahora se generan dos triángulos rectángulos trazando H

173
Estimación de la orientación

𝐻𝐻 = �𝐴𝐴′2 − 𝐵𝐵 2 (5.38)

y se resuelve el ángulo w5 mediante el teorema del coseno

𝐵𝐵1 2 − 𝐻𝐻2 − 𝐴𝐴′2


𝑤𝑤5 = cos −1 � � (5.39)
2𝐵𝐵1 𝐴𝐴′

que nos indicará el ángulo que forma el lado A’ del triángulo con respecto a la
línea que indicará 0 grados de orientación.

Figura 5.11.6 Anillo de sensores del robot girado.

Finalmente, tenemos el ángulo w7 que es conocido y es el ángulo que forman


la apotema A1 con el segmento So que marcará la orientación que no deja de
ser otra apotema.

Para encontrar la orientación, giramos el anillo del robot hacia la derecha para
hacer encajar lo mejor posible el ángulo w8 que forman las apotemas A1 y C1
con el ángulo w3 del triángulo lila punteado de cálculo (ver Figura 5.11.6). El
error de solapamiento de los ángulos se calcula con

𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = |𝑤𝑤3 − 𝑤𝑤8| (5.40)

Siendo w3 el ángulo superior del triángulo de cálculo (en lila punteado) y w8


el ángulo formado por dos transceptores implicados en la medida (en azul).
La mitad de este valor es el error angular de superposición que queda por cada
lado. Finalmente, el ángulo w4 que forman los segmentos H y So se calcula con
𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠
𝑤𝑤4 = 𝑤𝑤7 − − 𝑤𝑤5 (5.41)
2
y puede observarse en la Figura 5.11.6 señalado con la fecha.

En este punto se ha calculado el ángulo con respecto a H que forma un ángulo


de 90 grados con respecto al segmento B que une los transceptores de las

174
SAPPO. Sistema de Alta Precisión de POsicionamiento

balizas. Suponemos que el punto de coordenadas (0,0) está situado en el punto


P2 y el eje X de coordenadas está formado por el segmento �������
𝑃𝑃2𝑃𝑃1. Como
consecuencia es necesario calcular el ángulo que forman los segmento B y D
para obtener finalmente w2, para lo que se puede emplear la Ecuación (5.42)

𝑚𝑚1 − 𝑚𝑚2
𝑤𝑤2 = tan−1 � � (5.42)
1 + 𝑚𝑚1 · 𝑚𝑚2

calculando las pendientes como


𝑦𝑦2 − 𝑦𝑦1
𝑚𝑚 = (5.43)
𝑥𝑥2 − 𝑥𝑥1

para cada uno de los dos puntos.

5.11.2. Resolución discreta posicional del sistema de orientación

De forma mucho más sencilla, podría obtenerse la orientación del robot con
respecto al centro del polígono de cualquiera de las balizas, simplemente
conociendo el transceptor de emisión del robot que más aproxima la medida
de distancia a una de las balizas. Con un anillo de 8 transceptores como el de
RODI, para 360 grados, tenemos un error máximo de 45 grados con media de
22,5 grados que representaría una precisión media del 93,75%, subiendo al
95,83% para un anillo emisor de 12 transductores como el de DANI. En este
caso, sólo hay que realizar la medida de distancia a una de las balizas y
posteriormente comprobar cuál es el transceptor del robot que obtiene esa
medida. Una vez comprobado se obtiene su posición angular con respecto al
punto del anillo emisor del robot que se elija como 0 grados. En la Figura 5.11.7
se puede ver una representación gráfica del cálculo de la orientación siguiendo
este procedimiento. Está señalada con una flecha roja la línea que marca la
parte delantera del robot y que se toma como referencia para los 0 grados de
orientación.

175
Estimación de la orientación

Figura 5.11.7 Cálculo de orientación simple.

Con este procedimiento debe escogerse uno de los centros de las balizas como
punto de referencia. Una vez calculada la orientación relativa con el centro de
una de las balizas, debe trasladarse el ángulo obtenido para poder emplearlo
en un sistema de localización global relativo al origen de coordenadas, dado
que todos los objetos, incluida la trayectoria a seguir, se trazan sobre esta
referencia global. Para poder calcular el ángulo con respecto al punto (0,0)
debemos despejar el ángulo w de la Figura 5.11.8.

Figura 5.11.8 Cálculo del ángulo contra el origen de coordenadas.

En la figura se muestra el segmento A que une el robot con la baliza, el


segmento B que une la baliza con el origen de coordenadas de referencia del
plano de la casa y el segmento C que une el robot con el origen de coordenadas.
El segmento O marca la orientación de movimiento del robot. El ángulo wo
que ya hemos calculado (ver Figura 5.11.7), indica la orientación con respecto
al centro de la baliza. El objetivo es calcular el ángulo w que nos permitirá
calcular la orientación con respecto al origen de coordenadas dado que la
orientación total con respecto al origen de coordenadas se corresponderá a la
suma de los ángulos w y wo.

176
SAPPO. Sistema de Alta Precisión de POsicionamiento

Dado que la longitud de los segmento A, B y C es conocida, empleando el


teorema del coseno como indica la Ecuación (5.44) se deduce en valor de w
como se muestra en la Ecuación (5.45) con lo que se obtiene el ángulo con
respecto al origen de coordenadas como indica la Ecuación (5.46).

𝐵𝐵 2 = 𝐴𝐴2 + 𝐶𝐶 2 − 2 · 𝐴𝐴 · 𝐶𝐶 · cos(𝑤𝑤) (5.44)

𝐵𝐵 2 − 𝐴𝐴2 − 𝐶𝐶 2
𝑤𝑤 = cos −1 �− � (5.45)
2 · 𝐴𝐴 · 𝐶𝐶

𝑤𝑤(0,0) = 𝑤𝑤 + 𝑤𝑤𝑤𝑤 (5.46)

El error es mayor que el obtenido con el algoritmo explicado en el Apartado


5.11.1 que calculaba la orientación con respecto a la línea que unía los centros
de ambas balizas, pero la sencillez de su cálculo justifica su empleo.

Conociendo el vector que une la posición con el origen de coordenadas y la


desviación de la orientación con respecto a este vector, es posible conocer la
dirección que tomará el robot al iniciar su movimiento, con lo que se pueden
calcular los parámetros cinemáticos para iniciar el movimiento en dirección al
primer nodo de la ruta con bastante precisión. Una vez iniciado el movimiento,
la orientación se calculará dinámicamente con la información del sistema de
posicionamiento.

En la Figura 5.11.8 se detalla el diagrama de flujo del algoritmo de orientación.

177
Resumen del capítulo

Figura 5.11.9 Diagrama del algoritmo de orientación.

5.12. Resumen del capítulo


En este capítulo se ha descrito de forma precisa el sistema de localización en
interiores basado en ondas ultrasónicas propuesto en esta tesis.

178
SAPPO. Sistema de Alta Precisión de POsicionamiento

Una de las limitaciones más importantes de los sistemas que emplean ondas de
ultrasonido es la cobertura. Normalmente, para cubrir amplios espacios, es
necesario emplear una gran cantidad de balizas, que se suelen colocar
repartidas por los techos de las habitaciones, lo que dificulta muchísimo la
instalación e incrementa los tiempos repercutiendo directamente en los costes,
por el tiempo necesario y el número de dispositivos electrónicos empleados.

Las primeras secciones del capítulo se centran en describir una disposición de


los elementos del sistema que posibilite el aprovechamiento máximo de las
características físicas de los dispositivos electrónicos posibilitando el empleo del
mínimo número de balizas.

En las siguientes secciones se describen las características básicas del sistema de


localización como son los sistemas de codificación de señal, el sistema de
sincronización de medidas y el algoritmo de obtención de posición.

En esta tesis se ha seleccionado una ubicación y orientación de las balizas, que


permite maximizar la cobertura y minimizar el número de balizas necesarias,
pero a costa de generar problemas controlados de imprecisión variable
dependiendo de la orientación angular entre los sensores de ultrasonidos de
las balizas y los emisores del robot. En la siguiente sección se evalúa
matemáticamente la desviación máxima de las medidas y los errores que
pueden aparecer en los cálculos de posición debidos a este motivo mostrando
gráficamente el resultado de este análisis.

En la última sección se define un algoritmo de cálculo de orientación estática


empleando las capacidades del array de ultrasonidos de 360 grados del robot.

En el siguiente capítulo se describirá el robot de servicio de investigación que


se ha empleado para probar este sistema.

179
6 RODI. Robot de servicio para investigación y
pruebas de SAPPO
6
6.1 Introducción
El campo de aplicación de SAPPO estaba centrado en la localización para
permitir la navegación de grandes robots dentro del hogar. Inicialmente se
desarrolló DANI, que se describe en el Capítulo 7, con la intención de validar
el sistema de localización con un robot de servicio a tamaño real. Debido a los
altos costes de fresado y torneado para el diseño de piezas metálicas para la
etapa de reducción, el sistema de movilidad se ha diseñado empleando parte
del chasis, motor y reductoras de una moto de juguete. El problema de este
equipo motor consiste en que la velocidad mínima de desplazamiento era
demasiado alta para probar la precisión de posicionamiento de SAPPO en
movimiento en un entorno pequeño. El tamaño del robot y su velocidad, hacía
que, en muy pocos segundos, el robot recorriera un espacio suficiente para
estar colisionando con alguna de las paredes de la casa, con lo que no daba
tiempo suficiente para estudiar los problemas que se habían generado. Por este
motivo se desarrolló un pequeño robot diferencial para realizar las pruebas de
precisión del sistema y poder desarrollar el prototipo desde el inicio. Este
pequeño robot diferencial llamado RODI (RObot DIferencial) está formado por
una base que portaba toda la electrónica y componentes, dos ruedas motrices
y directrices, una rueda loca y un anillo de emisores de ultrasonidos, mas todos
los componentes electrónicos necesarios para su control. Dado su pequeño

181
Componentes e imágenes

tamaño, resulta fácil establecer rutas complejas en espacios muy reducidos para
probar la precisión del sistema de posicionamiento.

6.2 Componentes e imágenes


Dado que RODI debe gestionar un anillo de transductores de ultrasonidos que
puede emplear tanto como emisores como radar omnidireccional de detección
de obstáculos, debe tener un controlador un poco más potente que las balizas
que le permita gestionar todos los sensores. El módulo controlador está
formado por una placa Arduino Atmega2560 que puede gestionar un total de
55 dispositivos digitales. En este caso, no ha sido necesario desarrollar una placa
específica de control, dado que no tenemos limitaciones de consumo ni de
coste, ya que el robot es único y no forma parte del despliegue del sistema,
aunque se han desarrollado placas adicionales para conectar el anillo de
sensores de ultrasonidos y los componentes adicionales.

En la Figura 6.2.1 se representa el esquema modular de componentes de RODI.

Unidad inercial y
Anillo con 8 o 12
Motores y sensor de
transductores HC-
reductoras temperatura
SR04
CMPS09

Módulo Módulo
Sensores
transceptor de transmisor de
odométricos
radio nRF24L01 radio de 433 MHz

Módulo de
Unidad de control Regulador tensión
telemetría
Arduino Mega2560 5V
bluetooth HC-05

Figura 6.2.1. Descomposición modular de RODI.

Motores y reductoras

Inicialmente el chasis del robot ha sido adquirido en kit, lo que ha ocasionado


multitud de problemas en el sistema de movilidad, ya que los motores
originales venían montados con unas reductoras con una ratio de reducción
muy bajo, lo que ocasionaba que era necesario aplicar mucha potencia a los

182
RODI. Robot de servicio para investigación y pruebas de SAPPO

motores para que comenzara a moverse y una vez iniciada la marcha su


velocidad mínima era muy alta por lo que era muy complicado controlar con
precisión las velocidades angulares de las ruedas para que el algoritmo de
control PID (Proportional-Integral–Derivative controller) funcionara
correctamente. En versiones posteriores se ha modificado el sistema motor
incorporando servos.

Componentes de ultrasonidos para emisión omnidireccional

Para portar el anillo de emisión omnidireccional se han desarrollado un par de


componentes para imprimir en una impresora 3D. El anillo está compuesto de
8 o 12 sensores HC-SR04. En la versión que porta RODI tiene 8 sensores y la
versión que porta el robot DANI tiene 12. En los primeros prototipos se han
empleado 8, pero la cobertura total de 360° se garantiza completamente con
12 sensores. Para portar los sensores se ha realizado un modelo de base y otro
modelo para el anillo. En la Figura 6.2.2 pueden verse los dos modelos que se
imprimirán por duplicado para formar la base y el anillo de transductores
ultrasónicos.

Figura 6.2.2. Mitad del anillo de emisores de ultrasonidos y su soporte.

Unidad inercial CMPS09

El sensor CMPS09 es una unidad inercial con comunicación I2C (Inter-Integrated


Circuit) que integra en un solo chip un giróscopo, un acelerómetro, un
magnetómetro y un sensor de temperatura. Se puede emplear como sensores
de apoyo para la aproximación de la trayectoria junto con los sensores
odométricos y el sistema de localización. Adicionalmente se empleará para

183
Componentes e imágenes

obtener el valor de temperatura y poder calcular con más precisión la velocidad


de propagación de los ultrasonidos en el aire.

Sensores odométricos

Al emplear los motores DC (Direct Current) con reductoras, estos sensores


recuperan la información de la velocidad angular de las ruedas que posibilita
el cálculo de la velocidad de desplazamiento y la distancia recorrida por cada
una de ellas. Con ambos motores viene incorporado un encoder que permite
recuperar información del desplazamiento angular de las ruedas.

• Sistema de detección de velocidad angular con motores DC

Figura 6.2.3. Encoder de lectura de velocidad angular 23.

Normalmente los encoder para detección de velocidad angular se componen


de un disco con múltiples ranuras al largo de todo su borde que gira solidario
con el eje del motor (ver Figura 6.2.3). Adicionalmente se monta un sensor en
forma de U que tiene un emisor infrarrojo por un lado y un detector por el
otro. El encoder detecta cuando pasa una ranura por delante del sensor, dado
que permite que la luz infrarroja realice el camino entre el emisor y el receptor.
Contando el número de ranuras y conociendo el número de ranuras totales del
disco se puede calcular la velocidad angular. Lo normal es contar con 30
ranuras por disco para disponer de una precisión razonable.

23Fuente:
https://repository.javeriana.edu.co/bitstream/handle/10554/7069/tesis532.pdf?sequence=1
[Acceso: 8-feb-2022]

184
RODI. Robot de servicio para investigación y pruebas de SAPPO

Figura 6.2.4. Sensor infrarrojo para encoder.

En la Figura 6.2.4 puede verse un sensor de luz infrarroja para mediciones en


encoders de baja precisión como los empleados en RODI conjuntamente con
los motores con reductoras.

Módulo transceptor nRF24L01

Este módulo se empleará para despertar las balizas de bajo consumo y para
recibir la información de las medidas de las distintas balizas. Dado que
implementa una pila de protocolos de radio con control de errores, acceso al
medio y detección de errores y reenvíos, permite gestionar el envío simultáneo
de información por parte de las balizas sin errores.

Módulo de transmisión de radio a 433MHz

El procesado de la pila de protocolos del nRF24L01 añade errores no


predecibles para ser empleado como un sistema de sincronización, se ha
incorporado un módulo simple de emisión de portadora a 433 MHz sin
firmware adicional que será empleado para sincronizar el instante de envío
inicial de la señal de ultrasonidos.

Módulo de telemetría Bluetooth HC-05

El objetivo de RODI es probar el sistema de localización, las medidas que


obtenga deben ser enviadas a un ordenador central para su control y estudio.
La telemetría del robot, de todos sus sensores y las lecturas y cálculos de
localización, son enviados a un ordenador central para su almacenamiento y
estudio a través de Bluetooth.

Regulador de tensión

El módulo Arduino Mega genera tensiones de 5V y 3,3V, pero con muy baja
intensidad. En el canal de 3,3V solo tenemos que alimentar el módulo

185
Componentes e imágenes

nRF24L01, pero el canal de 5V debe alimentar 12 transductores ultrasónicos,


el sensor inercial CMPS09 y el transmisor de radio de 433 MHz con lo que no
era suficiente, de modo que ha sido necesario incorporar un regulador de
tensión de 5V y 1A para soportar todos los sensores.

Placa de control

Para conectar todos los sensores será necesario emplear un microcontrolador


con mayor potencia que el atmega328. En este caso se ha empleado
directamente una placa Arduino Mega 2560 que porta un atmega256 con
256Kb de Flash, 4KB de RAM y 2 KB de EEPROM. Esta placa trabaja a 16 MHz
y soporta 54 entradas y salidas digitales.

Hardware y placas

Dado el alto número de conexiones, no resultaba operativo realizarlas


directamente sobre la plaza del Arduino, por lo que ha sido necesario diseñar
una pequeña placa PCB para conectar todos los sensores y el regulador al
Arduino Mega como se muestra en la Figura 6.2.5.

Conexión de los Sensor Transceptor Transmisor de


sensores de inercial y radio nRF2401 radio a 433Mhz
ultrasonidos temperatura
Regulador
de tensión
de
alimentación

Alimentación Entrada
sensores de Interface de conexión con alimentación
ultrasonidos Arduino mega 256 de la placa

Figura 6.2.5. PCB de conexión de sensores.

186
RODI. Robot de servicio para investigación y pruebas de SAPPO

Esta placa sirve de interface de conexión ordenada de todos los sensores de


RODI y permite conectarlos con el Arduino Mega 2560.

Ubicación de componentes

En la Figura 6.2.6 puede verse el robot RODI completo con la ubicación de


cada uno de sus componentes.

Anillo emisor de ultrasonidos

Escudo y Micro
Arduino Mega Sensor
inercial y
temperatura
CMPS09
Módulo
Bluetooth
Transceptor
radio
nRF24L01

Regulador
5V-1A

Sensor de
velocidad
de
Módulo rotación
transmisor
Radio Servos Patrón detectado por los
433Mhz modificados sensores de rotación

Figura 6.2.6. Descripción de componentes de RODI.

6.3 Sistema de locomoción


RODI es un pequeño robot de geometría diferencial. El sistema de movilidad
de los robots de este tipo está compuesto por dos ruedas motrices, una a cada
lado. Normalmente tienen una tercera rueda más que se llama rueda local,
dado que solo tiene funciones de sustentación para que el robot mantenga el

187
Sistema de locomoción

equilibrio. Este tipo de configuración es muy sencilla y permite una gran


maniobrabilidad, pero como contrapartida, resulta complejo trazar
trayectorias rectas, dado que la más mínima diferencia de giro entre las ruedas,
ocasionará que el robot se gire ligeramente hacia la rueda que realiza un menor
recorrido.

En un robot diferencial es necesario tener un control muy preciso de la


velocidad angular de las ruedas. para realizar giros precisos, por lo que resulta
obligatorio disponer de un sistema de control preciso y de un sistema de
detección de velocidad angular de alta resolución.

Para RODI se han evaluado distintas alternativas para su tren motriz que serán
evaluadas en los siguientes apartados.

Sistema de locomoción mediante motores con reductora

El kit básico de adquisición de RODI venía con dos motores de corriente


continua de 6V con reductoras. El problema de estos motores era que a baja
potencia generaban poco par, por lo que no desplazaban el robot de forma
estable, y en cuanto se incrementaba la potencia, la velocidad era demasiado
alta. El desarrollo del robot y las pruebas del sistema de posicionamiento, se
realiza en un despacho con un espacio sin obstáculos de 1x1.5 metros para la
implementación de un circuito de pruebas. Con los motores de 6V si se
alimentaba con la potencia necesaria para que el movimiento fuera estable
recorría el metro y medio a demasiada velocidad, con lo que se descartó este
sistema de locomoción.

Sistema de locomoción mediante servos modificados

Para poder implementar un circuito pequeño con curvas en 1 m2 tenemos que


tener un control muy preciso de la velocidad del robot. Los servos poseen una
ratio de reducción muy alto por lo que son capaces de mantener velocidades
muy bajas con alta potencia y estabilidad. El problema de los servos en su
configuración original es que no son capaces de rotar de forma continua. Están
diseñados para mantener una posición de forma estática y precisa. Para que

188
RODI. Robot de servicio para investigación y pruebas de SAPPO

puedan rotar de forma continua hay que realizar un par de modificaciones en


los servos. Hay que eliminar el tope de rotación que impide que gire y hay que
realizar una modificación del potenciómetro de control de posición para
definir el punto medio que define el punto de cambio de dirección.

Lector de velocidad Servo modificado para


angular rotación continua

Figura 6.3.1. Vista posterior de RODI con los encoder y servos.

Al cambiar los motores con reductoras por servos, ha sido necesario modificar
los encoder de lectura de velocidad angular. Después de probar varios tipos de
sensores se ha localizado un conjunto de sensores que funcionan de modo
preciso empleando como encoder la propia llanta (ver Figura 6.3.1). El
problema vuelve a ser la resolución, dado que la llanta genera 10 señales por
vuelta, lo que resulta suficiente para gestionar la velocidad de forma estable,
pero resulta escaso para modificar la velocidad de las ruedas en trayectos muy
cortos.

Sistema de locomoción mediante motores paso a paso

En una tercera versión, se ha probado el empleo de motores paso a paso, de


modo el sistema obtiene de modo muy preciso la velocidad de rotación de cada
rueda y la velocidad tanto absoluta como relativa de rotación puede controlarse
con gran precisión.

Los motores paso a paso tienen una velocidad de rotación muy baja, pero
permiten controlar esta velocidad con una altísima precisión. Estos motores

189
Sistema de locomoción

siempre se encuentran en una posición estática. Pasando de una posición


estática a otra a alta velocidad se genera su rotación.

Figura 6.3.2. Motos paso a paso NEMA.

Se han instalado motores Nema 17 (Figura 6.3.2) con un par de 3,2 Kg/cm.
Estos motores tienen dos bobinados y se controlan mediante cuatro pines, que
se gestionan mediante drivers (Figura 6.3.3) proporcionando la potencia
suficiente a cada uno de los bobinados.

Figura 6.3.3. Controlador de potencia de un motor paso a paso.

El principal problema de los motores paso a paso es su bajo par por lo que
desarrollan muy poca potencia. Este inconveniente se soluciona con una
reductora a costa de bajar la velocidad de rotación.

En caso de emplear el sistema de locomoción mediante motores paso a paso,


no es necesario tener un modo de leer la velocidad angular de las ruedas, dado
que el avance de cada uno de los pasos del motor se controla desde la propia
electrónica, de forma que en todo momento se conoce el número de pasos que
ha avanzado cada uno de los motores.

Sistema de control de velocidad empleando PID. Teoría y aplicación


práctica

En un robot con un sistema de locomoción diferencial es imprescindible que


ambas ruedas giren exactamente a la misma velocidad para que el robot pueda

190
RODI. Robot de servicio para investigación y pruebas de SAPPO

moverse en línea recta. No es suficiente con aplicar la misma potencia, ya que


las pequeñas variaciones internas de cada motor pueden ocasionar una
pequeña diferencia de velocidad que hará que el robot gire hacia alguno de los
lados.

Para controlar con precisión la velocidad de rotación de las ruedas, el algoritmo


más empleado es el control por PID. PID es un controlador proporcional,
integral y derivativo.

Un controlador PID simple se aplica normalmente a un proceso sobre el que


actuamos con una variable de entrada para generar una acción pudiendo
medir con precisión la diferencia entre la acción generada y la acción deseada.
El controlador PID intenta ajustar que la acción generada se ajuste a la acción
deseada en el menor tiempo posible modificando los valores de entrada y
reajustando su salida con la lectura del estado del sistema. Inicialmente un
controlador PID arranca con un valor inicial para la variable de entrada y el
valor de la medición de la acción realizada por el sistema deseada.

Por poner un ejemplo sencillo, estos controladores se emplean en los sistemas


de control de velocidad de los automóviles. Estos procesos tienen una variable
de entrada que se corresponde a la cantidad de combustible suministrado al
motor que sería equivalente a la posición del acelerador, la acción que se desea
controlar es la velocidad angular de las ruedas y para medir esta velocidad, las
ruedas tienen encoders. Al controlador PID hay que proporcionarle la
velocidad angular deseada. Para ello se convierte la velocidad lineal a velocidad
angular teniendo en cuenta el diámetro de la rueda. La velocidad angular
deseada se llama SetPoint. El controlador PID intentará conseguir que en todo
momento la velocidad angular recuperada por los encoders sea igual a la
indicada en el SetPoint y para ello actuará sobre la cantidad de combustible
proporcionada al motor. La fórmula que define el comportamiento de un
controlador PID viene definida por la Ecuación (6.1).

𝑑𝑑𝑑𝑑(𝑡𝑡)
𝑢𝑢(𝑡𝑡) = 𝐾𝐾𝑝𝑝 𝑒𝑒(𝑡𝑡) + 𝐾𝐾𝑖𝑖 � 𝑒𝑒(𝑡𝑡)𝑑𝑑𝑑𝑑 + 𝐾𝐾𝑑𝑑 (6.1)
𝑑𝑑𝑑𝑑

191
Sistema de locomoción

Donde e(t) es el error de la señal que se corresponde con la diferencia entre


u(t) y SetPoint, u(t) la salida del controlador y entrada de control al proceso,
Kp es la ganancia proporcional, Ki es la ganancia integral y Kd es la ganancia
derivativa.

Figura 6.3.4. Componentes de un controlador PID 24.

Los componentes de la Figura 6.3.4 del diagrama de flujo de un controlador


PID son los siguientes:

El primer bloque (P) corresponde al bloque de control proporcional. Ajusta la


señal de control con un valor proporcional al error entre la señal recuperada y
la señal que se deseaba recuperar.

El segundo (I) es el bloque integral. Este bloque incrementa o decrementa el


valor de la señal de control teniendo en cuanta las desviaciones acumuladas
integrando la desviación en el tiempo.

El tercer bloque (D) es el bloque derivativo. Este bloque calcula la pendiente


del error adelantándose a grandes desviaciones que serían lentas de corregir
de forma proporcional.

El objetivo de la suma de los tres bloques es conseguir corregir el error de la


señal recuperada del proceso (señal de salida - SetPoint) actuando sobre las
señales de entrada del proceso. El problema de todo controlador PID se basa
primero en seleccionar los componentes adecuados a emplear en nuestro

24 Fuente: https://es.wikipedia.org/wiki/Controlador_PID [Acceso: 9-feb-2022]

192
RODI. Robot de servicio para investigación y pruebas de SAPPO

proceso y para ello debemos escoger las constantes Kp, Ki y Kd adecuadas con
las que nuestro proceso se estabilice lo antes posible.

En RODI, el controlador PID se ha empleado para controlar la velocidad


angular de rotación de las ruedas. En un robot de tipo diferencial, las dos
ruedas deben girar de modo totalmente preciso para conseguir que el robot se
desplace en línea recta. Para conseguir este objetivo tenemos dos alternativas:
• Podemos implementar un controlador PID para cada rueda, de modo que
estabilice su velocidad de giro. El problema que tiene esta implementación
es que cada controlador intentará estabilizar la velocidad de giro de cada
rueda, pero cada rueda está compuesta por un motor distinto, etapas de
potencia distintas y el suelo sobre el que se desplaza no tiene por qué ser
idéntico, por este motivo cada rueda sufrirá perturbaciones distintas. Por
este motivo, dado que los dos controladores PID son independientes, por
muy bien que funcionen, la acumulación de estos pequeños errores
conseguirá generar errores mayores con el tiempo que harán que las dos
ruedas no giren de modo perfectamente idéntico en todo momento.
• La segunda alternativa implica emplear un controlador PID conjunto que
calculará tanto la velocidad de rotación de cada una de las ruedas como la
diferencia de velocidad de rotación deseada en cada momento,
dependiendo que el robot se encuentra desplazando en una trayectoria
recta o en una trayectoria curva.

• Acción proporcional

La acción proporcional posiblemente es la acción más importante. De hecho,


existen controles PID en los que la única acción que interviene es la
proporcional. Está acción da como resultado una salida que es proporcional al
error, multiplicándolo por un valor, llamado ganancia o constante
proporcional, Kp. Partiendo de los parámetros que se observan en la Figura
6.3.4, si sólo actuará la acción proporcional, la salida del controlador sería la
que se representa en la Ecuación (6.2).

𝑃𝑃𝑆𝑆𝑆𝑆𝑆𝑆 = 𝐾𝐾𝑝𝑝 𝑒𝑒(𝑡𝑡) (6.2)

193
Sistema de locomoción

Gracias a esta acción, conseguiremos que los motores alcancen el valor de


referencia rápidamente, dado que cuanto mayor es el error, mayor es la
respuesta. Sin embargo, hay que tener cuidado al dar valores a la constante
proporcional, ya que, si este valor es excesivamente alto, se correrá el riesgo de
que haya un sobre-amortiguamiento, es decir, el PID hará que el motor gire a
una velocidad excesiva. Un claro ejemplo de lo anteriormente explicado se
puede observar en la Figura 6.3.5. Se puede observar como al emplear un valor
de Kp demasiado alto, el sistema rebota y tarda un tiempo demasiado alto en
estabilizarse. Cuando se emplean valores de Kp demasiado altos, el sistema
alcanza el valor estacionario muy rápido, pero posteriormente se producen
rebotes que hacen que tarde mucho en estabilizarse o incluso que no lo haga
nunca.

Figura 6.3.5. Fluctuación con Kp alto 25.

• Acción derivativa

La acción derivativa, la cual da como resultado un valor proporcional a la


derivada del error. Principalmente corrige los cambios bruscos en la señal de
control. Dicha derivada representa la velocidad a la que cambia el error
existente. Para poder obtener este resultado será necesario derivar el error
absoluto para posteriormente multiplicarlo por la constante derivativa, Kd.
Gracias a esta acción, se conseguirá amortiguar las oscilaciones rápidas. La
acción derivativa se puede ver en la Ecuación (6.3).

25 Fuente: https://www.picuino.com/es/control-pid.html [12-feb-2022]

194
RODI. Robot de servicio para investigación y pruebas de SAPPO

𝑑𝑑𝑑𝑑(𝑡𝑡)
𝐷𝐷𝑆𝑆𝑆𝑆𝑆𝑆 = 𝐾𝐾𝑑𝑑 (6.3)
𝑑𝑑𝑑𝑑
En la Figura 6.3.6 se puede observar cómo actúa la acción derivativa en función
de la constante derivativa. En este caso puede verse como se reducen las
oscilaciones y se estabiliza la señal. En algunos casos (como el de la Figura
6.3.8) puede verse que se mantiene un ligerísimo error que se va
incrementando muy poco a poco con el tiempo y que las dos acciones
anteriores no son capaces de corregir.

Figura 6.3.6. Actuación de la acción derivativa y proporcional 26.

• Acción integral

Esta acción corrige los pequeños errores que se acumulan con el tiempo y no
son capaces de corregir las acciones proporcionales y derivativa. La acción
integral da como resultado una salida que es proporcional al error acumulado.
Para poder obtener este resultado será necesario integrar el valor del error
durante un tiempo determinado y multiplicarlo por la constante integral, Ki.
Si sólo actuará la acción integral, la salida del controlador sería la que se
representa en la siguiente Ecuación (6.4).

𝐼𝐼𝑆𝑆𝑆𝑆𝑆𝑆 = 𝐾𝐾𝑖𝑖 � 𝑒𝑒(𝑡𝑡)𝑑𝑑𝑑𝑑 (6.4)

26 Fuente: https://www.picuino.com/es/control-pid.html [12-feb-2022]

195
Sistema de locomoción

Gracias a esta acción, se conseguirá eliminar el error existente en estado


estacionario respecto al valor de referencia. Dado que reacciona a la
acumulación de errores, aunque estos sean pequeños, con el tiempo se
detectan consiguiendo que la salida se ajuste perfectamente. Sin embargo, hay
que aplicar esta acción con precaución, ya que se obtiene una respuesta más
lenta y el periodo de oscilación aumenta. Todo lo explicado se puede observar
en la Figura 6.3.7.

Figura 6.3.7. Acción proporcional e integral 27.

Algoritmos para el cálculo de posicionamiento en movimiento

Para permitir de un robot diferencial realice una trayectoria de modo


autónomo, no solo es necesario conocer la posición con precisión, también es
necesario conocer la orientación y las características cinemáticas del robot.

En las siguientes líneas se explica la formulación matemática necesaria para


controlar el movimiento de un robot de tipo diferencial.

Descripción cinemática

Un robot de tipo diferencial tiene dos ruedas motrices con motores


independientes. Estos motores permiten realizar tanto las operaciones rotación
como las de traslación controlando las velocidades relativas entre las dos
ruedas.

27 Fuente: https://www.picuino.com/es/control-pid.html [13-feb-2022]

196
RODI. Robot de servicio para investigación y pruebas de SAPPO

Las ecuaciones cinemáticas directas del punto central localizado entre las
ruedas motrices son las siguientes:

𝑥𝑥 = 𝑣𝑣 (𝑡𝑡) cos�𝜃𝜃 (𝑡𝑡)� (6.5)

𝑦𝑦 = 𝑣𝑣(𝑡𝑡)𝑠𝑠𝑠𝑠𝑠𝑠(𝜃𝜃(𝑡𝑡)) (6.6)

𝜃𝜃(𝑡𝑡) = 𝑤𝑤 (𝑡𝑡) (6.7)

Para conocer la orientación y posición en un momento dado, debemos integrar


las velocidades durante el periodo de tiempo indicado

𝑥𝑥 (𝑡𝑡) = 𝑥𝑥 (𝑡𝑡0 ) + � 𝑣𝑣(𝑡𝑡) cos�𝜃𝜃 (𝑡𝑡)� 𝑑𝑑𝑑𝑑 (6.8)


∆𝑡𝑡

𝑦𝑦(𝑡𝑡) = 𝑦𝑦(𝑡𝑡0 ) + � 𝑣𝑣(𝑡𝑡) sen�𝜃𝜃 (𝑡𝑡)� 𝑑𝑑𝑑𝑑 (6.9)


∆𝑡𝑡

𝜃𝜃 (𝑡𝑡) = 𝜃𝜃(𝑡𝑡0 ) + � 𝑤𝑤(𝑡𝑡) 𝑑𝑑𝑑𝑑 (6.10)


∆𝑡𝑡

la velocidad viene determinada por la velocidad media de rotación de las


ruedas

𝑉𝑉𝑟𝑟 + 𝑉𝑉𝑙𝑙 (𝑤𝑤𝑙𝑙 + 𝑤𝑤𝑟𝑟 )𝑟𝑟


𝑉𝑉 = = (6.11)
2 2
donde V son las velocidades lineales y w son las velocidades angulares.

La orientación viene definida por la diferencia de las distancias recorridas por


cada rueda

𝐷𝐷𝑟𝑟 + 𝐷𝐷𝑙𝑙
𝜃𝜃 = (6.12)
2

6.4 Resumen del capítulo


RODI es un pequeño robot de servicio experimental con el que se realizarán
las pruebas del sistema de localización y navegación. En las primeras secciones
del capítulo se identifican los módulos que componen el robot, comenzando
por la descripción de los componentes mecánicos y describiendo las partes que
ha sido necesario diseñar para ser impresas en 3D.

197
Resumen del capítulo

Se describen los componentes que forman parte del módulo de emisión


ultrasónico, formado por el array de transductores de ultrasonidos de 360
grados, el transceptor de radiofrecuencia junto con los módulos de
alimentación y la placa de conexiones. Dado que es un robot de prueba
también tiene instalado un módulo Bluetooth para comunicarse con un
ordenador central para enviar información de estado de los distintos sensores
y recibir instrucciones.

Por último, se describe el sistema de locomoción empleado formado por


servomotores modificados para rotación continua, junto con los sensores de
cálculo de desplazamiento por odometría. En la parte final se exponen las
ecuaciones de cálculo de posición empleando los sensores odométricos y se
muestra el algoritmo de retroalimentación para el control preciso de velocidad
empleando el sistema de control por PID que emplea cálculos proporcionales,
integrales y derivativos para mantener una velocidad constante.

198
7 DANI. Robot de servicio de exploración y
telepresencia
7
7.1 Introducción
DANI (Domótica Autónoma con Navegación Inteligente) es un robot de servicio que
ha sido diseñado como unidad móvil de demostración para SAPPO con
capacidades de telepresencia. Con RODI se pudo probar el sistema de
posicionamiento en entorno de laboratorio, pero dado su pequeño tamaño no
puede simular los problemas reales de navegación de un robot de gran tamaño
por los espacios reducidos de una vivienda.

DANI es un robot de tamaño humano real de 1,45 metros de altura con una
proyección en suelo de un área cuadrada de 58 x 65 cm, lo que lo hace ideal
para probar los sistemas de navegación dentro de una vivienda. Dado el tamaño
que ocupa, los resultados pueden ser extrapolados a cualquier robot de gran
tamaño como una silla de ruedas. DANI puede ser empleado por una persona
con tetraplejia desde su cama para realizar tareas de telepresencia o vigilancia,
o para recoger objetos ligeros situados a la altura de sus manos. En esta primera
versión del prototipo, el robot no puede agacharse ni cambiar su morfología
para acercarse a objetos que se encuentren a varias alturas. El robot ha sido
construido con aluminio, PLA (PolyLactic Acid) y planchas de aglomerado en
su base. Todas las piezas estéticas exteriores forman parte del proyecto InMoov
[179]. Este proyecto ha sido desarrollado por Gaël Langevin. Inicialmente
comenzó con el desarrollo de una prótesis de brazo imprimible en 3D y

199
Sensores y actuadores

posteriormente ha ido evolucionando hasta poseer todas las piezas necesarias


para imprimir un gran robot completo, aunque estéticamente está muy bien
realizado, no está diseñado para moverse empleando sus piernas.

Funcionalidades

DANI es un robot con funciones de telepresencia y manipulación diseñado


para realizar las siguientes funciones:
• Comunicación mediante lenguaje natural.
• Mantenimiento de conversaciones lógicas con seguimiento de contexto.
• Telepresencia 3D mediante unas gafas con un móvil con Androidtm.
o Su usuario capta el entorno en 3D desde el punto de vista de los ojos
del robot. El robot seguirá los movimientos de la cabeza del usuario.
o Permite la interacción mediante audio.
• Navegación autónoma segura mediante comandos de voz con indicación
del nombre de la habitación de destino.
• Detección de temperatura y humedad.
• Interacción con dispositivos electrónicos controlados por luz infrarroja.
• Permite coger y manipular objetos de poco peso.
• Control de reproducción musical mediante comandos de voz.
• Retorno automático a la base de carga, para recarga tanto de la batería del
PC (Personal Computer) portátil como de la batería de alimentación de
motores y unidad de control de 12 voltios.

7.2 Sensores y actuadores


Como todo robot de servicio, DANI posee un sistema de movilidad, un
conjunto de sensores, actuadores y el módulo de control. Los componentes de
cada módulo se detallan a continuación:

• DANI posee la siguiente lista de sensores:


o Dos cámaras en la cabeza de alta resolución ocupando el hueco de los
ojos para obtener una visión estereoscópica.

200
DANI. Robot de servicio de exploración y telepresencia

o Radar ultrasónico de detección de obstáculos de 120 grados de


cobertura. Tiene tres sensores en la parte delantera cubriendo 90 de los
120 grados de frontal y un sensor en la zona trasera cubriendo 30 grados
en su parte central.
o Sensor Kinect para elaboración de mapas de profundidad y detección
de posición de articulaciones humanas.
o Micrófono omnidireccional.
o Sensor odométrico de medida de desplazamiento.
o Radar láser de mapeo del entorno en 3D a la altura de la base.
o Sensores de posición angular de las articulaciones de los brazos.
o Unidad de sensores de seguimiento de líneas para la aproximación final
a la base de carga.
o Pantalla táctil.
• Lista de actuadores:
o Posee un motor eléctrico de alta potencia en su rueda derecha.
o Servomotor de control de dirección.
o Dos grados de libertad en la cabeza para movimiento en cabeceo y
guiñada que permite orientar las cámaras de los ojos.
o Movimiento de la boca para simular conversación.
o Dos brazos con dos articulaciones cada uno. La articulación del hombre
tiene dos grados de libertad y la del codo posee un grado de libertad.
o Manos con 5 dedos articulados con posibilidad de abrirlos y cerrarlos de
modo independiente y muñeca con capacidad de giro de 90 grados.
o Altavoces.
o Pantalla para visualización de imágenes y videos.

7.3 Estructura, componentes y composición modular


DANI tiene un chasis central de aluminio en forma de T sobre el que se han
montado todos los componentes. Este chasis está anclado a la base, que
contiene el sistema de locomoción, como se puede ver en la Figura 7.3.1.

201
Estructura, componentes y composición modular

Figura 7.3.1.DANI. Ubicación de componentes.

Sobre la caja que forma la estructura de la base se ancla un tubo vertical de


aluminio de 40x40 mm sobre el que se montan todos los componentes que
forman el robot. El tubo central se une a la base encima de las ruedas delanteras
dado que soporta mucho peso, y estas son mucho más grandes que la rueda de
dirección que está oculta en la parte trasera de la base. Adicionalmente, era
necesario dejar un hueco encima de la base y detrás del chasis para situar un
portátil en el que correrá el software de control del robot.

Al situarse en la parte frontal, el centro de masas está muy adelantado, con lo


que el robot volcaba en frenadas fuertes, por este motivo ha sido necesario
desplazar el tubo central del chasis hacia atrás para retrasar el centro de masas
y garantizar la estabilidad dinámica del robot. Encima del tubo central se ancla
un subchasis formado por otro tubo del mismo tipo del mismo tipo que en

202
DANI. Robot de servicio de exploración y telepresencia

conjunto forman una T. Sobre el conjunto se montan el resto de los


componentes del robot.

Descomposición modular

En la Figura 7.3.2 se ha realizado una descomposición modular en base a las


funciones diferenciables de cada módulo.

Sistema de Sistema de
Sistema de
Alimentación visión y detección de
control central
mapeado 3D obstáculos

Sistema de
Sistema de sistema de Interface de
control de
manipulación locomoción interacción
actuadores

Figura 7.3.2. Identificación modular.

Sistema de control central

El módulo de control central está compuesto por un ordenador portátil


corriendo el sistema operativo Windows® 10. El programa de control principal
ha sido desarrollado en C# y gestiona los algoritmos de movilidad, visión,
navegación y comunicación de DANI.

Sistema de alimentación

DANI tiene dos fuentes de alimentación. El portátil del módulo de control


central tiene su propia batería. El robot posee componentes que necesitan
alimentación de 12V y de 6V. La alimentación de 12V está proporcionada por
una batería de plomo que alimenta directamente el sensor Kinect. Esta batería
se conecta a una etapa reguladora que baja la tensión a 6v para alimentar a
todos los componentes que necesitan esta intensidad como el Arduino Mega

203
Estructura, componentes y composición modular

2560, los sensores, los servomotores y el motor del sistema de locomoción.


Desde software es posible interrumpir la alimentación de forma independiente
de la base, el módulo de manipulación (brazos y manos) y la cabeza. De esta
forma el sistema puede ahorrar energía cuando no necesita algunos de estos
módulos, dado que los servos de rotación continua que poseen estos módulos
consumen energía constantemente.

Sistema de visión y mapeado 3D

En los huecos de los ojos se encuentran incrustadas dos cámaras de alta


resolución que permiten simular telepresencia en 3D. Una de las aplicaciones
de DANI permite duplicar la visión de los ojos en un teléfono Android® que
puede colocarse en un visor 3D para realizar funciones de telepresencia. Con
esta configuración se percibe con total nitidez el entorno con una marcada
sensación 3D.

Sistema de detección de obstáculos

La base posee un radar perimetral de ultrasonidos con tres sensores delante y


uno detrás. Los sensores son del tipo HC-SR04 con una distancia máxima de
detección de objetos de 4,5 metros y una abertura de 30 grados.

Sistema de control de actuadores

Las instrucciones de manipulación son enviadas desde el ordenador central al


sistema de control de los actuadores que está formado por una placa Arduino
Mega 2560 como la que se puede ver en la Figura 7.3.3. Esta placa contiene el
Microcontrolador Atmel® atmega256 con 54 entradas/salidas, 16 entradas
analógicas, 4 UARTs (Universal Asynchronous Receiver/Transmitter), un cristal de
16MHz, conexión USB (Universal Serial Bus), Jack de alimentación DC (Direct
Current) y conector ICSP (In-Circuit Serial Programming). Este microcontrolador
está específicamente diseñado para trabajar con sensores y actuadores.

204
DANI. Robot de servicio de exploración y telepresencia

Figura 7.3.3. Arduino Mega 2560.

Sistema de manipulación. Articulaciones

DANI tiene dos articulaciones en forma de brazo humano (Figura 7.3.4). En


cada brazo tiene tres ejes de libertad, dos en el hombro y uno en el codo.
Adicionalmente posee una muñeca con capacidad de girar 90 grados y 5 dedos
articulados con los que puede agarrar objetos de poco peso.

Figura 7.3.4. Articulaciones de DANI.

• Descripción de los brazos

Para reducir costes, todas las articulaciones están operadas por servos muy
económicos, del tipo MG995R de 10 Kg-cm de par, pero estos servos no son
capaces de levantar los antebrazos de 1,4 Kg de peso y 59 cm de longitud, por
lo que han sido modificados para permitir rotación continua y se han
conectado a barras helicoidales formando una articulación de tipo tornillo con
las que se ha conseguido incrementar el par para que consigan mover los
pesados brazos. Para comprender la necesidad de estas modificaciones, en la
Figura 7.3.5 se expone gráficamente el significado de la medida de par.

205
Estructura, componentes y composición modular

Figura 7.3.5. Explicación gráfica del par 28.

Un servo con características de par de 10Kg-cm, sin modificaciones sería capaz


de mover una carga de 10 Kg situada a 1 cm de distancia en situación puntual
de máxima carga. Como indica la Figura 7.3.5 su capacidad de carga se divide
entre 2 cuando la distancia se multiplica por 2. Esto implica que a 16 cm del
servo sólo es capaz de levantar 0,7 Kg. Con una longitud de antebrazo de 59
cm, la capacidad está muy por debajo del peso de las articulaciones del robot.
Debido a la amplia difusión de los servos para vehículos de RC (Radio Control),
los servos de hasta 12 Kg-cm tienen un coste extremadamente bajo. El empleo
de servos de mayor par, incrementaría exponencialmente los costes.

Cada uno de los brazos está compuesto por varias unidades de tubo de aluminio
cuadrado de 35x35x1 milímetros de espesor que están unidas por ejes con
rodamientos (ver Figura 7.3.6).

28 Fuente: https://dronprofesional.com/blog/tutorial-teorico-practico-con-servos-y-arduino
[Acceso: 8-feb-2022]

206
DANI. Robot de servicio de exploración y telepresencia

Barra helicoidal
Sensor de de incremento
posición angular de par

Soporte y servo
MG995R

Ejes con
rodamientos

Figura 7.3.6. Articulación derecha.

Para encajar los servos y las barras helicoidales en los perfiles de aluminio ha
sido necesario diseñas varias piezas que se han creado en una impresora 3D.
En la Figura 7.3.7 se ve la composición de encaje de las piezas creadas. La última
pieza cuadrada encaja dentro del perfil de aluminio formado por: el soporte
del servo (1), la cabeza de encaje de la barra (2), el soporte de presión del
brazo (3) y la barra helicoidal (4).

1
3
2

Figura 7.3.7. Detalle de piezas de la articulación,

En la Figura 7.3.8 puede apreciarse el lugar que ocupan las piezas impresas en
el brazo real. El soporte 3 está oculto dentro del perfil de aluminio.

207
Estructura, componentes y composición modular

4
3
1

Figura 7.3.8. Detalle de la situación de las piezas en el brazo real.

En la Figura 7.3.9 puede apreciarse parte de los componentes que ha sido


necesario diseñar.

Figura 7.3.9. Modelos STL para impresión 3D.

• Descripción de las manos

Cada una de las manos está compuesta por la muñeca y 5 dedos con morfología
humanoide con capacidad de ser articulados de forma independiente (ver
Figura 7.3.10). Todos los dedos son articulados empleando servos. En el caso
de los dedos, se articulan empleando tendones que discurren por huecos
internos de la mano y que llegan a la parte posterior del antebrazo, en donde
se sitúan los motores. Con las manos, el robot puede coger objetos de hasta 300
gramos de peso.

208
DANI. Robot de servicio de exploración y telepresencia

Figura 7.3.10. Perfil de las manos.

Sistema de locomoción

La base de DANI está formada por una moto eléctrica de juguete con un motor
de 6 voltios que ha sido modificada y adaptada (Figura 7.3.11). Ha sido
necesario añadir la estructura de la dirección que se ha montado con un servo
de dirección. El sistema de locomoción es de tipo de triciclo invertido con dos
ruedas delante y la rueda de dirección detrás.

Figura 7.3.11. Base de DANI. Imagen exterior e interior.

La base posee el mecanismo de dirección, el motor y el sensor odométrico de


cálculo de distancia recorrida. En la Figura 7.3.12 puede apreciarse cada uno
de estos componentes.

209
Estructura, componentes y composición modular

Servo de
dirección
Sensor de
odometría
Motor

Figura 7.3.12. Descripción de componentes de la base.

Dado que no había posibilidad de emplear un encoder, el sensor de odometría


está compuesto por un sensor detector de obstáculos de proximidad por
infrarrojos. Este sensor posee un emisor y un receptor de infrarrojos en la
misma cápsula con un regulador para graduar la cantidad de luz infrarroja
reflejada que debe detectar para activarse. El sensor se ha orientado contra la
rueda y para variar la cantidad de luz reflejada se ha pintado la rueda con un
patrón de rayas blancas. El sensor emite siempre la misma cantidad de luz
infrarroja, pero al chocar esta contra la rueda, en la zona blanca resulta
reflejada mucha más luz que en la zona negra, y una vez graduado el sensor,
esta diferencia se emplea para detectar la distancia recorrida por la rueda,
como se aprecia en la Figura 7.3.13.

Patrón de
detección

Sensor
infrarrojo

Figura 7.3.13. Sistema de odometría.

210
DANI. Robot de servicio de exploración y telepresencia

El sensor de proximidad es un TCRT5000 como el mostrado en la Figura


7.3.14.

Figura 7.3.14. Sensor de proximidad por infrarrojo TCRT5000.

El patrón de detección de la rueda permite tener una resolución aproximada


de 1,5 cm de avance lineal.

De las dos ruedas delanteras, una de ellas es la rueda motriz. Tiene un motor
de corriente continua de 6 voltios. La alimentación se realiza con una batería
de 12V. La señal pasa por una etapa rectificadora que baja su voltaje a 6V y pasa
por la etapa de potencia que está realizada con un transistor mosfet. Estos
transistores son indicados para aplicación de alta potencia relativa y
conmutación rápida. El control de velocidad del motor se gestiona desde la
placa del microcontrolador empleando PWM (Pulse Width Modularion).
Mediante esta técnica no es necesario variar la intensidad de corriente
proporcionada al motor, sino que se varía la energía proporcionada por unidad
de tiempo. La técnica de regulación PWM basa su funcionamiento en el
encendido y apago ultrarrápido de la tensión de alimentación del motor. La
ratio entre el tiempo en que se encuentra encendida la alimentación y el
tiempo en que se encuentra apagado indicará la cantidad de energía
suministrada. En la Figura 7.3.15 se pueden ver tres tipos de señales PWM, en
la superior no se proporciona energía al motor y en la inferior se proporciona
la mitad de la energía máxima posible.

211
Estructura, componentes y composición modular

Figura 7.3.15. Señales PWM 29.

• Resolución Cinemática directa del modelo en triciclo

En [45] se presentan los cálculos para estimar la posición de un robot móvil


con geometría de triciclo. Las ecuaciones de este subapartado hacen referencia
a un vehículo cuya geometría está representada en la Figura 7.3.16. En esta
formación se asumirá que las dos ruedas traseras tienen sendos encoders para
medición de desplazamiento.

Figura 7.3.16. Configuración triciclo [45].

Inicialmente debe escogerse un punto de referencia para calcular el


desplazamiento de ese punto según los parámetros del sistema. Normalmente
el punto escogido es el punto medio del eje trasero denominado punto P en la
Figura 7.3.16. La distancia recorrida en un intervalo de tiempo ∆𝑡𝑡 por el punto
P viene dado por:

1
∆𝑠𝑠 = (∆𝑆𝑆𝑅𝑅 + ∆𝑆𝑆𝐿𝐿 ) (7.1)
2

donde 𝑆𝑆𝑅𝑅 y 𝑆𝑆𝐿𝐿 son las distancias recorridas por las ruedas derecha e izquierda,
respectivamente. El cambio de la orientación del vehículo ∆𝜃𝜃, se calcula con:

1 (7.2)
∆𝜃𝜃 = (∆𝑆𝑆𝑅𝑅 − ∆𝑆𝑆𝐿𝐿 )
𝑑𝑑

29 Fuente: https://solectroshop.com/es/blog/que-es-pwm-y-como-usarlo--n38 [Acceso: 7-feb-


2022]

212
DANI. Robot de servicio de exploración y telepresencia

donde “d” es la distancia entre ambas ruedas. Mediante integración de las


Ecuaciones (7.1) y (7.2) se obtiene, respectivamente

1
𝑠𝑠(𝑡𝑡) = (𝑆𝑆𝑅𝑅 (𝑡𝑡) − 𝑆𝑆𝐿𝐿 (𝑡𝑡)) (7.3)
2

1
𝜃𝜃(𝑡𝑡) = 𝜃𝜃(0) + (𝑆𝑆𝑅𝑅 (𝑡𝑡) − 𝑆𝑆𝐿𝐿 (𝑡𝑡)) (7.4)
𝑑𝑑

donde 𝑠𝑠(𝑡𝑡) es la distancia recorrida por el punto P y 𝜃𝜃(𝑡𝑡) es la orientación del


vehículo, ambas para un tiempo transcurrido t. La Ecuación (7.4) permite
conocer la orientación del vehículo en cualquier instante de tiempo. Las
coordenadas x e y del punto P pueden calcularse mediante las ecuaciones:
𝑡𝑡
1
𝑥𝑥(𝑡𝑡) = 𝑥𝑥(0) + � �𝑆𝑆̇ 𝑅𝑅 (𝑡𝑡) + 𝑆𝑆̇ 𝐿𝐿 (𝑡𝑡)� cos(𝜃𝜃(𝑡𝑡))𝑑𝑑𝑑𝑑 (7.5)
2
0

y
𝑡𝑡
1
𝑦𝑦(𝑡𝑡) = 𝑦𝑦(0) + � �𝑆𝑆̇ 𝑅𝑅 (𝑡𝑡) + 𝑆𝑆̇ 𝐿𝐿 (𝑡𝑡)� sin(𝜃𝜃(𝑡𝑡)) 𝑑𝑑𝑑𝑑 (7.6)
2
0

Los cálculos basados en odometría requieren poca capacidad computacional y


sensores muy económicos. Pero no está carente de inconvenientes como son la
acumulación de errores debido a las irregularidades del terreno, deslizamiento
e imperfecciones en las ruedas.

7.4 Software de control


Para la gestión de DANI se ha desarrollado un sistema de control sobre el OS
(Operating System) Windows® 10. Para la interface, se han empleado los
lenguajes C# y Visual Basic.NET. Este sistema permite controlar todos los
dispositivos de DANI y permite visualizar en una única pantalla todas las
lecturas de sus sensores. Adicionalmente posee un módulo de comunicación
en lenguaje natural.

213
Software de control

En la Figura 7.4.1 se muestra la pantalla principal del software de control.


Mediante esta pantalla se puede acceder a todas las funcionalidad de DANI que
se encuentran implementadas hasta la fecha. Este software se instala en el
ordenador portátil que va montado en el propio robot. Para facilitar la
descripción de cada uno de sus componentes, la pantalla se ha dividido en
zonas que están marcadas con un número. A continuación pasaremos a
identificar los tres módulos principales.

Figura 7.4.1 Pantalla de control del software de gestión de DANI.

1. Módulo de control e interacción con los dispositivos


2. Módulo de interacción mediante lenguaje natural
3. Módulo de recepción de parámetros de telerealidad

Cada uno de estos tres sistemas principales soporta múltiples funcionalidades.

214
DANI. Robot de servicio de exploración y telepresencia

Sistema de control e interacción con los dispositivos

Este módulo gestiona todos los controles de interacción con los sensores y los
actuadores de DANI. Adicionalmente tiene programadas las funcionalidades
de detección de movimiento e identificación y seguimiento de caras.

Descripción por zonas:

Zona 7. En esta zona se encuentran todos los controles de conexión y el modo


de operación. Permite especificar el puerto de conexión al interface serie
bluetooth, la unidad empleada en la medición angular y el modo de envío de
comandos. También permite generar el código del firmware Arduino para que
el robot se posiciones en el arranque en la posición actual indicada por los
controles. En la zona se muestra en color verde o rojo el estado de la conexión
con el robot.

Zona 8. Los controles LCR corresponden con los tres sensores de seguimiento
de líneas del control trasero para la aproximación a la base de carga. Cuando
se activa alguna de los sensores se encienden sus controles correspondientes.
Zona 9. Al lado derecho del panel se encuentran dos indicadores numéricos
que dan información del número de marcas detectadas por el sensor de
odometría de la rueda derecha y la velocidad angular actual.

Zona 10 y 11. Las zonas 10 y 11 contienen los controles de posicionamiento


angular de todas las articulaciones de las manos. A ambos lados de la barra de
desplazamiento están las posiciones mínimas y máximas que puede alcanzar la
articulación, que son comprobadas en todo momento por el sistema para evitar
daños al robot. El cuadro amarillo de cada articulación indica la posición actual
y el beis indica el número de servo.

Zona 12. Esta zona permite controlar los servos de control de posición de la
cabeza que permiten mover la boca y la cabeza en los ángulos de guiñada y
cabeceo.

Zona 13 y 14. Estas zonas permiten mover los brazos derecho e izquierdo. En
los brazos ha sido necesario modificar los servos para que sean capaces de
soportar altas cargas. Se han modificado para movimiento continuo y se han

215
Software de control

generado articulaciones de tornillo, por lo que no será posible posicionarlas en


un lugar concreto con la funcionalidad estándar. Para leer la posición angular
se ha colocado un potenciómetro unido a ambas articulaciones. En la Figura
7.4.2 está indicado como Sensor de posición angular.

Figura 7.4.2 Articulación del hombro.

La barra de desplazamiento permite especificar la posición angular deseada.


Los controles tienen fechas para activar el movimiento hacia una dirección y
hacia otra, y un botón con una (x) que permite parar el movimiento en
cualquier momento. En cualquier caso, el movimiento se parará en el
momento en que alcance la posición indicada o que se salga de los márgenes
de seguridad indicados a los lados de la barra de desplazamiento.

Zona 15. Permite controlar los actuadores de la base. Permite definir la


posición del servo de dirección y la dirección y potencia del motor de
desplazamiento principal. También permite definir el margen de seguridad del
radar perimetral que parará el robot en caso de detectar obstáculos.

Zona 16. Esta zona contiene todos los interruptores eléctricos de seguridad de
las distintas zonas. El robot separa en zonas eléctricas diferenciables tanto la
base, como la cabeza y el cuerpo.

Zona 17. Contiene el medidor de uso de la CPU. Dado que DANI trabaja con
batería es importante tener controlado que los porcentajes de uso de la CPU
son correctos.

Zona 18. Activa el sintetizados de voz, de modo que DANI reproduce el texto
introducido en el control acompañado del movimiento de la boca.

Zona 19. Se dibujan las distancias en tiempo real a la que se encuentran los
objetos próximos de cada uno de los transceptores del radar perimetral.

216
DANI. Robot de servicio de exploración y telepresencia

Zona 20. Indica la capacidad de carga de la batería del ordenador portátil de


control. El indicador de la batería principal de 12V está indicada en un panel
a la derecha del robot.

Zona 21. En esta zona se permiten seleccionar las cámaras del robot.

Zona 22. Contiene los controles de reproducción y procesamiento de las


imágenes de las cámaras seleccionadas.

Zona 23. Este panel se divide en dos partes iguales, en las que se reproduce la
imagen de las dos cámaras.

Zona 24. Contiene los controles para ejecutar los algoritmos de movimiento y
los algoritmos de detección y seguimiento de caras sobre el panel de
reproducción de la cámara seleccionada a la derecha.

Zona 25. Este botón presenta una ventana a pantalla completa en la que divide
la pantalla en dos partes, una para cada cámara de los ojos de DANI. Un
módulo de sincronización envía el contenido de la pantalla en tiempo real a
un teléfono Android®.

Módulo de interacción mediante lenguaje natural

Este módulo inicia el intérprete de AIML con la configuración del cerebro de


DANI y activa los motores de reconocimiento de voz y de traducción de texto a
voz. Es capaz de procesar las frases reconocidas, buscando el patrón de salida
que ha sido modificado para poder actuar sobre sus propios dispositivos y
traducir a voz la salida, simulando la dicción mediante el movimiento de la
boca.

Módulo de recepción de parámetros de telerealidad

Básicamente este módulo es un servidor web adaptado que publica un servicio


REST (Representational State Transfer) que consume la aplicación de
recuperación de información inercial desde un teléfono Android®. El teléfono
envía su posición y desplazamiento angular que recibe este módulo, de forma

217
Sistema de procesamiento del lenguaje natural

que se traduce para que la cabeza de DANI se sitúe en la misma posición que
el teléfono.

7.5 Sistema de procesamiento del lenguaje natural


El usuario puede comunicarse con DANI mediante voz empleando una
estructura no codificada de frases en lenguaje natural. Para desarrollar este
módulo se ha empleado por un lado las librerías de Microsoft® de
reconocimiento de voz y tecnología AIML (Artificial Intelligence Mark-up
Language) para el procesamiento del lenguaje natural.

Reconocimiento de voz

Para el reconocimiento de voz se han empleado las librerías SAPI 5 (Speech


Application Programming Interface) de Microsoft combinadas con el sistema de
reconocimiento de voz en la nube de Google. Las librerías SAPI trabajan sobre
lo que definen como gramáticas. La gramática es el conjunto de palabras o
frases que será capaz de reconocer el sistema en un momento dado. Hay una
gramática especial que se denomina gramática de dictado, que contiene todas
las palabras del idioma configurado para el reconocimiento. Las librerías SAPI
trabajan bastante bien con las gramáticas específicas cuando el conjunto de
palabras que contiene es bajo, pero presentan muchos fallos cuando se activa
la gramática de dictado con todas las palabras del idioma, generando falsos
positivos constantes con el ruido de fondo.

Para evitar los fallos generados en dictado continuo se ha implementado un


proxy de acceso a los servicios en la nube de Google. En caso de emplear los
servicios web de reconocimiento de voz de Google, estos se tarifican por
minuto, pero es posible emplearlos de forma indirecta a través de un programa
en javascript incrustado en una página web que se visualiza en un navegador
Google Chrome.

El código emplea el API (Aplication Program Interface) JavaScript gratuito de


reconocimiento de voz de Google. Mediante esta API se recupera la secuencia
de voz que se envía a los servicios de Google para que la procesen y devuelvan

218
DANI. Robot de servicio de exploración y telepresencia

el texto reconocido. Este texto es recuperado en el navegador Google Chrome


por el código javascript, que lo envía al software de control de DANI a través
de una llamada AJAX (Asynchronous Javascript and Xml). La llamada AJAX
invoca un servicio que se encuentra levantado en un servidor web en el propio
equipo, que una vez recuperada la traducción la transfiere al módulo de
control de DANI.

Procesamiento del lenguaje natural

El software de control posee un módulo de interacción en lenguaje natural.


Este módulo ha sido desarrollado en C# y posee un intérprete de lenguaje
AIML. El lenguaje AIML [180] [181] es un lenguaje de marcado basado en
XML(Extensible Markup Language). Nació dentro del marco del proyecto ALICE
[182] (Artificial Linguistic Internet Computer Entity) que a su vez forma parte del
proyecto Pandora. El proyecto se centraba en el desarrollo de entidades
conversaciones que simularan set inteligentes. El lenguaje AIML fue
desarrollado por el Dr. Richard Wallace y la comunidad de código abierto
AliceBot entre los años 1995 y 2000. El chatbot ALICE fue una de las primeras
creaciones con este lenguaje, que ha conseguido ganar el concurso “Loebner
Prize Contest” y también “The most human” durante tres veces, al igual de ser
ganador en el Campeonato de Chatbot en 2004.

La base de datos de un chatbot [183] en AIML se denomina cerebro. Un


cerebro está organizado en categorías. En cada una de estas categorías puede
haber miles de patrones que son evaluados con la frase de entrada. Estos
patrones pueden ser difusos, centrándose en la información con relevancia e
ignorando el resto. Si la entrada puede ser procesada con un patrón, este se
activa y genera una operación. Estas operaciones pueden ser respuestas,
redirecciones, transformaciones o memorizaciones. Un chatbot implementado
con AIML es capaz de seguir el contexto e ir memorizando información para
emplearla más adelante en la conversación. También puede tener patrones
enlazados en el contexto, de forma que solo serán comprobados si el hilo de
las conversaciones se encuentra a cierto nivel de profundidad, porque se han

219
Sistema de navegación

tratado otros temas, se han contestado otras preguntas o se han dicho otras
frases antes. AIML soporta patrones que sean capaces de operar con la
diversidad del lenguaje, sin tener que escribir un patrón para cada una de las
combinaciones de palabras o frases de entrada. Esta versatilidad hace que con
un cerebro de tamaño contenido sea capaz de comportarse de una forma
similar a un humano en una conversación. La potencia del lenguaje AIML para
la creación de entidades conversacionales está sobradamente demostrada. El
premio Loebner es el más importante dentro del mundo de la competición de
chatbots o entidades conversacionales “inteligentes”. En sus últimas ediciones,
desde el año 2016 hasta el año 2019, ha sido ganado por Steve Worswick con
su chatbot Mitsuku [184] que está basado en tecnología AIML.

DANI posee un cerebro codificado en AIML que se ha basado en el proyecto


Galaia de la Universidad de Vigo. Ha sido extendido para poder incorporar
comandos de interacción con los dispositivos del robot y comandos de
recuperación de valores de sensores.

7.6 Sistema de navegación


Como parte del software de DANI se ha implementado un sistema de
definición y seguimiento de rutas seguras dentro de la vivienda. El sistema
permite tener configuradas distintas plantas de la vivienda. Para cada planta
hay que cargar un plano o una imagen de la base a escala como se puede ver
en la Figura 7.6.1.

220
DANI. Robot de servicio de exploración y telepresencia

Figura 7.6.1 Plano de la planta superior de la casa.

Una vez cargado el plano, se configuran las rutas seguras de navegación que
puede emplear el robot para recorrer la vivienda. Cada ruta representa un
camino que normalmente se encuentra libre de obstáculos. Para configurar las
rutas válidas se emplean nodos y segmentos. Algunos de los nodos pueden ser
nombrados para identificar puntos de interés de partida o fin de una operación
de navegación. Adicionalmente deben configurarse y marcarse las zonas que
ocupan los objetos estáticos, como armarios, sofás, muebles, etc. Cuando el
sistema defina el camino que debe seguir el robot para enlazarse con algún
segmento de la ruta segura de navegación, tendrá en cuenta la ubicación de los
obstáculos para trazar dicha ruta, aunque el propio robot evitará colisionar con
ellos al detectarlos con su radar perimetral.

Para iniciar una operación de navegación, DANI solo necesita que se le indique
el punto final al que debe llegar. Mediante el sistema de localización SAPPO
establece su posición inicial e identifica el nodo de entrada a la ruta de
navegación. Una vez conocidos el nodo inicial y el nodo final, mediante el
algoritmo de Dijkstra [185] [186] [187] calcula la ruta más rápida para llegar
al nodo destino con la información del grafo de navegación segura.

El algoritmo de Dijktra o de “caminos mínimos”, es un algoritmo para la


identificación del camino más corto en un grafo. Tiene un orden de
complejidad de o(n2), siendo n el número de nodos.

221
Sistema de navegación

Seguimiento de rutas

Una vez calculado el punto de acceso a la red de rutas seguras y los segmentos
de la ruta a seguir para llegar al destino, DANI debe calcular la línea a seguir
para entrar en la ruta segura. Para ello, dependiendo de su orientación,
calculará el segmento que une su posición actual con el primer nodo de la
trayectoria. Para calcular está línea de entrada tiene en cuenta la definición de
obstáculos en el mapa. Una vez definida la ruta que debe seguir con el conjunto
de segmentos y nodos por los que debe pasar, empleará SAPPO para conseguir
que el robot se encuentre siempre encima de la ruta. Su sistema de navegación
deberá intentar mantenerlo siempre encima de los puntos que marcan cada
uno de los segmentos. En este sistema, los caminos están formados por
segmentos de distintos tamaños unidos por nodos. Las curvas están formadas
por pequeños segmentos unidos por ángulos. Dependiendo de los ángulos que
forman dos segmentos, DANI debe anticipar su trayectoria para ir adecuando
su orientación a la del siguiente segmento antes de superar el ángulo de unión
entre segmentos.

Para decidir el cambio de segmento se emplea un sistema de proximidad. Una


vez que el robot se encuentra dentro del radio de influencia de un nodo,
intentará adaptar su orientación progresivamente para orientarse con el
siguiente segmento de la ruta. El sistema establece dinámicamente el radio de
influencia de cada segmento dependiendo de las necesidades de giro que tenga
el robot, que dependerá del ángulo formado entre los dos segmentos de la
trayectoria y de las capacidades cinemáticas del robot.

En la Figura 7.6.2 se ve el círculo de influencia de un nodo, que obligará a


adaptar la orientación con la del siguiente segmento de la ruta. En la figura se
puede observar que el robot inicia su ruta de navegación en el punto 1 en la
dirección señalada por la fecha blanca y debe salvar un ángulo de 90 grados,
pero una vez que entra dentro del área de influencia de la unión de los
segmentos, marcado con el círculo blanco, adaptará su orientación
progresivamente a la del siguiente segmento de la ruta, trazando realmente la
ruta indicada en amarillo (indicada como Atajo).

222
DANI. Robot de servicio de exploración y telepresencia

Figura 7.6.2 Círculo de proximidad.

Descripción del software de definición y seguimiento de rutas

El software de definición y planificación de trayectorias es similar a un sistema


GPS. Por un lado, es necesario tener cargados los mapas de fondo con los
planos de las habitaciones a escala. Encima de los mapas se definen las rutas
mediante la propia interface de usuario, de forma que formarán un grafo de
caminos válidos.

• Carga de mapas

En la Figura 7.6.3 se ve la interface de usuario de la aplicación de planificación


y seguimiento de trayectorias, donde se puede ver cargado el mapa a escala de
la planta de una vivienda. El mapa puede generarse en imagen con cualquier
nivel de detalle, pero lo importante es mantener la escala que debe
proporcionarse a la aplicación para que calcule correctamente las
coordenadas.

223
Sistema de navegación

Figura 7.6.3 Menú principal del sistema de navegación.

• Definición de nodos de la ruta

De forma similar a un mapa de carreteras, sobre el mapa a escala de la planta


de la casa se definen los segmentos, que a priori, serán el conjunto de rutas
válidas para la navegación. Estas rutas normalmente se consideran que estarán
libres de obstáculos, aunque se prevé que en cualquier momento puede
aparecer un obstáculo en la ruta. En la Figura 7.6.4 pueden verse en color
amarillo las rutas seguras.

Figura 7.6.4 Segmentos de la ruta segura.

Los segmentos son siempre líneas rectas. Todos los segmentos se unen entre sí
mediante nodos. Normalmente se intentará que los ángulos entre segmentos

224
DANI. Robot de servicio de exploración y telepresencia

no sean muy pronunciados. Dado que la geometría de DANI es la de un triciclo


invertido, su radio de giro es mucho más limitado que en el caso de robots de
tipo diferencial.

• Identificación de obstáculos

Aunque el sistema tiene definidas las rutas válidas, dentro del mapa se indican
las zonas prohibidas. Aunque el robot está equipado con un detector de
obstáculos y con un lidar de alta precisión, en cuanto se especifica el destino,
el sistema de trazado de rutas establece la ruta de forma virtual, empleando
SAPPO identifica la posición actual del robot e identifica la ruta de enlace con
el mapa de segmentos de la ruta segura para llegar al destino. El
desplazamiento desde la posición actual del robot hasta el punto de enlace con
la ruta, puede no formar parte de ningún segmento definido, por lo que se
trazará de modo virtual. Para el trazado de este segmento de enlace, se tiene
en cuenta la identificación de zonas prohibidas u obstáculos, de forma que, en
caso de pasar por una zona prohibida, modificará la propuesta.

Figura 7.6.5 Identificación de obstáculos

En la Figura 7.6.5 pueden verse en color naranja las zonas prohibidas. En este
caso, estas zonas delimitan objetos.

225
Sistema de navegación

• Definición y aplicación del algoritmo de Disjtra para calcular el camino más corto

El sistema de planificación de rutas permite la planificación de la ruta


indicando el nombre del nodo de destino por voz. El sistema identifica la
posición de partida mediante la localización ofrecida por SAPPO, tras lo que
identifica el nodo más próximo a la ubicación recuperada del robot como
punto de entrada al grafo de segmentos. Una vez que conoce el punto de
entrada y el punto de destino, mediante el algoritmo de Disjtra calcula la ruta
más corta entre el origen y el destino.

Figura 7.6.6 Planificación de navegación.

En la Figura 7.6.6 se ha señalado el punto (1) como punto de partida y el punto


(2) como punto de destino. En color rojo puede verse la planificación de la
ruta a seguir para llegar al destino calculada por el algoritmo de planificación.

• Algoritmo de definición de punto de enlace con ruta segura

Para la identificación del nodo más próximo se tiene en cuenta la posición de


los obstáculos, dado que, si la trayectoria de enlace entre el robot y el nodo más
próximo pasa por encima de un objeto prohibido para navegación, deberá
identificador el siguiente nodo más próximo como nodo de inicio verificando
la ruta de enlace, y así debe realizar sucesivamente hasta encontrar un nodo
con el que pueda enlazar. En la Figura 7.6.7 puede observarse que el robot se
encuentra fuera de la ruta que debe seguir, que está marcada en rojo, dentro

226
DANI. Robot de servicio de exploración y telepresencia

de todas las rutas posibles marcadas en amarillo. El sistema marca con una
flecha doble de color rojo la ruta de enlace hasta el primer nodo.

Figura 7.6.7 Ruta de enlace al grafo de navegación.

• Algoritmo de salto de nodo al siguiente nodo

El sistema define las rutas a base de segmentos unidos por nodos. Debido al
sistema de locomoción con geometría tipo triciclo, debe anticiparse a cada
cambio de segmento para ir modificando de forma progresiva la orientación
del robot para que pueda seguir la ruta, siempre teniendo en cuenta las
limitaciones de su tecnología de locomoción. Un sistema de locomoción
diferencial puede pararse y cambiar su orientación sin desplazarse, pero un
sistema tipo triciclo, siempre necesita avanzar para cambiar su orientación, por
lo que si se espera hasta llegar a la unión entre segmentos para cambiar su
orientación, el robot se saldrá de la trayectoria y esta salida será proporcional
al ángulo que formen los dos segmentos, por este motivo es necesario anticipar
este cambio de orientación, y dado que el espacio de avance necesario para el
cambio de orientación será distinto dependiendo del ángulo de los segmentos,
esta anticipación es dinámica y debe ser calculada para cada uno de los nodos.

227
Sistema de navegación

Atajo

Círculo de
aproximación

Figura 7.6.8 Definición de atajos de aproximación.

En la Figura 7.6.8 puede verse en rojo la ruta que debe seguir el robot
establecida entre el origen marcado con un (1) y el nodo final marcado con un
(2). Entre el segmento primero y segundo de la ruta, ambos con un ángulo de
90 grados puede verse el circulo de aproximación. Una vez que el robot entre
en el círculo de aproximación, debe iniciar el cambio de orientación para
conseguir estar alineado con el segundo segmento al salir del círculo de
aproximación, para ello, el sistema ha trazado en color amarillo un atajo de
enlace para ir aproximando la orientación.

• Algoritmos de seguimiento de trayectorias

Para el algoritmo de seguimiento de rutas se ha empleado un algoritmo simple


de cálculo de proximidad y ajuste dinámico de orientación. En un mundo
perfecto, SAPPO ofrecería medidas perfectas y conseguiría mantener los robots
siempre encima de la línea de la trayectoria, pero en nuestro mundo real, los
cálculos teóricos nunca coinciden con la práctica, por lo que SAPPO da
medidas que fluctúan constantemente, como si el robot se teletransportara a
un lado y a otro de la trayectoria marcada. Si en cada uno de estos cambios se
calculara de nuevo la trayectoria a seguir, el robot se encontraría cambiando
de orientación constantemente. Los problemas de precisión se mitigan en gran
medida con la aplicación de filtros, pero adicionalmente, el algoritmo de
seguimiento de trayectoria que se aplica en este proyecto consigue reducir en

228
DANI. Robot de servicio de exploración y telepresencia

parte estos errores en el seguimiento dado que realiza un ajuste de trayectoria


a futuro. En cada momento, no comprueba la diferencia de posición actual del
robot y la que debería tener si estuviera encima de la trayectoria, sino que
comprueba la diferencia de orientación que debería tener el robot para
alcanzar en un futuro un punto de la trayectoria. Cuanto más lejos se encuentre
el punto de control y unión con la trayectoria, menos se verá afectado por los
pequeños errores absolutos de la posición actual.

En la Figura 7.6.9 puede observarse el punto de referencia que tiene en cuenta


el robot para ajustar su orientación. El tamaño de la hipotenusa del triángulo
de posicionamiento futuro debe ser dinámico y se verá afectado por la
proximidad a nodos y por los ángulos que formen los segmentos de dichos
nodos.

Posición
con error
Orientación
de enlace
futuro con la
trayectoria

Figura 7.6.9 Triángulo de ajuste de posición para enlace futuro con la trayectoria para corrección suave.

7.7 Resumen del capítulo


En este capítulo se describe el robot de servicio DANI. DANI es un robot de
tamaño humano casi natural, de 1,45 m de altura y 65 cm de anchura. DANI es
un robot de servicio cuyo objetivo es ser empleado como sistema de vigilancia
y telepresencia. Adicionalmente posee capacidad de manipulación de objetos

229
Resumen del capítulo

de poco peso que se encuentren dentro del radio de acción de sus manos, pero
por el momento no es capaz de cambiar su geometría para coger objetos a
varias alturas.

Para facilitar su interacción social, ha sido diseñado con aspecto humano. Gran
parte de las piezas que componen su imagen exterior han sido impresas en 3D
a partir de los modelos del robot open source InMoov [179]. DANI tiene un
chasis en aluminio que es la base de soporte de todos los elementos de la zona
central y superior, con un torso con aspecto humano con dos brazos y cabeza y
una base con un sistema de locomoción del tipo triciclo invertido con dos
ruedas delante y una rueda de dirección detrás. Cada brazo tiene dos
articulaciones con un total de tres grados de libertad, el hombro con dos grados
y el codo con uno, y una mano articulada con muñeca y cinco dedos móviles
independientes. Posee una cabeza con morfología humana con una
articulación con dos grados de libertad que permite cabeceo y guiñada y tiene
una boca articulada para simular que habla.

En el apartado de sensores tiene dos cámaras para visión estereoscópica,


micrófono omnidireccional, un radar ultrasónico que cubre 120 grados de su
perímetro y un dispositivo Kinect de detección de profundidad y distancia de
los objetos del entorno por imagen.

DANI está orientado a la realización de funciones de vigilancia remota y


telepresencia, y viene integrado con el sistema de posicionamiento SAPPO y un
módulo de navegación que le permite moverse de forma autónoma por la
vivienda.

230
8.1 Introducción
8
8 Resultados obtenidos

En esta tesis se desarrolla la investigación para construir un sistema de


posicionamiento de alta precisión denominado SAPPO. Este sistema se
encuadra dentro de un amplio ecosistema denominado HAURIA, formado por
varios módulos cuyo objetivo es la mejora de las condiciones de vida en el hogar
para personas tetrapléjicas. Las primeras secciones de este capítulo, de la 8.2 a
la 8.4, se centrarán en mostrar las capacidades alcanzadas por SAPPO,
definiendo el entorno de pruebas y las características de las técnicas de
medición empleadas. Finalizando el capítulo con la sección 8.5, en la que se
citarán los resultados conseguidos en varios de los módulos del ecosistema
HAURIA que se han ido desarrollante durante el tiempo que ha durado la
investigación de esta tesis.

8.2 Diseño de las pruebas y entorno de ejecución


Los primeros datos presentados se extraen del sistema de posicionamiento sin
realizar ningún tipo de filtrado, por lo que se puede apreciar una mayor
variabilidad. Con el sistema base se obtienen medidas que se encuentran
dentro del centímetro de error en más del 80% de las medidas. Para mejorar
la calidad del posicionamiento y basándose en la premisa de que los factores
de intervienen en la variabilidad de las medidas, en su conjunto, pueden
considerarse como ruido aleatorio y pueden modelarse como una distribución

231
Diseño de las pruebas y entorno de ejecución

normal de media cero, se han aplicado varios algoritmos de filtrado que


intentan obtener la variable oculta que representa la medida real. Aunque en
alguno de estos filtros, es posible tener en cuenta el modelo dinámico del robot
para mejorar su precisión, en nuestro caso no se ha tenido en cuenta esta
posibilidad, dado que SAPPO debe poder ser empleado para la localización de
cualquier tipo de robot, independientemente de su modelo dinámico, lo que
no impide que cuando se aplique a una configuración cinemática concreta se
incorpore al filtro su modelo dinámico para mejorar su precisión.

Dentro de los que se considera ruido aleatorio entran tanto factores


ambientales como limitaciones técnicas de los dispositivos empleados.
Principalmente las medidas son afectadas por las interrupciones del robot,
errores de los relojes internos, precisión y granularidad de los mismos, retardos
en la excitación de los transceptores tanto en emisión como en recepción,
retardos en la identificación de la fase de las ondas de radiofrecuencia y las
interferencias debidas al ruido de fondo tanto de las ondas de radio como de
las ondas de ultrasonido.

Marco experimental

En cada una de las pruebas se toman un número elevado de medidas


empleando los algoritmos y los componentes que deben ser probados. El
resultado de las medidas obtenidas se grafica para que sea más sencilla su
visualización. En algunos casos se generan múltiples gráficos que representen
vistas diferenciadas de las medidas, de forma que se pueda observar la
característica que se pretende resaltar. Finalmente, las pruebas se acompañan
de un estudio estadístico en el que se resumen de modo numérico preciso los
datos generados.

En los resúmenes estadísticos se obtienen las siguientes variables: (i) media, (ii)
error típico, (iii) mediana, (iv) moda, (v) desviación estándar, (vi) varianza,
(vii) curtosis, (viii) coeficiente de asimetría, (ix) rango, (x) mínimo, (xi)
máximo, y (xii) cuenta.

232
Resultados obtenidos

A continuación, se realiza una descripción formal de cada una de las variables


obtenidas.

Media: la media es un valor que representa todo el conjunto de datos. Cuando


una señal con valor constante se ve alterada por ruido aleatorio, normalmente
la media a lo largo del tiempo representa el valor real de la señal, dado que el
ruido aleatorio presenta una distribución normal de media cero.

Viene definida por la Ecuación (8.1).


𝑛𝑛
1
𝑥𝑥̅ = � 𝑥𝑥𝑖𝑖 (8.1)
𝑛𝑛
𝑖𝑖=1

En la Figura 8.1.1 se ve marcada con una flecha azul la posición que ocuparía
la media en un gráfico de frecuencias de una muestra ficticia cuya distribución
no es normal.

Figura 8.2.1Representación gráfica de la media.

Varianza: la varianza es una medida de dispersión que muestra la media del


cuadrado de la variabilidad de una muestra de datos sobre su media. Su
formulación se muestra en la Ecuación (8.2).
2
∑𝑛𝑛𝑖𝑖=1(𝑥𝑥𝑖𝑖 − 𝑋𝑋�) (8.2)
𝑉𝑉𝑉𝑉𝑉𝑉(𝑥𝑥 ) =
𝑛𝑛
Desviación estándar: La desviación estándar nos da la información del valor
medio esperado de desviación de los datos sobre la media. Si se considera la
media como el valor real de una variable, indicará cuanto se espera que se
alejen de media, los datos de la media. Su formulación se muestra en la
Ecuación (8.3).

2
�∑𝑛𝑛𝑖𝑖=1(𝑥𝑥𝑖𝑖 − 𝑋𝑋�) (8.3)
𝑠𝑠 =
𝑛𝑛 − 1

233
Diseño de las pruebas y entorno de ejecución

Moda: la moda representa el valor que aparece con mayor frecuencia. Si los
datos están agrupados está representada por la Ecuación (8.4).

𝑑𝑑1
𝑀𝑀𝑜𝑜 = 𝐿𝐿𝑀𝑀𝑜𝑜 + � � 𝑤𝑤 (8.4)
𝑑𝑑1 + 𝑑𝑑2

En la Figura 8.1.2 se marca la moda de la distribución con la línea roja.

Figura 8.2.2 Representación de la moda de la distribución.


Mediana: una vez ordenados los datos que componen la muestra, la mediana
es el dato que ocupa el lugar central, como se ve gráficamente en la Figura
8.1.3.

Figura 8.2.3 Representación de la mediana.


Error típico: se calcula sobre la desviación típica de la población, pero dado
que no es conocida normalmente, se aproxima sobre la desviación estándar de
la muestra. Cuantifica cuanto se apartan los valores de la media como se ve en
la Ecuación (8.5).
𝑠𝑠
𝑆𝑆𝑥𝑥̅ ≈ (8.5)
√𝑛𝑛

Donde s es la desviación estándar. Normalmente se considera que los valores


que distan más de dos unidades del error típico de la media no son
representativos y pueden eliminarse.

Curtosis: la curtosis nos da información sobre la forma de la distribución de


frecuencias de una variable estadística aleatoria. Es la medida que indica el
grado de concentración de los valores de la muestra alrededor de la zona

234
Resultados obtenidos

central de distribución de frecuencias. Su fórmula, partiendo de datos


agrupados en tablas de frecuencias está representada por la Ecuación (8.6).

1 ∑ 𝑓𝑓𝑖𝑖 (𝑥𝑥𝑖𝑖 − 𝑥𝑥̅ )4


𝑔𝑔2 = (8.6)
𝑁𝑁 𝑠𝑠 2

Donde 𝑔𝑔2 es el coeficiente de curtosis, 𝑁𝑁 es el número de datos, 𝑥𝑥𝑖𝑖 es el valor i-


ésimo de la muestra, 𝑥𝑥̅ es la media aritmética de la muestra, s es la desviación
estándar y 𝑓𝑓𝑖𝑖 es la frecuencia de aparición del valor i-ésimo.

Coeficiente de asimetría: el coeficiente de asimetría nos da una indicación del


grado de simetría que presenta una distribución de probabilidad de una
variable aleatoria. En caso de que una señal se vea afectada por ruido aleatorio,
lo normal es tener un coeficiente de asimetría de cero. Si el coeficiente no es
cero, esto indica que el número de valores de la variable es mayor a uno de los
lados de la media, con lo que debe estar siendo afectada por alguna
característica que fuerza a que las medidas no sigan una distribución
totalmente aleatoria.

Figura 8.2.4 Forma visual de la distribución de probabilidad.

En la Figura 8.2.4 se observa la forma de la distribución de probabilidad para


distintos valores del coeficiente de asimetría.

Rango: Diferencia entre el mayor valor y el menor valor de la muestra de


medidas.

Mínimo: Mínimo valor de la muestra de medidas obtenidas.

Máximo: Máximo valor de la muestra de medidas obtenidas.

Cuenta: Nº de valores de medidas totales que contiene la muestra.

235
Evaluación estática

Entorno de ejecución

El entorno de pruebas se ha desarrollado en una habitación pequeña de 3x3


metros en la que se han situado dos balizas. Para estas pruebas, las balizas están
compuestas por un array de transductores de ultrasonidos formado por cuatro
sensores situados de modo equidistante en los lados de la cuarta parte de un
polígono regular de 16 lados, cubriendo un arco de 90 grados. Se han
empleado los sensores HC-SR04 que son los más económicos que existen, con
rangos de cobertura de casi 9 m y un arco de apertura de 30 grados en todo su
alcance, llegando a 45 grados a cortas distancias.

En todas las medidas se ha empleado como estación móvil el robot de


investigación RODI, portando un anillo de emisión con 8 transceptores
situados en los lados de un polígono regular de 8 lados.

8.3 Evaluación estática


El primer lote de pruebas se ha realizado en estático, colocando el robot en
distintas posiciones y recuperando la información de posicionamiento. Se ha
verificado que el rango de los errores se mantiene en los mismos valores,
independientemente de la posición, únicamente dependiendo de las
orientaciones relativas entre las balizas y el robot, como se mostró en la Sección
5.9, por lo que se no resulta necesario realizar medidas en múltiples
ubicaciones.

Precisión de la trilateración empleando medidas de distancias sin


filtrar

Mediante trilateración se calcula la intersección de las dos circunferencias con


centro en cada baliza y radio el valor de cada una de las medidas de distancia.
Para mostrar los resultados de SAPPO sin la aplicación de filtros,
presentaremos los resultados obtenidos empleando dos sistemas de medida.
Uno de ellos tratará cada una de las medidas de forma absoluta y totalmente
independiente y el otro sistema tendrá un valor de referencia de la medida que
se combinará directamente con cada una de las medidas.

236
Resultados obtenidos

Medidas independientes

Este procedimiento de medida es el que presenta más variabilidad. Cada una


de las medias se trata de modo totalmente independiente. Con cada medida se
actualizaría la posición actual, pasando a ser la última medida. Este sistema no
mantiene un valor base y en caso de errores producidos en alguna de las
lecturas, mientras no se recupere la siguiente, los cálculos se realizarán con la
medida errónea. Una de sus ventajas es la velocidad de respuesta, dado que es
la máxima posible.

En la Figura 8.3.1 se puede ver el gráfico de dispersión de las posiciones de


cada una de las medidas de la muestra. Puede observarse que las medidas se
agrupan en zonas. La electrónica de todos los componentes
(microprocesadores, relojes, sensores, transceptores, etc.) es digital, lo que
implica que trabaja con tiempos discretos. La acumulación de errores en estos
tiempos discretos de cada uno de los componentes genera que los errores se
encuentren agrupados por bloques de tiempos (o distancias) reconocibles en
el gráfico.

6
5
4
Valor del eje Y en cm

3
2
1
0
-2 -1 -1 0 1 2 3
-2
-3
-4
-5
Diferencia del valor del eje X en cm de las medidas

Figura 8.3.1 Gráfico de dispersión de las medidas.

En la Figura 8.3.1 se aprecia que la mayor parte de las medidas de la muestra


se encuentran dentro del rango de 1 cm en el eje X y de 3 cm en el eje Y.

237
Evaluación estática

Figura 8.3.2 Histograma de error de las medidas.

En la Figura 8.3.2 se visualiza el histograma de los errores de las medidas por


tramos. Con las medidas sin procesar de ninguna manera, aproximadamente
el 87% de las medidas presentan un error inferior a 2 cm.

Media rápida acumulativa

Con este algoritmo tenemos un valor base de la medida que se calcula en cada
iteración. A este valor se le acumula la medida actual y se realiza la media
pasando a ser el nuevo valor base para la siguiente medida. Se le da el mismo
peso al valor actual medio de la variable y a la última medida como se puede
ver representado en la Ecuación (8.1) recursiva, donde 𝑥𝑥𝑖𝑖 es el valor
actualizado en la medida i-ésima que se calcula empleando el valor actualizado
de la medida anterior 𝑥𝑥𝑖𝑖−1 y la medición actual 𝑚𝑚𝑖𝑖 .

𝑥𝑥𝑖𝑖−1 + 𝑚𝑚𝑖𝑖
𝑥𝑥𝑖𝑖 = (8.1)
2
En la Figura 8.3.3 se muestran las posiciones que ocupan cada una de las
posiciones obtenidas en la muestra. Se observa que el rango de variabilidad del
eje X comprende casi todas las medidas entre 128,5 y 130 cm, lo que representa
un rango máximo de 15 mm y un error máximo de 7,5 mm desde la media
central con un error medio de 3,75 mm. En el eje Y el rango de variabilidad es
de 40 mm, lo que representa un error máximo de 20 mm desde la posición
media central, con un error medio de 10 mm.

238
Resultados obtenidos

93

92

Eje Y de la posición en cm
91

90

89

88

87

86
128 128,5 129 129,5 130 130,5 131
Eje X de la posición en cm

Figura 8.3.3 Gráfico de dispersión de las posiciones.

Los datos estadísticos de cada una de las coordenadas que marcan cada una de
las posiciones se muestran en la Tabla 8.3.1.
Tabla 8.3.1 Datos estadísticos de la media rápida.

Datos estadísticos X Y
Media 129,255 89,609
Error típico 0,010 0,026
Mediana 129,280 89,648
Moda 129,382 90,274
Desviación estándar 0,378 0,946
Varianza de la muestra 0,142 0,895
Curtosis -0,284 -0,414
Coeficiente de asimetría 0,027 -0,115
Rango 2,466 5,378
Mínimo 128,310 86,874
Máximo 130,776 92,252
Cuenta 1288 1288

Figura 8.3.4 Rangos de los errores de las medidas.

239
Evaluación estática

En la Figura 8.3.4 se representan el módulo de los vectores que unen la


posición real con cada una de las posiciones que devuelve SAPPO. Este módulo
representa el error de la medida. De esta forma, puede apreciarse gráficamente
que la mayor parte de las medidas (89%) presentan un error dentro del rango
comprendido entre 0 y 15 mm con una media de 7 mm, por lo que puede
considerarse que sus márgenes de precisión medios son inferiores al
centímetro, con lo que se encuentra en rangos milimétricos.

Comparativa entre las medidas independientes y la media rápida acumulativa

En la Figura 8.3.5 puede observarse el resultado comparativo de la aplicación


de los dos algoritmos de medida. Ambas llegan al mismo resultado estable de
media con muy leves variaciones y como se aprecia, la media acumulativa, en
donde se realiza la media del valor actual junto con la medida actual sigue
perfectamente las variaciones de las medidas absolutas sin ningún retraso, pero
reduciendo la variabilidad con respecto al valor medio en casi 5 mm.

116,4
Valor de la medida en cm

115,9
115,4
114,9
114,4
113,9
113,4
112,9
112,4
1
7
13
19
25
31
37
43
49
55
61
67
73
79
85
91
97
103
109
115
121
127

Nº de muestra

Media Acumulativa Medida absoluta

Figura 8.3.5 Comparativa entre los algoritmos de recuperación de las medidas.

Precisión de la trilateración empleando medidas de distancia filtradas

Para intentar reducir los errores generados por el conjunto formado por los
sensores con su electrónica, el microcontrolador y el firmware, se han
empleado varios filtros, cuyos resultados se muestran de modo comparativo en
los siguientes subapartados. Dado que el objetivo principal es reducir al
mínimo la variabilidad de las medidas de cada una de las balizas, lo que

240
Resultados obtenidos

originará que el resultado del posicionamiento obtenido por trilateración sea


igualmente mucho más preciso. En los datos mostrados se evalúa la aplicación
de cada uno de los filtros a las medidas de distancia obtenidas de una de las
balizas. Los filtros empleados han sido descritos en la sección 5.10.

Media móvil

Este el filtro más sencillo de los que se pueden implementar. En la Figura 8.3.6
puede apreciarse que el 100% de las medidas tienen un rango total de 15 mm
teniendo un error máximo de 7 mm sobre la media, siendo éste mucho menor
en la mayor parte de las medidas. Para el cálculo de la media móvil se ha
empleado una ventana de 10 elementos.

81,1

80,9
Distancia a la baliza 1 en cm

80,7

80,5

80,3

80,1

79,9

79,7

79,5
1
15
29
43
57
71
85
99
113
127
141
155
169
183
197
211
225
239
253
267
281
295
309
323
337
351
365

Nº de muestra de medida

Figura 8.3.6 Representación de las medidas filtradas mediante una media móvil.

En la Tabla 8.3.2 se aprecia la alta precisión y la baja variabilidad de las medidas


sobre la media.
Tabla 8.3.2 Valores estadísticos de las medidas con media móvil.

Datos estadísticos
Media 80,238
Error típico 0,012
Mediana 80,220
Moda 80,110
Desviación estándar 0,233
Varianza de la muestra 0,054
Curtosis 0,200
Coeficiente de asimetría 0,307
Rango 1,340
Mínimo 79,620
Máximo 80,960

241
Evaluación estática

Cuenta 368

Media exponencial

En la Figura 8.3.7 se observa el resultado del filtro EMA sobre las medidas de
la baliza. Comparativamente en cuanto a precisión, puede observarse que es
muy similar a la obtenida con el filtro de media móvil. El filtro EMA es muy
sencillo de implementar y no requiere de memoria de almacenamiento de los
valores de la ventana con la que se realiza la media. En el filtro EMA sólo
interviene el valor resultante del filtrado de la muestra anterior conjuntamente
con el valor actual. La proporción de peso de cada uno de estos factores la
marca el valor de la variable de configuración del filtro α que normalmente
oscila entre 0,2 y 0,6. Cuanto menor es el valor, mayor es el peso de la operación
de filtrado. En nuestro caso se ha empleado un valor de α de 0,2, dado que en
nuestras pruebas ha demostrado tener una gran capacidad de filtrado con un
retraso aceptable a la variabilidad de la señal de distancia. El error máximo es
similar a la media móvil manteniéndose sobre los 7 mm.

81,3
81,1
Distancia a la baliza 1 en cm

80,9
80,7
80,5
80,3
80,1
79,9
79,7
79,5
1
15
29
43
57
71
85
99
113
127
141
155
169
183
197
211
225
239
253
267
281
295
309
323
337
351
365

Nº de muestra de medida

Figura 8.3.7 Medidas de distancia procesadas con filtro EMA.

En la Tabla se puede ver el estudio estadístico de la muestra graficada en la


Figura 8.3.3.
Tabla 8.3.3 Datos estadísticos del procesado con filtro EMA.

Datos estadísticos
Media 79,707
Error típico 0,228
Mediana 80,190
Moda 80,180

242
Resultados obtenidos

Desviación estándar 4,381


Varianza de la muestra 19,201
Curtosis 143,860
Coeficiente de asimetría -11,333
Rango 64,810
Mínimo 16,190
Máximo 81
Cuenta 368

Filtro de Kalman

En la Figura 8.3.8 se muestra el resultado de procesar las mismas muestras con


el filtro de Kalman. Se ha querido mantener la misma escala en el Eje Y para
que se pueda apreciar con total nitidez la gran mejora en cuanto a la
variabilidad de las medidas. Con mucha diferencia, el filtro de Kalman es el
que mejor procesa las medidas obtenidas eliminando la variabilidad aleatoria
introducida por el ruido. En la gráfica se puede ver que tarda casi 12 muestras
en estabilizarse en el arranque, pero una vez estabilizado presentan una gran
precisión. Una vez estabilizado el 100% de las medidas se encuentra entre 79,9
y 80,6 cm. Teniendo en cuenta que el valor real es de 80,21 cm, el error máximo
de las medidas es de menos de 3,5 mm con un error medio de 1,75 mm.

81
Distancia a la baliza 1 en cm

80,5

80

79,5

79

78,5

78
1
15
29
43
57
71
85
99
113
127
141
155
169
183
197
211
225
239
253
267
281
295
309
323
337
351
365

Nº de muestra de medida

Figura 8.3.8 Medidas de distancia procesadas con el Filtro de Kalman.

En la tabla 8.3.4 se muestran los valores estadísticos obtenidos de la muestra


procesada con el filtro de Kalman. Puede apreciarse que el valor de la media
obtenida por el filtro de Kalman y el obtenido por la media móvil es casi

243
Evaluación estática

idéntico y representan el valor real obtenido mediante medida con telémetro


láser. La desviación estándar nos indica que este filtro aproxima la medida con
un error medio de 0,172 cm.
Tabla 8.3.4 Datos estadísticos del procesado con el filtro de Kalman.

Datos estadísticos
Media 80,215
Error típico 0,008
Mediana 80,210
Moda 80,140
Desviación estándar 0,172
Varianza de la muestra 0,029
Curtosis 27,361
Coeficiente de asimetría -3,009
Rango 2,070
Mínimo 78,500
Máximo 80,570
Cuenta 368

Comparativa de filtros

En la Figura 8.3.9 se grafica el resultado del procesamiento de las medidas de


la muestra con cada uno de los filtros. Se aprecia que el filtro que presenta la
variabilidad mínima es el filtro de Kalman, seguido por el filtro de media móvil
y muy cerca de este, el filtro EMA. Todos los filtros siguen la pendiente de las
muestras a una velocidad similar manteniendo un retraso casi equivalente en
el procesamiento de los cambios de la señal original.

80,9
Distancia a la baliza 1 en cm

80,7

80,5

80,3

80,1

79,9

79,7

79,5
1
13
25
37
49
61
73
85
97
109
121
133
145
157
169
181
193
205
217
229
241
253
265
277
289
301
313
325
337
349
361

Nº de muestra de medida

Kalman_Bal1 MM_Bal1 EMA_Bal1

Figura 8.3.9 Comparativa de comportamiento de los filtros media móvil, EMA y Kalman.

244
Resultados obtenidos

Trilateración mediante medidas filtradas con el Filtro de Kalman

Dado que el filtro que presenta mejores resultados es el filtro Kalman, se


aplicará este filtro a las medidas de las balizas para obtener la posición con
datos filtrados. Para esta prueba se obtienen un amplio conjunto de medidas
con el robot estático para verificar la precisión del posicionamiento.

102,2

102
Coordenada Y en cm

101,8

101,6

101,4

101,2

101

100,8
111,5 111,6 111,7 111,8 111,9 112 112,1
Coordenada X en cm

Figura 8.3.10 Dispersión de las medias obtenidas con filtro de Kalman.

En el gráfico de dispersión de la Figura 8.3.10 se han dibujado en el plano cada


una de las coordenadas obtenidas. En la Tabla 8.3.5 se pueden ver las distintas
medidas realizadas sobre la variable estadística. Todos los valores se muestran
en centímetros.
Tabla 8.3.5 Información estadística de la muestra.

Datos estadísticos X Y
Media 111,845 101,411
Error típico 0,005 0,012
Mediana 111,845 101,400
Moda 111,898 101,363
Desviación estándar 0,094 0,208
Varianza de la muestra 0,008 0,043
Curtosis -0,234 -0,236
Coeficiente de asimetría -0,148 0,210
Rango 0,497 1,128
Mínimo 111,565 100,947
Máximo 112,062 102,075
Cuenta 288 288

En la gráfica de la Figura 8.3.11 se han dividido en tramos los valores de los


errores de posicionamiento de todas las medidas. Para calcular el error se

245
Evaluación estática

obtiene la distancia entre el punto medio de la muestra indicado en la Tabla


8.3.4 y cada uno de los valores de las medidas. El punto indicado por la media
es la mejor aproximación de la posición real. Esta distancia se obtiene
calculando el módulo del vector que une los puntos A y B, siendo A, el punto
medio de todas las medidas y B cada una de las posiciones que devuelve SAPPO.
Su módulo se calcula empleando la Ecuación (8.7).

𝐴𝐴(𝑥𝑥1 , 𝑦𝑦1 ), 𝐵𝐵(𝑥𝑥2 , 𝑦𝑦2 )


(8.7)
|𝑣𝑣⃗ | = �(𝑥𝑥2 − 𝑥𝑥1 )2 + (𝑦𝑦2 − 𝑦𝑦1 )2

Se puede apreciar que más del 92% de las medidas se encuentran a menos de
3,7 mm de la posición real con una desviación máxima de 6,8 mm.

Figura 8.3.11 Gráfica de los módulos de los vectores sobre la media.

En la Figura 8.3.12 se visualiza la distribución de los valores de los puntos de


posicionamiento sobre la media (medida real) en 2D, con lo que puede
apreciarse de forma más clara los errores generados sobre el valor real.

246
Resultados obtenidos

0,8

0,6

0,4

0,2

0
-0,4 -0,3 -0,2 -0,1 0 0,1 0,2 0,3
-0,2

-0,4

-0,6

Figura 8.3.12 Distribución de medidas alrededor del punto medio.

Puede apreciarse que la precisión es altísima concentrando la mayor parte de


las medidas en torno a 2 mm del punto central en el eje X y 4 mm en el eje Y.

8.4 Evaluación dinámica


En las secciones anteriores, todas las medidas se obtenían con el robot en
posiciones estáticas, de forma que todas las medidas correspondían a la misma
posición y la variabilidad de los resultados se debía al ruido variable que
afectaba a cada una de las medidas.

En esta sección se muestra la distribución de las medidas obtenidas en


movimiento. Para que se pueda observar la diferencia de las posiciones
recuperadas de SAPPO con respecto a la trayectoria real, se ha elegido una
trayectoria en línea recta con un trazado transversal comenzando en línea con
la baliza 1 y finalizando en línea con la baliza 2.

247
Evaluación dinámica

255

Coordenada Y de la posición en cm
250
245
240
235
230
225
220
215
210
80 100 120 140 160 180
Coordenada X de la posición en cm

Figura 8.4.1 Distribución de las posiciones durante la trayectoria.

La velocidad de desplazamiento es de 0,5 m/s que es perfectamente válida para


desplazar un robot autónomo por una casa. Las medidas de las posiciones han
sido generadas empleando el algoritmo de media rápida sin ningún otro tipo
de filtrado de las señales de las balizas, dado que se ha dado más importancia a
la velocidad de respuesta que a la reducción de la variabilidad de los errores en
las posiciones. Con estos criterios se ha obtenido el gráfico de dispersión de la
Figura 8.4.1 en el que puede comprobarse que las posiciones se generan con
errores máximos de 20 mm, obteniendo errores medios inferiores a 10 mm en
la mayor parte de las posiciones. Dado que al algoritmo de obtención de
medidas no tiene información sobre la configuración cinemática del robot, los
resultados obtenidos pueden extrapolarse a cualquier tipo de trayectoria y
cualquier tipo de configuración cinemática.

Comparando la trayectoria real con la trayectoria resultante de la unión de las


posiciones obtenidas, puede identificarse una lógica no aleatoria en la
variabilidad de la trayectoria indicada por SAPPO. Estos patrones
corresponden a los errores de distancia introducidos de modo no aleatorio por
la propia configuración y disposición de los distintos módulos de SAPPO, como
se explica de forma precisa en Sección 5.9.

En la Figura 8.4.2 se ha realizado una prueba con una trayectoria en forma de


cuadrilátero, mucho más alejada de las balizas. La baliza 1 se encuentra en la

248
Resultados obtenidos

posición (0,100) y la baliza 2 se encuentra en la posición (0,350). Las


coordenadas representan medidas en centímetros. Los ejes de coordenadas se
han adaptado para mejorar la visualización de la trayectoria no comenzando
en el origen de coordenadas.

350
Coordenada Y de la posición en cm

300

250

200

150

100
100 150 200 250 300 350
Coordenada X de la posición en cm

Figura 8.4.2 Trayectoria en forma de cuadrilátero.

En la Figura 8.4.2 se aprecia que SAPPO sigue con precisión la trayectoria


recorrida por RODI y localiza correctamente el robot en toda la trayectoria con
precisiones muy altas. En la trayectoria se aprecian pequeños huecos en algunas
secciones. Estos son debidos a zonas de sombra originadas por el anillo de
RODI que está compuesto por 8 transceptores, que deberían cubrir 45 grados
a corta distancia. Según especificaciones del modelo (aunque no
proporcionadas específicamente por el fabricante chino, dado que no fue
posible encontrarlas), el transductor HC-SR04 tiene un ángulo de cobertura
muy cercano a 45 grados a menos de 1,5 m en detección de obstáculos, lo que
suponen 3 m para comunicación lineal entre balizas. En la práctica no supera
los 35 grados, por lo que, en algunas posiciones, la disposición relativa del robot
y las balizas, originaba que ningún transductor de las balizas pudiera recibir la
señal ultrasónica del robot. Este problema se encuentra corregido en DANI,
dado que, al ser un robot más grande, su anillo posee 12 transductores.

249
Resultados obtenidos en otros módulos de HAURIA

8.5 Resultados obtenidos en otros módulos de HAURIA


Como se expuso en la Sección 1.4, SAPPO forma parte de un ecosistema mucho
mayor denominado HAURIA. Durante el periodo de investigación de la tesis
se han ido desarrollando varios módulos de este ecosistema, como DANI que
ha sido presentado en el Capítulo 7, XULIA en el Anexo VII, la Infrabola en el
Anexo VIII o ROMAI en el anexo IX. En los siguientes apartados se citarán los
resultados conseguidos en estos módulos.

DANI

DANI es un robot a escala natural y aspecto humanoide, cuya principal función


es servir de plataforma de investigación y sus aplicaciones son la vigilancia y la
telepresencia. Está diseñado para que una persona con tetraplejia, desde su
cama con una tableta con sistema operativo Windows®, empleando
únicamente la voz, pueda interactuar con él, pudiendo desplazarlo por la casa
e interactuar con el resto de los convivientes. Para la interacción con el sistema
informático de control del robot empleará el sistema XULIA. Contiene el
hardware necesario para emplear el sistema de posicionamiento SAPPO y el
objetivo es conseguir que sea capaz de navegar de forma totalmente autónoma
por la casa. Hasta la fecha se ha desarrollado el hardware, el software y firmware
de control y telepresencia, junto con los módulos de interacción mediante la
voz. En su faceta de vigilancia e interacción debe ser capaz de reconocer caras
y detectar movimiento en la escena que está visualizando, por lo que se han
implementado algoritmos de visión para seguimiento de rostros 30 y detección
de movimiento 31. Como se puede apreciar en los videos de los enlaces de las
notas a pie de página, su funcionamiento es correcto, aunque tiene mucho
margen de mejora.

Finalmente se ha implementado un módulo de telepresencia 32 3D que permite


situar al usuario en la posición de la cabeza de DANI. Este sistema está

30 https://youtu.be/j53HTfqsK6c
31 https://youtu.be/HWQ2XHRMnDs
32 https://youtu.be/hhheBr_1gpM

250
Resultados obtenidos

compuesto por los siguientes módulos: (i) sincronización de imagen de las


cámaras entre el robot y el teléfono, (ii) sincronización de audio, (iii)
recuperación de las medidas inerciales del teléfono, (iv) recepción y aplicación
de las medidas inerciales.

Básicamente el módulo (i) del sistema de telepresencia recupera la


información de las dos cámaras que se encuentran situadas en los huecos de
los ojos de DANI para transferir los fotogramas en tiempo real a un teléfono
móvil con Android® que reproduce estas dos imágenes a pantalla completa
dividida a la mitad, con una mitad para cada cámara. Al introducir el teléfono
en unas gafas de realizad virtual, como las imágenes se recuperan desde los ojos
del robot, con posiciones con una distancia idéntica a la de un humano, la
sensación es totalmente inversiva y los objetos se ven con un efecto 3D muy
marcado.

Con el módulo (ii) se permite que el teléfono situado en las gafas 3D


reproduzca el sonido captado por el robot y permite que el sonido del usuario
recuperado en el teléfono sea reproducido por el robot.

El módulo (iii) permite captar la posición de la cabeza del usuario tanto en


alabeo, cabeceo como guiñada, a través de los acelerómetros y los giróscopos
instalados en el teléfono. Esta información se envía al módulo (iv) que,
conociendo la posición actual de la cabeza del robot, envía las instrucciones
necesarias para que se sitúe en la misma posición que la cabeza del usuario,
siempre compensando la posición de partida, para que presente un
funcionamiento correcto, incluso cuando su usuario se encuentra postrado en
una cama.

DANI posee un cerebro (así se denomina al conjunto de patrones en el que


basa su motor de inferencia creado en AIML), que le permite mantener
conversaciones en lenguaje natural con el que puede mantener conversaciones
sobre temas como deportes, cine, música, lectura, hobbies, animales, dinero,
familia, deporte, etc. Este módulo presente resultados aceptables, siendo

251
Resultados obtenidos en otros módulos de HAURIA

sorprendente en algunas situaciones su capacidad para mantener el contexto


e introducir informaciones pasadas en respuestas actuales.

En el apartado mecánico, resulta interesante la capacidad de movimiento de


articulaciones relativamente muy pesadas con servos muy económicos (5 € por
unidad), para lo que ha sido necesario realizar piezas específicas y reducir
mucho la velocidad de accionamiento de las articulaciones mediante el empleo
de articulaciones de tipo tornillo como se explicó en la Sección 3.5.2.

XULIA

Xulia es un sistema de control integral de sistemas con Windows® que ha sido


específicamente diseñado para personas tetrapléjicas. Es uno de los módulos
que más repercusión ha tenido, de todos los desarrollados en la presente tesis.
Actualmente está siendo distribuido con licencia GPL por el Instituto Novo Ser
en Rio de Janeiro, siendo el producto tecnológico más sobresaliente de su
oferta. Se han realizado varias campañas de difusión y presentación del sistema,
con charlas y presentaciones. Una de ellas fue promovida por la propia
Universidade Federal do Rio de Janeiro, desde el Instituto Tércio Pacitti de Aplicações e
Pesquisas Computacionais. Actualmente XULIA está disponible para descarga
desde la web del Instituto Novo Ser 33.

En Brasil, Xulia ha sido reconocida por la OAB-RJ 34 y la IMB 35 por su


contribución a la inclusión digital. La placa de este reconocimiento se muestra
en la Figura 8.5.1. El programa ha sido presentado por Ricardo González Rocha
Souza, como integrante de la junta directiva del Instituto Novo Ser.

33 https://www.novoser.org.br/xulia.html
34 Ordem de Advogados do Brasil, Seçao do Estado do Rio de Janeiro (Comissao dos Direitos da
Pessoa com Deficiência)
35 Instituto de magistrados do Brasil

252
Resultados obtenidos

Figura 8.5.1 Placa del reconocimiento del premio.

El texto de la placa cita:


A OAB-RJ | Ordem de Advogados do Brasil, Seçâo do Estado do Rio de Janeiro,
através de sua Comissâo dos Direitos da Perssoa com Deficiência (CDPD)
e o IMB | Instituto de magistrados do Brasil tem a imensa satisfaçâo de
parabenizar e agradecer ao Sr. Ricardo González Rocha Souza
pela sua enorme contribuiçâo com o projecto XULIA – Software de
inclusâo digital com reconhecimento de voz

Río de Janeiro, 29 de novembro de 2019


En Brasil, casi todos los usuarios que están migrando a Xulia vienen de otro
sistema anterior de control de sistemas Windows® llamado Motrix [188] que
se explica en la Sección 7.2 del el Anexo VII. Este sistema no disponía de
dictado continuo, reconocimiento en idioma portugués y configuración de
comandos. Con Xulia conseguimos solucionar todas sus limitaciones y añadir
muchas más. Con los módulos de comandos se consigue realizar tareas mucho
más rápido, siendo esta aceleración exponencial con la configuración de
gramáticas por aplicación, en donde se definen comandos que están adaptados
específicamente a funciones de uso extendido en determinadas aplicaciones.
En el vídeo 36 referenciado en la nota, se aprecia cómo se emplean comandos
que han sido creados específicamente para la navegación en Google Chrome,
de forma que no es necesario recordar los accesos rápidos para realizar estas
tareas y las instrucciones son mucho más naturales.

36 https://www.youtube.com/watch?v=x2DweK5xmnQ

253
Resultados obtenidos en otros módulos de HAURIA

Xulia posee un cerebro basado en AIML con el que es capaz de mantener una
conversación con seguimiento lógico de contexto sobre varios temas 37.
Mediante el empleo de este módulo se ha conseguido procesar comandos
complejos en lenguaje natural, para realizar búsquedas de información en la
web 38, creación y envío de correos electrónicos o mantenimiento de listas de
tareas o listas de compras.

Infrabola

La Infrabola está implantada actualmente en una vivienda, y está siendo


empleada por una persona con tetraplejia. Ha sido implantada conjuntamente
con Xulia tanto en el ordenador de sobremesa como en una tableta que está
unida a la cama con un brazo extensible. Desde la tableta, interactúa por voz
directamente con el software de control de la Infrabola, empleándola
principalmente para controlar la televisión 39. Se han identificado algunos
errores en el reconocimiento de comandos con el volumen de la televisión
elevado, pero en condiciones normales el funcionamiento es totalmente
correcto.

ROMAI

En la propuesta tecnológica para el brazo articulado ROMAI que se expone en


el Anexo IX se recopila la resolución cinemática inversa para el
posicionamiento preciso del efector final y se especifican requerimientos de
mapeado 3D y procesamiento de imágenes. Como primera aproximación para
el desarrollo de ROMAI se ha desarrollado un prototipo en aluminio de
pequeño tamaño con los mismos grados de libertad. Para probar su desempeño
cinemático y varios algoritmos de visión, se ha implementado un sistema que
juega al tres en raya de forma autónoma 40, cogiendo y desplazando pequeñas
fichas en el tablero.

37 https://www.youtube.com/watch?v=2Zby4ZEMTJg
38 https://www.youtube.com/watch?v=dptB6N0Qs_Y
39 https://www.youtube.com/watch?v=vOpcRcDvHvo&feature=youtu.be
40 https://www.youtube.com/watch?v=52OTQ4A94xA

254
Resultados obtenidos

En la Figura 8.5.2 se muestra la pantalla de control del brazo donde se pueden


ver las siguientes áreas: (1) Posición y orientación del efector final, (2)
Visualización del vídeo captado por la cámara, (3) Imagen ampliada de la zona
destino de la ficha, (4) LOG de comunicación con el robot, (5) Localización
de las fichas del robot, (6) localización de las fichas del jugador humano, (7)
posición del robot en tiempo real.

Figura 8.5.2 Pantalla de control y visualización del brazo articulado.

Este pequeño proyecto ha servido de aproximación para demostrar el


funcionamiento de los algoritmos cinemáticos del brazo articulado, probando
que es posible desplazarlo de forma muy precisa sobre el tablero, manipulando
pequeñas fichas. También se ha implementado el algoritmo de detección e
identificación de objetos simples. El prototipo ha sido construido con
componentes muy económicos que no lo dotan de la consistencia suficiente y
presente bastantes vibraciones.

8.6 Resumen del capítulo


En este capítulo se presentan los resultados obtenidos en esta tesis,
comenzando primero por los resultados relativos al sistema de posicionamiento
SAPPO, que forma la investigación principal de la tesis, para posteriormente
citar, de un modo mucho más resumido, los resultados obtenidos por otros
módulos de HAURIA que se han ido desarrollando durante el tiempo que ha
durado la tesis.

255
Resumen del capítulo

La Sección 8.2 comienza con la definición del marco experimental en el que


se describen las medidas que se generarán y el procesamiento estadístico de las
mismas, que permitirá analizar cada una de las muestras de forma tabular
comparando los distintos resultados de cada muestra de un modo preciso.
También se define cada una de las variables estadísticas que se calculan para
cada muestra. En el último apartado, se describe brevemente la disposición del
entorno en el que se realizarán las pruebas.

En las secciones 8.3 y 8.4 se presentan los resultados obtenidos de las distintas
muestras, comenzando con medidas estáticas y evaluando primero la precisión
del sistema sin emplear filtros, demostrando que SAPPO presenta una media
de error de 10 mm de distancia sobre el valor de la posición real.

Se continúa con un análisis de tres de los filtros más comunes para el modelado
de señales con ruido aleatorio como son la media móvil, la media exponencial
y el filtro de Kalman, mostrando gráficas comparativas que demuestran el
desempeño de cada uno de ellos sobre una muestra de medidas reales,
comprobando que el filtro de Kalman es muy superior a los otros en cuanto a
sus características de filtrado de ruido aleatorio. En el último apartado de la
sección se aplica el filtro de Kalman sobre las medidas obtenidas en una
posición estática, demostrando que encuentra la posición real con una
precisión altísima que llega a menos de 2 mm en uno de los ejes.

En la Sección 8.4 se muestran dos ejemplos de medición dinámica de la


posición generada por SAPPO. En el primero, el robot se desplaza a 0,5 m/s
sobre una línea que recorre el área de posicionamiento situada entre ambas
balizas, demostrando que la precisión se mantiene en movimiento. En el
segundo se traza una trayectoria en forma de cuadrilátero, situada a 2 metros
de distancia de las balizas con lados de 1 metro de longitud. La prueba
demuestra que las posiciones entregadas por SAPPO presentan un alto grado
de precisión son respecto a la trayectoria.

Por último, en la Sección 8.5 se exponen algunos de los objetivos conseguidos


en varios de los módulos descritos en este documento, que componen el

256
Resultados obtenidos

ecosistema de accesibilidad HAURIA, del que forma parte el sistema de


localización SAPPO, citando las características más resaltables que han sido
implementadas en los prototipos DANI y ROMAI y las funcionalidades de los
módulos Infrabola y XULIA que se encuentran en explotación.

257
9 Conclusiones y trabajo futuro
9
9.1 Introducción
En la hipótesis de partida, descrita en la Sección 1.2 de este trabajo de
investigación, se proponía como posible la creación de un sistema de
posicionamiento de alta precisión en una vivienda estándar mediante el uso de
dispositivos de bajo coste y con una baja densidad de balizas por habitáculo, que sirva
como base para el desarrollo de un sistema de navegación de robots de servicio autónomos.

En este trabajo de investigación se ha creado un sistema de posicionamiento


de alta precisión que cumple los requisitos de coste, facilidad y sencillez de
despliegue y, en rangos medios, los requisitos de precisión propuestos en esta
hipótesis. Al emplear hardware muy económico y de alta disponibilidad
mantiene sus costes en un rango de precio muy bajo, siendo capaz de
desplegarse en grandes superficies empleando un número muy reducido de
balizas y con unas necesidades de configuración muy básicas, dado que solo es
necesario establecer con precisión los puntos de referencia de cada habitación,
que se establecen cargando el plano, y el lugar en el que se posicionan las
balizas. La precisión conseguida tiene un rango milimétrico en más del 80% de
sus medidas en estático, incluso sin emplear filtros, ofreciendo un error medio
de menos de 10 mm, y manteniendo precisiones similares en movimiento.

259
Evolución y mejoras en SAPPO

9.2 Evolución y mejoras en SAPPO


Aunque el sistema cumple los requisitos inicialmente propuestos, tiene amplias
capacidades de mejora tanto en velocidad del hardware, como precisión,
concurrencia de robots, cobertura por baliza, etc. En los siguientes apartados
se propondrán mejoras en muchos de estos apartados.

Mejora de la electrónica de cómputo

A pesar de obtener precisiones muy altas, el rango total de oscilación de las


medidas absolutas sin filtrar sigue siendo alto, obteniendo desviaciones de
algunos centímetros en las medidas más extremas.

4
Valor del eje Y en cm

0
-2 -1 0 1 2 3
-2

-4

-6
Diferencia del valor del eje X en cm de las medidas

Figura 9.2.1 Distribución de posiciones recuperadas sin filtrado.

Como se puede ver en la Figura 9.2.1 correspondiente al gráfico de dispersión


de medidas absolutas, estas se agrupan dentro de varios rangos de valores de
forma casi discreta. Estas agrupaciones no son originadas solo por la
probabilidad de que las medidas sean alteradas por señales de interferencia,
sino que adicionalmente a este tipo de señales, se lanzan procesos de
interrupción que tienen duraciones aproximadas de 20 µs. En un hardware
más rápido, estos procesos casi no interferirán con las medidas, pero en
procesadores tan lentos como el atmega328, que apenas tiene el doble de
velocidad que los primeros 8086 del año 1985, estos procesos, por muy pocas
instrucciones que involucren, durarán decenas de microsegundos. A pesar de
ello, el bajísimo coste de 2 € por microprocesador, consideramos que
compensa el trabajo de medir cada microsegundo de instrucciones para
mantener la variabilidad de las medidas en el menor rango posible.

260
Conclusiones y trabajo futuro

Han pasado muchos años desde el inicio de esta tesis, y en el año 2021 tenemos
dispositivos como los ESP8250 con un coste de 5 € en placas completas de
desarrollo. La evolución natural del hardware es emplear una placa ESP32-
DevKitC tanto en balizas como en los robots para sustituir al microcontrolador
atmega328. Este tipo de placas tiene una frecuencia de trabajo de 2,4 GHz, en
contraposición con los 16 MHz de frecuencia máxima de trabajo de los
atmega328, lo que implica que es 150 veces más rápido por el mismo coste, sin
contar que el ESP32 es una solución SoC (System on Chip) que integra en un
solo chip tanto el procesador, como la circuitería de E/S (Entrada/Salida) como
los módulos de comunicaciones, permitiendo comunicarse mediante Wifi y
Bluetooth. Adicionalmente su capacidad de almacenamiento de memoria flash
de programa es de hasta 8 MB con otros 8 MB de RAM en contraposición con
los 32 KB de flash para programa y los 2 KB de memoria RAM del atmega328.
En estos casi 10 años que han pasado desde el comienzo de la investigación de
esta tesis, el hardware para sistemas IoT (Internet of Things) ha evolucionado
muchísimo manteniendo los mismos costes. El empleo de esta nueva
electrónica conllevaría un trabajo de ajuste y adaptación del firmware de
control a las características de la nueva electrónica.

Mejoras en los transductores de ultrasonido

En cuanto a los sensores de ultrasonidos, los sensores de rango más económico


como los que se usan en SAPPO no han sufrido ningún tipo de variación,
siguen manteniendo su coste a 1 € y sus características siguen siendo similares
a las que tenían hace casi 10 años, sin embargo, sensores como el SRF02 de
mayor rango de cobertura, mayor precisión y preparados de fábrica para ser
empleados como emisores o receptores, empiezan a tener costes muy
inferiores, pudiendo adquirir copias chinas por 5 €, en vez de 40 € que costaban
hace varios años, con lo que sería posible emplearlos en los anillos del robot y
en las balizas. Aun así, en este caso, no se mejoraría la precisión y se
multiplicarían por 5 los costes de estos elementos, pero sí se mejoraría el rango
máximo de cobertura y ligeramente el ángulo de apertura. Como se puede ver
en el Anexo II, cada modelo de sensor tiene un modo de trabajo diferente,

261
Evolución y mejoras en SAPPO

diferente conectividad y diferentes comandos (en los sensores que los


soportan), por lo que sería necesario cambiar el código de acceso a las
características de los nuevos sensores.

Tratamiento de señales reflejadas

En este trabajo no se ha realizado un estudio de señales reflejadas. En caso de


que una medida no mantenga una correspondencia con la velocidad de
desplazamiento máxima del robot en la coordenada de lectura, directamente
esa señal se descarta. Otra alternativa sería emplearla para intentar realizar un
posicionamiento continúo intentando analizar el error de distancia que
introduce la reflexión.

Navegación a ciegas

Cuando el robot no es capaz de recibir su posición de SAPPO se dice que está


navegando a ciegas. En esta situación debe ser capaz de mantener la trayectoria
con sus propios medios hasta que reciba una nueva señal de posicionamiento.
En el sistema actual, en caso de no detectar la señal durante cierto periodo, se
continua con navegación odométrica empleando las medidas de distancia
recorridas por cada una de las ruedas, pero tanto RODI como DANI poseen
sensores odométricos de muy baja precisión, detectando un desplazamiento de
0,7 cm para RODI y de 1,6 cm para DANI, por lo que no tardan en generar
importantes errores acumulados. Tanto RODI como DANI tienen montada
una IMU. Estos sensores de medidas inerciales permiten leer las aceleraciones
lineales y angulares, y mediante la integración de sus medidas se pueden
obtener tanto la velocidad como la distancia recorrida deduciendo con ello la
posición relativa del robot en cada momento. Con esta información, unida a la
información odométrica y junto con la última posición recuperada, el robot
debe seguir estimando su posición dentro de la ruta de navegación, aunque en
determinados puntos de la habitación, no sea capaz de obtener valores del
sistema de posicionamiento. Actualmente tiene implementado un algoritmo
de cálculo mucho más sencillo basado únicamente en las velocidades de
desplazamiento relativo entre las dos ruedas.

262
Conclusiones y trabajo futuro

Fusión sensorial

En su primera versión, SAPPO está diseñado para trabajar sólo con el sistema
de posicionamiento y en caso de no recibir la señal empleará los sistemas de
medidas odométricas que llevan instalados los robots.

En esta tesis se han realizado estudios de aplicación del filtro de Kalman al


procesamiento de las señales, obteniendo los mejores resultados en cuanto a la
capacidad de eliminación de ruido, pero a costa de retrasar bastante la señal
de salida con respecto a las variaciones de la señal de entrada. Este filtro se
emplea masivamente en sistemas de fusión sensorial, de forma que, para
generar las salidas, es capaz de fusionar la información de varios sensores con
los que es posible generar una salida compensando los errores generados por
cada sensor de forma independiente.

Adicionalmente, el filtro del Kalman tiene una etapa de estimación que puede
ser empleada para deducir posiciones futuras con datos pasados, cuando estos
datos no se encuentran actualizados. Esta etapa contiene la información de la
configuración cinemática del robot, permitiendo calcular la estimación de las
posiciones futuras partiendo de los últimos datos recuperados aplicados a las
ecuaciones cinemáticas de desplazamiento. Comparando la posición estimada
con la posición recuperada por los sensores, pueden realizarse las correcciones
de la posición, y en caso de no tener la posición actual en un momento dado,
es posible realizar una navegación a ciegas.

Acceso al medio por varios robots

Aunque se encuentra totalmente definido, el algoritmo de acceso al medio no


ha sido probado, por lo que será necesario analizar el comportamiento de
dicho algoritmo en el caso de que dos o más robots se encuentren
compartiendo la misma habitación solicitando medidas al sistema de
posicionamiento.

263
Trabajo futuro en otros módulos de HAURIA

Ampliación del número de balizas por habitación

En su primera versión, SAPPO está diseñado para operar con dos balizas por
habitación. Debido a su diseño, no tiene limitación en el número de balizas a
colocar en cada habitación, pero en caso de que existan más de dos, será
necesario analizar las intersecciones entre sus medidas y diseñar un algoritmo
óptimo que sea capaz de emplear las dos mejores medidas para establecer la
posición del robot. Puede ser que alguna de las balizas ofrezca una distancia
recuperada de una señal reflejada, de forma que no sea coherente con la
trayectoria del robot, en este caso el sistema tiene que ser capaz de identificar
estas medidas y eliminarlas hasta que entren dentro del rango de coherencia.

9.3 Trabajo futuro en otros módulos de HAURIA


HAURIA es un gran ecosistema que se encuentra actualmente en evolución.
En los siguientes apartados se han identificado varias líneas de evolución en los
módulos implantados, y en los que todavía se encuentran en desarrollo.

Evolución de DANI

DANI tiene infinitas capacidades de mejora. Aunque posee el hardware


necesario para realizar la navegación autónoma empleando SAPPO, no ha sido
posible probarla. DANI es un robot muy grande y pesado, cuyo control de
velocidad no es tan fino como el de RODI, dado que su sistema de locomoción
está basado en una moto de juguete. Esto implica que deben aplicarse técnicas
de filtrado predictivas para la estimación de la posición. Hay que conocer con
gran exactitud las posiciones donde se encontrará en los próximos segundos o
décimas de segundo para evitar colisiones. DANI lleva montado un LIDAR que
permite el mapeado tridimensional del entorno que se encuentra delante de
él, pero este LIDAR tiene una frecuencia de actualización muy baja, dado que
mapea su entorno con un solo haz laser. Adicionalmente, no está diseñado
para realizar un mapeado en movimiento, dado que su velocidad de barrido es
muy baja. Para emplearlo en movimiento, cada distancia a los objetos obtenida
debería situarse en la posición 3D correcta, calculando de forma previa el

264
Conclusiones y trabajo futuro

desplazamiento relativo del robot con las medidas anteriores. De esta forma
podría dibujar un mapa de profundidad completo. Solo este punto resulta muy
complejo y requeriría de una altísima precisión de posicionamiento.

Actualmente el sistema de navegación está diseñado para seguir ciertas rutas


que se considera que estarán libres de obstáculos. El robot tiene los sensores
necesarios para ser capaz de esquivar los posibles obstáculos que se encuentre
en la ruta segura, pero por el momento no tiene implementado los algoritmos
necesarios para realizar la evasión de obstáculos en ruta. Esta debería ser una
de las primeras mejoras a implementar. Adicionalmente, con el sistema actual,
es necesario establecer las rutas que puede seguir el robot por toda la casa. Con
SAPPO, el robot conoce la localización actual y conoce el lugar que ocupa el
punto de destino. Solo con esta información podría conocer la dirección que
debe seguir para alcanzar el objetivo, sin necesidad de conocer de forma
precisa la ruta que debe seguir. En el caso de que tuviera la capacidad de captar
su entorno e identificar los caminos posibles, podría establecer la ruta al
destino de forma totalmente autónoma mediante un complejo algoritmo
SLAM con el que iría mapeando el entorno según lo va recorriendo. Con estas
capacidades solo sería necesario indicarle donde están los distintos puntos de
interés de la casa, sin necesitar trazar las rutas precisas que unen todos ellos.
De esta forma podría modificarse la disposición de cualquier elemento en la
casa de forma dinámica sin que se vieran mermadas sus capacidades de
navegación.

Aunque actualmente es posible mover el robot mediante su propia interface y


su usuario es capaz de captar su entorno, dado que transmite la información
de las cámaras, resulta muy costoso manipular sus miembros para que sean
capaces de coger algún objeto, dado que habrá que teledirigirlos, y estos
constan de varios grados de libertad. Dado que el ecosistema HAURIA está
diseñado para personas tetrapléjicas, la teleoperación debe ser realizada
mediante XULIA empleando la voz, lo que hace la operación muchísimo más
complicada. Será necesario implementar un sistema de visión y procesado de
información visual que permita identificar y etiquetar su entorno. Para ello

265
Trabajo futuro en otros módulos de HAURIA

podría ejecutar una CNN (Convolutional Neural Network) del tipo de YOLO (You
Only Look Once), que permite identificar los objetos de la casa en tiempo real.
Junto con esta identificación, debe ser capaz de analizar su geometría para
poder cogerlos o manipularlos. Su geometría puede ser obtenida mediante la
extracción de las características del objeto empleando la visión estereoscópica
o de forma más sencilla mediante un mapeado por LIDAR de forma similar a
la propuesta descrita en el Anexo IX para ROMAI.

Actualmente toda la inteligencia de DANI se basa en la capacidad de


interpretación de patrones que le proporciona su cerebro basado en código
AIML. Es sabido que, a pesar de mostrar una conversación bastante similar a la
humana, ser capaz de memorizar conceptos pasados y seguir el contexto, su
conversación no es inteligente, sino que simula serlo. En este punto, podrían
emplearse modelos neuronales como GPT3 (Generative Pre-trained Transformer)
basados en tecnología de transformers que son capaces de generar textos
indistinguibles de los generados por humanos tras ser entrenada con miles de
millones de conversaciones.

Evolución de XULIA

Xulia se encuentra en un nivel de evolución avanzado, dado que es un


producto bastante maduro con múltiples instalaciones en entornos reales
desde hace varios años, aun así, puede mejorar en múltiples apartados.

Mejora del módulo de configuración

El módulo de configuración, aunque puede ser manejado por un usuario


inexperto es relativamente complejo. Dado que Xulia permite configurar tanto
los comandos orales, como las gramáticas, como el comportamiento de estos
comandos mediante una configuración de adición de macros preconfiguradas,
resulta algo complejo configurar nuevos comandos. Habría que desarrollar una
interface gráfica más amigable para mejorar las funcionalidades de
configuración.

Empleo de librerías de accesibilidad

266
Conclusiones y trabajo futuro

Con las gramáticas por aplicación, Xulia permite que se activen gramáticas con
comandos específicos cuando una aplicación pasa a primer plano, de forma
que es posible compartir comandos orales con la misma dicción, pero con
funcionalidades muy diferentes. El problema de esta funcionalidad es que
necesita ser configurada una vez para cada aplicación. Sería deseable que, en
muchos casos, Xulia fuera capaz de leer la pantalla, de forma que
automáticamente podría configurar comandos orales con los textos de los
botones, de las solapas o de los grupos de comandos en las cintas. Con esta
funcionalidad se podrían activar estos comandos directamente pronunciando
el texto que contienen, sin necesidad de haberlos configurado previamente.
Parte de estas capacidades son empleadas por los lectores de pantalla para
ciegos, aunque en estos casos resulta más sencillo, dado que normalmente
recuperan la información del control que se encuentra debajo del cursor o el
ratón. Implementar esta funcionalidad requeriría emplear complejas librerías
como la librería MSAA (Microsoft Active Accessibility) y UIA (User Interface
Automation) de Microsoft.

Empleo de los nuevos motores de reconocimiento de voz

Habría que seguir trabajando con las aplicaciones universales de Windows®,


dado que son capaces de emplear las APIs para interacción con Cortana, que
permitiría emplear los servicios avanzados de reconocimiento de voz de
Microsoft de modo gratuito. En los primeros intentos se ha comprobado que
presentan un grave problema, dado que paran automáticamente el motor de
reconocimiento de voz cuando dejan de estar en primer plano.

Mejora del sistema de reconocimiento de comandos complejos

Mediante su cerebro en AIML, Xulia es capaz de procesar comandos complejos


formados con frases completas que incluyen tanto el comando como los
parámetros. Actualmente permite buscar información general en la web,
información meteorológica y gestionar listas. También está en fase
experimental los comandos complejos para el envío de correos electrónicos.
Adicionalmente debería permitir más modalidades de envío de información

267
Trabajo futuro en otros módulos de HAURIA

por correo electrónico, posibilitando enviar directamente el último fichero


grabado en disco de determinado tipo acompañado de un asunto y un
contenido. Debería permitir buscar información en el correo entrante y abrir
el correo buscado, como establecer avisos para la llegada de un correo con
determinadas características. También debería tener comandos para gestionar
los calendarios, introduciendo nuevos eventos de forma directa o avisando de
eventos próximos.

Evolución de la red de nodos de HAURIA

Esta red de nodos, en la que están incluidas las balizas, son pequeñas placas de
hardware compuestos básicamente por el sistema de alimentación, un
microcontrolador y los sistemas de comunicaciones. Como se propuso en el
Apartado 9.2.1 sería necesario actualizar el hardware a placas ESP8250 con lo
que se incorporaría la funcionalidad de comunicación por Wifi. Esta tecnología
nos ofrece la oportunidad de comunicar nuestra red con altavoces inteligentes
como Alexa o Google Now, de forma que se podrían definir acciones con
comandos específicos para interactuar desde estos dispositivos directamente
con la red de sensores de HAURIA, e incluso con los robots que están
conectados a ella.

Evolución de la Infrabola

Actualmente la Infrabola soporta los protocolos de comunicación por


infrarrojos más comunes que son Aiwa, BoseWave, Denon, Dish, JVC, Lego, LG,
MagiQuest, Mitsubishi, Panasonic, RC5, RC6, Samsung, Sanyo, Sharp, Sony, Whynter.
Con ellos es capaz de reconocer los comandos de la mayor parte de los mandos
comerciales, y por nuestra experiencia, en algunos casos en los que no es capaz
de reconocer comandos específicos, sí que reconocer los comandos más
comunes como el encendido, apartado, mute y cambio de volumen y canales,
En los casos en los que no es capaz de reconocer el comando, habría que
implementar una funcionalidad de captura de los datos sin procesar, en raw,
de forma que recupera cada uno de los bits de la señal y la duración de los
mismos, para reproducir exactamente la misma secuencia, lo que posibilitaría

268
Conclusiones y trabajo futuro

la grabación de cualquier comando de forma independiente a la posibilidad


de procesado de su protocolo.

9.4 Resumen del capítulo


En este capítulo se han sintetizado los objetivos conseguidos en la tesis y se han
establecido líneas de evolución de gran parte de los productos que ha generado
este trabajo de investigación.

El capítulo se divide en dos partes muy diferenciadas, una de ellas es específica


de SAPPO y la otra expone diversas propuestas de mejora en varios módulos
del ecosistema HAUIRA, del que forma parte.

En la Sección 9.2 comienza justificando que el sistema de posicionamiento


desarrollado en esta tesis está acorde a los objetivos propuestos como hipótesis
en la Sección 1.2, tras lo que se enumeran diversas mejoras que resultan
interesantes en distintos ámbitos del sistema de posicionamiento, como son los
componentes electrónicos, los algoritmos de posicionamiento con señales
reflejadas, el posicionamiento concurrente de varios robots, la mejora del
alcance, la navegación a ciegas y la mejora de la precisión.

En la Sección 9.3 se proponen mejoras para varios de los módulos de HAURIA


entre los que se encuentran DANI, XULIA, la Infrabola y la red de sensores.

269
10 Referencias

[1] A. Losada González y M. Pérez Cota, «HAURIA. Unified accessible home:


Integral system of accessibility.,» de 12th Iberian Conference on Information
Systems and Technologies (CISTI), Lisboa, 2017.
https://doi.org/10.23919/CISTI.2017.7975705.
[2] A. Hevner y S. Chatterjee, Design Research in Information Systems: Theory
and Practice, 1 ed., Springer Publishing Company, Incorporated, 2010.
[3] S. T. March y G. F. Smith, «Design and natural science research on
information technology,» Decision Support Systems, vol. 15, nº 4, pp. 251-266,
1995. https://doi.org/10.1016/0167-9236(94)00041-2.
[4] A. R. Hevner, «A three cycle view of design science research,» Scandinavian
journal of information systems, vol. 19, nº 2, p. 4, 2007.
[5] L. M. Gladence, V. M. Anu, R. Rathna y E. Brumancia, «Recommender
system for home automation using IoT and artificial intelligence,» Journal
of Ambient Intelligence and Humanized Computing, 19 04 2020.
https://doi.org/10.1007/s12652-020-01968-2.
[6] M. Chan, C. Hariton, P. Ringeard y E. Campo, «Smart house automation
system for the elderly and the disabled,» de 1995 IEEE International
Conference on Systems, Man and Cybernetics. Intelligent Systems for the 21st Century,
1995. https://doi.org/10.1109/ICSMC.1995.537998.
[7] A. Recuero, «La domótica como medio para la vida independiente de
discapacitados y personas de la tercera edad,» Informes de la Construcción
(CSIC), vol. 50, nº 459, pp. 55-59, 28 02 1999.
https://doi.org/10.3989/ic.1999.v50.i459.831.
[8] P. Harmo, T. Taipalus, J. Knuuttila, J. Vallet y A. Halme, «Needs and
solutions - home automation and service robots for the elderly and
disabled,» de 2005 IEEE/RSJ International Conference on Intelligent Robots and
Systems, 2005. https://doi.org/10.1109/IROS.2005.1545387.
[9] F. Grossi, V. Bianchi, G. Matrella, I. De Munari y P. Ciampolini, «An Assistive
Home Automation and Monitoring System,» de 2008 Digest of Technical
Papers - International Conference on Consumer Electronics, 2008.
https://doi.org/10.1109/ICCE.2008.4588080.
[10] G. Arun Francis, S. Lexmitha, N. Aruna Devi y K. Swathika C., «Embedded
System based Smart Automation for Elderly and Disabled People,» Annals
of the Romanian Society for Cell Biology, pp. 9909-9917, 2021.

271
[11] A. Z. Alkar y U. Buhur, «An Internet based wireless home automation
system for multifunctional devices,» IEEE Transactions on Consumer
Electronics, vol. 51, nº 4, p. 1169–1174, 2005.
[12] W.-C. Tsai, S.-X. Zhu, M.-H. Lu, J. Merzoug, C. Yu y I. Huang, «An
implementation of IoT gateway for home appliances control over cellular
network,» de 2017 IEEE 8th International Conference on Awareness Science and
Technology (iCAST), 2017. https://doi.org/10.1109/ICAwST.2017.8256488.
[13] R. A. Aqeel-ur-Rehman y H. Khursheed, «Voice controlled home
automation system for the elderly or disabled people,» J. Appl. Environ. Biol.
Sci, vol. 4, nº 85, p. 55–64, 2014.
[14] Xiaohua Zeng, A. O. Fapojuwo y R. J. Davies, «Design and performance
evaluation of voice activated wireless home devices,» IEEE Transactions on
Consumer Electronics, vol. 52, nº 3, pp. 983-989, 2006.
https://doi.org/10.1109/TCE.2006.1706497.
[15] J. Pierce, «An Introduction to Loran,» Proceedings of the IRE, vol. 34, nº 5, pp.
216-234, 1946-05. https://doi.org/10.1109/JRPROC.1946.234564.
[16] W. F. Blanchard, «Air Navigation Systems Chapter 4. Hyperbolic Airborne
Radio Navigation Aids – A Navigator's View of their History and
Development,» The Journal of Navigation, vol. 44, nº 3, pp. 285-315, 1991/09.
https://doi.org/10.1017/S0373463300010092.
[17] J. Hopkins, «An Overview of Transit Development,» APL Technical Digest,
vol. 19, nº 1, pp. 18-26, 1998.
[18] E. R. Swanson y M. L. Tibbals, «THE OMEGA NAVIGATION SYSTEM,»
NAVIGATION, Journal of the Institute of Navigation, vol. 12, nº 1, pp. 24-35,
1965.
[19] «eleconomista.es,» 2022. [En línea]. Available:
https://www.eleconomista.es/economia/noticias/11145029/04/21/Estos-
son-los-paises-con-mas-robots-trabajando-por-humano-Espana-entre-
ellos.html. [Último acceso: 27 01 2022].
[20] «Fraunhofer-Institut für Produktionstechnik und Automatisierung IPA,»
2022. [En línea]. Available: https://www.ipa.fraunhofer.de/.
[21] «International Federation of Robotics,» 2022. [En línea]. Available:
https://ifr.org/.
[22] «NASA. MARS Exploration Program,» 2022. [En línea]. Available:
https://mars.nasa.gov/#.
[23] A. Barrientos, «Nuevas aplicaciones de la robótica. Robots de servicio,»
Cuenca, 2002.

272
Referencias

[24] C. Jayawardena, I. H. Kuo, U. Unger, A. Igic, R. Wong, C. I. Watson, R. Q.


Stafford, E. Broadbent, P. Tiwari y J. Warren, «Deployment of a service
robot to help older people,» de 2010 IEEE/RSJ International Conference on
Intelligent Robots and Systems, 2010.
https://doi.org/10.1109/IROS.2010.5649910.
[25] N. Roy, G. Baltus, D. Fox, F. Gemperle, J. Goetz, T. Hirsch, D. Margaritis,
M. Montemerlo, J. Pineau y J. Schulte, «Towards personal service robots for
the elderly,» de Workshop on Interactive Robots and Entertainment (WIRE 2000),
2000.
[26] J. González, C. Galindo, J. A. Fernández, J. L. Blanco, A. Muñoz y V. Arévalo,
«La silla robótica SENA. Un enfoque basado en la interacción hombre-
máquina,» Revista Iberoamericana de Automática e Informática Industrial RIAI,
vol. 5, nº 2, p. 38–47, 2008.
[27] H. Jiang, J. Yi, K. Zhou y X. Zhu, «A decision-making methodology for the
cloud-based recycling service of smart products: a robot vacuum cleaner
case study,» International Journal of Computer Integrated Manufacturing, vol. 32,
nº 1, pp. 58-71, 2019. https://doi.org/10.1080/0951192X.2018.1535195.
[28] A. Saleem, A. Iqbal, A. Sabir y A. hussain, «Design and Implementation of
an Intelligent Dust Cleaner Robot for Uneven and Nonstructural
Environment,» de 2019 2nd International Conference on Computing,
Mathematics and Engineering Technologies (iCoMET), 2019-01.
https://doi.org/10.1109/ICOMET.2019.8673450.
[29] H.-G. Kim, J.-Y. Yang y D.-S. Kwon, «Experience based domestic
environment and user adaptive cleaning algorithm of a robot cleaner,» de
2014 11th International Conference on Ubiquitous Robots and Ambient Intelligence
(URAI), 2014-11. https://doi.org/10.1109/URAI.2014.7057525.
[30] N. Elkmann, T. Felsch, M. Sack, J. Saenz y J. Hortig, «Innovative service
robot systems for facade cleaning of difficult-to-access areas,» de IEEE/RSJ
International Conference on Intelligent Robots and Systems, 2002-09.
https://doi.org/10.1109/IRDS.2002.1041481.
[31] M. T. A. Salazar, R. V. B. Chalan, D. E. B. Astudillo y A. D. N. Agurto,
«Propuesta de prototipo de robot aspiradora de bajo costo y alta tecnología
aplicado a procesos de limpieza de baja escala,» Revista Ciencia y Tecnología,
vol. 13, nº 1, pp. 105-112, 2020.
[32] H. M. Do, C. J. Mouser, Y. Gu, W. Sheng, S. Honarvar y T. Chen, «An open
platform telepresence robot with natural human interface,» de 2013 IEEE
International Conference on Cyber Technology in Automation, Control and
Intelligent Systems, 2013. https://doi.org/10.1109/CYBER.2013.6705424.
[33] X. Zhu, Z. Li, W. Ye y Z. Haoran, «Event-based tele-presence of a mobile
service robot,» de 2011 IEEE International Workshop on Haptic Audio Visual

273
Environments and Games, 2011.
https://doi.org/10.1109/HAVE.2011.6088386.
[34] J. Serra Ortega y G. Alenyà Ribas, «Robot de telepresencia: imatge i so,»
2013.
[35] J.-H. Jean, K.-T. Chen, K.-Y. Shih y H.-L. Lin, «Design of an entertainment
robot with multimodal human-robot interactions,» de 2008 SICE Annual
Conference, 2008. https://doi.org/10.1109/SICE.2008.4654884.
[36] K. Sabe, «Development of entertainment robot and its future,» de Digest of
Technical Papers. 2005 Symposium on VLSI Circuits, 2005., 2005.
https://doi.org/10.1109/VLSIC.2005.1469320.
[37] A. Ming, K. Enomoto, M. Shinozaki , R. Sato y M. Shimojo, «Development
of an entertainment robot system using Kinect,» de 2014 10th France-Japan/
8th Europe-Asia Congress on Mecatronics (MECATRONICS2014- Tokyo), 2014.
https://doi.org/10.1109/MECATRONICS.2014.7018621.
[38] H. S. Ahn, C. Datta, I.-H. Kuo, R. Stafford, N. Kerse, K. Peri, E. Broadbent y
B. A. MacDonald, «Entertainment services of a healthcare robot system for
older people in private and public spaces,» de 2015 6th International
Conference on Automation, Robotics and Applications (ICARA), 2015.
https://doi.org/10.1109/ICARA.2015.7081150.
[39] S. Domínguez, E. Zalama y J. G. García-Bermejo, «“ARISCO” un robot social
con capacidad de interacción, motivación y aprendizaje,» Revista
Iberoamericana de Automática e Informática Industrial RIAI, vol. 5, nº 2, p. 69–
78, 2008.
[40] A. M. TITU, A. STANCIU y L. MIHAESCU, «Technological and ethical
aspects of autonomous driving in a multicultural society,» de 2020 12th
International Conference on Electronics, Computers and Artificial Intelligence
(ECAI), 2020.
[41] M. A. Islam y S. I. Rashid, «Algorithm for Ethical Decision Making at Times
of Accidents for Autonomous Vehicles,» de 2018 4th International Conference
on Electrical Engineering and Information Communication Technology (iCEEiCT),
2018. https://doi.org/10.1109/CEEICT.2018.8628155.
[42] K. Severinson-Eklundh, A. Green y H. Hüttenrauch, «Social and
collaborative aspects of interaction with a service robot,» Robotics and
Autonomous systems, vol. 42, nº 3-4, p. 223–234, 2003.
[43] S. M. García, Ética e inteligencia artificial, IESE Business School University of
Navarra, Cátedra CaixaBank de …, 2019.
[44] G. Bermudez, «Modelamiento cinemático y odométrico de robots móviles,»
Tecnura, vol. 6, nº 12, pp. 19-30, 2003.
https://doi.org/10.14483/22487638.6131.

274
Referencias

[45] J. G. Jiménez y A. O. Baturone, «Estimación de la posición de un Robot


Móvil,» Automática, vol. 29, p. 3–18, 1996.
[46] H. Kitano, M. Asada, Y. Kuniyoshi, I. Noda y E. Osawa, «RoboCup: The
Robot World Cup Initiative,» de Proceedings of the first international conference
on Autonomous agents, February 8, 1997, 1997.
https://doi.org/10.1145/267658.267738.
[47] H.-D. Burkhard, D. Duhaut, M. Fujita, P. Lima, R. Murphy y R. Rojas, «The
road to RoboCup 2050,» IEEE Robotics & Automation Magazine, vol. 9, nº 2,
p. 31–38, 2002. https://doi.org/10.1109/MRA.2002.1019488.
[48] M. Asada, H. Kitano, I. Noda y M. Veloso, «RoboCup: Today and
tomorrow—What we have learned,» Artificial Intelligence, vol. 110, nº 2, p.
193–214, 1999.
[49] T. van der Zant, T. Wisspeintner y P. Lima, «Robocup@ home: Creating and
benchmarking tomorrows service robot applications,» de Robotic Soccer,
Vienna, Austria, Pedro Lima, 2007, pp. 522-528.
[50] R. Mautz, «Overview of current indoor positioning systems,» GEODEZIJA IR
KARTOGRAFIJA / GEODESY AND CARTOGRAPHY, vol. 35, nº 1, pp. 18-22,
2009.
[51] L. C. Png, L. Chen, S. Liu y W. K. Peh, «An Arduino-based indoor
positioning system (IPS) using visible light communication and
ultrasound,» de 2014 IEEE International Conference on Consumer Electronics -
Taiwan, May 2014. https://doi.org/10.1109/ICCE-TW.2014.6904066.
[52] G. del Campo-Jimenez, J. M. Perandones y F. J. Lopez-Hernandez, «A VLC-
based beacon location system for mobile applications,» de 2013 International
Conference on Localization and GNSS (ICL-GNSS), 2013.
[53] X. Wang, H. Yang y J. Song, «A VLC-based robust ID broadcasting indoor
location system for mobile devices,» de 2016 IEEE International Symposium on
Broadband Multimedia Systems and Broadcasting (BMSB), 2016.
https://doi.org/10.1109/BMSB.2016.7521922.
[54] W. Zhang y M. Kavehrad, «Comparison of VLC-based indoor positioning
techniques,» de Broadband access communication technologies VII, 2013.
[55] S.-J. Lee, S.-J. Yoo y S.-Y. Jung, «VLC-based indoor location awareness using
LED light and image sensors,» de Optoelectronic Imaging and Multimedia
Technology II.
[56] X. Liu, H. Makino y Y. Maeda, «Basic study on indoor location estimation
using visible light communication platform,» de 2008 30th Annual
International Conference of the IEEE Engineering in Medicine and Biology Society,
2008. https://doi.org/10.1109/IEMBS.2008.4649677.

275
[57] S. H. Jang, «A qr code-based indoor navigation system using augmented
reality,» de GIScience–Seventh International Conference on Geographic Information
Science, USA, 2012.
[58] M. F. IŞIK, E. IŞIK, M. A. BÜLBÜL y İ. B. KARAŞİN, «QR Code application
for geometric location and information of historical structures,» de
International Conference on Advanced Engineering Technologies (ICADET 2017),
2017.
[59] Z. Ayop, C. Yee, S. Anawar, E. Hamid y M. Syahrul, «Location-aware event
attendance system using QR code and GPS technology,» International
Journal of Advanced Computer Science and Applications, vol. 9, nº 9, p. 466–473,
2018.
[60] Y. Nakazato, M. Kanbara y N. Yokoya, «Localization system for large indoor
environments using invisible markers,» de Proceedings of the 2008 ACM
symposium on Virtual reality software and technology, New York, NY, USA, 2008.
https://doi.org/10.1145/1450579.1450660.
[61] Y. D. V. Yasuda, L. E. G. Martins y F. A. M. Cappabianco, «Autonomous
Visual Navigation for Mobile Robots: A Systematic Literature Review,» ACM
Computing Surveys, vol. 53, nº 1, p. 13:1–13:34, February 5, 2020.
https://doi.org/10.1145/3368961.
[62] M. H. F. M. Fauadi, S. Akmal, M. M. Ali, N. I. Anuar, S. Ramlan, A. Z. M.
Noor y N. Awang, «Intelligent vision-based navigation system for mobile
robot: A technological review,» Periodicals of Engineering and Natural Sciences
(PEN), vol. 6, nº 2, p. 47–57, 2018.
[63] S. Thrun, A. Bucken, W. Burgard, D. Fox, T. Frohlinghaus, D. Hennig, T.
Hofmann, M. Krell y T. Schmidt, Map learning and high-speed navigation in
RHINO, 1998.
[64] P. Arena, A. Basile, L. Fortuna y M. Frasca, «CNN wave based computation
for robot navigation planning,» de 2004 IEEE International Symposium on
Circuits and Systems (IEEE Cat. No.04CH37512), 2004-05.
https://doi.org/10.1109/ISCAS.2004.1329695.
[65] I. Gavrilut, V. Tiponut y A. Gacsadi, «Mobile Robot Navigation based on
CNN Images Processing–An Experimental Setup,» Wseas Transactions on
systems, ISSN, p. 1109–2777, 2009.
[66] A. Kouris y C.-S. Bouganis, «Learning to Fly by MySelf: A Self-Supervised
CNN-Based Approach for Autonomous Navigation,» de 2018 IEEE/RSJ
International Conference on Intelligent Robots and Systems (IROS), 2018.
https://doi.org/10.1109/IROS.2018.8594204.
[67] Z. Xu, S. Huang y J. Ding, «A new positioning method for indoor laser
navigation on under-determined condition,» de 2016 Sixth International

276
Referencias

Conference on Instrumentation & Measurement, Computer, Communication and


Control (IMCCC).
[68] Y. Zhao, F. Liu y R. Wang, «Location technology of indoor robot based on
laser sensor,» de 2016 7th IEEE International Conference on Software Engineering
and Service Science (ICSESS), 2016.
https://doi.org/10.1109/ICSESS.2016.7883160.
[69] J. Tang, Y. Chen, A. Jaakkola, J. Liu, J. Hyyppä y H. Hyyppä, «NAVIS-An
UGV indoor positioning system using laser scan matching for large-area
real-time applications,» Sensors, vol. 14, nº 7, p. 11805–11824, 2014.
[70] S. Hernández, J. M. Torres, L. Acosta, C. A. Morales, R. L. Marichal y E. J.
González, «UN NUEVO SISTEMA DE BAJO COSTE PARA LA
LOCALIZACIÓN DE ROBOTS AUTÓNOMOS». España Patente
P200302834, 18 Enero 2018.
[71] H. Yucel, R. Edizkan, T. Ozkir y A. Yazici, «Development of indoor
positioning system with ultrasonic and infrared signals,» de 2012
International Symposium on Innovations in Intelligent Systems and Applications,
2012. https://doi.org/10.1109/INISTA.2012.6246983.
[72] T. Raharijaona, R. Mawonou, T. V. Nguyen, F. Colonnier, M. Boyron, J.
Diperi y S. Viollet, «Local positioning system using flickering infrared leds,»
Sensors, vol. 17, nº 11, p. 2518, 2017.
[73] B. Tas, N. Altiparmak y A. Ş. Tosun, «Low-cost indoor location management
for robots using IR leds and an IR camera,» ACM Transactions on Sensor
Networks (TOSN), vol. 10, nº 4, p. 1–41, 2014.
[74] D. Rodríguez Navarro, J. L. Lázaro Galilea, Á. De La Llana Calvo, A. Gardel
Vicente, I. Bravo Muñoz y F. Espinosa Zapata, «Posicionamiento en
Interiores de Alta Precisión Utilizando Tecnología Infrarroja,» de SAAEI,
Ciudad Real, 2019.
[75] R. Want, A. Hopper, V. Falcao y J. Gibbons, «The active badge location
system,» ACM Transactions on Information Systems (TOIS), vol. 10, nº 1, p. 91–
102, 1992.
[76] S. Rozum y J. Sebestra, «SIMO RSS measurement in Bluetooth low power
indoor positioning system Publisher:,» de 2018 28th International Conference
Radioelektronika (RADIOELEKTRONIKA), Prague, Czech Republic, 2018.
https://doi.org/10.1109/RADIOELEK.2018.8376391.
[77] T. Murat y H. Aysenur, «Indoor Location Finding of the Transmitter Based
on Bluetooth Received Signal Strength,» de 2019 International Symposium on
Networks, Computers and Communications (ISNCC), Istanbul, Turkey, 2019.
https://doi.org/10.1109/ISNCC.2019.8909095.
[78] K. Padmapriya, C. Naga Sai Ravali, A. Supraja Reddy, K. Satyanarayana y A.
Dattatreya Sarma, «Design and Implementation of Bluetooth-Beacon Based

277
Indoor Positioning System,» de 2019 IEEE International WIE Conference on
Electrical and Computer Engineering (WIECON-ECE), Bangalore, India, 2019.
https://doi.org/10.1109/WIECON-ECE48653.2019.9019997.
[79] P. Bahl y V. Padmanabhan, «RADAR: an in-building RF-based user location
and tracking system,» de Proceedings IEEE INFOCOM 2000. Conference on
Computer Communications. Nineteenth Annual Joint Conference of the IEEE
Computer and Communications Societies (Cat. No.00CH37064), 2000-03.
https://doi.org/10.1109/INFCOM.2000.832252.
[80] Decawave, «Decawave,» Decawave, 21 Diciembre 2021. [En línea].
Available: https://www.decawave.com/. [Último acceso: 21 Diciembre
2021].
[81] P. Amores Cuenca, «Estudio del módulo DWM1001 de Decawave para la
medida de rangos en UWB,» ebuah, 2021.
[82] pozys, «pozys,» pozys, 2021. [En línea]. Available: https://www.pozyx.io/.
[Último acceso: 20 Diciembre 2021].
[83] J. Chung, M. Donahoe, C. Schmandt, I.-J. Kim, P. Razavai y M. Wiseman,
«Indoor location sensing using geo-magnetism,» de Proceedings of the 9th
international conference on Mobile systems, applications, and services, New York,
NY, USA, June 28, 2011. https://doi.org/10.1145/1999995.2000010.
[84] L. Binghao, T. Gallagher, A. G. Dempster y C. Rizos, «How feasible is the
use of magnetic field alone for indoor positioning?,» de 2012 International
Conference on Indoor Positioning and Indoor Navigation (IPIN), 2012.
https://doi.org/10.1109/IPIN.2012.6418880.
[85] W. Storms, J. Shockley y J. Raquet, «Magnetic field navigation in an indoor
environment,» de 2010 Ubiquitous Positioning Indoor Navigation and Location
Based Service, 2010. https://doi.org/10.1109/UPINLBS.2010.5653681.
[86] «LANDMARC: indoor location sensing using active RFID,» de Proceedings of
the First IEEE International Conference on Pervasive Computing and
Communications, 2003. (PerCom 2003)., 2003.
https://doi.org/10.1109/PERCOM.2003.1192765.
[87] S. S. Saab y Z. S. Nakad, «A Standalone RFID Indoor Positioning System
Using Passive Tags,» IEEE Transactions on Industrial Electronics, vol. 58, nº 5,
pp. 1961-1970, 2011-05. https://doi.org/10.1109/TIE.2010.2055774.
[88] B. Olszewski, S. Fenton, B. Tworek, J. Liang y K. Yelamarthi, «RFID
positioning robot: An indoor navigation system,» de IEEE International
Conference on Electro-Information Technology , EIT 2013, May 2013.
https://doi.org/10.1109/EIT.2013.6632687.
[89] H.-S. Kim y J.-S. Choi, «Advanced indoor localization using ultrasonic sensor
and digital compass,» de Control, Automation and Systems, 2008. ICCAS 2008.
International Conference on, 2008.

278
Referencias

[90] Z. Junhui y Y. Yongcai , «Autonomous Ultrasonic Indoor Tracking System,»


de 2008 IEEE International Symposium on Parallel and Distributed Processing with
Applications, December 2008. https://doi.org/10.1109/ISPA.2008.37.
[91] J. Villadangos, J. Ureña, M. Mazo, A. Hernández, C. De Marziani, M. Pérez,
F. Alvarez, J. J. García, A. Jiménez y I. Gude, «Ultrasonic local positioning
system with large covered area,» de Intelligent Signal Processing, 2007. WISP
2007. IEEE International Symposium on, 2007.
https://doi.org/10.1109/WISP.2007.4447508.
[92] Y. Hiromichi, S. Akimasa y I. Taketoshi , «An information addition
technique for indoor self-localization systems using SS ultrasonic waves,» de
2012 International Conference on Indoor Positioning and Indoor Navigation
(IPIN). https://doi.org/10.1109/IPIN.2012.6418925.
[93] L. Runmin , D. Zhonghui , Z. Yu y L. Shuhua , «Design and implementation
of mobile robot ultrasonic localization system,» de 2016 Chinese Control and
Decision Conference (CCDC), May 2016.
https://doi.org/10.1109/CCDC.2016.7531954.
[94] M. Hazas y A. Ward, «A novel broadband ultrasonic location system,» de
International Conference on Ubiquitous Computing, 2002.
[95] U. Yayan y U. Ugur , «A low cost ultrasonic based positioning system for the
indoor navigation of mobile robots,» Journal of Intelligent & Robotic Systems,
vol. 78, nº 3-4, p. 541–552, 2015.
[96] K. Hwang, D. Kim, D. Lee y T. Kuc, «A Simple Ultrasonic GPS System for
Indoor Mobile Robot System using Kalman Filtering,» de 2006 SICE-ICASE
International Joint Conference, October 2006.
https://doi.org/10.1109/SICE.2006.314996.
[97] J. C. Prieto, A. R. Jimenez, J. Guevara, J. L. Ealo, F. Seco, J. O. Roa y F.
Ramos, «Performance Evaluation of 3D-LOCUS Advanced Acoustic LPS,»
IEEE Transactions on Instrumentation and Measurement, vol. 58, nº 8, pp. 2385-
2395, 2009-08. https://doi.org/10.1109/TIM.2009.2016378.
[98] A. Mandal, C. Lopes, T. Givargis, A. Haghighat, R. Jurdak y P. Baldi, «Beep:
3D indoor positioning using audible sound,» de Second IEEE Consumer
Communications and Networking Conference, 2005. CCNC. 2005, 2005.
https://doi.org/10.1109/CCNC.2005.1405195.
[99] I. Constandache, S. Agarwal, I. Tashev y R. R. Choudhury, «Daredevil:
indoor location using sound,» ACM SIGMOBILE Mobile Computing and
Communications Review, vol. 18, nº 2, pp. 9-19, 2014.
https://doi.org/10.1145/2636242.2636245.
[100] J. N. Moutinho, R. E. Araújo y D. Freitas, «Indoor localization with audible
sound — Towards practical implementation,» Pervasive and Mobile

279
Computing, vol. 29, pp. 1-16, 2016.
https://doi.org/10.1016/j.pmcj.2015.10.016.
[101] D. Webster, «A pulsed ultrasonic distance measurement system based upon
phase digitizing,» IEEE transactions on instrumentation and measurement, vol.
43, nº 4, p. 578–582, 1994. https://doi.org/10.1109/19.310171.
[102] . J. L. Seok , J. Jongil , T. Girma y K. Jaerock , «Autonomous tour guide robot
by using ultrasonic range sensors and QR code recognition in indoor
environment,» de IEEE International Conference on Electro/Information
Technology, June 2014. https://doi.org/10.1109/EIT.2014.6871799.
[103] M. I. Bonilla, F. Q. Novelo, I. G. Enríquez y J. R. Cortés, «Desplazamiento
de un robot con localización y evasión de obstáculos por visión y
ultrasonido,» de Congreso Nacional de Ingeniería Electrónica del Golfo-
CONAGOLFO, 2009.
[104] . B.-S. Mounir , R. Abdelghani , F. Mohamed y B. Maamar , «An ultrasonic
navigation system for blind people,» de Signal Processing and Communications,
2007. ICSPC 2007. IEEE International Conference on, 2007.
https://doi.org/10.1109/EHB.2015.7391545.
[105] J. Lim, S. Lee, G. Tewolde y J. Kwon, «Indoor localization and navigation
for a mobile robot equipped with rotating ultrasonic sensors using a
smartphone as the robot's brain,» de 2015 IEEE International Conference on
Electro/Information Technology (EIT), May 2015.
https://doi.org/10.1109/EIT.2015.7293407.
[106] N. Hidayah Binti Abd Khafar, D. Muhammad Soomro, R. Abd Rahman, M.
Noor Abdullah, I. Ahmed Soho y A. Ahmed Rahimoon, «Intelligent
Navigation System using Ultrasonic Sensor for Visually Impaired Person
(VIP),» de 2019 IEEE 6th International Conference on Engineering Technologies
and Applied Sciences (ICETAS), December 2019.
https://doi.org/10.1109/ICETAS48360.2019.9117297.
[107] V. Filonenko, C. Cullen y J. Carswell, «Investigating ultrasonic positioning
on mobile phones,» de 2010 International Conference on Indoor Positioning and
Indoor Navigation, Sep. 2010. https://doi.org/10.1109/IPIN.2010.5648235.
[108] H. Costelha y C. Neves, «Localization and navigation of a mobile robot in
an office-like environment,» de 2013 13th International Conference on
Autonomous Robot Systems, April 2013.
https://doi.org/10.1109/Robotica.2013.6623536.
[109] E. Fabrizi, G. Oriolo, S. Panzieri y G. Ulivi, «Mobile robot localization via
fusion of ultrasonic and inertial sensor data,» de Proceedings of the 8th
International Symposium on Robotics with Applications, Maui, USA, 2000.
[110] W.-J. Yi, S. Gilliland y J. Saniie, «Mobile ultrasonic signal processing system
using Android smartphone,» de 2013 IEEE 56th International Midwest

280
Referencias

Symposium on Circuits and Systems (MWSCAS), 2013-08.


https://doi.org/10.1109/MWSCAS.2013.6674886.
[111] L. Zhang y L. Zhao, «Research of ultrasonic distance measurement system
based on DSP,» de 2011 International Conference on Computer Science and
Service System (CSSS), 2011-06.
https://doi.org/10.1109/CSSS.2011.5974489.
[112] E. Stella, G. Cicirelli, G. Attolico y A. Distante, «SAURO: an autonomous
mobile vehicle for indoor environment,» de Proceedings of 8th Mediterranean
Electrotechnical Conference on Industrial Applications in Power Systems, Computer
Science and Telecommunications (MELECON 96), May 1996.
https://doi.org/10.1109/MELCON.1996.551410.
[113] S. Kulkarni y S. Junghare, «Robot based indoor autonomous trash detection
algorithm using ultrasonic sensors,» de 2013 International Conference on
Control, Automation, Robotics and Embedded Systems (CARE), December 2013.
https://doi.org/10.1109/CARE.2013.6733698.
[114] E. Papadopoulos y M. Misailidis, «On differential drive robot odometry with
application to path planning,» de 2007 European Control Conference (ECC),
2007-07. https://doi.org/10.23919/ECC.2007.7068785.
[115] A. Lindo, M. d. C. Pérez, J. Ureña, D. Gualda, E. García y J. M. Villadangos,
«Ultrasonic signal acquisition module for smartphone indoor positioning,»
de Proceedings of the 2014 IEEE Emerging Technology and Factory Automation
(ETFA), Sep. 2014. https://doi.org/10.1109/ETFA.2014.7005315.
[116] S. Jin Kim y B. Kook Kim, «Dynamic Ultrasonic Hybrid Localization System
for Indoor Mobile Robots,» IEEE Transactions on Industrial Electronics, vol. 60,
nº 10, pp. 4562-4573, October 2013.
https://doi.org/10.1109/TIE.2012.2216235.
[117] R. Kumar Nath, R. Bajpai y H. Thapliyal, «IoT based indoor location
detection system for smart home environment,» de 2018 IEEE International
Conference on Consumer Electronics (ICCE), January 2018.
https://doi.org/10.1109/ICCE.2018.8326225.
[118] E. Dijk, C. van Berkel, R. Aarts y E. van Loenen, «3-D indoor positioning
method using a single compact base station,» de Second IEEE Annual
Conference on Pervasive Computing and Communications, 2004. Proceedings of the,
March 2004. https://doi.org/10.1109/PERCOM.2004.1276849.
[119] A. De Angelis, A. Moschitta, P. Carbone, M. Calderini, S. Neri, R. Borgna y
M. Peppucci, «Design and characterization of a portable ultrasonic indoor
3-D positioning system,» IEEE Transactions on Instrumentation and
Measurement, vol. 64, nº 10, p. 2616–2625, 2015.
https://doi.org/10.1109/TIM.2015.2427892.
[120] M. O. Khyam, M. J. Alam, A. J. Lambert, M. A. Garratt y M. R. Pickering,
«High-Precision OFDM-Based Multiple Ultrasonic Transducer Positioning

281
Using a Robust Optimization Approach,» IEEE Sensors Journal, vol. 16, nº 13,
pp. 5325-5336, July 2016. https://doi.org/10.1109/JSEN.2016.2557817.
[121] Y. Nakamura, R. Kobayashi, M. Minami y T. Nishimura, «Implementation
of indoor location and orientation estimation system using ultrasonic and
radio,» de SICE Annual Conference 2007, Sept 2007.
https://doi.org/10.1109/SICE.2007.4421404.
[122] S. Y. Kim, K. Sup Yoon, D. Hwal Lee y M. Hyung Lee, «The localization of a
mobile robot using a pseudolite ultrasonic system and a dead reckoning
integrated system,» International Journal of Control, Automation and Systems,
vol. 9, nº 2, p. 339, 2011.
[123] Y. Fukuju, M. Minami, H. Morikawa y T. Aoyama, «DOLPHIN: an
autonomous indoor positioning system in ubiquitous computing
environment,» de Proceedings IEEE Workshop on Software Technologies for Future
Embedded Systems. WSTFES 2003, May 2003.
https://doi.org/10.1109/WSTFES.2003.1201360.
[124] A. Sanchez, S. Elvira, A. de Castro, G. Glez-de-Rivera, R. Ribalda y J. Garrido,
«Low cost indoor ultrasonic positioning implemented in FPGA,» de 2009
35th Annual Conference of IEEE Industrial Electronics, November 2009.
https://doi.org/10.1109/IECON.2009.5415427.
[125] Y. Itagaki, A. Suzuki y T. Iyota, «Indoor positioning for moving objects using
a hardware device with spread spectrum ultrasonic waves,» de 2012
International Conference on Indoor Positioning and Indoor Navigation (IPIN),
November 2012. https://doi.org/10.1109/IPIN.2012.6418850.
[126] M. M. Saad, C. J. Bleakley y S. Dobson, «Robust high-accuracy ultrasonic
range measurement system,» IEEE Transactions on Instrumentation and
Measurement, vol. 60, nº 10, p. 3334–3341, 2011.
https://doi.org/10.1109/TIM.2011.2128950.
[127] J. Gonzalez y C. Bleakley, «Robust Ultrasonic Spread-Spectrum Positioning
System using a AoA/ToA Method,» de 2007 IEEE International Symposium on
Intelligent Signal Processing, October 2007.
https://doi.org/10.1109/WISP.2007.4447607.
[128] E. Díaz, M. C. Pérez, D. Gualda, J. Villadangos, J. Ureña y J. García,
«Ultrasonic indoor positioning for smart environments: A mobile
application,» de 2017 4th Experiment@International Conference (exp.at'17),
June 2017. https://doi.org/10.1109/EXPAT.2017.7984382.
[129] L. Kleeman, «Ultrasonic autonomous robot localisation system,» de
Intelligent Robots and Systems' 89. The Autonomous Mobile Robots and Its
Applications. IROS'89. Proceedings., IEEE/RSJ International Workshop on, 1989.
https://doi.org/10.1109/IROS.1989.637909.
[130] P. C. García, «Sistema de Localización en Interiores por Ultrasonido,» ACI
Avances en Ciencias e Ingenierías, vol. 4, nº 1, 2012.

282
Referencias

[131] P. Lazik, N. Rajagopal, O. Shih, B. Sinopoli y A. Rowe, «Demo: ALPS -- The


Acoustic Location Processing System,» de Proceedings of the 13th ACM
Conference on Embedded Networked Sensor Systems, New York, NY, USA,
November 1, 2015. https://doi.org/10.1145/2809695.2817869.
[132] S. Latif, R. Tariq, W. Haq y U. Hashmi, «INDOOR POSITIONING SYSTEM
using ultrasonics,» de Proceedings of 2012 9th International Bhurban Conference
on Applied Sciences Technology (IBCAST), 2012-01.
https://doi.org/10.1109/IBCAST.2012.6177596.
[133] A. Nishitani, Y. Nishida y H. Mizoguch, «Omnidirectional ultrasonic
location sensor,» de 2005 IEEE SENSORS, October 2005.
https://doi.org/10.1109/ICSENS.2005.1597791.
[134] T. Arai y E. Nakano, «Development of Measuring Equipment for Location
and Direction (MELODI) Using Ultrasonic Waves,» Journal of Dynamic
Systems, Measurement, and Control, vol. 105, nº 3, pp. 152-156, September 1,
1983. https://doi.org/10.1115/1.3140649.
[135] A. Suzuki, T. Iyota y K. Watanabe, «Real-time distance measurement for
indoor positioning system using spread spectrum ultrasonic waves,» de
Ultrasonic Waves, InTech, 2012, pp. 174-188.
[136] D. Ruiz, E. García, J. Ureña, D. de Diego, D. Gualda y J. C. García,
«Extensive ultrasonic local positioning system for navigating with mobile
robots,» de Positioning Navigation and Communication (WPNC), 2013 10th
Workshop on, 2013.
[137] J. Gonzalez y C. Bleakley, «Accuracy of Spread Spectrum Techniques for
Ultrasonic Indoor Location,» de 2007 15th International Conference on Digital
Signal Processing, July 2007. https://doi.org/10.1109/ICDSP.2007.4288574.
[138] M. Hazas y A. Hopper, «Broadband ultrasonic location systems for
improved indoor positioning,» IEEE Transactions on Mobile Computing, vol. 5,
nº 5, pp. 536-547, May 2006. https://doi.org/10.1109/TMC.2006.57.
[139] M. M. Saad, C. J. Bleakley, T. Ballal y S. Dobson, «High-Accuracy Reference-
Free Ultrasonic Location Estimation - IEEE Journals & Magazine,» IEEE
Transactions on Instrumentation and Measurement, vol. 61, nº 6, pp. 1561-1570,
2012-06. https://doi.org/10.1109/TIM.2011.2181911.
[140] J. González y C. Bleakley, «High-Precision Robust Broadband Ultrasonic
Location and Orientation Estimation,» IEEE Journal of Selected Topics in
Signal Processing, vol. 3, nº 5, pp. 832-844, October 2009.
https://doi.org/10.1109/JSTSP.2009.2027795.
[141] O. AM Aly y A. Omar, «Spread spectrum ultrasonic positioning system,» de
Proceedings of the 2nd Workshop on Positioning, Navigation and Communication
(WPNC05), Magdeburg, Germany, 2005.

283
[142] A. Ens, L. M. Reindl, J. Bordoy, J. Wendeberg y C. Schindelhauer,
«Unsynchronized ultrasound system for TDOA localization,» de 2014
International Conference on Indoor Positioning and Indoor Navigation (IPIN),
2014-10. https://doi.org/10.1109/IPIN.2014.7275533.
[143] K.-W. Kim, J. Kwon, C.-G. Lee y J. Han, «Accurate Indoor Location Tracking
Exploiting Ultrasonic Reflections,» IEEE Sensors Journal, vol. 16, nº 24, pp.
9075-9088, December 2016. https://doi.org/10.1109/JSEN.2016.2617398.
[144] K.-W. Kim, M.-G. Park, T. Hishikawa, J. Han y C.-G. Lee, «Exploiting
Ultrasonic Reflections for Improving Accuracy of Indoor Location
Tracking,» de 2012 9th International Conference on Ubiquitous Intelligence and
Computing and 9th International Conference on Autonomic and Trusted
Computing, Sep. 2012. https://doi.org/10.1109/UIC-ATC.2012.114.
[145] S. Gerhard F. y S. Herbert F., «LOSNUS: Ultrasonic indoor locating for
numerous static and mobile devices,» March 2010.
https://doi.org/10.1109/WPNC.2010.5649085.
[146] M. McCarthy, P. Duff, H. L. Muller y C. Randell, «Accessible ultrasonic
positioning,» IEEE Pervasive Computing, vol. 6, nº 4, p. 86–93, 2006.
https://doi.org/10.1109/MPRV.2006.65.
[147] J. P. Jordaan, C. P. Kruger, B. J. Silva y G. P. Hancke, «An ultrasonic-based
localization system for underground mines,» de 2017 IEEE 15th International
Conference on Industrial Informatics (INDIN), July 2017.
https://doi.org/10.1109/INDIN.2017.8104761.
[148] K.-H. Kim, B.-S. Ha, Y.-D. Lee y W.-K. Hong, «DILSA: distributed in-door
location system architecture,» de 13th Annual IEEE International Symposium
and Workshop on Engineering of Computer-Based Systems (ECBS'06), March 2006.
https://doi.org/10.1109/ECBS.2006.37.
[149] D. Hepeng y S. Donglin, «Indoor location system using RFID and ultrasonic
sensors,» de 2008 8th International Symposium on Antennas, Propagation and
EM Theory, November 2008.
https://doi.org/10.1109/ISAPE.2008.4735437.
[150] J. M. Villadangos, J. Urena, M. Mazo, A. Hernandez, F. Alvarez, J. J. Garcia,
C. De Marziani y D. Alonso, «Iimprovement of ultrasonic beacon-based
local position system using multi-access techniques,» de Intelligent Signal
Processing, 2005 IEEE International Workshop on, 2005.
https://doi.org/10.1109/WISP.2005.1531684.
[151] C. Randell y H. Muller, «Low cost indoor positioning system,» de
International Conference on Ubiquitous Computing, 2001.
[152] H.-P. Wang y Y.-K. Wang, «The Research on Indoor Location System Based
on Cricket,» de 2007 International Conference on Machine Learning and
Cybernetics, August 2007. https://doi.org/10.1109/ICMLC.2007.4370599.

284
Referencias

[153] S. Yi y H. Cha, «An active tracking system using IEEE 802.15. 4-based
ultrasonic sensor devices,» de International Conference on Embedded and
Ubiquitous Computing, 2006.
[154] C.-C. Tsai, «A localization system of a mobile robot by fusing dead-
reckoning and ultrasonic measurements,» IEEE Transactions on
Instrumentation and Measurement, vol. 47, nº 5, p. 1399–1404, 1998.
https://doi.org/10.1109/IMTC.1998.679741.
[155] C.-J. Wu y C.-C. Tsai, «Localization of an autonomous mobile robot based
on ultrasonic sensory information,» Journal of Intelligent and Robotic Systems,
vol. 30, nº 3, p. 267–277, 2001.
[156] M. R. McCarthy y H. L. Muller, «RF free ultrasonic positioning,» de Seventh
IEEE International Symposium on Wearable Computers, 2003. Proceedings., 2003.
https://doi.org/10.1109/ISWC.2003.1241397.
[157] A. Jiménez y F. Seco, «Ultrasonic localization methods for accurate
positioning,» Instituto de Automatica Industrial, Madrid, 2005.
[158] M. E. Rida, F. Liu, J. E. Merabete, Y. Jadi, M. Kabenge y M. A. E. Ali, «Hybrid
indoor location system (HILS),» de 2015 International Conference on
Computer, Communications, and Control Technology (I4CT), April 2015.
https://doi.org/10.1109/I4CT.2015.7219553.
[159] M. Minami, K. Hirasawa, H. Morikawa y T. Aoyama, «Implementation and
evaluation of a distributed ultrasonic positioning system,» de 1st
International Workshop on Networked Sensing Systems (INSS), 2004.
[160] A. Yazici, U. Yayan y H. Yücel, «An ultrasonic based indoor positioning
system,» de Innovations in Intelligent Systems and Applications (INISTA), 2011
International Symposium on, 2011.
[161] B.-S. Cho, W.-J. Seo, W.-s. Woo-Jin y K.-R. Baek, «Positioning of a mobile
robot based on odometry and a new ultrasonic LPS,» International Journal of
Control, Automation and Systems, vol. 11, nº 2, p. 333–345, 2013.
[162] R. Zhang, F. Höflinger y L. Reindl, «TDOA-based localization using
interacting multiple model estimator and ultrasonic transmitter/receiver,»
IEEE Transactions on Instrumentation and Measurement, vol. 62, nº 8, p. 2205–
2214, 2013. https://doi.org/10.1109/TIM.2013.2256713.
[163] S. Pang y R. Trujillo, «Indoor localization using ultrasonic time difference
of arrival,» de 2013 Proceedings of IEEE Southeastcon, April 2013.
https://doi.org/10.1109/SECON.2013.6567445.
[164] A. LaMarca y E. de Lara, Location Systems: An Introduction to the
Technology Behind Location Awareness, Morgan & Claypool, 2008.

285
[165] S. Elvira Díaz, «ALO: Sistemas de localización y orientación por ángulos
basados en recepción diferencial,» 01 01 2016. [En línea]. Available:
https://repositorio.uam.es/. [Último acceso: 21 01 2021].
[166] S. Flores y J. V. M. Geib, «An ultrasonic sensor network for high-quality
range-bearing-based indoor positioning,» de 2016 IEEE/ION Position,
Location and Navigation Symposium (PLANS), April 2016.
https://doi.org/10.1109/PLANS.2016.7479747.
[167] E. Dijk, K. Van Berkel, R. Aarts y E. Van Loenen, «Ultrasonic 3D position
estimation using a single base station,» de European Symposium on Ambient
Intelligence, 2003.
[168] A. Sanchez, A. de Castro, S. Elvira, G. Glez-de-Rivera y J. Garrido,
«Autonomous indoor ultrasonic positioning system based on a low-cost
conditioning circuit,» Measurement, vol. 45, nº 3, p. 276–283, 2012.
[169] N. Bodhi Priyantha, H. Balakrishnan, E. D. Demaine y S. Teller, «Mobile-
assisted localization in wireless sensor networks,» de INFOCOM 2005. 24th
Annual Joint Conference of the IEEE Computer and Communications Societies.
Proceedings IEEE, 2005. https://doi.org/10.1109/INFCOM.2005.1497889.
[170] P. Misra, S. Jha y D. Ostry, «Improving the coverage range of ultrasound-
based localization systems,» de 2011 IEEE Wireless Communications and
Networking Conference, March 2011.
https://doi.org/10.1109/WCNC.2011.5779202.
[171] B. Song, H. Lee y K. Chung, «Toward A Totally Solving Interference
Problem for Ultrasound Localization system,» de COIN-NGNCON 2006 - The
Joint International Conference on Optical Internet and Next Generation Network,
July 2006. https://doi.org/10.1109/COINNGNCON.2006.4454597.
[172] C. Medina, J. C. Segura y A. De la Torre, «TELIAMADE: Sistema de
localización en interiores basado en ultrasonido y RF,» de Proc. 25th Simp.
Nacional URSI, 2010.
[173] E. González, L. Prados, A. J. Rubio, J. C. Segura, Á. Torre, J. M. Moya, P.
Rodríguez y J. L. Martín, «ATLINTIDA: A Robust Indoor Ultrasound
Location System: Design and Evaluation,» de 3rd Symposium of Ubiquitous
Computing and Ambient Intelligence, Berlin, 2008.
[174] A. Harter, A. Hopper, P. Steggles, A. Ward y P. Webster, «Active Bat: The
Anatomy of a Context-Aware Application,» Wireless Networks, vol. 8, nº 2, pp.
187-197, 2002. https://doi.org/10.1023/A:1013767926256.
[175] N. B. Priyantha, A. Chakraborty y H. Balakrishnan, «The cricket location-
support system,» de Proceedings of the 6th annual international conference on
Mobile computing and networking, 2000.
[176] Hexamite, «Hexamite,» 21 01 2022. [En línea]. Available:
http://www.hexamite.com/. [Último acceso: 21 01 2022].

286
Referencias

[177] A. R. Jiménez, F. Seco, C. Prieto y J. Roa, «Tecnologías sensoriales de


localización para entornos inteligentes,» de Proc. Simposio UCAmI, Granada,
2005.
[178] I. Ijaz, H. Kwon Yang, A. Waheed Ahmad y C. Lee, «Indoor positioning: A
review of indoor ultrasonic positioning systems,» de 2013 15th International
Conference on Advanced Communications Technology (ICACT), January 2013.
[179] G. LANGEVIN, «InMoov. Open source 3d printed life-size robot,» 11 2
2022. [En línea]. Available: https://inmoov.fr/. [Último acceso: 8 5 2015].
[180] H. Yamaguchi, M. Mozgovoy y A. Danielewicz-Betz, «A Chatbot Based On
AIML Rules Extracted From Twitter Dialogues.,» de FedCSIS (Communication
Papers), 2018.
[181] M. S. Satu y M. H. Parvez, «Review of integrated applications with aiml based
chatbot,» de 2015 International Conference on Computer and Information
Engineering (ICCIE), 2015.
[182] B. AbuShawar, E. Atwell, B. AbuShawar y E. Atwell, «ALICE Chatbot: Trials
and Outputs,» Computación y Sistemas, vol. 19, nº 4, pp. 625-632, 2015.
https://doi.org/10.13053/CyS-19-4-2326.
[183] B. A. Shawar y E. Atwell, «Chatbots: are they really useful?,» de Ldv forum,
2007.
[184] E. A. J. Croes y M. L. Antheunis, «Can we be friends with Mitsuku? A
longitudinal study on the process of relationship formation between
humans and a social chatbot,» Journal of Social and Personal Relationships, vol.
38, nº 1, pp. 279-300, 2021.
[185] M. Noto y H. Sato, «A method for the shortest path search by extended
Dijkstra algorithm,» de Smc 2000 conference proceedings. 2000 ieee international
conference on systems, man and cybernetics. 'cybernetics evolving to systems, humans,
organizations, and their complex interactions' (cat. no.0, 2000.
https://doi.org/10.1109/ICSMC.2000.886462.
[186] H. Wang, Y. Yu y Q. Yuan, «Application of Dijkstra algorithm in robot path-
planning,» de 2011 Second International Conference on Mechanic Automation
and Control Engineering, 2011.
https://doi.org/10.1109/MACE.2011.5987118.
[187] D. Fan y P. Shi, «Improvement of Dijkstra's algorithm and its application in
route planning,» de 2010 Seventh International Conference on Fuzzy Systems and
Knowledge Discovery, 2010. https://doi.org/10.1109/FSKD.2010.5569452.
[188] «Motrix,» Núcleo de Computação Eletrônica da Universidade Federal do
Rio de Janeiro, 2002. [En línea]. Available:
http://intervox.nce.ufrj.br/motrix/. [Último acceso: 03 05 2022].

287
[189] «Instituto Novo Ser,» [En línea]. Available: https://www.novoser.org.br/.
[Último acceso: 5 mar 2022].
[190] «Program#,» Nicholas H.Tollervey, 2008. [En línea]. Available:
http://aimlbot.sourceforge.net/. [Último acceso: 05 03 2022].

288
1 Anexo I. Acrónimos

ACK ACKnowledgement
ADC Analog-Digital Converter
AGPS Assisted Global Positioning System
AIML Artificial Intelligence Mark-up Language
AJAX Asynchronous Javascript and Xml
ALICE Artificial Linguistic Internet Computer Entity
AoA Angle of Arrival
API Aplication Program Interface
ASK Amplitude Shift Keying
BCI Brain--cComputer iInterface
BusCAN Bus Controller Area Network
CDMA Code Division Multiple Access
CNN Convolutional Neural Network
CSMA Carrier Sense Multuple Access
CSMA/CA Carrier Sense Multiple Access /- Collision aAvoidance
CSMA/CD Carrier Sense Multiple Access -/ Collision dDetection
DBM DeciBels en Miliwats
DC Direct Current
DOLPHIN Distributed Object Location System for Physical-space
Internetworking
DSR Design Science Research
DSSS Direct Sequence Spread Spectrum
EEPROM Electrically Erasable and Programmable Read Only Memory
ELA Esclerosis Lateral Amiotrófica
EMA Exponential Moving Average
EMG ElectroMyoGram
FDMA Frequency-dDivision mMultiple Access

289
FHSS Frequency Hopping Spread Spectrum
FIR Federación Internacional de Robótica
FIR Finite Impulse Response
FPS Frames per second
GLONASS Global'naya Navigatsionnaya Sputnikovaya Sistema
GPS Global Positioning System
GPT3 Generative Pre-trained Transformer 3
GSM Global System for Mobile communications
HAURIA Hogar Accesible Unificando Robótica e Inteligencia Artificial
I2C Inter-Integrated Circuit
ICSP In-Circuit Serial Programming
IFR International Federation of Robotics

IIR Infinite Impulse Response


IMU Inertial Measurement Unit
IPA Fraunhofer Institute for Produktionstechnik und Automatisierung
IPS Indoor Positioning System
IR InfraRed
LASER Light Amplification by Stimulated Emission of Radiation
LIDAR Laser Imaging Detection aAnd Ranging
LORAN Long RAnge Navigation
LOS Line of Sight
LOSNUS Localization of Sensor Nodes by Ultra-Sound
LVDS low-voltage differential signaling
MHZ MegaHertzios
MSAA Microsoft Active Accessibility
NAVSAT Navy Navigation Satellite System
NLOS No Line of Sight
OFDM Orthogonal Frequency-Division Multiplexing
OOK On-Off Keying

290
Anexo I. Acrónimos

OS Operating System
PC Personal Computer
PID Proportional–Integral–Derivative controller
PLA polylactic acid
PWM Pulse Width Modularion
QR Quick Response
RADAR Radio Detecting And RAnging
RAM Random Access Memory
RC Radio Control
REST Representational State Transfer
RF Radio Frequency
RFID Radio Frequency IdDentification
RGB Red-Green-Blue
RSSI Radio Signal Strength Indicator
SAPI Speech Application Programming Interface
SLAM Simultaneous Location And Mapping
SONAR SOund Navigation And Ranging
TDM Time Division Multiplexing
TDMA Time Division Multiple Access
TDOA Time Difference oOf Arrival
TOF Time Of Flight
UART Universal Asynchronous Receiver/Transmitter
UIA User Interface Automation
USB Universal Serial Bus
UWB Ultra Wide Band
VLC Visible Light Communication
WIFI Wireless Fidelity
XML Extensible Markup Language

291
2 Anexo II. Tipos y propiedades de los
transceptores de ultrasonidos

2.1 Introducción
En este anexo se identifican los posibles sensores de ultrasonidos que pueden
emplearse en el sistema de localización, analizando sus características y sus
capacidades. Con esta información será necesario seleccionar uno de los
modelos para ser empleado en el sistema. Por limitaciones de coste, solo se han
analizado sensores con capacidad de emisión de ultrasonidos en banda base.

Todos los sensores de ultrasonidos analizados están diseñados para ser


empleados como radar de detección de obstáculos. Para esta funcionalidad los
sensores de ultrasonidos son dispositivos que emplean paquetes de pulsos de
ultrasonidos para realizar mediciones de distancia de colisión con objetos. Su
función es calcular el tiempo que tarda el tren de pulsos de ultrasonidos en
volver al sensor desde su envío. Los más avanzados también tienen comandos
que permiten que sean empleados para medir distancias ente dos sensores del
mismo tipo.

De modo básico están compuestos por uno o dos transductores de ultrasonidos.


En caso de tener solo uno, este se encargará de la emisión y de la recepción y
en caso de tener dos, uno se encarga de la emisión y otro de la recepción. En
este último caso, el encargado de la recepción puede ser más sensible y su
membrana comenzará a vibrar con una energía sónica inferior.

Como ejemplo más común, la inmensa mayoría de los sensores de


aparcamiento de los coches son sensores de ultrasonidos.

Suelen tener una precisión muy alta que normalmente oscila entre 1 y 4cm y
una cobertura baja que oscila entre los 3 metros y los 7 metros para detección
objetos. Dado que para la detección de objetos la onda de ultrasonidos debe
viajar hasta el objeto y volver. Si empleamos estos sensores para medidas de

293
Principio de funcionamiento

tiempo de vuelo de la señal, la cobertura se multiplica por dos, con lo que


podemos alcanzar hasta 14 metros de cobertura lineal.

2.2 Principio de funcionamiento


Estos dispositivos basan su funcionamiento en las propiedades
magnetoestrictivas de ciertos materiales. Los transductores están formados por
una membrana de material magnetoestrictivo que al ser excitada por una
corriente alterna comienza a desplazarse hacia delante y hacia atrás
imprimiendo una onda de energía acústica en el aire con la misma frecuencia
que su periodo de oscilación. Esta onda se desplazará por el aire a una
velocidad aproximada de 343.2 m/s a una temperatura de 20 grados hasta que
colisione con algún objeto, momento en que saldrá rebotada siguiendo las
propiedades de las ondas, y pudiendo retornar parte de su energía al mismo
sensor, como se visualiza de modo gráfico en la Figura 2.2.1.

Figura 2.2.1. Principio de funcionamiento de un detector de obstáculos 41.

En este último caso, si la energía de retorno es suficiente, inducirá una


vibración en la membrana del receptor que se transformará en corriente
eléctrica, que una vez amplificada podrá ser detectada por el sensor. Midiendo
el tiempo transcurrido entre la emisión del pulso y la recepción (ver Figura
2.2.2), podemos calcular de modo muy preciso el tiempo de vuelo de la señal,
y conociendo su velocidad de propagación y la temperatura del aire, podemos

41Fuente: https://www.zonamaker.com/arduino/modulos-sensores-y-shields/ultrasonido-hc-sr04
[Acceso: 18-feb-2022]

294
Anexo II. Tipos y propiedades de los transceptores de ultrasonidos

calcular la distancia a la que se encuentra el objeto con el que ha colisionado


la onda ultrasónica. Además de la temperatura, otras variables que afectan en
mucha menor medida a la velocidad de propagación del sonido en el aire, son
la humedad relativa y la presión, pero dado su bajo impacto, pueden ignorarse
para realizar el cálculo de distancia recorrida.

Figura 2.2.2. Amplitud de la señal emitida y recibida en el pulso de ultrasonidos.

2.3 Dispositivos
Todos los sensores de ultrasonidos comerciales emplean la medición del
tiempo de vuelo para los cálculos de distancia. Estos sensores se distinguen
principalmente por su grado de complejidad (comandos aceptados, medición
interna de tiempo de vuelo, etc.) y el número de transductores.

En cuanto al grado de complejidad, tenemos los más simples como el SRF04


que no dispone de reloj interno. Después de iniciada la operación pone el pin
de salida a nivel alto y cuando recibe el pulso de vuelta lo pone a nivel bajo.
Realmente no mide el tiempo de vuelo de la señal de ultrasonidos, sino que
genera un evento en cuanto la detecta. Los más complejos devuelven
directamente el tiempo de vuelo en distintas unidades de medida e incluso
pueden sincronizarse con un servo. Otra de las funciones más interesantes de
los sensores complejos es la capacidad de operar tanto como emisor como
receptor. Los más simples solo pueden ser empleados como detectores de
obstáculos para medir tiempo de rebote de la señal.

295
Dispositivos

En cuanto al número de transceptores, hay modelos con uno y dos


transceptores. Los sensores con un solo transceptor son más compactos y los
sensores con dos transceptores con capaces de detectar distancias menores,
dado que no necesitan cambiar el transductor de modo emisión a modo
receptor, en donde es necesario esperar a que deje de vibrar.

En los siguientes apartados se describen los sensores de ultrasonidos que se


encontraban disponibles en el momento en que se inició el desarrollo de esta
tesis.

SRF02

Este dispositivo está compuesto por un solo transceptor ultrasónico que se


emplea tanto para emisión como para recepción, como puede verse en la
Figura 2.3.1. Dado que solo tiene un sensor piezoeléctrico debe esperar a que
el tren de pulsos se haya emitido completamente antes de poder detectar la
recepción, por lo que el rango de detección comienza en 15 cm.

Figura 2.3.1. Imagen de un sensor SRF02 42.

El SRF02 es un dispositivo complejo que admite varios comandos mediante


comunicación serie e I2C. Puede ser empleado tanto como detector de objetos
como para medir distancias de vuelo, dado que pueden configurarse tanto
como emisor, como receptor. La precisión, dependiendo del fabricante, oscila
entre 2 y 3 cm y el rango de cobertura es de 6 m para detección de objetos y 12
m para medidas de tiempo de vuelo entre emisor y receptor. Tiene un ángulo
de apertura aproximado de 30 grados al final del área de cobertura, llegando
a cubrir más de 60 grados en gran parte de esta área, como puede verse en la
Figura 2.3.2.

42 Fuente: https://www.robot-electronics.co.uk/htm/srf02tech.htm [Acceso: 18-feb-2022]

296
Anexo II. Tipos y propiedades de los transceptores de ultrasonidos

Figura 2.3.2. Patrón de apertura de radiación.

En el momento en que se inició la investigación de esta tesis, el SRF02 tenía un


coste de 40 € por unidad. Desde hace 5 años, el coste de los módulos SRF02 ha
ido bajando hasta los 20 € actuales. Adicionalmente desde hace dos años está
disponible, como copia china, el módulo GY-US42 con un coste de 6€ y mejores
características que el SRF02 con 1 cm de precisión y 7,20 m de cobertura para
detección de objetos y 14,40 m de detección de tiempo de vuelo.

• Comunicaciones

Permite comunicaciones por puerto serie mediante formato UART de nivel


TTL (0-5V) estándar, a 9.600 baudios con 1 bit de inicio, 2 de parada y sin bits
de paridad, y se puede conectar directamente a los puertos serie de cualquier
microcontrolador. Con un solo puerto serie se pueden conectar hasta 16
SRF02, como mediante el bus I2C. Una de sus grandes ventajas es la capacidad
de medir distancias entre dos SRF02 distintos que se encuentren sincronizados,
dado que es capaz de enviar una ráfaga ultrasónica sola, sin un ciclo de
recepción y puede realizar un ciclo de recepción sin enviar la ráfaga de
ultrasonidos.

• Modos de conexión

Establecer el modo de conexión es muy simple, Hay dos modos de conexión


para el SRF02, el modo I2C y el modo serie. Para establecer el modo serie hay
que conectar el pin de modo a 0V o dejarlo desconectado. Si se conecta a 5V
se establece el modo I2C.

297
Dispositivos

SRF04 o HC-SR04

Es el sensor de ultrasonidos más simple de toda la familia, lo que permite que


sea extremadamente económico. Esta simplicidad también reduce al mínimo
las funciones para las que ha sido diseñado. Tiene precisiones inferiores a 2 cm
en detección de obstáculos con un rango de detección de obstáculos de 4,5 m
(9 m de tiempo de vuelo total) y una apertura variable de 60 grados de media,
que se queda en 30 grados cerca del alcance máximo, como muestra el lóbulo
de radiación de la Figura 2.3.3. Se ha comprobado que estos datos son muy
dependientes del fabricante, resultando ser inferiores en las copias chinas
económicas (HC-SR04), sobre todo en lo relativo al ángulo de apertura de
emisión.

Figura 2.3.3. Diagrama de apertura de radiación del SRF0444.

En el mismo empaquetado tiene dos transceptores, uno se emplea como


emisor y otro como receptor, como puede verse en la Figura 2.3.4.

Figura 2.3.4. Imagen del módulo SRF04 43.

Dado que es mucho más simple que el SRF02 no tiene modo de


funcionamiento como emisor o receptor, por lo que solo está diseñado para
operar como sensor de detección de obstáculos, por lo que no es posible

43Fuente: https://www.teslaelectronic.com.pe/producto/modulo-ultrasonido-hc-srf04/ [Acceso:


18-feb-2022]

298
Anexo II. Tipos y propiedades de los transceptores de ultrasonidos

activarlo solo para que reciba pulsos de ultrasonidos. Siempre envía un pulso y
espera a recibirlo. Este sensor nunca fue pensado para ser empleado para
medir tiempos de vuelo entre dos SRF04 distintos. Lo interesante de este sensor
es que, dada su sencillez, puede adquirirse por menos de 1 €, lo que permite
crear arrays de transductores con un coste muy económico.

El dispositivo incluye en un solo encapsulado, tanto los transceptores de


emisión y recepción, como las etapas amplificadoras de emisión y recepción y
los filtros de cancelación de ruido como se ve en la Figura 2.3.5.

Figura 2.3.5.Esquema electrónico de módulo SRF04 44.

El SRF04 tiene 4 pines: alimentación, masa, trigger y echo. El funcionamiento


es simple, y puede observarse gráficamente en la Figura 2.3.6. Primero debe
activarse por un periodo superior a 10 μs el pin trigger con lo que el SRF04
enviará un pulso de ultrasonidos.

44 Fuente: https://www.robot-electronics.co.uk/htm/srf04tech.htm [Acceso: 18-feb-2022]

299
Dispositivos

Figura 2.3.6. Diagrama de señales 45.

Una vez enviado el tren de pulsos de ultrasonidos, el SRF04 pone el pin echo a
nivel alto. El tiempo transcurrido desde que el pin echo pasa a nivel alto y
después vuelve a nivel bajo, es el tiempo de vuelo de la señal de ultrasonidos
desde que se emitió, rebotó en el objeto y volvió al emisor, que debe ser medido
por el propio microcontrolador, dado que el SRF04 no tiene comandos de
medición de tiempo. No es posible emplearlo como receptor porque en su
único modo de funcionamiento, al iniciar la lectura del tiempo de vuelo,
siempre envía un tren de pulsos de ultrasonidos.

SRF10

Este es un modelo con capacidad de interpretación de comandos y conexión


I2C. Su encapsulado puede verse en la Figura 2.3.7 Posee una amplia cobertura
desde el punto de inicio de emisión del haz de ultrasonidos llegando a superar
los 120 grados en los metros iniciales. Una de sus limitaciones es que no tiene
un modo de operación que le permita ser empleado como emisor o receptor
de forma independiente para medir tiempos de vuelo.

Figura 2.3.7. Imagen del sensor SRF10 46.

45 Fuente: http://www.superrobotica.com/s320110.htm [Acceso: 18-feb-2022]


46 Fuente: http://www.superrobotica.com/s320114.htm [Acceso: 18-feb-2022]

300
Anexo II. Tipos y propiedades de los transceptores de ultrasonidos

Es uno de los pocos modelos que permite modificar la ganancia máxima, lo


que hace que sea menos sensible a los objetos laterales, aunque esto se produce
a costa de reducir la distancia máxima de detección, pero en muchos proyectos,
no es necesario tener una distancia de detección de 6 m. La ganancia máxima
se establece a 16 y con un valor de 8 reducirá el alcance practicable a unos 2 m,
pero será mucho menos sensible a los objetos fuera de la línea central. El
patrón de haz de los transductores utilizados en el SRF10, tomado de la hoja
de datos del fabricante, se muestra en la Figura 2.3.8.

Figura 2.3.8. Lóbulo de radiación del sensor SRF10.

• Comunicaciones

La comunicación con el telémetro ultrasónico SRF10 se realiza a través del bus


I2C. La dirección de envío predeterminada del SRF10 es 0xE0. El usuario puede
cambiarlo a cualquiera de las 16 direcciones E0, E2, E4, E6, E8, EA, EC, EE, F0, F2,
F4, F6, F8, FA, FC o FE, lo que posibilita que puedan convivir 16 dispositivos en un
mismo bus.

• Registros

El SRF10 tiene un conjunto de 4 registros (Tabla 2.3.1).

Tabla 2.3.1 Registros del sensor SRF10.

Ubicación Leer Escribir


0 Revisión de software Registro de comandos
1 Sin usar (lee 0x80) Registro de ganancia máxima
2 Byte alto de medida Registro de medida
3 Byte bajo de medida N/A

Solo se pueden escribir en las ubicaciones 0, 1 y 2. La posición 0 es el registro de


comando y se usa para iniciar una sesión de medida. No se puede leer. La lectura

301
Dispositivos

desde la posición 0 devuelve la revisión del software SRF10. De forma


predeterminada, una operación de medida dura 65 ms, pero se puede cambiar
escribiendo en el registro de medida en la posición 2. El SRF10 no responderá a los
comandos en el bus I2C mientras está en una operación de medida.

Las posiciones 2 y 3, conservan el resultado de 16 bits de la última medida, el byte


alto primero. El significado de este valor depende del comando utilizado, y es la
medida en pulgadas, en cm o el tiempo de vuelo en µs. Un valor de 0 o máximo indica
que no se detectaron objetos.

• Comandos

Hay tres comandos para iniciar la operación de medida (80 a 82) (ver Tabla 2.3.2),
para devolver el resultado en pulgadas, centímetros o microsegundos. También hay
un conjunto de comandos para cambiar la dirección I2C.

Tabla 2.3.2. Comandos del sensor SRF10.

Comando
Acción
Decimal Hex
80 0x50 Modo de rango: resultado en pulgadas
81 0x51 Modo de rango - Resultado en centímetros
82 0x52 Modo de rango: resultado en microsegundos
160 0xA0 Primero en secuencia para cambiar la dirección I2C
165 0xA5 Tercero en secuencia para cambiar la dirección I2C
170 0xAA Segundo en secuencia para cambiar la dirección I2C

• Modo

Para iniciar una medida, se escriben alguno de los comandos de medida según la
unidad requerida en el registro de comandos y se espera la cantidad de tiempo
requerida para que se complete, tras lo que se lee el resultado. El búfer de eco se borra
al comienzo de cada medida. El tiempo predeterminado y recomendado para
completar el rango es de 65 ms, sin embargo, puede acortarse escribiendo en el
registro de medida.

302
Anexo II. Tipos y propiedades de los transceptores de ultrasonidos

• Cambio de la capacidad máxima de medición

La capacidad máxima de medida del SRF10 se establece mediante un temporizador


interno. Por defecto, es 65 ms o el equivalente de 11 m de alcance. Esto es mucho más
que los 6 metros a los que el SRF10 es capaz de detectar objetos. Es posible reducir
el tiempo que el SRF10 escucha un eco y, por lo tanto, la distancia de medida,
escribiendo en el registro de medida en la posición 2. El registro de medida se puede
configurar en pasos de aproximadamente 43 mm (0,043 m o 1,68 pulgadas) hasta 11
metros.
La distancia máxima será ((registro de medida x 43 mm) + 43 mm), por lo que
establecer el registro de medida en 0 (0x00) da un rango máximo de 43 mm. La
configuración 255 (0xFF) da los 11 metros originales (255 x 43 + 43 son 11.008
mm). Hay dos razones por las que es posible que desee reducir la distancia de medida:

1. Para obtener la información de medidas más rápido.


2. Para poder disparar el SRF10 a un ritmo más rápido.

Si solo se desea obtener la información de la medida un poco antes y continúa


disparando el SRF10 a 65 ms, entonces no será necesario cambiar la configuración de
ganancia. Sin embargo, si desea disparar el SRF10 a una velocidad superior a 65 ms,
se deberá reducir la ganancia. La distancia máxima se establece al máximo cada vez
que se enciende el SRF10.

• Modificación de ganancia

Para configurar la ganancia máxima, simplemente se escribe uno de estos valores en


el registro de ganancia en la posición 1. Durante una medida, la ganancia analógica
comienza en su valor mínimo de 40. Este se incrementa a intervalos de 96 µs hasta la
configuración de ganancia máxima. La ganancia máxima se alcanza después de
aproximadamente 100 mm de medida. El propósito de proporcionar un límite a la
ganancia máxima es permitirle disparar el sonar a más de 65 ms. Dado que la distancia
de medida puede ser muy corta, se puede iniciar una nueva medida tan pronto como
se hayan leído los datos de la medida anterior. Un peligro potencial con esto, es que
la segunda medida puede captar un eco distante que regresa del ping anterior, dando

303
Dispositivos

un resultado falso de un objeto cercano cuando no hay ninguno. Para reducir esta
posibilidad, la ganancia máxima se puede reducir para limitar la sensibilidad de los
módulos al eco distante más débil, sin dejar de detectar objetos cercanos. La
configuración de ganancia máxima se almacena solo en la RAM de la CPU y se
inicializa al máximo en el encendido.

• Cambiar la dirección del bus I2C

Para cambiar la dirección I2C del SRF10 debe haber solo un dispositivo en el bus. Se
escriben los 3 comandos de cambio de dirección en el orden correcto seguidos de la
dirección.

SRF235

La característica más resaltable del modelo SRF235 es su directividad, que es


muy superior al resto de los modelos. Tiene un ancho del cono de radiación
de solo 15 grados como muestra la Figura 2.3.9, proveniente de su hoja de
especificaciones. Esta capacidad le brinda una precisión de mapeado del
entorno mucho más alta.

Figura 2.3.9. Lóbulo de radiación del sensor SRF235.

Para conseguir esta direccionalidad emplea ultrasonidos a una frecuencia muy


alta de 235 KHz, cuando el resto de los sensores de su familia emplea 40 KHz.

• Limitaciones y características

El ultrasonido a una frecuencia de 235 KHz no se transmite tan fácilmente a


través del aire como lo hace el de 40 KHz, por lo que el alcance del SRF235 se
limita a alrededor de 1 m para objetos normales y a un máximo de 1,1 m para
una superficie grande. Al emplear un solo transductor, su alcance mínimo se

304
Anexo II. Tipos y propiedades de los transceptores de ultrasonidos

ve ampliado, no pudiendo realizar medidas de distancia de menos de 12 cm.


Al tener un haz tan estrecho se comporta de forma parecida a un haz laser. En
cuanto el ángulo de incidencia en una superficie plana supera los 8 grados, la
cantidad de ultrasonidos rebotados hacia la fuente no es suficiente para ser
detectada. En estas mismas condiciones, un sensor como el SRF04 con ondas
ultrasónicas de 40 KHz detectaría la superficie sin problemas. Esta
característica puede ser necesaria en algún tipo de proyectos de precisión. El
SRF235 es capaz de realizar un mapeado más detallado del entorno, a costa de
emplear un número mayor de sensores y poseer una menor cobertura lineal,
por lo que puede ser una buena alternativa para combinar con sensores de
distintas características como el SRF04.

• Comunicación

El SRF235 emplea el bus I2C para recibir comandos. La dirección de envío


predeterminada del SRF235 es 0xE0. Se pueden conectar hasta 16 dispositivos
en el mismo bus empleando cualquier de las 16 direcciones: E0, E2, E4, E6, E8,
EA, EC, EE, F0, F2, F4, F6, F8, FA, FC o FE.

• Conexiones

El dispositivo se conecta al bus I2C del microcontrolador. Las líneas SCL y SDA
deben tener cada una, una resistencia pull-up a +5V en algún lugar del bus
I2C. El SRF235 es siempre un esclavo.

• Registros

El SRF235 tiene un conjunto de 4 registros (Tabla 2.3.3):


Tabla 2.3.3. Direcciones de comandos.

Ubicación Leer Escribir


0 Revisión de software Registro de comandos
1 Sin usar (lee 0x80) N/A
2 Byte alto de rango N/A
3 Byte bajo de rango N/A

Solo se puede escribir en la posición 0. Para iniciar una operación de lectura


se debe escribir el comando en la posición 0. La operación de lectura de

305
Dispositivos

distancia tiene una duración de 10 ms. Durante este tipo, el sensor no


responderá a comandos I2C.

En las posiciones 2 y 3, se mantendrá el resultado de la última lectura de


distancia. El significado de este valor depende del comando utilizado, y puede
ser la distancia en pulgadas, cm o tiempo de vuelo en µs. Un valor de 0 indica
que no se detectaron objetos y puede iniciarse una nueva operación de lectura
de distancia en cuanto se haya leído la anterior.

• Comandos

Hay tres comandos para iniciar una lectura de distancia (80 a 82), que
devuelven el resultado en pulgadas, centímetros o microsegundos.
Adicionalmente también hay un conjunto de comandos para cambiar la
dirección I2C. Estos comandos están identificados en la Tabla 2.3.4.
Tabla 2.3.4. Comandos disponibles en el SRF235.

Comando
Acción
Decimal Hex.
80 0x50 Modo de lectura con resultado en pulgadas
81 0x51 Modo de lectura con resultado en centímetros
82 0x52 Modo de lectura con resultado en microsegundos
160 0xA0 Primero en secuencia para cambiar la dirección I2C
165 0xA5 Tercero en secuencia para cambiar la dirección I2C
170 0xAA Segundo en secuencia para cambiar la dirección I2C

• Lectura de distancia o detección de objetos: para iniciar una medida de


distancia, se escribe uno de los comandos (80, 81, 82) en el registro de
comandos y se espera la cantidad de tiempo requerida para que se complete
la medición y se lea el resultado. El búfer de eco se borra al comienzo de
cada lectura de distancia. El tiempo mínimo para proceder a la lectura del
registro es de 10 ms. La distancia medida se puede leer desde las
ubicaciones 2 y 3.
• Comprobación de la finalización de la lectura: para verificar la
disponibilidad de la medida puede emplearse un temporizador en el
microcontrolador de un mínimo de 10 ms. Mientras se ejecuta la
lectura de distancia, el bus I2C no responderá a ningún comando.

306
Anexo II. Tipos y propiedades de los transceptores de ultrasonidos

Mientras se efectúa la medida, si se intenta leer la posición 0 devolverá


un 0xFF.
• Cambiar la dirección del bus I2C: para cambiar la dirección I2C del
SRF235 debe tener un solo dispositivo en el bus. Se escriben los 3
comandos (160, 165, 170) de cambio de dirección en el orden
correcto seguidos de la dirección.

SRF485

El SRF485 es un sensor ultrasónico de un solo transductor, con un diseño


basado en el sensor SRF02 como se aprecia en la Figura 2.3.10. Es un dispositivo
complejo con comunicación I2C y capacidad de procesado de comandos.
Permite ser empleado tanto como detector de obstáculos, como para realizar
medidas de tiempos de vuelo entre dos SRF485 distintos. Tiene un alcance
mínimo de 30 cm y máximo de 5 metros.

El SRF485 posee un sensor de temperatura y puede emplearlo para dar


medidas compensadas del tiempo de vuelo ajustando la velocidad de
propagación del sonido según la temperatura ambiente, con lo que es capaz de
dar resultados más precisos.

Figura 2.3.10. Encapsulado del sensor SRF485.

El SRF485 utiliza el estándar RS485 pudiendo conectar hasta 127 módulos en


cada bus RS485. El SRF485 cuenta con un regulador de potencia integrado de
5V, que permite alimentarlo con un voltaje comprendido entre 8 y 14
voltios. Tanto la alimentación como las señales RS485 se suministran al módulo
a través de un conector IDC de 10 pines, lo que facilita el cableado de una gran
cantidad de módulos.

307
Dispositivos

• Comunicación RS485

La velocidad de comunicación del bus RS485 es de 38.400 baudios con 1 bit de


inicio y 2 de parada y sin bits de paridad. El control de los SRF485 se realiza
enviando tramas de datos al módulo y luego escuchando la respuesta. Cada
SRF485 tiene una dirección única de 24 bits que se programa durante la
fabricación y está escrita en el módulo. La trama de datos que envía al SRF485
es:
Preámbulo Comando DirecciónH DirecciónM DirecciónL Datos Chksum

Preámbulo: 600 µs a nivel bajo, 50 µs a nivel alto.

Comando: es uno de varios comandos a los que responderá el SRF485.

Dirección H, M, L: es la dirección de 24 bits del módulo con el que desea


comunicarse.

Datos: son los datos que desea enviar al módulo, cero (0x00) si el comando no
requiere nada.

Chksum: es el complemento de 1 (negación bit a bit) de la suma de todos los


bytes anteriores (sin contar el preámbulo).

El SRF485 responderá con un número variable de bytes, de 0 a 4 dependiendo


del comando, pero la trama de transmisión es siempre la misma.

• Comandos

Para enviar un comando al SRF485, debe enviar una trama de datos. Hay tres
comandos para iniciar una medida (80 a 82), para producir el resultado en
pulgadas, centímetros o microsegundos. Estos tres comandos no transmiten el
resultado al microcontrolador. Debe esperar 70 ms y luego usar el comando 94
para obtener el resultado de la medida. Otro conjunto de tres comandos (83 a
85) hace lo mismo, pero compensando el resultado de la medida de distancia
con la información obtenida del sensor de temperatura. Juntos, estos seis

308
Anexo II. Tipos y propiedades de los transceptores de ultrasonidos

comandos (80 - 85) son comandos con lectura real, porque realizan una
medida completa con envío y recepción de la ráfaga de ultrasonidos. Hay otro
conjunto de seis comandos (86 - 91) de lectura simulada. Son los mismos que
los comandos de lectura real, excepto que no envían la ráfaga de 8 pulsos de
ultrasonidos. Se utilizan cuando la ráfaga ha sido transmitida por otro SRF485
para calcular distancias entre dos o más dispositivos. La sincronización debe
realizarse por medios externos a los propios dispositivos.

En la Tabla 2.3.5 se muestra la lista completa de comandos del sensor SRF485.

Tabla 2.3.5. Comandos del sensor SRF485.

Mando Bytes
Acción
Dec Hex devueltos
80 0x50 0 Modo de rango real: resultado en pulgadas
81 0x51 0 Modo de rango real - Resultado en centímetros
82 0x52 0 Modo de rango real: resultado en microsegundos
Modo de rango real: resultado en pulgadas, el rango de transmisión
83 0x53 2 automáticamente vuelve al controlador tan pronto como se completa el
rango.
Modo de rango real: resultado en centímetros, el rango de transmisión
84 0x54 2 automáticamente vuelve al controlador tan pronto como se completa el
rango.
Modo de rango real: resultado en microsegundos, el rango de Tx vuelve
85 0x55 2
automáticamente al controlador tan pronto como se completa el rango.
86 0x56 0 Modo de rango falso: resultado en pulgadas
87 0x57 0 Modo de rango falso: resultado en centímetros
88 0x58 0 Modo de rango falso: resultado en microsegundos
Modo de rango falso: resultado en pulgadas, el rango de Tx automáticamente
89 0x59 2
vuelve al controlador tan pronto como se completa el rango.
Modo de rango falso: resultado en centímetros, el rango de transmisión
90 0x5A 2 automáticamente vuelve al controlador tan pronto como se completa el
rango.
Modo de rango falso: resultado en microsegundos, el rango de Tx vuelve
91 0x5B 2
automáticamente al controlador tan pronto como se completa el rango.
92 0x5C 0 Transmite una ráfaga de 40 KHz de 8 ciclos; no se realiza ningún rango
93 0x5D 4 Obtener versión: envía 4 bytes de vuelta al controlador
Obtener rango no compensado, devuelve dos bytes (primero el byte alto) del
94 0x5E 2
rango más reciente.
Set Led's - Bit 0 controla Led1 - bit set y el Led está encendido. El bit 1
100 0x64 1
controla el Led2. Bit 2 controla Led3
101 0x65 0 Establecer modo de búsqueda: se utiliza para buscar SRF485 en el bus
102 0x66 0 o 1 Menos de: se utiliza para buscar SRF485 en el autobús
Establecer grupo: establece el número de grupo (0-127) al que pertenece esta
103 0x67 0
sonda.
Obtener temperatura: devuelve la temperatura en grados centígrados, como
104 0x68 2
una palabra firmada de 16 bits, el byte alto primero
Obtener el rango compensado por temperatura, devuelve dos bytes (primero
105 0x69 2
el byte alto) del rango más reciente.

309
Elección de los sensores para SAPPO

2.4 Elección de los sensores para SAPPO


Uno de los mejores modelos analizados ha sido el SRF02, pero debido a su alto
coste, después de analizar todos los modelos comerciales disponibles, ha sido
seleccionado para ser empleado en SAPPO, el modelo SRF04 o su copia china
equivalente, el HC-SR04. En la fecha de inicio de la construcción de SAPPO,
un prototipo básico de una habitación debería contener 20 sensores, cuyo coste
solo en sensores, empleando el modelo SRF02 sería de 800 € contando con dos
balizas de 90 grados de cobertura y un robot. El SRF04 podía encontrarse por
un coste aproximado de 1 €, lo que implica que, en la configuración anterior,
el coste sería de 20 €. Aunque el SRF04 es el sensor más simple, se ha decidido
emplear este modelo, dado que su rango de cobertura era suficiente para la
mayoría de las habitaciones, teniendo la capacidad de utilizar el modelo SRF02
en habitaciones de gran tamaño.

310
3 Anexo III. Cálculo de precisión entre dos
transductores en SAPPO

3.1 Introducción
La primera tarea que ha sido necesario realizar en el sistema de
posicionamiento SAPPO es el cálculo de una medida de distancia simple entre
dos transceptores de ultrasonidos. Esta primera operación, que a priori, puede
parecer casi trivial, cuando involucramos elementos físicos y electrónicos,
veremos que es todo menos sencilla. Los cálculos teóricos, una vez aplicados al
medio distan mucho de reproducirse en la realidad, obteniendo medidas
totalmente variables de las magnitudes recuperadas.

Para ser capaces de realizar una medida de distancia entre dos sensores de
ultrasonidos, ambos sensores deben estar perfectamente sincronizados. Para
comprobar el grado de precisión con el que es posible sincronizar un emisor y
un receptor, se generará en el emisor una onda cuadrada que debe ser
detectada por el receptor midiendo el tamaño de los pulsos. Cuando más
precisa sea esta medida, mayor capacidad de sincronización tendrá el sistema.

En la Figura 3.1.1 se puede ver la señal cuadrada que genera el emisor, que
servirá como base de pruebas para detectar el grado de sincronización del
receptor.

311
Introducción

60

Nivel de la señal en 1/10 Voltios


50

40

30

20

10

0
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81
Tiempo transcurrido en unidades de 20 µs

Figura 3.1.1 Señal cuadrada de sincronización.

Todos los pulsos tienen la misma duración, con lo que, si se realizara una
gráfica con la duración de los pulsos tanto de nivel bajo como de nivel alto, el
resultado sería el que se ve en la Figura 3.1.2. La línea representa las lecturas
que teóricamente debería recuperar el receptor. Todos los valores leídos deben
ser iguales, por lo que mantiene el mismo valor en el tiempo
independientemente del número de medidas realizadas.

160
Tiempo del pulso en µs

140
120
100
80
60
40
20
0
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33
Nº de lectura del tiempo del pulso

Figura 3.1.2 Tiempos teóricos de duración de los pulsos que debería recuperar en el receptor.

Pero como la teoría sólo se acerca a la práctica, en el mundo real, los tiempos
de los pulsos recuperados por el receptor se pueden ver en la Figura 3.1.3.

312
Anexo III. Cálculo de precisión entre dos transductores en SAPPO

180
160
140
120
100
80
60
40
20
0
1
37
73
109
145
181
217
253
289
325
361
397
433
469
505
541
577
613
649
685
721
Figura 3.1.3 Tiempos reales de duración de los pulsos que recupera el receptor.

Como se aprecia en la Figura 3.1.3, en el mejor de los casos se mantiene una


simetría, de modo que los errores ocurren a ambos lados de la media y esta es
el valor real de duración de los pulsos. Aun así, también pueden apreciarse
valores muy desviados que muestran interferencias, de forma que el receptor
ha tardado mucho en detectar la portadora y ha visto muy reducido el tamaño
del pulso.

En las siguientes secciones se realizará una aproximación de las técnicas


empleadas para ir incrementando la precisión y reduciendo el error en las
medidas. Se han ido probando los componentes de modo individual, primero
conectados a la misma placa para luego probarlos en placas separadas
sincronizadas por radiofrecuencia.

3.2 Precisión de medidas estáticas


Una vez definida la arquitectura hardware a emplear se ha comenzado a testar
la precisión de cada uno de los componentes que inciden en la medida de
modo independiente. Debe tenerse en cuenta que el objetivo es alcanzar
precisiones milimétricas con la suma de los errores generados por el hardware
y por el software. Con este objetivo se debe intentar reducir al mínimo los
retardos y errores generados por el hardware para disponer de una buena
plataforma para operar con los algoritmos de predicción y filtrado de señales.

313
Precisión de medidas estáticas

Debemos tener en cuenta que estamos trabajando con componentes de muy


bajo coste, dado que el objetivo es conseguir que el despliegue de este tipo de
componentes sea asequible para cualquier persona que lo necesite, y más
teniendo en cuenta que al no ser un producto de amplia difusión, nunca
podrán ser aplicados los términos de economías de escala.

Dentro de los componentes que intervienen en una medida individual entran


tanto el sistema de sincronización de radio, como el sistema de detección de
tiempo de vuelo de ultrasonidos, como las propias aportaciones del sistema de
cómputo, recepción de señales y temporización. Para comprobar el error que
aporta cada uno de estos sistemas deben ser testados de modo independiente.

Evaluación de la precisión máxima del hardware conectando sensores


al mismo hardware

Dado que SAPPO debe alcanzar precisiones milimétricas con una complejidad
técnica contenida, se ha seleccionado como medida física a emplear para esta
primera prueba, el tiempo de vuelo de una onda de ultrasonidos. Aunque
comparativamente la velocidad de propagación del sonido es mucho más baja
que la velocidad de propagación de las ondas de radio, aun así, esta velocidad
de propagación sigue siendo muy alta en distancias cortas, y más cuando se
pretende alcanzar precisiones de unidades de milímetros. Debe tenerse en
cuenta que la velocidad media de propagación de una señal de ultrasonidos en
el aire a 1 atmósfera, 55% de humedad relativa y 20 grados de temperatura es
de 343 m/s. Empleando microcontroladores como el atmega328 que monta la
placa de desarrollo Arduino Uno, mediante las funciones de medida de tiempo
estándar de Arduino tenemos una precisión de 4 µs. Por cada µs, el frente de
onda recorre 0,34 mm lo que implicaría que, empleando las funciones de
medida de tiempo estándar, con la situación más perfecta, tendremos un error
de base de 1,2 mm, sólo teniendo en cuenta la capacidad de resolución mínima
de tiempo de un Arduino Uno a 16 MHz. A este error de partida se tendrán
que ir acumulando los errores de los distintos dispositivos hardware y librerías
empleados.

314
Anexo III. Cálculo de precisión entre dos transductores en SAPPO

Para evaluar de modo preciso el error mínimo que puede alcanzarse, es


necesario analizar los márgenes de error que proporcionarán cada uno de los
dispositivos hardware empleados en una medida.

• Evaluación de la precisión máxima de los sistemas de sincronización por RF

Antes de comenzar a analizar la viabilidad del sistema, se ha intentado emplear


el transceptor nRF24L01 tanto para comunicaciones de radio como para
sincronización en las medidas de distancia. Con esta primera aproximación se
obtenían variaciones de cientos de microsegundos al recuperar cada una de las
medias, con lo que éstas se veían alteradas en decenas de milímetros. Después
de analizar la configuración del transceptor, eliminar reintentos, esperas
aleatorias para el acceso al medio y confirmaciones de ACK, seguían existiendo
variaciones muy grandes de tiempos que no fue posible reducir. La
complejidad de la pila de protocoles del nRF24L01 ocasionaba variaciones de
microsegundos en el procesado de cada paquete, lo que originaba errores de
precisión total de algunas decenas de milímetros.

Para evitar un alto grado de interferencia en las distancias a medir, de la


electrónica de radio, se decidió emplear el transmisor más sencillo que había
en el mercado. Este está compuesto por un emisor de radio, siendo el receptor
otro módulo separado. El emisor, cuando se activa genera una portadora de
433 MHz y el receptor sintoniza la portadora de 433 MHz y cuando detecta la
señal, activa su señal de salida a nivel alto. Los módulos son tan sencillos, que
una vez sincronizadas las fases de emisor y receptor, aunque el emisor siga
transmitiendo, éstos pierden la fase aproximadamente a los 80 milisegundos,
con lo que hay que generar flancos de subida de la señal de 0 a 1 y viceversa
cada pocos milisegundos.

Como se ha explicado en apartados anteriores, para conseguir medir el tiempo


de vuelo de la señal de ultrasonidos, esta se envía conjuntamente con un
paquete de radio, que una vez recuperado por el receptor iniciará el contador
de tiempo para calcular el tiempo de vuelo de la señal de ultrasonidos. El
paquete de radio de sincronización del reloj se envía mediante el hardware

315
Precisión de medidas estáticas

simple de transmisión de radiofrecuencia a 433 MHz. El tiempo de vuelo de la


onda de radiofrecuencia se puede considerar despreciable, pero el tiempo
necesario para que la electrónica sintonice la portadora y se sincronice con ella
si debe ser considerado.

Para evaluar únicamente el sistema de sincronización por radiofrecuencia, se


ha propuesto una prueba en la que se enlaza tanto un módulo emisor como un
módulo receptor al mismo controlador Arduino Uno, de este modo se evitarán
los errores producidos por ligeros errores de sincronización entre relojes de
dos microcontroladores. El microcontrolador cambiará la señal fuente de
emisión entre 1 y 0 mediante uno de sus pines de salida, ejecutará un retardo
en microsegundos y posteriormente intentará leer el pin de datos del módulo
receptor. Estableciendo varias medidas del retardo, se comprobará el tiempo
que debe transcurrir para que el cambio de un valor de un bit en el módulo
emisor sea detectado por el módulo receptor.

Realmente, el dato importante no es el tiempo, dado que si este tiempo fuera


preciso, directamente podría incrementarse al tiempo de vuelo con el retardo
fijo, obteniendo una precisión absoluta. El problema lo origina la variabilidad
de este tiempo, dado que la portadora no se detecta con la misma rapidez en
todas las emisiones. Lo que se pretende obtener es esta variabilidad entre
transmisiones, obteniendo el tiempo en µs mínimo que debe transcurrir para
detectar la señal alguna vez y el tiempo más tardío en el que se ha detectado la
señal.

En el experimento se contabilizan las veces que se ha recuperado el bit con la


misma información que se ha enviado. Igualmente se discrimina por valor,
contabilizando las veces que se envía un 1 y se lee un 1 y las que se envía un 0 y
se lee un 0.

Después de realizar el experimento se ha detectado que el tiempo mínimo para


que una señal sea detectada con el receptor desde su escritura en el pin de
salida es de 36 µs. Por debajo de este tiempo, el receptor no es capaz de detectar
la portadora en ningún caso. Entre 36 y 42 µs la probabilidad de detectar la

316
Anexo III. Cálculo de precisión entre dos transductores en SAPPO

señal enviada es del 7,33%. Entre 42 y 44 µs, la probabilidad de detectar la señal


enviada sube del 7,33% hasta el 100% y a partir de 44 µs la señal enviada se
recibe siempre que no sea alterada por ruido en el medio de transmisión.

Este resultado nos indica que no podemos establecer tiempo de bit por debajo
de 20 µs y el primer flanco de detección del primer bit puede oscilar entre 0 y
20 µs.

Para obtener los datos se han realizado series de 600 iteraciones con cada uno
de los retardos de transmisión entre 30 y 59 µs. En cada iteración se invierte el
valor del bit enviado, con lo que se envían 300 unos y 300 ceros, intentando
recibir la misma información.

700

600

500
Nº de muestras

400

300

200

100

0
30 32 34 36 38 40 42 44 46 48 50 52 54 56 58
Microsegundos desde el inicio de la señal

Iguales Diferentes ceros_leidos unos_leidos

Figura 3.2.1 Diferencias entre emisión y recepción a lo largo del tiempo.

En la Figura 3.2.1 pueden apreciarse las siguientes gráficas con el significado


que se indica:

Devuelve el número de iteraciones en que el valor enviado por el trasmisor y el


recuperado por el receptor es el mismo

Devuelve el número de iteraciones en el que se envía un valor, pero se lee otro

317
Precisión de medidas estáticas

Devuelve el número de iteraciones en el que se envía un 0 y se lee un 0

Devuelve el número de iteraciones en el que se envía un 1 y se lee un 1

Debido al sistema de modulación OFK empleado, y dado que la ausencia de


portadora siempre se lee como un cero, puede verse que el número de ceros
leídos siempre es correcto y se mantiene estable en 300.

Para que el receptor lea un 1, es necesario que se transmita la portadora y es


en este bit cuando podemos apreciar que se producen todos los errores y que
es a partir de 44 µs cuando se empiezan a recuperar de forma correcta sus
valores.

Como conclusión obtenemos que entre 36 y 44 µs se encuentra la variación de


tiempo para que se encuentre disponible la señal y el retardo mínimo es de 36
µs, aunque el 92% de la variación ocurre entre los microsegundos 41 y 44, lo
que representa un margen de 3 µs. La Figura 10.2.1 muestra que una vez
transmitido el 1 y generada su portadora en el emisor, el receptor tarda un
mínimo de 36 µs en detectarla.

Esta medida indica que el transceptor RF de 433 MHz incorpora un tiempo de


error en la lectura de 8 µs * 343 m/s que supone un error de 2,75 mm. Pero
para conseguir esta precisión, el software debe conseguir una sincronización
absoluta, lo que resulta casi imposible. Empleando las funciones de tiempo
estándar del Arduino Uno incrementaremos otros 4 µs, lo que representaría
un error acumulado de 4,11 mm.

• Evaluación de la precisión máxima de los transductores de ultrasonidos

Para la evaluación de los módulos de ultrasonidos se han conectado dos de


estos módulos modificados al mismo hardware de control realizando la misma
operación que con el hardware de RF. Como en el caso anterior, la prueba

318
Anexo III. Cálculo de precisión entre dos transductores en SAPPO

debe centrarse en la variabilidad de la señal, no en el tiempo mínimo para la


detección de una señal transmitida por el emisor.

Para realizar la prueba, de modo sincronizado se ha generado un pulso de


ondas de ultrasonido en el transceptor emisor, al mismo tiempo que se iniciaba
la lectura en el receptor. Ambos conectados al mismo hardware. Teniendo en
cuenta que la distancia entre el emisor y el receptor se mantiene constante, en
un mundo perfecto el valor de distancia en milímetros debería ser siempre el
mismo con lo que una vez graficado se obtendría una línea recta plana, pero el
resultado dista mucho de ser así.

En el siguiente gráfico pueden verse las variaciones en los tiempos medidos.

3340
valor medido en microsegundos

3330

3320

3310

3300

3290

3280

3270
1 5 9 13172125293337414549535761656973778185899397
Muestras de las lecturas

Figura 3.2.2 Lecturas de medidas en microsegundos del transceptor HC-SR04.

En la gráfica de la Figura 3.2.2 puede verse la dispersión de las medias en una


muestra de 100 medidas. Esta dispersión se mantiene casi estable con el
aumento la distancia entre los transductores.

En la Tabla 3.2.1 pueden verse los datos estadísticos de las medidas


Tabla 3.2.1. Tabla de datos estadísticos de las medidas del HC-SR04.

Variables estadísticas µs
Media 3311,693
Error típico 1,146
Mediana 3305
Moda 3304
Desviación estándar 11,350
Varianza de la muestra 12,.833
Curtosis -1,671

319
Precisión de medidas estáticas

Coeficiente de asimetría 0,191


Rango 36
Mínimo 3293
Máximo 3329
Cuenta 98
Nivel de confianza (95.0%) 2,275

Los transductores son enormemente precisos dando un resultado de


desviación sobre la media de menos de 12 µs con un rango de variación
máximo de las medidas de 36 µs, lo que implica que las medidas podrían variar
como máximo en 12 mm.

Medidas de precisión conectando emisor y receptor a distinto


hardware

Cuando conectamos los módulos electrónicos a distintas placas de


microcontroladores, ya no solo estamos teniendo en cuenta los errores
producidos por los sistemas de comunicación de radio y de ultrasonidos, sino
que estamos incorporando los errores producidos por la falta de sincronismo
de los relojes de los microcontroladores, por las interrupciones que se
producen en cada uno de ellos, etc.

Para probar la precisión de sincronización de las dos placas se ha generado un


pulso cuadrado en el emisor que debe ser detectado en el receptor. En el
receptor se recupera la información de la duración de cada uno de los pulsos.
En un mundo perfecto la duración de todos los pulsos sería idéntico, pero en
el mundo real veremos que las medidas sufren múltiples variaciones.

• Generación de la señal cuadrada con delayMicros() en el emisor y detección de


tiempos con micros() en el receptor

En la primera prueba de aproximación se ha generado una señal cuadrada en


el emisor con la función delayMicros() de Arduino que espera el tiempo
indicado en microsegundos. Para recuperar la duración de los pulsos se ha
empleado la función micros() en el receptor que devuelve el tiempo
transcurrido en microsegundos. Esta función tiene un error de precisión de 4
µs. Ambos programas se ejecutan en bucles infinitos.

320
Anexo III. Cálculo de precisión entre dos transductores en SAPPO

250

Tiempo de ciclo en
200

microsegundos
150

100

50

1
26
51
76
101
126
151
176
201
226
251
276
301
326
351
376
401
426
451
476
Nº de muestra ordenada por valor

Figura 3.2.3 Tiempo del ancho de pulso generado y recuperado con funciones de temporización.

En Figura 3.2.3 puede apreciarse una variabilidad total entre las medidas más
alejadas de 58 µs.
Tabla 3.2.2 Variables estadísticas de las medidas de tiempo RF con funciones de temporización.

Variables estadísticas µs
Media 165,543
Error típico 0,556
Mediana 166
Moda 156
Desviación estándar 12,334
Varianza de la muestra 152,150
Curtosis -0,529
Coeficiente de asimetría 0,537
Rango 58
Mínimo 138
Máximo 196
Cuenta 491

Como muestra la Tabla 3.2.2, con este sistema tenemos una variabilidad media
de 12 µs sobre la media, lo que representa un rango de variabilidad máximo de
24 µs a ambos lados de la media. El error máximo con esta tecnología sería de
casi 8,23 mm.

• Generación de la señal cuadrada de pulsos y recuperación del tiempo de ciclo


mediante interrupciones

Como alternativa al empleo de las funciones estándar de medición de tiempo


del lenguaje Wire de Arduino puede emplearse la librería
eRCaGuy_TimerCounter 47. Con esta librería se alcanzan precisiones de 0,5 µs, a

47 https://github.com/ElectricRCAircraftGuy/eRCaGuy_TimerCounter/

321
Precisión de medidas estáticas

costa de emplear el recurso del contador interno timer2 que no puede ser
empleado para otras funciones. Empleando esta librería para generar la onda
cuadrada y para detectar la duración de los pulsos se obtienen las siguientes
medidas de duración en el receptor.

140
Tiempo de la medida en microsegundos

120

100

80

60

40

20

0
1
27
53
79
105
131
157
183
209
235
261
287
313
339
365
391
417
443
469
495
521
547
573
599
625
651
677
Nº de medida ordenadas por valor

Figura 3.2.4 Tiempo de las medidas ordenadas del ancho del pulso empleando funciones de alta precisión.

En la Figura 3.2.4 puede apreciarse que las medias se han compactado y


aparecen más valores en intervalos intermedios en donde antes la señal saltaba
de forma discreta. Los datos estadísticos se muestran en la Tabla 3.2.3.
Tabla 3.2.3 Variables estadísticas de las muestras generadas con temporizadores de alta precisión.

Variables estadísticas µs
Media 105,723
Error típico 0,203
Mediana 104
Moda 103
Desviación estándar 5,337
Varianza de la muestra 28,491
Curtosis 0,423
Coeficiente de asimetría -0,065
Rango 38
Mínimo 87
Máximo 125
Cuenta 688

La posibilidad de generar pulsos con una medida de tiempo más precisa ha


originado que las medidas se concentren alrededor de la media de una forma

322
Anexo III. Cálculo de precisión entre dos transductores en SAPPO

mucho más estrecha consiguiendo una desviación estándar de poco más de 5


µs con un rango de variación total de 38 µs y una variación máxima sobre la
media de 19 µs, lo que implica un error máximo de 6,5 mm.

• Generación de la señal cuadrada y lectura de su duración mediante interrupciones

En la siguiente prueba, se ha abandonado el empleo de funciones de


temporización pasando a emplear interrupciones. Para el emisor se ha
configurado una interrupción del temporizador en el timer2 por comparación
y en el receptor se ha configurado una interrupción sobre la señal de salida del
receptor de RF en modo CHANGE, lo que implica que cada vez que produce
en la señal un flanco de subida (la señal pasa de 0 a 1) o de bajada (cambio de
1 a 0), el microcontrolador generará una interrupción.

155
Medida del pulso en µs

150
145
140
135
130
125
120
115
1
18
35
52
69
86
103
120
137
154
171
188
205
222
239
256
273
290
307
324
341
358
375
392
409
426

Nº de muestra ordenada por valor

Figura 3.2.5 Tiempo del ancho del pulso empleando interrupciones.

En la Figura 3.2.5 puede verse que los resultados de las medidas de la duración
del ancho de pulso se concentran en dos rangos de medidas. En cada uno de
ellos se reparten las medidas en dos bloques separados por 2 µs. Después de
estudiar el gráfico, nos dimos cuenta que se está midiendo la duración de los
pulsos, tanto la duración del tiempo a nivel alto como la duración del tiempo
a nivel bajo. En un mundo perfecto, dado que estas lecturas corresponden a
una señal cuadrada, las duraciones de ambas deberían ser iguales, pero dado
que el emisor-receptor de RF de 433 MHz emplean codificación de la señal en
OFK, queda patente que no tarda lo mismo en detectar el comienzo de la
portadora que en detectar el final de la misma, por este motivo las duraciones
de los pulsos alto y bajo se concentran alrededor de dos valores muy distintos.

323
Precisión de medidas estáticas

Para intentar evitar estas limitaciones del hardware de transmisión se ha


decidido medir sólo el comienzo del pulso a nivel alto que incluye el tiempo
del pulso alto y del pulso bajo, es decir cuando la señal para de 0 a 1.

En la Figura 3.2.6 puede verse señalado por la flecha verde, el fragmento del
pulso que pasamos a medir. Antes se recuperaba el tiempo transcurrido entre
cada cambio de señal de nivel bajo a nivel alto y viceversa. Para medir siempre
el mismo evento físico, ahora se recupera el tiempo transcurrido entre flancos
de subida, con lo que teóricamente pasaríamos a medir el doble de tiempo.

Figura 3.2.6 Medida de tiempo en la señal de sincronización.

Con este cambio, puede apreciarse en la Figura 3.2.7 la mejora de precisión


obtenida, de forma que las medidas ya no se concentran sobre dos valores muy
diferenciados, sino que se encuentran muy próximos entre sí.

285
Tiempo de ciclo
completo en µs

280

275

270
1
66
131
196
261
326
391
456
521
586
651
716
781
846
911
976
1041
1106
1171
1236
1301
1366
1431

Nº de muestra ordenadas por valor

Figura 3.2.7 Tiempo de ancho de pulso a nivel alto y bajo ordenados.

Empleando la librería eRCaGuy_TimerCounter en el receptor para medir la


duración de los pulsos con mayor precisión y empleando interrupciones para
detectar solo el flanco de subida, con lo que se detecta el tiempo entre cambios
de señal de 0 a 1, puede apreciarse que la precisión se ha incrementado
obteniendo el 80% de los valores de medida para sincronización dentro de 4
µs de margen.

324
Anexo III. Cálculo de precisión entre dos transductores en SAPPO

Tabla 3.2.4 Datos estadísticos de medidas mediante interrupciones de flanco de subida.

Variables estadísticas µs
Media 277,460
Error típico 0,030
Mediana 278
Moda 278
Desviación estándar 1,185
Varianza de la muestra 1,404
Curtosis -0,324
Coeficiente de asimetría 0,104
Rango 8
Mínimo 274
Máximo 282
Cuenta 1480

Como indica la Tabla 3.2.4, se obtiene una desviación sobre la media de 1,2 µs.
Con esta capacidad de sincronización.

Aun así, hay que tener en cuenta que estamos tratando siempre valores medios,
y que la precisión del pulso que marca la sincronización puede estar desviada
sobre la media. Esto se aprecia muy bien en el gráfico de dispersión de la Figura
3.2.8.

Figura 3.2.8 Diagrama de dispersión de tiempos de pulsos.

Se puede ver que la gran mayoría de los pulsos son detectados con pequeñas
variaciones de tiempo alrededor de la media, pero debido a la simplicidad del
hardware, algunos se detectan muy tarde con respecto a su inicio, llegando a

325
Precisión de medidas estáticas

tener variaciones de 30 µs que representarían errores de 10 mm que serían


incorporados solo por el sistema de sincronización de radio, sin contar con el
resto de los componentes.

• Sincronización con librería de comunicación

VirtualWire es una librería de comunicaciones que se emplea con los


transceptores simples de RF de 433 MHz permitiendo velocidades máximas de
comunicación que alcanzan los 6 Kbps en un Arduino Uno. En la siguiente
prueba se realizó el envío de paquetes para sincronizar las medidas de
ultrasonidos obteniendo los resultados que muestra la Figura 3.2.9. Dado que
en esta primera versión de SAPPO la sincronización se realiza mediante el
envío de paquetes de radio, las medidas graficadas corresponden directamente
a los valores de distancia obtenidos entre dos dispositivos de simulación, uno
realizando la función del robot con un transceptor y un emisor de RF de 433
MHz y el otro realizando la función de baliza con un transceptor modificado
como receptor y un receptor de RF. En esta prueba los errores corresponden a
la suma de los errores del sistema de sincronización por RF, más los errores del
módulo de medición de distancia por ultrasonidos.

530
525
Medidas en milímetros

520
515
510
505
500
495
490
1
22
43
64
85
106
127
148
169
190
211
232
253
274
295
316
337
358
379
400
421
442
463
484

Nº de medida de distancia del tiempo de vuelo de la señal de


ultrasonidos ordenados.

Figura 3.2.9 Distancias en milímetros de operaciones sincronizadas por paquetes.

La Tabla 3.2.5 muestra los valores estadísticos.


Tabla 3.2.5 Datos estadística de duraciones de ToF de ultrasonidos sincronizados mediante VirtualWire.

Variables estadísticas µs

326
Anexo III. Cálculo de precisión entre dos transductores en SAPPO

Media 518,559
Error típico 0,160
Mediana 518,500
Moda 516,460
Desviación estándar 3,592
Varianza de la muestra 12,905
Curtosis 0,699
Coeficiente de asimetría -0,225
Rango 23,460
Mínimo 504,560
Máximo 528,020
Cuenta 500

Una vez ordenadas las medidas, puede apreciarse que la mayor parte de ellas
se concentran en un rango de 10 mm con un rango máximo de variabilidad de
20 mm. Estos valores indican que, de media, este sistema añadirá 5 mm de error
a las medidas obtenidas de las balizas.

Figura 3.2.10 Diagrama de dispersión de las medidas.

En el gráfico de dispersión de la Figura 3.2.10 puede apreciarse que la mayor


densidad de medidas se concentra entre 515 y 520 mm consiguiendo mantener
más del 80% de las medidas dentro del rango de 1 cm de precisión que es el
objetivo del sistema.

327
Conclusiones

3.3 Conclusiones
Después de analizar las distintas combinaciones de hardware, vemos que sería
posible alcanzar rangos medios de precisión en la sincronización del orden de
8 a 10 µs, lo que implicaría un error en la medida medio de 3 mm que sumado
a otro milímetro que incorpora en media el transceptor de ultrasonidos nos
situaría en errores de medida medios de 5 mm a costa de incrementar la
complejidad de los sistemas de sincronización. Finalmente, empleando la
librería VirtualWire como medio de sincronización se consiguen rangos medios
de precisión de 10 mm que se considera que están dentro de los requisitos, por
lo que se empleará esta librería para sincronizar la emisión de los paquetes de
ultrasonido.

328
4 Anexo IV. Cálculo de cobertura de SAPPO en
una habitación real

4.1 Introducción
En este anexo se realizan los cálculos precisos de cobertura en una habitación
real de una casa. Esta habitación tiene 9 metros de largo y 4,5 metros de ancho.
Es una habitación extremadamente grande que correspondería casi con la
mitad de una vivienda completa. Realmente corresponde al salón de la casa en
donde se desarrolló SAPPO.

4.2 Resolución trigonométrica


En la Figura 4.2.1 se pueden apreciar las dos balizas que se situarán a ambos
lados de la habitación en la pared de fondo. Los círculos rojo y azul se
corresponden con los perímetros de las áreas máximas de cobertura perfecta
de las dos balizas, si estuvieran formadas por arrays de 360 grados, aunque
normalmente están formadas por arrays de 90 o 180 grados de cobertura y en
este caso, cada baliza cubre 90 grados, lo que se representaría por la cuarta
parte del área de la circunferencia delimitada.

Figura 4.2.1. Intersección de la cobertura de dos balizas.

El espacio marcado en amarillo se corresponde con el área que hay que calcular
empleando trigonometría y que corresponde a la mitad del área total de

329
Resolución trigonométrica

solapamiento de las dos balizas, lo que corresponde al área útil para la


localización de estaciones móviles, dado que es necesario obtener la medida de
distancia a dos balizas.

Figura 4.2.2. En verde se ve la mitad de la zona de cobertura de las dos balizas.

Para conocer con exactitud la cobertura en una habitación delimitada por


parecedes tenemos que calcular el área de intersección de las dos balizas que
se encuentra dentro de las paredes.

Para realizar los cálculos se emplean las características de dos balizas con
transceptores HC-SR04 que tienen una alcance máximo de 9 metros, por lo
que cada circunferencia tiene una radio de 9 metros. La habitación tiene 4,5
m de anchura y se emplearán balizas con una cobertura de 90 grados de arco.
La cobertura máxima total sin paredes, sería la mitad del área de intersección
de las dos cirunferencias, dado que las balizas cubren 90 grados y no 180, por
lo que solo emiten hacia una diracción. Puede verse en la Figura 4.2.2 la mitad
de esta área de cobertura que es necesario calcular más los dos triángulos
añadidos que nos ayudarán en el cálculo. En la Figura 4.2.3 puede observarse
el primer área que necesitamos despejar, y en la Figura 4.2.4 se han trazado las
líneas que definen los triángulos que es necesario resolver y los arcos de
circunferencia que delimitan las áreas a calcular.

330
Anexo IV. Cálculo de cobertura de SAPPO en una habitación real

Figura 4.2.3. Área inicial a resolver.

Para llegar al cálculo del área es necesario obtener el ángulo formado por los
��� ya que la longitud de a es conocida y representa la cobertura de la
lados 𝑎𝑎𝑎𝑎
baliza que son 9 metros solo queda por conocer el ángulo formados por los
lados ���
𝑎𝑎𝑎𝑎. a=9m, b=2,25m que es la mitad del ancho de la habitación que son
4,5 metros.
𝑐𝑐
���) =
sin(𝑎𝑎𝑎𝑎 (1)
𝑎𝑎
Para resolver la ecuación solo es necesario despejar c. Como forma parte de un
triángulo rectángulo podemos resolver c empleando la Ecuación (2).

𝑐𝑐 2 + 𝑏𝑏 2 = 𝑎𝑎2 => 𝑐𝑐 = �𝑎𝑎2 − 𝑏𝑏 2 = 8,71 (2)

Figura 4.2.4. Triángulos a resolver para calcular el área de cobertura.

331
Resolución trigonométrica

𝑐𝑐 𝑐𝑐
sin(𝜃𝜃) = => 𝜃𝜃 = arcsin � � = 75,42º (3)
𝑎𝑎 𝑎𝑎

El área del semicírculo a1 de la Figura 4.2.3 es

1
𝐴𝐴1 = 𝜃𝜃𝑟𝑟 2 (4)
2

𝜽𝜽 es el doble del ángulo formado por los lados a y b que es 150,84 grados dado
que se calcula tanto el área de la parte superior como de la inferior. Será
necesario pasar el ángulo a radianes

180 150,84
= => 𝑥𝑥 = 2,63 (5)
𝜋𝜋 𝑥𝑥
Despejando el área A1

1
𝐴𝐴1 = 𝜃𝜃𝑟𝑟 2 = 106 𝑚𝑚2 (6)
2
En el siguiente paso se calculan las áreas de a3 y a2 para restarlas a a1 como se
puede ver en la Figura 4.2.5 y dar como resultado el área de cobertura de las
balizas dentro de la habitación. Aunque inicialmente no se vea de forma
gráfica, al desplazar el área verde hacia abajo y colocarla a la derecha del área
amarilla, podrá verse gráficamente el área completa de cobertura.

Figura 4.2.5. Cálculo de áreas para restar a2 y a3.

Para calcular la mitad del área de

332
Anexo IV. Cálculo de cobertura de SAPPO en una habitación real

𝑏𝑏 · 𝑐𝑐
𝑎𝑎2 = = 9,8 (7)
2
por lo que el área total es 19,6 m2.

Para calcular el área a3, empleando el mismo procedimiento, primero


calculamos el área conjunta a4+a5 para lo cual tenemos que despejar c1 de la
Ecuación (8):

= 𝑐𝑐12 + 𝑏𝑏12 => 𝑐𝑐1 = √𝑎𝑎12 − 𝑏𝑏12 = 7,79 (8)

𝑐𝑐1 𝑐𝑐1
𝑎𝑎12 sin(𝜃𝜃) = => 𝜃𝜃 = arcsin � � = 59,94º (9)
𝑎𝑎1 𝑎𝑎1

180 119,88
= => 𝑥𝑥 = 2,09 (10)
𝜋𝜋 𝑥𝑥
despejando, el área a4+a5 es

1 2
𝐴𝐴4_5 = 𝜃𝜃𝑟𝑟 = 84,65 𝑚𝑚2 (11)
2

Figura 4.2.6. Representación del área de a4 y a5.

El área a5 (Figura 4.2.6) está formada por el doble del área del triángulo
formado por los lados a1, b1, c1 que es igual a

17,5 · 2 = 35 𝑚𝑚2 (12)

A4 = A4_5– A5 = 84,65 – 35 = 49,65 𝑚𝑚2 (13)

En la Figura 4.2.7 se pueden ver los dos triángulos que fue necesario resolver
para calcular el área de intersección.

333
Resolución trigonométrica

Figura 4.2.7. Triángulos a resolver.

El área real de intersección resulta de la Ecuación (14):

a1 – a2 − a3 = 106 – 19,6 − 49 = 37,4 𝑚𝑚2 (14)

Como conclusión, para una habitación muy grande de 9 x 4,5 metros, lo que
representa un área total de 40,5 m2, SAPPO, con solo dos balizas cubriría el
92,35% de la habitación.

334
5 Anexo V. Simulación de navegación de un
robot diferencial con CoppeliaSim

5.1 Introducción
El simulador CoppeliaSim, antes llamado V-REP, es un simulador de robótica
de la empresa Coppelia Robotics, que es una pequeña empresa ubicada en
Zünch, en Suiza. Es uno de los mejores simuladores de robótica para la
plataforma Windows® y posee una versión gratuita para profesores y
estudiantes. Se emplea en los ámbitos industrial, investigación y educativo
[1][2]. Este potente simulador es compatible con ROS (Remote Operating
System)[3] y soporta algoritmos de control externos, que interactúan a través
del API de cliente con la simulación. Los programas de control pueden ser
escritos en C/C++, Python, Java, Matlab y Octave, lo que lo hace
tremendamente versátil. También es posible escribir código interpretado
directamente en las simulaciones de CoppeliaSim, en este caso el código se
escribe en lenguaje Lua o más recientemente, en las últimas versiones, en
Python. Tiene una arquitectura de control distribuido síncrono, pero es posible
implementar controladores asíncronos que se ejecutan en procesos
independientes y se conectan a través de un middleware, soportando ROS, API
remota y ZeroMQ con lenguajes como C#, Python, Java o MatLab[4].

Implementa directamente un motor de cinemática para los cálculos de


cinemática directa e inversa. Para la interacción entre los objetos soporta varias
bibliotecas de físicas como Buller, ODE, Vortex o Newton Game Dynamic con las
que permite calcular y detectar tanto las colisiones entre objetos con gran
precisión, como el comportamiento dinámico de los elementos de la
simulación.

Los modelos de simulación se componen empleando módulos que se unen


mediante uniones. Para la definición de los módulos básicos pueden emplearse
una gran variedad de elementos como figuras geométricas, mallas, sensores,

335
Generación del entorno de simulación

nubes de puntos, etc. y los puntos de unión poseen multitud de características


configurables.

Incluye capacidad de planificación de movimientos empleando OMPL


(Open Motion Planning Library), funcionalidad empleada en [5]. También
permite simular robots con procesamiento de imágenes a partir de cámaras
empleando OpenCV (Open Source Computer Vision Library). En [6] se combinan
las características de simulación del entorno empleando OpenCV.

Adicionalmente permite que el usuario configure su interface para adaptarlo a


las necesidades de su propia simulación, permitiendo combinar la visualización
de datos en tiempo real en la propia interface.

5.2 Generación del entorno de simulación


Para la creación del entorno de simulación se ha tenido en cuenta la
configuración modular del software del robot de servicio DANI, dado que será
el robot objetivo en el que se necesita implantar este sistema, pero la simulación
se ha realizado empleando el hardware de la configuración cinemática de un
robot diferencial como RODI. DANI tiene un PC con Windows como módulo
de navegación que se conecta a una placa Arduino mediante USB para
transferir las instrucciones sobre los actuadores. El Arduino traduce estas
instrucciones en señales con las que opera directamente los actuadores y
recupera la información de los sensores.

Se ha decidido realizar un proyecto externo en Visual Studio y emplear el API


de control remoto de CoppeliaSim para interaccionar con la simulación,
enviando los comandos de movimiento de los motores. El proceso externo
simulará el sistema de control de DANI y el propio simulador con sus
actuadores y sensores simulará el comportamiento del microcontrolador
Arduino.

El proyecto ha sido desarrollado empleando el lenguaje C++, dado que es muy


similar a wiring, que es el lenguaje de programación del entorno IDE (Integrated
Development Environment) de Arduino. De esta forma, una vez comprobado el

336
Anexo V. Simulación de navegación de un robot diferencial con CoppeliaSim

funcionamiento de la simulación, el código puede traspasarse directamente


para interactuar con los robots reales.

Para simular una trayectoria se ha definido un objeto path que se visualiza como
una línea de puntos que el propio CoppeliaSim traza en el suelo. El sistema de
localización se ha simulado mediante las funciones propias de CoppeliaSim
que devuelven las coordenadas cartesianas de localización de cualquier objeto
en el plano. En la simulación inicial no se ha tenido en cuenta el error que se
genera por el sistema de localización real.

En la Figura 5.2.1 puede verse el proyecto de simulación de CoppeliaSim con


el robot diferencial y una ruta de ejemplo a seguir.

Figura 5.2.1. Simulación de seguimiento de trayectoria de un robot de tipo diferencial.

En la simulación se han generado distintos escenarios, con distintas


orientaciones de partida.

5.3 Algoritmo de seguimiento de trayectoria


Para que no fuera necesario complicar la simulación de la cinemática del robot
incorporando la simulación de las balizas, para recuperar la posición del robot
se emplea la función de CoppeliaSim simxGetObjectPosition(clientID, robot, -

337
Algoritmo de seguimiento de trayectoria

1, position, simx_opmode.oneshot_wait) que devuelve la posición de cualquier


objeto dentro del tablero de simulación. Aunque en el entorno real, RODI y
DANI poseen mecanismos para calcular de forma bastante aproximada su
orientación, en el entorno de simulación no se han incorporado estos
mecanismos, por lo que en el momento del inicio del movimiento, el robot no
conoce su orientación. Por este motivo, el robot realizará un primer
desplazamiento muy corto independientemente de la trayectoria que deba
seguir para calcular el vector de desplazamiento y con ello su orientación. Una
vez calculada la orientación, y conociendo la distancia que lo separa de la
trayectoria marcada, calculará la línea que debe seguir para unirse a dicha
trayectoria, y una vez calculada esa línea debe establecer las instrucciones que
se enviarán a cada uno de los motores para que sigan la trayectoria. Al situarse
encima de la trayectoria, deberá seguirla garantizando que se aleja lo mínimo
posible de la misma, para lo cual calcula constantemente la distancia del centro
de las ruedas a la trayectoria, realizando las correcciones apropiadas para
reducir esa distancia.

Figura 5.3.1 Trayectoria de enlace.

En la Figura 5.3.1 puede verse la trayectoria en azul, que está formada por
segmentos delimitados por los nodos en rojo. La trayectoria de enlace con el
siguiente nodo está señalada con la flecha roja punteada. Cada nodo tiene un
círculo de proximidad. Cuando el robot entra dentro del círculo recalcula su
destino al nodo final del próximo segmento. El tamaño del nodo de
proximidad es dinámico y depende de la diferencia de orientación en los dos
segmentos consecutivos, dado que si esta diferencia es grande, el radio del

338
Anexo V. Simulación de navegación de un robot diferencial con CoppeliaSim

círculo de proximidad será mayor para permitir anticipar y cambiar a la nueva


orientación antes. El tamaño del radio del círculo también estará limitada por
los obstáculos definidos en el plano, dado que nunca podrá intersectar con
estos. Una vez que el algoritmo establece el próximo nodo como destino, traza
el vector que unirá el robot con este nodo, permitiendo que se desvíe
ligeramente de la trayectoria, siempre que la orientación sea correcta.

El algoritmo de seguimiento de trayectoria emplea un controlador PID


(Proportional–Integral–Derivative controller). Con este algoritmo ajusta la
diferencia de velocidad angular de las ruedas para que la orientación del robot
se ajuste a la orientación del vector que une el centro del robot con el siguiente
nodo de la trayectoria. En el caso que la diferencia de orientación con respecto
a la trayectoria sea demasiado alta, parará una de las ruedas hasta que la
orientación baje de cierto error configurado en el algoritmo.

Figura 5.3.2 Diagrama de bloques de un controlador PID 48.

En la Figura 5.3.2 se muestra el diagrama de bloques de un controlador PID.


En nuestro caso, el controlador lee del proceso la diferencia de orientación
con respecto a la trayectoria permitiendo actuar sobre la diferencia de
velocidad angular ente las ruedas del robot. En la Ecuación (1) se muestra la
formulación del controlador PID.

𝑑𝑑𝑑𝑑(𝑡𝑡)
𝑢𝑢(𝑡𝑡) = 𝐾𝐾𝑝𝑝 𝑒𝑒(𝑡𝑡) + 𝐾𝐾𝑖𝑖 � 𝑒𝑒(𝑡𝑡)𝑑𝑑𝑑𝑑 + 𝐾𝐾𝑑𝑑 (1)
𝑑𝑑𝑑𝑑

48 Fuente: https://es.wikipedia.org/wiki/Controlador_PID [Acceso: 9-feb-2022]

339
Objetivos de la simulación

La respuesta de un controlador PID está formada por la respuesta proporcional


que varía de forma proporcional al error y suele ser la componente más
importante, la respuesta integral que varía en función de la acumulación de
errores y la respuesta derivativa que varía en función de la derivada del error
por lo que se adelante a cambios bruscos. El objetivo del ajuste de un
controlador PID es hallar los valores correctos para las constantes de cada una
de sus tres partes, Kp para la respuesta proporcional, Ki para la respuesta
integral y Kd para la respuesta derivativa. Estas constantes darán el peso en la
respuesta total de cada una de sus partes.

5.4 Objetivos de la simulación


El entorno de simulación ha permitido probar los algoritmos de control PID
para seguimiento de segmentos. También se ha probado el sistema de
seguimiento de trayectorias ante cambios bruscos de dirección, dado que en
estos puntos es necesario anticipar el cambio de dirección e ir acondicionando
la orientación del robot para que sea capaz de orientarse conforme al nuevo
segmento antes de llegar al ángulo de cambio de dirección. Este es uno de los
puntos que más complicación ha generado en el algoritmo de seguimiento.

En el video 49 se puede el resultado de la aplicación del algoritmo de navegación


sobre la trayectoria trazada en el suelo. El algoritmo se ha configurado con
cierto margen de error de seguimiento, de forma que mientras la trayectoria
se encuentre entre las ruedas realiza ligeros cambios de orientación sin cambiar
su velocidad. En caso de no ser capaz de seguir la trayectoria con ligeros
cambios de orientación se le permitirá parar una de las ruedas para realizar
giros más bruscos.

5.5 Referencias

[1] M. Freese, S. Singh, F. Ozaki, N. Matsuhira, N. Ando, S. Balakirsky, T.


Hemker, M. Reggiani y O. von Stryk, «Virtual Robot Experimentation

49 https://www.youtube.com/watch?v=wlCQpnYj15k

340
Anexo V. Simulación de navegación de un robot diferencial con CoppeliaSim

Platform V-REP: A Versatile 3D Robot Simulator,» de Simulation, Modeling,


and Programming for Autonomous Robots, Berlin, Heidelberg, 2010.
https://doi.org/10.1007/978-3-642-17319-6_8.
[2] E. Rohmer, S. P. N. Singh y M. Freese, «V-REP: A versatile and scalable
robot simulation framework,» de 2013 IEEE/RSJ International Conference on
Intelligent Robots and Systems, 2013.
https://doi.org/10.1109/IROS.2013.6696520.
[3] F. Yumbla, E. Q. Yumbla y H. Moon, «The Bioloid GP Robot with Different
Configurations for Simulation in V-REP Controlled by the Robot
Operating System (ROS),» de 2020 6th International Conference on Control,
Automation and Robotics (ICCAR), 2020.
https://doi.org/10.1109/ICCAR49639.2020.9107987.
[4] S. Azak y E. Erdogan, «Performance evaluation of the grid-based FastSLAM
in V-REP using MATLAB,» de 2018 14th International Conference on Advanced
Trends in Radioelecrtronics, Telecommunications and Computer Engineering
(TCSET), 2018. https://doi.org/10.1109/TCSET.2018.8336202.
[5] X. Li, W. Chen, W. Zhang, X. Gao y L. Hao, «Acceleration of the
Development for Motion Planning Algorithms Using V-REP,» de 2019
WRC Symposium on Advanced Robotics and Automation (WRC SARA), 2019.
https://doi.org/10.1109/WRC-SARA.2019.8931909.
[6] G. Farias, E. Torres, E. Fabregas, H. Vargas, S. Dormido-Canto y S.
Dormido, «Navigation control of the Khepera IV model with OpenCV in
V-REP simulator,» de 2018 IEEE International Conference on
Automation/XXIII Congress of the Chilean Association of Automatic Control (ICA-
ACCA), 2018. https://doi.org/10.1109/ICA-ACCA.2018.8609740.

341
6 Anexo VI. Simulación y estudio cinemático
de la caminata bípeda en robots de servicio

6.1 Introducción
Desde siempre, los seres humanos han querido desarrollar robots a su imagen
y semejanza. Esta premisa implicaba la necesidad de desarrollar robots con dos
extremidades de apoyo. El poseer únicamente dos piernas, dificulta los
mecanismos de control de estabilidad, dado que resulta complejo conseguir
que el robot se encuentre en todo momento en equilibrio estático como se
muestra en [1][2]. En 1968, Miomir Vukobratovic [3] incorporó el concepto
Zero Moment Point al mundo de la locomoción robótica, y desde entonces ha
formado parte de casi todos los desarrollos de locomoción existentes como en
[4][5][6]. En el presente artículo se emplea el concepto ZMP para generar una
caminata estable, si bien no será necesario introducir la complejidad de su
cálculo, dado que el objetivo será conseguir que, en la planificación del
desplazamiento, el centro de masas siempre se encuentre dentro del polígono
de soporte como en [7]. Adicionalmente a la incorporación de este concepto
y la definición de las fases de una caminata, será necesario realizar la resolución
cinemática para determinar los ángulos a aplicar a cada miembro en cada una
de las fases de la caminata. En este artículo se pretende explicar de un modo
claro, preciso y con formulaciones matemáticas simples, el complejo proceso
de locomoción bípeda estable y cómo ésta ha sido utilizada en el desarrollo
realizado. Para la resolución de la cinemática inversa se ha empleado el método
geométrico, que se encuentra documentado en muchos artículos para la
resolución de la cadena cinemática inversa de brazos robóticos de tres grados
de libertad, si bien, no hemos localizado ningún artículo en el que se extienda
esta técnica para la resolución cinemática inversa de la cinemática de un robot
bípedo.

343
Cinemática de robots

6.2 Cinemática de robots


En la resolución de la cinemática de los robots articulados nos encontramos
con dos problemas principales, la cinemática directa y la cinemática inversa.

La cinemática directa resuelve el problema de conocer la posición del efector


final una vez conocido el punto de la base del robot y los parámetros del robot,
como son las longitudes de todos sus segmentos, y los ángulos de giro de todos
sus puntos de libertad, junto el tipo de cada articulación. La cinemática directa
puede resolverse o bien por métodos geométricos o bien por métodos
algebraicos.

En cuanto a la resolución cinemática inversa, las resoluciones más comunes son


las siguientes:

• Métodos geométricos
• A partir de las matrices de transformación homogénea
• Por desacoplamiento cinemático

La mayoría de los métodos de resolución cinemática que podemos ver en


artículos o tesis emplean técnicas matriciales, que son aplicables a un número
indefinido de elementos para realizar la resolución de las ecuaciones necesarias
para llevar a cabo los cálculos cinemáticos y así obtener los ángulos de las
articulaciones del robot. Lo que sucede es que, en la mayoría de estos
documentos, además de su complejidad, llegan a ser poco intuitivos, ya que
asumen que el lector tiene los conocimientos matemáticos suficientes y
comprende el funcionamiento de estos principios de cálculo matricial. La
intención del presente artículo no es volver a explicar las técnicas de resolución
cinemática empleando estos mismos algoritmos, ya que hay cientos de trabajos
de investigación publicados en esta línea, sino que se pretende solucionar estos
mismos problemas cinemáticos empleando únicamente cálculos geométricos,
de modo que se consiga reducir la complejidad matemática empleada.

Para conseguir este objetivo vamos a dividir este trabajo en cuatro apartados
principales. En el primer apartado haremos una ligera introducción a la
dinámica de funcionamiento del punto de momento cero. Una vez conocida

344
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio

la base de funcionamiento que nos permitirá mantener el equilibrio en todo


momento de forma estática pasaremos a estudiar en un segundo apartado cada
una de las fases de la caminata bípeda. Una vez que se ha analizado el problema
de forma completa, en el tercer apartado pasaremos a resolver la cinemática
de la caminata bípeda empleando únicamente una formulación geométrica.

6.3 Desarrollo del algoritmo


Fundamentos de la locomoción en robots bípedos

El algoritmo presentado en este trabajo está diseñado para ser empleado en


robots bípedos. Inicialmente ha sido desarrollado para robots con 5 grados de
libertad en cada una de sus extremidades inferiores. En una futura ampliación
será empleado para robots con capacidad de giro en sus extremidades
inferiores.

Figura 6.3.1 Representación de la capa física.

En la Figura 6.3.1 se puede ver la capa física de un modelo estándar de robot


bípedo.

345
Desarrollo del algoritmo

Figura 6.3.2 Grados de libertad.

Como se puede ver en las imágenes de Figura 6.3.2, este robot tiene un total
de 20 grados de libertad (reunidos por extremidades) que están marcados por
cada uno de los ejes de rotación. Teniendo en cuenta que no tiene ninguno de
ellos en las manos, lo sitúa como uno de los sistemas físicos bípedos más
complejos. En cuanto al problema de resolución cinemática para conseguir
que realice una caminata bípeda, es necesario resolver 10 grados de libertad,
es decir, 5 por cada pierna. Este mismo algoritmo podría emplearse para
resolver también el ángulo de giro de cada pierna y así conseguir una
locomoción más fluida, aunque esto último no es totalmente necesario y no se
ha incluido, ya que los robots bípedos más económicos carecen de este eje de
rotación.

• ZMP (Zero Moment Point)

Hay muchas formas de andar sin caerse, pero está claro que hay una técnica
entre ellas que se considera la más estable. Esto no implica que sea la mejor, la
más rápida, ni la que menor energía consuma, puede ser todo lo contrario,
pero resulta la más sencilla de implementar porque, en todo momento,
siempre que las velocidades de desplazamiento sean bajas y se puedan ignorar
las inercias, el robot se mantiene en un estado de equilibrio estable, lo que
quiere decir que se puede parar el movimiento en cualquier momento y el
robot no se caerá. Evidentemente esta técnica es la menos parecida al modo de

346
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio

andar que tienen los humanos, pero es la empleada por la inmensa mayoría de
los robots bípedos. Empezó a popularizarse con el robot ASIMO de HONDA 50,
que era una de las representaciones de más alta tecnología en lo referente a
robots bípedos hasta que se dio por finalizado el proyecto. Cabe señalar que
ASIMO hace tiempo que es capaz de abandonar su equilibrio estático y es capaz
de correr, igual que otros robots que le han sucedido. Evidentemente, si se
habla de tecnología punta en este campo, se tienen robots como los de Boston
Dynamics 51 que emplean técnicas muchísimo más avanzadas basadas en
equilibrio dinámico y retroalimentación de señales y consiguen verdaderas
maravillas como las que se pueden ver en muchos de sus videos 52.

El algoritmo para la planificación de la caminara realizado en este trabajo se


basa en el concepto ZMP cuyo funcionamiento se basa en la gestión del
momento. El momento se puede entender como la fuerza que actúa sobre
cualquiera de los puntos del robot en un instante de tiempo. Si se consigue que
la resultante de la suma de todas las fuerzas que actúan sobre el robot sea cero,
esto implica que no se tendrá ninguna fuerza aplicada al mismo, por lo que el
robot será estable y no se moverá. Esto que parece muy complejo, y realmente
lo es como se expone en [8], si se tienen en cuenta todos los factores implicados
como aceleraciones, velocidades, inercias, etc., pero resulta mucho más
sencillo de aplicar si se ignoran parte de ellas. En este trabajo se presupone que
los movimientos van a ser lo suficientemente lentos, como para poder ignorar
las inercias.

La lógica de ZMP dice que el centro de masas del robot debe estar siempre
encima del polígono de soporte. Esta frase que puede sonar extraña es muy
sencilla de entender, y para ello se muestran estos conceptos en el robot
simulado.

50 Fuente: https://www.honda.mx/asimo/ [Acceso: 21-feb-2022]


51 https://www.bostondynamics.com/ [Acceso: 21-feb-2022]
52 Fuente: https://www.youtube.com/watch?v=_sBBaNYex3E [Acceso: 8-may-2022]

347
Desarrollo del algoritmo

Figura 6.3.3 Polígono de soporte.

En la Figura 6.3.3. se puede ver representado el polígono de soporte, que


básicamente cubre toda la superficie de contacto del robot con el suelo.

Figura 6.3.4 Polígono de soporte.

En la Figura 6.3.4 se puede ver señalado el polígono de soporte en otra


posición. El perímetro del polígono de soporte está formado por la unión de
los puntos que delimita la planta de los dos pies y el hueco entre ellos. Se debe
tener en cuenta que en el polígono de soporte solo intervienen los dos pies si
ambos están en contacto con el suelo, si no, se encuentra formado únicamente
por la planta del pie que está en contacto con el suelo.

Otro concepto importante es el centro de masas. La definición técnica es la


siguiente:

348
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio

El centro de masas de un sistema discreto o continuo es el punto geométrico que


dinámicamente se comporta como si en él estuviera aplicada la resultante de las fuerzas
externas al sistema. 53

El robot se comporta como si toda la masa estuviera concentrada en el centro


de masas y el resto del cuerpo no tuviera masa.

En la Figura 6.3.5, el centro de masas está marcado con el punto central de


donde parten las cuatro flechas.

Figura 6.3.5 Centro de masas.

Calcular el centro de masas puede resultar muy complejo, pero un criterio que
da buenos resultados es colocar el centro de masas en el centro de la cintura
del robot. En la Figura 6.3.5, se puede ver el punto escogido para situar el
centro de masas.

53 Fuente: https://es.wikipedia.org/wiki/Centro_de_masas [Acceso: 22-feb-2022]

349
Desarrollo del algoritmo

Figura 6.3.6 Movimientos de caminata.

En la Figura 6.3.6 se puede ver uno de los movimientos más características de


las caminatas bípedas realizadas por robots que emplean la técnica ZMP. Este
movimiento consiste en desplazarse lateralmente antes de levantar el pie
contrario. En la Figura 6.3.6 se puede observar cómo este desplazamiento
permite mantener el centro de masas (cruz roja) encima del polígono de
soporte indicado por la flecha amarilla.

Fases de la caminata bípeda

En esta sección se formulará el problema que se pretende solucionar. Para ello


se deben analizar las distintas fases de la caminata bípeda para, posteriormente
intentar alcanzar estos movimientos empleando una solución algorítmica. En
trabajos como [9] [10] [11] se presentan sistemas similares con generación de
trayectorias empleando ZMP. En las imágenes que acompañan cada una de las
fases se ven las posiciones finales de cada fase.

• Posición inicial

En esta primera fase, el robot se encuentra en posición estática (ver Figura


6.3.7). Esta posición es anterior al comienzo de la caminata. En este punto
llama la atención que el robot se encuentra en una postura antinatural, con las
piernas flexionadas. Como se indicó en los apartados anteriores, las posiciones
alcanzadas en una caminata estable basada en el concepto de ZMP,
posicionalmente difiere bastante a una camina humana.

350
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio

Se debe tener en cuenta que se está diseñando un sistema de caminata basado


en equilibrio estático, si en la posición de partida las piernas estuvieran
estiradas, en cuanto se iniciara la marcha, automáticamente se entraría en una
posición inestable de equilibro dinámico, lo que ocasionaría que el robot
comenzara a caer hacia adelante hasta que el pie tocara con el suelo. Con este
algoritmo se pretende que todas las fases y posiciones del movimiento sean
estables, con lo que el robot puede cesar en su movimiento en cualquier
momento y permanecería quieto, salvo por los efectos generados por la inercia
de la velocidad del propio movimiento.

Figura 6.3.7 Robot en posición inicial.

Para apreciar con más claridad la dinámica del movimiento del robot, en todas
las secuencias se incorporará un gráfico en el que se indican los polígonos de
soporte (contacto con el suelo) de los dos pies junto con la posición de la
cadera, en la que podremos distinguir las articulaciones laterales y la posición
del centro de masas. La Figura 6.3.8 representa en robot visto desde arriba, en
el que solo vemos los pies y la cadera junto con el centro de masas. En la Figura
6.3.8 se ve el gráfico que representa la posición inicial.

Figura 6.3.8 Robot en posición inicial.

351
Desarrollo del algoritmo

En la Figura 6.3.8 se distinguen los siguientes componentes: p1: pie izquierdo,


p2: pie derecho, c1: articulación de la cadera izquierda, c2: articulación de la
cadera derecha, y mc: centro de masas.

• Desplazamiento lateral

En esta fase se desplaza el cuerpo lateralmente (ver Figura 6.3.9). Dado que en
la siguiente fase se va a levantar el pie izquierdo y se deja el robot apoyado sobre
pie derecho. Antes de realizar este movimiento se debe garantizar que el centro
de masas se encuentre sobre el polígono de soporte definido por el pie
derecho, que se va a quedar en contacto con el suelo (Figura 6.3.10).

Figura 6.3.9 Desplazamiento lateral.

Figura 6.3.10 Centro de masas en el desplazamiento lateral.

• Primer medio paso de avance

Inicialmente se tienen los dos pies juntos. En ningún momento posterior en la


caminata se volverá a tener los pies juntos antes de dar un paso, por lo que este
primer paso es especial y en él se avanza la mitad que en los siguientes pasos.

352
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio

Figura 6.3.11 Primer medio paso de avance.

Figura 6.3.12 Centro de masas en el primer medio paso de avance.

El primer avance corresponde a un medio paso (ver Figura 6.3.12). El pie


izquierdo en este caso se levanta y avanza medio paso hasta contactar de nuevo
con el suelo. Hasta este momento los ángulos de las articulaciones de las dos
piernas serán idénticos, con este primer medio paso desajustamos los ángulos
de las piernas, de modo que la evolución cinemática de ambas piernas será
distinta desde este momento (Figura 6.3.11).

353
Desarrollo del algoritmo

• Desplazamiento lateral

Figura 6.3.13 Movimiento lateral.

Figura 6.3.14 Centro de masas en el movimiento lateral..

El primer paso se ha realizado con la pierna izquierda garantizando que el


centro de masas se encuentre encima del pie derecho (en este caso) (ver Figura
6.3.13). El segundo paso se realizará con la pierna derecha y se debe garantizar
que el centro de masas se encuentre sobre la planta del pie izquierdo. Para
conseguirlo, se desplaza lateralmente hacia la izquierda, pero este movimiento
de desplazamiento no es solo lateral, sino que además el centro de la cadera
debe avanzar para situar el centro de masas encima del polígono de soporte
generado por el pie izquierdo realizando una trayectoria diagonal (ver Figura
6.3.14).

• Paso completo con la pierna derecha

Una vez que el robot se encuentra de nuevo sobre el polígono de soporte,


ahora se desplaza la pierna derecha un paso hasta avanzar por delante de la
izquierda (ver Figura 6.3.15).

354
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio

Figura 6.3.15 Segundo paso completo, pierna derecha.

Figura 6.3.16 Centro de masas en el segundo paso completo, pierna derecha.

Este será el primer paso completo, ya que la pierna derecha se encontraba


medio paso detrás de la izquierda (ver Figura 6.3.14) y al finalizar la posición
se colocará medio paso delante de la pierna izquierda (Figura 6.3.16).

Este movimiento se repetirá continuamente durante toda la caminata. Primero


se dará un paso con la pierna derecha, nos movemos lateralmente hacia el lado
derecho, después se da el paso con la pierna la pierna izquierda, el robot se
mueve lateralmente a la izquierda y se comienza de nuevo.

355
Desarrollo del algoritmo

• Desplazamiento lateral

Figura 6.3.17 Desplazamiento lateral para preparar el siguiente paso con la pierna izquierda.

Figura 6.3.18 Centro de masas en el desplazamiento lateral para preparar el siguiente paso con la pierna izquierda.

Una vez que se da el primer paso completo con la pierna derecha (Figura
6.3.17), se debe mover de nuevo el centro de masas diagonalmente para
situarlo encima del pie derecho, para liberar la pierna contraria para que
pueda dar su próximo paso (Figura 6.3.18).

• Paso con la pierna izquierda completo

Una vez que se sitúa el centro de masas encima de la base del pie derecho (ver
Figura 6.3.20), ya se puede dar el paso con la pierna izquierda (Figura 6.3.19).

356
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio

Figura 6.3.19 Avance.

Figura 6.3.20 Centro de masas en el avance.

A partir de aquí se vuelve a la fase indicada en el Apartado 6.3.2.4 y se


repiten éstas fases hasta que se termine la caminata, dando un último medio
paso para dejar los dos pies juntos y centrando la cadera.

En la Figura 6.3.21 puede apreciarse el desplazamiento del centro de masas


sobre el polígono de soporte formado por las figuras de los pies, junto con
el desplazamiento de los propios pies en el transcurso de la caminata.

357
Desarrollo del algoritmo

Figura 6.3.21 Desplazamiento del centro de masas durante la caminata.

Resolución cinemática

Ahora se sabe, exactamente, los movimientos que se tienen que realizar y las
posiciones finales que se tienen que alcanzar en cada movimiento. Con estos
datos se trazan las trayectorias que debe seguir el robot.

Figura 6.3.22 Trayectoria del centro de masas.

En el plano sagital visto desde arriba, se puede ver que el centro de masas debe
trazar una trayectoria en zig-zag (ver Figura 6.3.22), visualizada por la línea
amarilla.

358
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio

El robot debe ir balanceando el centro de masas a un lado y a otro para


garantizar que el centro de masas se encuentre siempre encima del polígono
formado por la base de alguno de los pies.

Ahora que se ve claramente la trayectoria y los movimientos, se debe comenzar


solucionando la cinemática del movimiento lateral. Este movimiento permitirá
desplazar el centro de masas encima del polígono de soporte formado por el
pie que queda en contacto con el suelo.

Rápidamente se ve que el movimiento lateral, siempre que se acepte un ligero


desplazamiento hacia arriba y hacia abajo, es trivial, solo se tiene que aplicar
siempre el mismo ángulo de desplazamiento a ambas piernas en los dos ejes de
la cadera y el ángulo inverso en los dos ejes laterales del tobillo.

Figura 6.3.23 Lógica del desplazamiento lateral.

En la Figura 6.3.23 se aprecia como al desplazarse lateralmente, el centro de la


cadera baja su altura mínimamente. Esto es debido a que el eje de la cadera
efectúa una trayectoria circular con respecto al eje del tobillo. Este vaivén es
tan asumible que no es necesario corregirlo.

El código mostrado en la Figura 6.3.24 es el encargado de realizar el


desplazamiento lateral:

359
Desarrollo del algoritmo

valor = ProgresoTemporal(t, 0, 1, 0.15)

simSetJointTargetPosition(join_cadera_izq_lateral, valor);

simSetJointTargetPosition(join_cadera_der_lateral, valor);

simSetJointTargetPosition(join_pie_izq_lateral, -valor);

simSetJointTargetPosition(join_pie_der_lateral, -valor);

Figura 6.3.24 Código de movimiento.

ProgresoTemporal() devuelve valores ente 0 y 0,15 distribuidos durante 1


segundo. En cada instante de tiempo devuelve el valor proporcional. Este
fragmento de código se ejecuta decenas de veces en un segundo.

Llegado este punto, se debe tener en consideración que el código de


simulación tiene un comportamiento muy similar al bucle void loop() de
Arduino [12]. Arduino es la plataforma más conocida en el mundo para el
desarrollo de dispositivos robóticos sencillos. El código principal de un
programa para Arduino se incluye en la función loop() y esta función repite su
ejecución para siempre, cada vez que termina, vuelve a llamarse. En cada
iteración, comprobando el instante de tiempo en el que se encuentra, debe
calcular los ángulos de todas las articulaciones.

Como ya se tiene solucionado el problema del desplazamiento lateral, ahora se


debe conocer la trayectoria que debe seguir el pie para poder dar un paso y
una vez que sepamos cómo se tiene que mover el pie tenemos que calcular,
empleando cinemática inversa, los ángulos frontales de la cadera, de la rodilla
y del tobillo para que finalmente el pie se situé en la posición calculada en cada
momento dentro de la trayectoria.

Para este objetivo se tiene que conseguir una función que defina una
trayectoria curva que inicie un ascenso rápido del pie, después debe ascender
más lentamente e ir desplazando el pie hacia adelante y finalmente debe
bajarlo con una pendiente mayor.

360
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio

Figura 6.3.25 Función de movimiento del pie.

La función escogida para el recorrido del pie se puede ver en la Figura 6.3.25
y ésta es la trayectoria que tendrá que seguir la articulación del tobillo para que
el robot de un paso.

Figura 6.3.26 Articulaciones que se deben gestionar.

En la Figura 6.3.26 se puede ver la articulación del tobillo que deberá seguir la
trayectoria marcada por la Ecuación (1).

√9 − 𝑥𝑥 2 (1)
𝑓𝑓 (𝑥𝑥 ) =
4
Una vez definida la fórmula matemática que permitirá conocer donde debe
colocarse la articulación del tobillo en un espacio bidimensional, es necesario
calcular los ángulos que deben tomar la cadera, la rodilla y al pie para poder
alcanzar las distintas posiciones de la trayectoria sin que se desplace la cadera.

361
Desarrollo del algoritmo

Figura 6.3.27 Definición del eje de coordenadas y triángulo de trabajo.

Inicialmente se puede imaginar que la pierna está formada por tres segmentos,
uno asociado a la parte superior de la pierna (amarillo), otro asociado a la parte
que se encuentra por debajo de la rodilla (azul) y un último segmento asociado
al pie (lila). Situando estos segmentos en un eje de coordenadas bidimensional
se puede encontrar un método trigonométrico para obtener una solución
exacta no iterativa. En la Figura 6.3.27 pueden verse las Partes del triángulo de
trabajo.

En la Figura 6.3.28 se puede ver la reconstrucción del problema cinemático


que se tiene que resolver.

362
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio

Figura 6.3.28 Problema cinemático.

Con las Ecuaciones (2) a (5) puede resolverse el problema trigonométrico


planteado, dado que se obtienen los ángulos de la cadera y de la rodilla.

𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 = �𝑥𝑥 2 + 𝑦𝑦 2 (2)

𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = tan−1 (𝑦𝑦, 𝑥𝑥 ) (3)

𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿2 − 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 2 + 𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻2


𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵 = cos −1 � � (4)
2 · 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 · 𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻

𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 + 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵 (5)

Ahora solo queda resolver el problema del ángulo del pie, pero si se observa
detenidamente, al continuar el segmento de la pierna inferior (en azul) se
corta con el eje X de coordenadas. Si se calcula la intersección entre el eje X y
el segmento de la pierna inferior se tiene el punto de corte. Como
consecuencia de ello se tiene un triángulo formado por el punto de
intersección, el punto donde debe estar el tobillo y el valor de X en el eje de
coordenadas. Conociendo los tres puntos se puede conocer cualquier ángulo
del triángulo así que es posible deducir el valor del ángulo CP , y con este valor
el valor de AngPie con la Ecuación (6).

363
Desarrollo del algoritmo

𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = 90° − 𝐶𝐶𝐶𝐶 (6)

que es el ángulo que forman el segmento de la pierna inferior y el segmento


del pie. Siempre, claro está, asumiendo que el suelo no presente pendiente.

En este punto se sabe cómo desplazarnos lateralmente y también se sabe cómo


dar un paso, ahora solo nos queda saber cómo se puede reposicionar la cadera
en diagonal, para posicionar el centro de masas de nuevo sobre el polígono de
apoyo del pie, que quedará como soporte en el suelo para que el otro pie dé el
siguiente paso. La componente lateral del desplazamiento diagonal ya se ha
explicado y solo queda saber cómo avanza la cadera.

En la Figura 6.3.29 se puede ver la situación del robot antes de avanzar la


posición de la cadera y la posición final una vez avanzada.

Figura 6.3.29 Desplazamiento del eje de cadera.

Si se observa bien, cuando se avanza la cadera, lo que se está haciendo es


desplazando el eje de coordenadas hacia adelante o lo que es lo mismo, se está
restando el valor del desplazamiento a la coordenada Y, o lo que es lo mismo,
se está desplazando el tobillo hacia atrás.

En la Figura 6.3.29, podemos ver la posición antes de comenzar el


desplazamiento y a la izquierda vemos la posición después de haber realizado
el desplazamiento.

364
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio

Figura 6.3.30 Desplazamiento vertical por el movimiento de cadera.

Finalmente, también se incorpora la Figura 6.3.30 en la que se puede ver el


triángulo generado por el desplazamiento lateral, con el que se puede calcular
la distancia recorrida verticalmente por la cadera como efecto de este
desplazamiento.

Este desplazamiento puede despreciarse en sistemas que no sean ultraprecisos,


dado que la distancia es muy pequeña.

Conclusiones y trabajo futuro

Todo el análisis y resolución cinemática propuesta en este trabajo ha sido


implementado dentro del simulador de Coppelia Robotics[13] y en la
dirección https://www.youtube.com/shorts/yPiOOf6GjOE se encuentra
publicado un video con el resultado, con lo que hemos podido corroborar la
validez de esta línea de resolución geométrica del problema de la caminata
bípeda. Todas las imágenes son resultado de las imágenes del robot empleado
en la simulación.

En este trabajo hemos conseguido resolver la cinemática estática de un robot


bípedo de forma ideal. No hemos tenido en cuenta las inercias generadas por
el movimiento, ni tampoco hemos tenido en cuenta la retroalimentación
necesaria en estos sistemas de movimiento, debido a que, en el mundo real, las
posiciones alcanzadas no siempre coinciden con las teóricas. En el siguiente
paso, debemos aplicar este estudio teórico a un robot real, en el que nos

365
Desarrollo del algoritmo

encontraremos con los problemas inherentes a este mundo, en donde las


fórmulas matemáticas devolverán valores cercanos a los reales, pero siempre
ligeramente diferentes a los que realmente alcanzan las articulaciones, lo que
ocasionará que nuestro robot real se encuentre con situaciones de pérdida de
equilibrio.

Referencias bibliográficas

[1] E. Govea, G. Gonzalez, J. Rocha, S. Hernandez, A. Chavez y J. Castillo,


«Diseño cinemático y construcción de un robot humanoide con
movimientos básicos de caminado,» de Biennial Congress of Argentina
(ARGENCON), 2014 IEEE, 2014.
[2] L. T. Ospina, J. D. A. Pulgarín, C. D. E. González, J. A. J. Guizao y E. M.
R. Mesa, «Aplicación de los conocimientos de robótica para la
construcción de un humanoide,» Revista CINTEX, vol. 14, p. 58–61, 2017.
[3] M. Vukobratović y B. Borovac, «Zero-moment point—thirty five years of
its life,» International journal of humanoid robotics, vol. 1, nº 1, p. 157–173,
2004.
[4] K. Erbatur y O. Kurt, «Natural ZMP trajectories for biped robot reference
generation,» IEEE Transactions on Industrial Electronics, vol. 56, nº 3, p.
835–845, 2009.
[5] S. Kajita, F. Kanehiro, K. Kaneko, K. Fujiwara, K. Harada, K. Yokoi y H.
Hirukawa, «Biped walking pattern generation by using preview control of
zero-moment point,» de Robotics and Automation, 2003. Proceedings.
ICRA'03. IEEE International Conference on, 2003.
[6] P. Sardain y G. Bessonnet, «Forces acting on a biped robot. Center of
pressure-zero moment point,» IEEE Transactions on Systems, Man, and
Cybernetics-Part A: Systems and Humans, vol. 34, nº 5, p. 630–637, 2004.
[7] H. K. Lum, M. Zribi y Y. C. Soh, «Planning and control of a biped robot,»
International Journal of Engineering Science, vol. 37, nº 10, p. 1319–1349,
1999.
[8] Y. Fujimoto y A. Kawamura, «Simulation of an autonomous biped walking
robot including environmental force interaction,» IEEE Robotics &
Automation Magazine, vol. 5, nº 2, p. 33–42, 1998.
[9] Q. Huang, K. Yokoi, S. Kajita, K. Kaneko, H. Arai, N. Koyachi y K. Tanie,
«Planning walking patterns for a biped robot,» IEEE Transactions on
robotics and automation, vol. 17, nº 3, p. 280–289, 2001.
[10] E. G. Núñez, A. A. López y M. I. R. S. Morán, «Análisis Cinemático de un
Bípedo con fases: Pie de soporte-Pie en movimiento,» de IEEE 5º Congreso

366
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio

Internacional en Innovación y Desarrollo Tecnológico, Cuernavaca, Morelos,


México, 2007-10.
[11] C.-L. Shih y W. A. Gruver, «Control of a biped robot in the double-
support phase,» IEEE transactions on systems, man, and cybernetics, vol. 22,
nº 4, p. 729–735, 1992.
[12] «Arduino,» 2018. [En línea]. Available: https://www.arduino.cc/.
[Último acceso: 2022 2 22].
[13] «Coppelia Robotics,» [En línea]. Available:
https://www.coppeliarobotics.com/. [Último acceso: 2022 2 27].

367
7 Anexo VII. XULIA

7.1 Introducción
En cuanto los sistemas informáticos comenzaron a salir de los laboratorios y a
extenderse, fueron siendo necesarios mejores interfaces de interacción con los
ordenadores que permitieran alcanzar mayor productividad. En un principio
se estandarizó el uso del teclado como único dispositivo de interacción y años
después se incorporó el ratón, conjuntamente con la difusión de los interfaces
gráficos. Tanto teclado como ratón, han permanecido hasta la actualidad como
los dispositivos más usados en los interfaces con los sistemas informáticos. En
los últimos años se han desarrollado dispositivos de interacción específica para
determinadas necesidades o profesiones y dado el incremento de potencia de
los sistemas se ha popularizado tanto el audio como los videos, así que hoy todo
dispositivo de cómputo electrónico de uso generalista posee capacidad de
gestionar tanto audio como videos, tanto en grabación como reproducción.

Con el acceso de las personas discapacitadas a los ordenadores, ha sido


necesario desarrollar interfaces específicos para ellos, dado que en muchos
casos tienen inutilizados los miembros que permiten emplear las interfaces
estándar. Sobre este punto hay infinidad de alternativas, comenzando con
sistemas muy simples con pulsadores como [1] y llegando a los sistemas más
complejos para las discapacidades más extremas en las que no es posible mover
ningún músculo, en las que pueden emplearse interfaces cerebro-ordenador
conocidos como BCI (Brain Computer Interface) como en [2] o interfaces con
lectura directa de las señales nerviosas que van a los músculos o EMG
(ElectroMyoGraphy) como en [3]. En otros casos menos extremos en los que
pueden mover la cabeza, se emplean sistemas de detección de la posición de la
cabeza para mover un ratón como en [4][5][6] e incluso esta tecnología puede
emplearse en el sector médico en técnicas en las que las manos están ocupadas
y se necesita mover algún elemento con otros miembros como en [7].

369
Introducción

En otros casos, en los que mantienen la capacidad de mover la lengua, pero no


son capaces de emitir sonidos claros, también se han desarrollados interfaces
que detectan el movimiento de la lengua mediante la incorporación de un
imán a la misma, que se lee mediante unos sensores colocados a ambos lados
de la cara como en [8].

Las lesiones y afectaciones pueden ser infinitas, y en algunos casos es posible


que mantengan cierta capacidad de movilidad de sus manos, pero no con la
destreza suficiente como para poder emplearlas con normalidad. En estos
casos también se han desarrollado interfaces hombre-máquina que permiten
detectar ciertas posiciones o gestos de las manos para interactuar con los
sistemas como en [9] [10] o en [11] donde el sistema permite manejar una
silla de ruedas.

Pero los únicos sistemas que se han implantado de modo masivo son los que
emplean lenguaje natural, dado que pueden ser utilizados con ciertas
modificaciones por personas con discapacidad como se puede ver en [12] [13],
pero también son una forma muy natural de comunicarse con un ordenador
para personas que no presentan ningún tipo de discapacidad.

La evolución de estos sistemas se lleva realizando desde los años 50 como se ve


en [14], pero los primeros trabajos aplicados se comenzaron a ver en los años
80 con sistemas como [15] del año 1986 que permitía la grabación e
identificación de comandos de voz y estaba especialmente diseñado para
personas con discapacidad o [16] del mismo año, que permitía realizar
encuestas telefónicas. En [17] [18] del año 1991 se extendían las capacidades
pudiendo grabar y reconocer frases. En el año 2001 en trabajos como [19] se
comienza a ver el control de dispositivos físicos mediante la voz, dado que las
tasas de error en reconocimiento de comandos comienzan a ser aceptables. En
[20] se comienzan a ver las primeras aplicaciones de reconocimiento de voz en
dispositivos móviles como las antiguas PDAs (Personal Digital Assistant).

A partir del año 2002 la capacidad de los dispositivos personales ya era


suficiente para ejecutar software complejo que requería extensos recursos

370
Anexo VII. XULIA

computaciones y se comenzaron a desarrollar nuevos modelos como describen


[21] y [22]. Grandes empresas como IBM y Microsoft comenzaron a desarrollar
sus propios sistemas de reconocimiento de voz, a los que posteriormente se les
unieron Google, Amazon, Philips, etc.

En la Sección 6.4 se citan los motores de reconocimiento de voz que se


encontraban disponibles en el año 2014, año en el que se desarrolló Xulia, y
en la Sección 6.5 se detallan las aplicaciones de control de sistemas Windows®
que existían en ese mismo año.

7.2 Descripción general de Xulia como sistema de accesibilidad


Hace muchos años que el ser humano ha comenzado a realizar progresos para
comunicarse mediante lenguaje natural con los ordenadores. Esta
funcionalidad que inicialmente representa una mejora en los interfaces de
comunicación, que resultan en una interface más ágil para transmitir
comandos a nuestros ordenadores, para algunas personas con discapacidad,
son el único o uno de los pocos interfaces que pueden ser empleados para
comunicarse con el ordenador.

El sistema que se presenta en este trabajo ha sido desarrollado específicamente


para ser empleado por personas tetrapléjicas. Como objetivo, se pretende
alcanzar, únicamente empleando la voz, el nivel de productividad de una
persona sin limitaciones físicas que emplee teclado y ratón, en el manejo de un
ordenador con sistema operativo Windows. Adicionalmente, se pretende
implantar este sistema en Brasil, con lo que será necesario disponer de
tecnología de conversión de voz a texto en lenguaje portugués, como mínimo
en el modo de dictado continuo. En la especificación de requisitos debe
tenerse en cuenta que la operativa del sistema no debe necesitar en ninguna
circunstancia el empleo del teclado, ratón o cualquier otro dispositivo que deba
ser empleado con las manos.

Cada año, en España se producen 22 nuevos casos de lesiones medulares por


cada millón de habitantes, lo que supone 1.000 personas por año. Según la

371
Descripción general de Xulia como sistema de accesibilidad

OMS, a nivel mundial se contabilizan medio millón de nuevos lesionados


medulares por año. De entre todas las lesiones, la categoría más frecuente es la
tetraplejia incompleta (el 40.6%) seguido por paraplejia incompleta (el
18.7%), paraplejia completa (el 18.0%), y tetraplejia completa (el 11.6%). En
el tipo de lesión más común, la tetraplejia incompleta, los afectados,
normalmente no pueden mover o emplear las manos para realizar
movimientos que requieran precisión.

En este tipo de lesiones se produce la parálisis total o parcial tanto de los


miembros superiores como de los inferiores. Normalmente se ocasiona por
traumas producidos en la médula espinal en su zona superior, pero en otros
muchos casos, viene ocasionado por enfermedades que provocan
degeneración de las neuronas motoras, como en el caso de la ELA (Esclerosis
Lateral Amiotrófica). Debemos tener en cuenta que la vida de una persona con
tetraplejia cambia radicalmente. Este signo clínico, junto con los presentados
por enfermedades neuronales, originan que estos pacientes puedan alcanzar
grados de dependencia cercanos al 100%, conservando sus funciones mentales
totalmente intactas.

Toda lesión medular que origina tetraplejia debe producirse en la zona


superior de la médula espinal, entre las vértebras C4 y C7. Cuanto más abajo se
produce la lesión, mejor pronóstico tendrá y mayor grado de autonomía. Sólo
en el caso de lesiones producidas en la C4 podrá tener problemas de dicción,
con lo que el sistema de reconocimiento de voz podría tener problemas con la
calidad del reconocimiento. Con el resto de las lesiones, los afectados podrán
hablar de modo normal.

Debemos tener en cuenta que el sistema debe ser totalmente autónomo y debe
estar diseñado para sustituir de modo completo las funciones del teclado y el
ratón en todo momento, dado que la voz debe ser la única interface que puede
emplear el usuario.

XULIA nace en el año 2015 como una iniciativa dentro del Instituto Novo Ser de
Brasil [189]. Este instituto desarrolla actividades para mejorar la calidad de vida

372
Anexo VII. XULIA

de las personas discapacitadas con movilidad reducida. Ha sido una de las


entidades impulsoras para la creación de Motrix [188] en la Universidad de
Rio de Janeiro en el año 2002. Motrix es un sistema gratuito, de control integral
de un ordenador con Windows® empleando la voz, pero en la época en la que
fue desarrollado, Microsoft no tenía la tecnología de reconocimiento continuo
de voz, por lo que solo es capaz de reconocer comandos independientes.
Adicionalmente, al estar basado en las librerías de reconocimiento de voz de
Microsoft en su versión SAPI 4, solo reconoce idioma inglés. Motrix cumple sus
objetivos, pero una de sus carencias más graves está relacionada con el dictado
continuo. Cuando el usuario quería dictar un texto, tenía que hacerlo letra a
letra, y dado que el sistema presentaba un porcentaje alto de falsos positivos
con comandos muy cortos, cada letra se correspondía con una palabra. Por
ejemplo, para dictar hola, el usuario tenía que decir: hotel, oscar, lima, alfa.
Como se puede ver, el trabajo de dictar textos grandes era totalmente agotador,
además de extremadamente lento.

Desde el Instituto Novo Ser estaban solicitando la creación de un nuevo


software que permitiera dictado continuo de voz en idioma portugués
empleando recursos gratuitos, ya que pretendían poder llegar a todas las clases
sociales. En el año de creación de Xulia, la única tecnología de reconocimiento
de voz que soportaba el dictado continuo en idioma portugués era la de
Google, pero los sistemas gratuitos que Google ponía a disposición de los
usuarios solo estaban disponibles en el sistema operativo Android®. Dentro de
Windows® había la posibilidad de emplear el servicio en la nube de
reconocimiento de voz de Google, pero éste tenía un coste de 0,012 céntimos
de euro por cada 10 segundos de audio procesado. Partiendo de este dato se
calcula un coste mensual de 100 € para un uso continuo de 3 horas al día, lo
que supone un importe a tener en cuenta en países como Brasil, en donde su
moneda está muy devaluada y un gran porcentaje de su población tiene pocos
recursos.

Inicialmente tampoco nos planteamos emplear un sistema operativo Android


como servidor de reconocimiento de voz, ni en modo físico ni en virtual, ya

373
Descripción general de Xulia como sistema de accesibilidad

que la configuración del sistema y el número de elementos sería muy alta y en


caso de querer virtualizar una máquina Android, la potencia del sistema de
emulación debía ser muy alta.

Aparte de la tecnología de reconocimiento de voz de Google tenemos otras dos


grandes empresas con aplicaciones de escritorio, como Microsoft y Nuance
(con su Dragon Dictate y cuya tecnología de reconocimiento de voz es la base de
la de Siri). Entre ellas, solo Microsoft ofrece un servicio básico de
reconocimiento de voz gratuito dentro de Windows. En el año 2015 Microsoft
tenía publicada la versión 5 de sus librerías de reconocimiento de voz fuera de
línea, pero éstas sólo soportaban los idiomas inglés, francés, alemán, español,
chino y japonés, con lo que el portugués no estaba soportado.

Adicionalmente en las pruebas del reconocimiento continuo de voz con sus


librerías SAPI 5, con gramáticas abiertas de dictado empleando los motores de
reconocimiento de voz de Microsoft ofrecidos en Windows, hemos detectado
que la calidad del reconocimiento era muy baja, generando un gran número
de falsos positivos, sobre todo en presencia de ruido de fondo, con una tasa de
casi el 20% de fallos de reconocimiento. Todo ruido de fondo era reconocido
como una palabra con un grado de fiabilidad calculado por el sistema bastante
alto, cuando realmente representaba un falso positivo, lo que generaba un alto
número de errores de reconocimiento. En el caso de emplear micrófonos con
una alta atenuación de ruido, los filtros aplicados originaban que el audio
resultante perdía características y el sistema reducía el número de falsos
positivos, pero también perdía la capacidad de reconocer comandos que no
fueran dictados de un modo muy perfecto.

En contrapartida, si no se empleaban las gramáticas de modo dictado, en


donde están disponibles para reconocer todas las palabras del idioma, sino que
se especificaba la lista de comandos válidos en un momento dado y esta lista
era relativamente corta, el sistema de reconocimiento de Windows mejoraba
muchísimo su grado de reconocimiento, incluso con ruido de fondo. Como
resultado de este estudio inicial llegamos a la conclusión de que, en cada
momento, sólo debemos tener activos los comandos mínimos necesarios para

374
Anexo VII. XULIA

que el reconocedor realice la búsqueda sobre el menor número de patrones


de voz distintos.

Alternativamente, al probar el sistema de reconocimiento de voz de Google,


que solo operaba en dictado continuo, vimos que su sensibilidad al ruido de
fondo era muy baja y que el sistema de reconocimiento se comportaba
realmente bien en cualquier situación, pero tenía como contrapartida que solo
estaría disponible de modo gratuito dentro del sistema operativo Android.

En investigaciones posteriores pudimos comprobar que recientemente (año


2015) Google había incorporado una API Beta de reconocimiento de voz en su
navegador Google Chrome. Desde el propio JavaScript y ejecutándose en el
propio navegador Chrome era capaz de procesar el audio recuperado del
micrófono, lo enviaba a la nube de Google y esta devolvía la traducción de voz
a texto del audio recuperado que podía ser tratado desde el navegador con
código JavaScript.

Tras realizar varias pruebas comprobando que el funcionamiento era muy


correcto, también detectamos varias limitaciones a su uso en modo local. En el
momento de activar el reconocimiento de voz desde JavaScript, el
reconocimiento de voz solo estaba activo durante unos segundos, tras este
tiempo, se desactivaba automáticamente. Cada vez que JavaScript activaba el
reconocimiento de voz, aparecía un cuadro de diálogo pidiendo al usuario que
permitiera el uso del micrófono. Otra limitación en el uso de esta API, es que
no se encontraba disponible en páginas cargadas de modo local desde el
sistema de ficheros, lo que nos obligaría siempre a trabajar con servidores web.

Finalmente, tenemos el inconveniente de que el texto reconocido se devolvía


al propio JavaScript en el navegador y por razones de seguridad desde
JavaScript no pueden emplearse recursos locales.

En la situación actual, teníamos que resolver varios problemas para poder


emplear esta tecnología de reconocimiento de voz desde el escritorio de
Windows. Inicialmente nuestro objetivo era desarrollar un sistema de control
integral de un sistema Windows que interactuara con el sistema simulando las

375
Descripción general de Xulia como sistema de accesibilidad

entradas del teclado y ratón, con capacidad de dictado continuo en idioma


portugués. Debemos tener en cuenta que nuestro objetivo es permitir que una
persona tetrapléjica sea capaz no solo de usar, sino trabajar de modo completo
con el ordenador, únicamente con nuestro sistema, sin recursos adicionales ni
necesidad de soporte por terceras personas, esto implica que, el sistema no
puede quedar bloqueado en ningún momento solicitando la acción del
usuario. Para el uso del ordenador, nos hubiera bastando con un sistema que
fuera capaz de interpretar un número limitado de comandos, si bien
pretendemos que el usuario pueda trabajar de modo completo con el
ordenador y esto incluye dictado de correos o elaboración de documentos,
para lo cual resultará imprescindible poseer un sistema de reconocimiento
continuo de voz en su propio idioma.

En cuanto al requisito del reconocimiento en idioma portugués, viene definido


debido a que nuestro usuario de prueba inicial era una persona tetrapléjica
que formaba parte del Instituto Novo Ser de Rio de Janeiro en Brasil. El sistema
de dictado continuo debería cumplir los siguientes requisitos:
• Por un lado, necesitamos que el sistema esté habilitado de forma
permanente, dado que la versión actual del API JavaScript de Chrome se
deshabilita al cabo de 10 segundos al no detectar entrada de voz.
• Necesitamos que no pregunte en cada arranque del sistema de
reconocimiento si permitimos el uso del micrófono.
• Necesitamos que sea posible cargarlo desde un servidor web instalando el
menor número de componentes en nuestro equipo.
• Es necesario que el resultado del reconocimiento sea enviado a una
aplicación local para que pueda interactuar con el equipo y enviar esta
entrada procesada mediante el API de Windows de bajo nivel a cualquier
aplicación abierta simulando que la entrada hubiera sido introducida
mediante teclado.
• Necesitamos controlar en remoto el estado de activación del módulo
JavaScript que se ejecuta en Chrome para que no se encuentre de forma

376
Anexo VII. XULIA

permanente intentando reconocer audio, sino que solo esté activo cuando
se encuentre activa la funcionalidad de reconocimiento continuo de voz.

Para poder implementar estos requisitos, hemos desarrollado un servidor web


local que sirve una página dinámicamente modificada con el código JavaScript
de reconocimiento de voz, específico para las opciones de configuración
actuales. Este servidor publica su servicio en el puerto 8080. En el arranque del
sistema de reconocimiento, se pide la página con el código de reconocimiento
de voz, junto con la información del idioma a procesar y el estado de arranque
automático. Si no se requiere arranque automático, el sistema levanta un
navegador Google Chrome con el reconocimiento de voz en modo desactivado.
Dado que no queremos retrasos en el momento de activar el dictado continuo,
el navegador Chrome está siempre ejecutándose. La primera vez que se ejecuta
el API de reconocimiento de voz de Google Chrome, el propio navegador
solicita los permisos de uso del micrófono. Una vez otorgados, no los volverá a
pedir nunca más, persistiendo esta configuración para siempre. Dado que
estamos sirviendo la página desde una dirección local, no será necesario
emplear el protocolo SSL para que estos permisos sean persistentes. En caso de
servir la página desde un servidor remoto, sería necesario disponer de
certificado de servidor y conexión SSL para poder dejar almacenados los
permisos de uso del micrófono.

Adicionalmente el propio código del navegador activa un Timer que se llama


cada segundo con el que se pregunta al servidor, empleando tecnología AJAX,
por el siguiente comando o modo de operación al que debe cambiarse. De esta
forma, el navegador puede activar o desactivar de modo inmediato la
funcionalidad de reconocimiento continuo de voz.

Una vez enviado el comando de inicio de dictado continuo al navegador


Chrome, el navegador recupera constantemente el audio, lo envía a la nube de
Google y recupera el texto reconocido de retorno. La transferencia del texto
reconocido por los servicios de Google se realiza mediante una llamada AJAX
desde nuestro navegador Chrome al servidor web local. Este servidor forma

377
Descripción general de Xulia como sistema de accesibilidad

parte del sistema de control de Windows que posteriormente procesará esta


entrada y nos permitirá manejar el ordenador.

Mediante este módulo de interacción con el API JavaScript de reconocimiento


de voz implementado en la API JavaScript de Google Chrome, se consigue
emplear los servicios de Google para reconocimiento continuo de voz en
cualquiera de los idiomas soportador por Google. En el año 2015 el portugués
era uno de los lenguajes soportados, aunque no implementaba la
funcionalidad de reconocimiento de los signos de puntuación.

Una vez solucionados los problemas tecnológicos para soportar dictado


continuo, debemos desarrollar un sistema base que sea capaz de reconocer
comandos del modo más preciso posible y que sea capaz de interactuar a nivel
de APIs de sistema con el resto de las aplicaciones y con el propio Windows
para posibilitar una experiencia de uso lo más satisfactoria posible. Sumados a
estos requisitos, debemos intentar que el grado de productividad de este nuevo
sistema que debe operarse solo por voz, sea lo más similar posible al empleo de
un ordenador con un teclado y un ratón.

Después de comprobar los puntos débiles del sistema de reconocimiento de


voz de Microsoft en su versión SAPI 5, o al menos de la versión gratuita que nos
ofrece para el desarrollo de aplicaciones de escritorio de Windows decidimos
que debíamos restringir el número de comandos disponibles al mínimo posible
en cada momento, con lo que aumentaríamos las posibilidad de que el
comando reconocido fuera el correcto y reduciríamos los falsos positivos que
aparecen de un modo demasiado habitual al emplear esta tecnología con ruido
de fondo en la habitación.

Aunque se ha implementado un modo que permite que los comandos del


sistema sean obtenidos empleando la tecnología reconocimiento de voz de
Google a través de Chrome, el problema fundamental de este sistema, es que
el reconocimiento se efectúa en la nube, lo que implica un tiempo de retardo
entre la locución del comando y la obtención del texto del mismo, esto reducía
drásticamente el grado de productividad, sobre todo en lo relacionado con

378
Anexo VII. XULIA

comandos que debían de ser inmediatos como los relativos al movimiento de


ratón.

Por este motivo, en el modo comando se emplea la tecnología de reconociendo


de voz de Windows, lo que limitaba el lenguaje de los comandos al idioma
inglés, francés, alemán, español, japonés y chino, en el año 2014.

Desde el año 2017 ya está disponible el idioma portugués brasileño, aunque


Microsoft no lo incorporó a la versión de la librería SAPI 5 y para poder
emplear este idioma es necesario desarrollar aplicaciones universales Windows
o bien migrar las aplicaciones a la versión de servidor de la librería SAPI 10.
Más adelante se explicarán los problemas que tienen tanto la versión de
servidor de la librería SAPI 10 como la versión de la librería de reconocimiento
de voz para aplicaciones UWP (Universal Windows Platform).

En cualquiera de las versiones de estas librerías, menos en la versión para UWP


(que emplea Cortana), aún resulta obligatorio reducir el alto número de falsos
positivos que presenta este sistema para lo que se debe mantener el mínimo
número de comandos distintos activos en cada momento.

Adicionalmente, el objetivo era crear un sistema multi-idioma, cuyos comandos


pudieran ser totalmente configurables y adaptables a cualquier idioma, dado
que muchas de las dolencias de nuestros usuarios originan que no sean capaces
de emitir de forma correcta ciertos fonemas, que deberán ser eliminados en
los comandos cambiándolos por otros.

7.3 Técnicas de gestión de la transcripción de audio a texto


La capacidad de reconocimiento de voz la ofrecen las distintas librerías o
servicios empleados para el reconocimiento, pero disponer de la traducción a
texto del audio de la voz es el primer paso para poder gestionar todas las
funciones necesarias para controlar un ordenador y realizar las tareas diarias
de forma productiva. Para mitigar los defectos del sistema de reconocimiento
y mejorar la experiencia y la productividad del usuario, se han implementado
las siguientes técnicas de gestión de los comandos o del texto reconocido:

379
Técnicas de gestión de la transcripción de audio a texto

• Activación contextual de gramáticas.


• Activación de gramáticas automáticamente por aplicación.
• Desactivación de contextos automáticamente por tiempo.
• Pilas de navegación de gramáticas.
• Comandos de alta seguridad temporizados.
• Multiplicadores de acciones.
• Generación de listas de sustitución en modo dictado.
• Especificación de porcentajes de reconocimiento individual para cada
comando.
• Múltiples portapapeles.
• Sistema de posicionamiento del ratón de alta velocidad por rejilla
• Movimientos diagonales del ratón

Sumados al control del modo comando, también tenemos que solucionar la


carencia de la implementación de signos de puntuación en el sistema de
reconocimiento continuo de algunos idiomas por el sistema de reconocimiento
de Google. Para solucionar este último problema se han implementado listas
de sustitución automática en modo dictado, de forma que una vez que nuestro
sistema detectaba ciertos patrones en modo dictado, automáticamente eran
sustituidos por signos de puntuación o caracteres especiales, como el retorno
de línea o el salto de página.

Antes de proceder, para comprender los conceptos empleados, resulta básico


comprender el concepto de gramática. En Xulia, una gramática es un conjunto
de palabras o frases que se encuentran activos para reconocimiento en un
momento dado.

A continuación, se describen las siguientes soluciones empleadas para mejorar


el comportamiento del sistema.

Activación contextual de gramáticas

No todos los comandos se encuentran activos al mismo tiempo, dependiendo


del contexto, las gramáticas se activan o desactivan automáticamente o

380
Anexo VII. XULIA

empleando los propios comandos. Por ejemplo, si estamos en modo comando


y necesitamos deletrear un texto técnico, dado que no contiene ninguna
palabra del lenguaje que estamos empleando dictamos el comando deletrear.
Esta palabra está asociada a una macro que cambia la gramática activa a la
gramática que permite deletrear, con lo que se activan los comandos de dicha
gramática, desactivando la gramática activa actualmente. Estos cambios de
gramática pueden ser aditivos o sustitutivos. Serán aditivos cuando
incrementamos los comandos de la nueva gramática a la gramática actual, y
sustitutivos cuando desactivamos los comandos de la gramática actual y
activamos solo los de la nueva gramática.

Pilas de navegación de gramáticas

Cuando activamos una nueva gramática, esta se coloca en la parte superior de


la pila de gramáticas. A partir de ese momento se activarán los comandos de la
nueva gramática. Si queremos volver a la gramática anterior, solo tenemos que
dictar el comando volver y si queremos volver directamente a la gramática inicial
de comandos solo tenemos que dictar el comando modo comando, este último
vacía la pila de gramáticas y activa la gramática de comandos por defecto. Con
estas sencillas instrucciones de navegación controlamos el intercambio de
gramáticas.

Gramáticas de aplicación

Dentro de Xulia, cada aplicación puede tener sus propios comandos, e incluso,
un mismo comando puede tener asociadas macros distintas dependiendo de la
aplicación activa en cada momento. Estás gramáticas se activan
automáticamente, cuando Xulia detecta que una aplicación pasa a primer
plano. A partir de ese momento, todos los comandos definidos para ser usados
en la aplicación están disponibles y a su vez se desactiva cualquier otra
gramática de aplicación que se encontrara activa. Las gramáticas se desactivan
automáticamente cuando la aplicación se cierra o cambiamos el contexto a otra
aplicación. De este modo conseguimos mantener gramáticas con comandos
polimórficos, de modo que un mismo comando realiza acciones distintas

381
Técnicas de gestión de la transcripción de audio a texto

dependientes de la aplicación que se encuentra activa en el momento de dictar


el comando. Con estos modos de operación conseguimos mantener el número
mínimos de comandos activos en cada momento, sin renunciar a tener cientos
de comandos específicos para cada aplicación.

Comandos protegidos

Xulia permite definir comandos protegidos. Estos comandos solo pueden ser
identificados si entramos en modo protegido y una vez dentro de este modo
tenemos 3 segundos para dictar el comando antes de que el sistema salga del
modo protegido de forma automática. Este modo se emplea para comandos
peligrosos o para los comandos de activación y desactivación de Xulia, dado
que si desactivamos Xulia accidentalmente perdemos el control de nuestro
equipo y dado que este sistema está diseñado para personas con tetraplejia,
nuestros usuarios perderían la posibilidad de interactuar con el ordenador y
necesitarían de ayuda de otra persona para poder restablecerlo.

Cadenas de sustitución

Esta funcionalidad se emplea en modo dictado continuo a través de tecnología


Google. Este modo de dictado no está igual de evolucionado en todos los
idiomas, esto implica que en algunos lenguajes funciona la identificación de
las palabras, pero no funciona la identificación de los signos de puntuación.
Con esta funcionalidad podemos elegir cualquier frase para que cuando la
encuentre en el texto la sustituya por cualquier otra o por un signo de
puntuación. Para poder dictar la frase elegida sin que sea sustituida debemos
antecederla de la palabra “literal”. De esta forma añadimos la funcionalidad
para incorporar tildes, acentos, retornos de línea y demás signos y acciones de
control, aunque no las soporte el dictado de Google.

Control del ratón relativo y absoluto mediante rejillas

Otra de las características fundamentales para el correcto manejo de nuestro


escritorio es el control del ratón. Xulia posee comandos para desplazar el ratón
en las cuatro direcciones comunes, pero también permite desplazamiento en

382
Anexo VII. XULIA

las cuatro diagonales. Adicionalmente permite controlar la velocidad de


desplazamiento seleccionando entre 4 velocidades, pero donde presenta una
solución novedosa es en el desplazamiento absoluto a una posición. Para
desplazarse a una posición concreta debemos emplear el comando rejilla, con
ello XULIA superpone una rejilla con fondo transparente encima de la
pantalla con 24 filas y 24 columnas. En cada fila y columna tenemos una letra
del alfabeto, para hacer referencia a una celda solo tenemos que especificar el
comando asociado a la letra correspondiente a su fila y después a su columna,
con lo que el ratón se situará en el medio de la celda indicada.

Con este sistema, sólo con dos palabras podemos posicionarnos de forma
inmediata en 576 posiciones, pero con esta precisión no seriamos capaces de
clicar directamente en muchos lugares pequeños. Para mejorar esta precisión
sin necesidad de dictar múltiples comandos y, sobre todo, sin necesidad de
colocar más líneas en la rejilla virtual que entorpecen la visión del fondo, cada
una de estas 576 celdas se descompone virtualmente en 9 posiciones, con lo
que realmente tenemos 5.184 posiciones para situar de forma directa nuestro
ratón. La descomposición es virtual porque tenemos que imaginarlo, ya que si
no lo hiciéramos y pintáramos todas las rayas sería complicado ver lo que
tenemos debajo de la rejilla. Para activar el modo de posicionamiento de alta
precisión, solo tenemos que dictar el número de la celda virtual (1 a 9) antes
de dar las dos letras que forman las coordenadas de la celda. Si no dictamos el
número antes, el ratón se sitúa en el centro de la celda. Si empleamos los
números, el ratón se sitúa en el centro de la subcelda virtual del número
correspondiente. Si empleamos el número 0 el ratón se sitúa en la esquina
superior izquierda de la celda, con lo que realmente disponemos de 5.760
posiciones distintas de posicionamiento con una sola indicación directa.

Multiplicador de comandos

Con Xulia, tenemos una funcionalidad que permite la multiplicación de


comandos. Antes de un comando podremos activar el multiplicador dictando
la palabra por seguida de un número, con ello el siguiente comando se repetirá

383
Técnicas de gestión de la transcripción de audio a texto

automáticamente tantas veces como hayamos configurado en el multiplicador.


Esta funcionalidad resulta muy interesante para borrados de caracteres o
desplazamientos con los cursores.

Sistema de configuración y parametrización

Como se ha descrito en puntos anteriores, Xulia es un sistema multi-idioma.


Esto quiere decir que los comandos a dictar y las acciones asociados a dichos
comandos son totalmente configurables.

Xulia posee un total de 140 macros parametrizadas que podemos elegir asociar
a cualquier frase también configurable en cualquier de los idiomas soportador
por Windows. Adicionalmente, el modo dictado continuo de Google puede ser
configurado para reconocer cualquiera de los idiomas soportados por los
sistemas de reconocimiento de voz de Google y si se establece la configuración
para emplear el dictado de Google como fuente de dicción de comandos,
también podemos emplear todos sus idiomas en modo comando, aunque
perdemos velocidad de reconocimiento, ya que como se ha dicho con
anterioridad, el reconocimiento de Google se realiza en la nube.

Para configurar todas estas combinaciones, Xulia tiene una interface gráfica
que finalmente genera un fichero de configuración en XML, que los usuarios
avanzados podrían modificar directamente. Con este sistema de configuración
permitimos reaprovechar partes de los ficheros de configuración entre
usuarios o simplemente copiar una configuración de un usuario en otro muy
fácilmente.

Módulo conversacional

Como funcionalidad adicional, Xulia posee implementado en su interior un


chatbot basado en lenguaje AIML (Artificial Intelligence Mark-up Languaje). Este
lenguaje permite especificar patrones mediante una estructura XML que
posteriormente serán buscados en el texto de una conversación para identificar
contextos y respuestas. Este lenguaje ha sido especialmente diseñado para crear
chatbots. El lenguaje de programación AIML fue desarrollado por el Dr.

384
Anexo VII. XULIA

Richard Wallace y la comunidad de código abierto Alicebot entre los años 1995
y 2000. Con él se crearon las bases del primer Alicebot, que ha ganado el
concurso Loebner Prize Contest en el año 2000, 2001, 2004 y también el concurso
The most human tres veces, y el Campeonato de Chatbot en 2004.

Para interpretar los tags AIML se ha empleado el intérprete en C# Program#


[190] desarrollado por Nicholas H.Tollervey, que hemos modificado para
poder incorporar comandos parametrizables con estructura compleja dentro
de las los patrones reconocidos por el intérprete AIML.

De entrada, el cerebro AIML de Xulia contiene un total de 34.000 patrones y


está basado en el cerebro de Alexia que ha sido creada en la Universidad de
Vigo dentro del proyecto Galaia.

Su cerebro gestiona múltiples temáticas de conversación como son: relaciones


personales, política, hobbies, ciencia, cine, música, animales, apariencia física,
astrología, psicología, deporte, dinero, drogas, edad, estados de ánimo, familia,
filosofía, humor, informática, profesiones, religión, etc.

Modos de operación

Xulia tiene los siguientes modos de operación:

• Modo comando.
• Modo conversación.
• Modo dictado continuo Google.
• Modo dictado continuo Windows.
• Modo rejilla.
• Modo corrección.
• Modo deletrear.

El comportamiento de cada uno de los modos de operación es el siguiente:

Modo comando

En este modo, Xulia emplea la tecnología de reconocimiento de voz integrada


dentro de Windows para aplicaciones de escritorio. La ventaja de este modo es

385
Técnicas de gestión de la transcripción de audio a texto

la velocidad de reconocimiento, necesaria para comandos de interacción con


el escritorio y comandos de posicionamiento y desplazamiento del ratón. A la
par tiene dos grandes desventajas, por un lado, presente una tasa alta de falsos
positivos en presencia de ruido de fondo, cuando el número de palaras a
reconocer es muy numerosa. Adicionalmente otro problema que presenta es
que inicialmente, esta tecnología solo funciona en los lenguajes inglés, francés,
alemán, español, chino y japonés. Posteriormente fue introducido el
portugués, pero esta limitación nos obliga a escoger el idioma más similar en
otros países.

En este modo podemos configurar cualquier palabra o frase de los idiomas


citados y asociarlos a una secuencia parametrizada y combinada de las 140
macros predefinidas.

Modo conversación

En este modo se activa el chatbot Xulia y pasaremos a estar conversando con la


inteligencia artificial generada en AIML. Entre las funcionalidades incluidas se
encuentra la posibilidad de mantener una conversación con seguimiento de
contexto, pero adicionalmente, dado que se ha extendido el lenguaje AIML
para dar cabida a patrones de ejecución de comandos, podremos ejecutar
comandos complejos parametrizados con frases dictadas en lenguaje natural.
Algunas de las funciones que pueden realizarse con estos comandos complejos
son las siguientes:
• Buscar cualquier contenido en internet.

o En esta funcionalidad, Xulia abrirá directamente un navegador con el


resultado de la búsqueda en el buscador predeterminado.

• Preguntar directamente por el tiempo de cualquier ciudad.

o Xulia buscará directamente la temperatura, grado de humedad,


velocidad del viento y precipitaciones, interpretando el resultado y
leyendo el pronóstico mediante voz sintetizada.

• Preguntar por quién es una persona.

386
Anexo VII. XULIA

o En caso de encontrar el resultado, lo interpretará y leerá la respuesta.

• Preguntar por qué es.

o Si encuentra el resultado, lo interpretará y leerá la respuesta.

• Enviar un correo a una dirección de la lista de contactos.

o Permitirá especificar el asunto y el contenido de un mensaje de correo,


que enviará directamente a su destinatario.

• Gestionar la lista de la compra.

o Permite tanto incluir nuevos productos, como crear y eliminar listas de


compra.

Modo dictado continuo Google

Mediante este modo se activa el sistema de reconocimiento indirecto a través


de un navegador Google Chrome, de forma que Xulia emplea los sistemas de
reconocimiento de voz en la nube de Google.

En este modo empleamos dos características importantes de Xulia:


• Cadenas de sustitución.
• Ventana de corrección.
Con las cadenas de sustitución podemos asociar a un comando expresiones
recurrentes, de forma que serán escritas directamente dictando el comando
asociado, aunque la utilidad más importante es emplearlas para caracteres de
puntuación y caracteres de control. El dictado Google no está igual de
avanzado en todos los idiomas, y en nuestro caso, en idioma portugués en el
momento del desarrollo de Xulia, todavía no tenía soportados los caracteres de
control ni los signos de puntuación, con lo que al dictar la palabra punto, el
sistema reconocía la palabra punto o al dictar nueva línea igualmente lo
reconocía de modo literal. Con las listas de sustitución podemos asociar los
caracteres que queramos a frases, de modo que si las reconoce dentro del texto
las sustituirá por los caracteres asociados. En caso de que queramos evitar esta
transformación, debemos anteceder la frase de la palabra literal.

387
Versiones de las librerías de reconocimiento de voz empleadas en XULIA

A pesar de que la calidad del reconocimiento es muy buena, siempre se


mantendrá un porcentaje de fallos que deben ser corregidos, y en nuestro caso
debemos tener en cuenta que este sistema está diseñado para personas
tetrapléjicas, con lo que el sistema de corrección debe funcionar de forma muy
rápida empleando comandos de voz.

Modo corrección

El usuario puede cambiar en cualquier momento al modo corrección. Al


activar este modo, Xulia muestra la ventana de corrección y muestra la última
fase dictada. El sistema separa las palabras de la frase y las numera (ver Figura
7.3.1). De este modo, el usuario puede seleccionar el número de la palabra con
la que quiere operar para después corregirla o eliminarla. Una vez aceptada
una corrección se sustituye el resultado en la aplicación en la que se estaba
dictando.

Figura 7.3.1. Imagen de la ventana de corrección con todas las palabras de la frase numeradas.

7.4 Versiones de las librerías de reconocimiento de voz empleadas


en XULIA
Inicialmente, desde su creación, XULIA ha empleado la versión 5 de las
librerías SAPI (Speech Application Program Interface). Estas librerías permitían
tanto el reconocimiento de frases y palabras seleccionadas como la gramática
de dictado libre, aunque con una calidad bastante baja en entornos ruidosos,
al menos en lo relativo al dictado continuo. Adicionalmente se emplea la
tecnología de reconocimiento de voz de Google en la nube de un modo
indirecto mediante el empleo de un navegador Google Chrome como servidor
de reconocimiento de voz.

En el año 2017 se ha realizado una actualización en las librerías empleadas para


realizar el reconcomiendo de voz. Actualmente, y desde el año 2017 tenemos
disponibles tres tecnologías de reconcomiendo de voz de Microsoft. Cada una

388
Anexo VII. XULIA

de ellas emplean distintas APIs y no son compatibles entre sí, aunque la versión
5 y la versión 10 tienen grandes similitudes, aunque ambas no soportan las
mismas funciones.

Desde la creación de XULIA, se ha empleado la versión 5 de las librerías SAPI


de reconocimiento de voz. Este motor de reconocimiento posee la capacidad
de reconocer palabras concretas indicadas en una gramática de
reconocimiento, pero también posee el modo de dictado continuo, en donde
reconoce conversación normal en cualquiera de los 6 idiomas que soporta. Este
modo está disponible desde el año 2000. Estas librerías se publican bajo el
espacio de nombres System.Speech.

Con posterioridad Microsoft publico la versión 10 de sus librerías de


reconocimiento de voz. El motor que implementa esta API es Microsoft Server
Speech. Este API permite únicamente el reconocimiento de palabras
pertenecientes a una gramática prefijada, dado que el motor de
reconocimiento no implementa el dictado continuo. La calidad de
reconocimiento es algo superior al motor de SAPI 5, pero en presencia de
ruido de fondo no representa un salto trascendente. La ventaja de este sistema
es que ha ampliado el número de idiomas soportados a 26, incluyendo desde
el año 2018 el idioma portugués. Estas librerías se publican bajo el espacio de
nombres Microsoft.Speech.

Por último, desde la aparición de Cortana en Windows 10, Microsoft ha


diseñado un nuevo motor de reconocimiento de voz muy superior a los dos
anteriores. La tecnología de este nuevo motor es la misma que emplea Cortana.
Este motor ha sido diseñado para ser empleado en las aplicaciones UWP
(Universal Windows Platform) de Windows. Este motor soporta reconocimiento
de palabras y frases prefijadas fuera de línea con un alto grado de inmunidad
al ruido, y dictado continúo empleando los recursos de la nube de Microsoft,
aunque de modo gratuito. Xulia, al interactuar a medio nivel con las librerías
de Windows para controlar el sistema, no puede reconvertirse a una aplicación
UWP, sin embargo, mediante enlaces dinámicos de librerías, es posible
emplear este motor de reconocimiento en aplicaciones de escritorio. Sin

389
Motores de reconocimiento de voz de alto rendimiento multilenguaje

embargo, este motor que es, con mucha diferencia el más avanzado
actualmente de Microsoft, para nuestro propósito, posee un gran
inconveniente que lo hace inoperativo. El motor necesita que la aplicación que
lo esté empleando permanezca siempre con el foco en primer plano. En
cuando la aplicación pierde el foco (deja de ser la aplicación activa), el motor
desactiva el sistema de reconocimiento. Debemos tener en cuenta que XULIA
es una aplicación que trabaja en segundo plano y cuyas acciones se reflejan en
otras aplicaciones con las que está trabajando el usuario, lo que nos impide
emplear esta tecnología. Estas librerías se publican bajo el espacio de nombres
Windows.Media.Speech. Con la última modificación realizada sobre Xulia, se han
combinado las funcionalidades de las tres librerías. Se emplea SAPI 10 para
reconocimiento de comandos y frases prefijadas con posibilidad de emplear 26
idiomas y cuando se cambia a modo dictado local empleamos SAPI 5
soportando dictado en 6 idiomas.

Finalmente se ha añadido un nuevo modo de dictado con la tecnología de las


librerías UWP que abre una nueva ventana y permite dictar de modo continúo
empleando el nuevo motor de Windows 10. Todo el texto reconocido se
muestra en la pantalla y una vez que se cierra, el contenido de la ventana se
copia al portapapeles para pegarlo en cualquier aplicación.

7.5 Motores de reconocimiento de voz de alto rendimiento


multilenguaje
En el año 2015, antes del inicio del desarrollo de XULIA, se analizaron todas
las alternativas que permitieran reconocimiento continuo de voz, intentando
identificar aquellos sistemas gratuitos con capacidad de reconocimiento de
idioma portugués. En los siguientes apartados se describen los sistemas
analizados.

390
Anexo VII. XULIA

Microsoft

Mediante las librerías SAPI (Speech Application Programer Interface), Microsoft


incorporó la posibilidad de añadir la funcionalidad de reconocimiento de voz
en aplicaciones Windows de forma gratuita.

Las primeras versiones de SAPI 1 se lanzaron en el año 1995 con Windows 95.
Estas versiones poseían la capacidad de reconocer palabras o frases
independientes prefijadas. No fue hasta la versión 3, donde se incorporó el
dictado discreto y en la versión 4 se permitía, con ciertos problemas, reconocer
dictado continuo en inglés, que fue empleado por varias aplicaciones como
[23]. Estas versiones no son compatibles con .NET

En el año 2000 se lanza SAPI 5, en la que Microsoft rediseñó por completo el


sistema de reconocimiento de voz, añadiendo la capacidad de reconocer inglés,
francés, alemán, español, chino y japonés, con capacidad de dictado continuo
con cierta calidad. Esta es una de las versiones del API que se emplea en Xulia
para el dictado continuo fuera de línea, aunque presenta demasiada
sensibilidad al ruido de fondo y a la calidad de los micrófonos utilizados. Para
emplear estas librerías desde .NET debe emplearse el espacio de nombres
Microsoft.Speech.

Posteriormente, Microsoft lanza la versión 10.0 de su sistema de


reconocimiento de voz para servidor bajo el espacio de nombres
Microsoft.Speech. Esta versión no era totalmente compatible con la anterior y
tenía como principal inconveniente que no implementaba el dictado continuo,
pero como contrapartida soportaba el reconocimiento de palabras o frases
prefijadas en un total de 26 idiomas, entre los que se encontraba el idioma
portugués.

Con el lanzamiento de Windows 10, Microsoft dio un salto de gigante en su


sistema de reconocimiento de voz, mejorando uno de los grandes problemas
que siempre mantuvo, que era la alta sensibilidad al ruido de fondo, con el que
generaba falsos positivos. Finalmente, con Windows 10 y su asistente Cortana,
el reconocimiento de voz era casi inmune al ruido de fondo y la calidad del

391
Motores de reconocimiento de voz de alto rendimiento multilenguaje

sistema pasó a otro nivel. Al mismo tiempo, Microsoft lanzó su sistema de


desarrollo de aplicaciones universales (UWP) con el que se podía crear una
única aplicación y ejecutar en múltiples plataformas. El problema fue que
incorporó muchas limitaciones para el desarrollo UWP. Para impulsar esta
plataforma, las nuevas APIs de reconocimiento de voz con la potencia mejorada
solo fueron publicadas para aplicaciones UWP y adicionalmente tenían una
grave limitación. El nuevo sistema de reconocimiento solo permanece activo
mientras la aplicación que lanza el reconocimiento está activa en primer plano.
Solo por esta limitación, se hace imposible poder emplear estas nuevas APIs en
una aplicación como Xulia, que debe recuperar la información del usuario
para actuar sobre otras aplicaciones que se encuentran en primer plano.

Adicionalmente, con la mejora de la calidad del reconocimiento se debe pagar


un precio. Con el API UWP el reconocimiento de palabras y frases prefijadas
se realiza fuera de línea, pero el reconocimiento del dictado continuo se lleva
a cabo en los servidores de Microsoft en la nube, por lo que es necesario
disponer en todo momento de conexión a internet.

Microsoft Cloud

Este es un servicio de pago de Microsoft incluido en la plataforma Microsoft


Azure. En la Tabla 7.5.1 se pueden ver sus costes. Este Servicio convierte voz a
texto con mucha mayor precisión comparado con las librerías de Windows.
Este software de última generación admite más de 85 idiomas globales junto
con variantes. Puede personalizar modelos agregando palabras específicas y
mejorar la precisión de su texto para frases específicas de dominio.

Esta solución admite entradas de audio de varias fuentes, como archivos de


audio, almacenamiento de blobs y micrófonos. Puede utilizar el registro del
hablante para determinar las palabras exactas, y también obtiene
transcripciones altamente legibles automáticamente con puntuación y
formato.

392
Anexo VII. XULIA

Tabla 7.5.1. Coste del empleo de los modelos en la nube de Microsoft.

Estándar €0,844 por hora de audio


Custom Speech €1,181 por hora de audio
Hospedaje de puntos
de conexión de Custom €33,74 por modelo y mes
Speech
Audio multicanal de
transcripción de N/D por hora de audio4
conversaciones

Nuance

Antes del desarrollo de ViaVoice, IBM desarrolló un producto llamado VoiceType.


En 1997, ViaVoice se presentó por primera vez al público en general. Dos años
después, en 1999, IBM lanzó una versión gratuita de ViaVoice [24]. En 2003,
IBM otorgó a ScanSoft, que poseía el producto competitivo Dragon Naturally
Speaking, los derechos exclusivos de distribución global de los productos
ViaVoice Desktop para Windows y Mac OS X. Dos años más tarde, Nuance se
fusionó con ScanSoft. La fusión de todas estas tecnologías dio lugar años más
tarde a Dragon Naturally Speaking que es uno de las mejores aplicaciones de
escritorio de pago de reconocimiento de voz. Pero las fusiones e
incorporaciones tecnológicas no cesaron, dado que en año 2011, Nuance
adquirió otra gran compañía con tecnología de reconocimiento y síntesis de
voz como es Loquendo.

La última compra finalizó en marzo de 2022, donde Microsoft adquiere


Nuance. Las librerías de Nuance son la base de uno de los chatbots más
evolucionados hoy en día llamado SIRI presente en la plataforma iOS de Apple.

Google Cloud

Los sistemas de reconocimiento de voz de Google, actualmente son de los


mejores. En el año 2017, Google conseguía un 95% en su tasa de
reconocimiento para el inglés de los Estados Unidos; el más alto de todos los
asistentes de voz actualmente disponibles. Esto se traduce en una tasa de error

393
Motores de reconocimiento de voz de alto rendimiento multilenguaje

de palabras del 4,9%, lo que hace que Google sea el primero del grupo en caer
por debajo del umbral del 5%.

En la tabla 7.5.2 pueden verse los costes de utilización de los servicios de


reconocimiento de voz en la nube de Google.
Tabla 7.5.2. Coste de los servicios en la nube de Google.

Modelos estándar
Modelos premium*
(todos excepto los modelos
Función (modelos mejorados para
mejorados para vídeo y
vídeo y teléfono)
teléfono)
De más de 60 De más de 60
De 0 a minutos a De 0 a minutos a
Tiempo
60 minutos 1 millón de 60 minutos 1 millón de
minutos minutos
Reconocimiento de voz 0,006 USD por 0,009 USD por
(sin el almacenamiento de Gratis cada Gratis cada
registros de datos) 15 segundos** 15 segundos**
Reconocimiento de voz 0,004 USD por 0,006 USD por
(con el almacenamiento de Gratis cada Gratis cada
registros de datos) 15 segundos** 15 segundos**

Amazon

Amazon tiene un servicio en el que unifica el reconocimiento de voz junto con


las capacidades conversacionales de su chatbot Alexa, por lo que actualmente
no tiene un servicio de reconocimiento de voz puro independiente.

IBM

El servicio de reconocimiento de voz en la nube de IBM es Watson Speech to Text.


Es una solución avanzada de reconocimiento y transcripción de voz que
funciona con inteligencia artificial y permite una transcripción rápida y precisa
en varios idiomas y casos de uso, incluidos el análisis de voz y la interpretación
del lenguaje natural para agentes de asistencia. Trabaja mediante sofisticados
modelos de aprendizaje automático. Mediante un coste adicional, permite
realizar entrenamiento adicional de los modelos, con voz proporcionada por
el cliente. En la tabla 7.5.3 se detallan sus costes.

394
Anexo VII. XULIA

Tabla 7.5.3. Precios de los servicios en la nube de reconocimiento de voz de IBM.

Minutos de reconocimiento* Coste/minuto


1 – 250000 0,0200 $
250001 – 500000 0,0150 $
500001 – 1000000 0,0125 $
1000000 + 0,0100 $
*$0,03 adicional por minuto al emplear modelos Custom Language Model Add-on.

Mozilla DeepSpeech

Estas librerías son de código abierto, pero solo soportan por el momento el
idioma inglés, y se encuentran en una etapa temprana de desarrollo.

DeepSpeech [25] es un motor de voz a texto de código abierto que utiliza un


modelo entrenado con técnicas de aprendizaje automático. Emplea en su
implementación las librerías TensorFlow de Google. Esta plataforma de código
abierto está diseñada para la decodificación avanzada con una integración
flexible del conocimiento. El núcleo del sistema es una red neuronal
recurrente bidireccional (BRNN) entrenada para ingerir espectrogramas de
voz y generar transcripciones de texto. Por el momento está disponible para su
uso un modelo preentrenado en idioma inglés.

El software necesita Python 2.7 y Git Large File Storage (una extensión de Git
para crear versiones de archivos grandes).

Julius

Julius [26] es otro motor de reconocimiento con licencia Open Source.


Actualmente tiene disponibles de forma gratuita los modelos de lenguaje para
los idiomas japonés e inglés.

Julius es un motor de reconocimiento continuo de voz (LVCSR) de dos pasos


y alto rendimiento. Está basado en trigramas y trabaja con modelos ocultos de
Márkov realizando decodificaciones en tiempo real. Los modelos acústicos y los
modelos de lenguaje son conectables, y puede crear varios tipos de sistemas de
reconocimiento de voz creando sus propios modelos y módulos para que se
adapten a distintas tareas. El motor principal se implementa como una

395
Motores de reconocimiento de voz de alto rendimiento multilenguaje

biblioteca integrable, con el objetivo de ofrecer la capacidad de


reconocimiento de voz a diversas aplicaciones.

Kaldi

Kaldi [27] es un conjunto de herramientas de reconocimiento de voz de última


generación escrito en C++. Está destinado a ser utilizado principalmente para
la investigación de modelado acústico.

Kaldi proporciona un sistema de reconocimiento de voz basado en


transductores de estado finito (usando la librería OpenFst disponible
gratuitamente), junto con documentación detallada y scripts para construir
sistemas de reconocimiento completos. Su biblioteca central admite el
modelado de tamaños arbitrarios de contexto fonético, modelado acústico con
modelos de mezcla gaussiana subespaciales (SGMM), así como modelos de
mezcla gaussiana estándar, junto con todas las transformaciones lineales y
afines de uso común.

Aunque el software ha estado en desarrollo durante algunos años, se encuentra


en una etapa temprana de desarrollo y no hay lanzamientos oficiales del
software. Actualmente en su web pueden descargarse versiones iniciales de
modelos en inglés y chino mandarín.

Philips SpeechLive

Philips tiene su propio servicio de reconocimiento de voz en la nube llamado


SpeechLive [28] con varias opciones, como el procesado de ficheros,
reconocimiento mediante grabación por voz y servicios en tiempo real de
traducción. En su página no da detalles técnicos del servicio, pero indica que
tiene una precisión cercana al 99%. Por el momento solo tiene modelos de los
idiomas inglés, alemán y francés cuyos costes pueden verse en la Tabla 7.5.4.
Tabla 7.5.4. Costes de los modelos de Philips.

Modelo de idioma Coste/minuto


Inglés 1,25 €
Alemán 2,54 €
Francés 3,09 €

396
Anexo VII. XULIA

7.6 Aplicaciones de control de Windows con la voz


En el año 2014, cuando se inició el desarrollo de Xulia, existían varias
aplicaciones de control de Windows mediante la voz. Debe tenerse en cuenta
que Xulia se desarrolló por petición del Instituto Novo Ser de Brasil, con el
requisito de soportar el reconocimiento continuo de voz en portugués.
Ninguna de estas aplicaciones soportaba este idioma para reconocimiento
continuo.

Windows Speech Recognition

WSR (Windows Speech Recognition) es un sistema de control integral de Windows


mediante el reconocimiento voz. Fue desarrollado por primera vez para
Windows Vista. Permite manejar todas las funciones de Windows empleando
únicamente la voz, sustituyendo de modo completo el teclado y el ratón.
También permite dictar textos, navegar por la web y posicionarse de modo
directo en cualquier lugar de la pantalla empleando una rejilla dinámica.

El motor de reconocimiento de voz se ejecuta en local, no siendo necesario que


el ordenador se encuentre conectado a internet. Adicionalmente permite
incorporar nuevas palabras dictadas por el usuario al diccionario.

Permite reconocimiento de comandos independientes y también permite


dictado continuo. La precisión del reconocimiento es muy buena con
comandos definidos, pero al emplear la gramática para dictado continuo
presenta muchos falsos positivos originados por el ruido de fondo, por lo que
resulta imprescindible emplearlo con micrófonos de muy buena calidad con
atenuación de ruido de fondo. WSR viene incorporado con Windows sin coste
adicional.

En sus últimas versiones que datan del año 2018, soporta los idiomas inglés,
francés, alemán, español, portugués brasileño, japonés y chino.

397
Aplicaciones de control de Windows con la voz

Dragon Naturally Speaking

Dragon Naturally Speaking 54 es un software de reconocimiento de voz


desarrollado inicialmente por Dragon Systems basado en modelos ocultos de
Markov. Actualmente pertenece a Nuance Communications y su versión actual es
la 15. Sus últimas versiones emplean redes neuronales recurrentes entrenadas
mediante aprendizaje profundo.

Posee versiones tanto para Windows como para iOS. Permite controlar
completamente todas las funciones de la interface, posibilitando el dictado
continuo sobre la aplicación activa.

También permite definir nuevos comandos y crear macros para realizar


acciones complejas. La edición personal en su versión 15 tiene un coste de 499
$ y soporta los idiomas inglés, francés, alemán, español, holandés y japonés.

Braina

Braina 55 (Brain Artificial) es un asistente personal inteligente. Es un software


de inteligencia artificial que permite interactuar con el ordenador mediante
comandos de voz en multitud de idiomas. Es un software de pago. Una vez
analizados sus requisitos, asumimos que emplea la misma tecnología que Xulia
para utilizar los sistemas de reconocimiento de voz de Google en la nube
empleando un navegador Google Chrome como intermediario. Los comandos
por defecto están en idioma inglés, siendo necesario cambiar la configuración
predeterminada para definir comandos en otros idiomas que solo es posible
con las versiones de pago que tienen un coste de 200 $. Sumado a la capacidad
de reconocimiento de comandos y de dictado continuo, posee internamente
un chatbot, de modo que es posible dictar ciertas frases preconfiguradas en
lenguaje natural que serán reconocidas y procesadas por Braina.

54 Fuente: https://www.nuance.com/es-es/dragon.html [Acceso: 8-may-2022]


55 Fuente: https://www.brainasoft.com/braina/ [Acceso: 8-may-2022]

398
Anexo VII. XULIA

VozComando

Voxcommando 56 emplea la tecnología de reconocimiento de voz de Microsoft.


No está diseñado para prescindir completamente del teclado y el ratón, pero
permite definir macros y comandos con los que se puede agilizar y acelerar
ciertas tareas en el ordenador.

Voice Finger

Voice Finger 57 es un software de reconocimiento de voz que emplea el sistema


de reconocimiento de voz de Microsoft. Está diseñado para poder controlar
por voz directamente el ratón y el teclado con comandos cortos. Posee un
conjunto de comandos muy reducido para sustituir estos periféricos, pero no
posee comandos generales directos de control de Windows.

7.7 Asistentes personales


Los asistentes personales no están diseñados para controlar todas las funciones
de un ordenador, pero sí pueden acelerar tareas, permitiendo que se den las
instrucciones en lenguaje natural. En los siguientes apartados se describen los
asistentes personales más conocidos.

Siri

Siri es un asistente virtual que forma parte de los sistemas operativos de Apple.
Utiliza consultas de voz, soporta el seguimiento de contexto y posee
una interfaz de usuario de lenguaje natural para responder preguntas, hacer
recomendaciones y realizar acciones. Sus servicios de reconocimiento de voz y
procesamiento del lenguaje natural se encuentran en la nube. Con el uso
continuo, se adapta a los usos, búsquedas y preferencias de idioma individuales
de los usuarios, brindando resultados individualizados.

56 Fuente: https://voxcommando.com/home/ [Acceso: 8-may-2022]


57 Fuente: http://voicefinger.cozendey.com/ [Acceso: 8-may-2022]

399
Asistentes personales

La tecnología de su motor de reconocimiento de voz fue desarrollada, en sus


orígenes, por Nuance Communications. Actualmente emplea tecnologías
avanzadas de aprendizaje automático.

Siri admite una amplia gama de comandos de usuario, incluida la realización


de llamadas telefónicas, la consulta de información básica, la programación de
eventos y recordatorios, el manejo de la configuración del dispositivo, la
búsqueda en Internet, la búsqueda de información sobre entretenimiento y
puede interactuar con aplicaciones integradas en iOS.

Cortana

Cortana es un asistente virtual desarrollado por Microsoft que emplea la


plataforma Azure de servicios en la nube de Microsoft para el reconocimiento
de voz y el procesamiento del lenguaje natural. En los comandos de búsqueda
emplea el motor Bing. Actualmente, Cortana está disponible en inglés,
portugués, francés, alemán, italiano, español, chino y japonés.

Lleva el nombre de Cortana, por el personaje de inteligencia sintética de la


franquicia de videojuegos Halo de Microsoft.

Google Assistant

Google Assistant es un asistente virtual impulsado por inteligencia artificial


desarrollado por Google que está disponible principalmente en dispositivos
móviles y altavoces inteligentes. El Asistente de Google puede entablar
conversaciones bidireccionales. Google Now vio la luz en mayo de 2016 como
parte de su altavoz inteligente Google Home. Con posterioridad comenzó a
incluirse en dispositivos Android en febrero de 2017.

Los usuarios interactúan principalmente con el Asistente de Google a través de


la voz natural, aunque también se admite la entrada del teclado. El Asistente
puede buscar en Internet, programar eventos y alarmas, ajustar la
configuración del hardware en el dispositivo del usuario y mostrar información
de la cuenta de Google del usuario. Google también ha anunciado que el

400
Anexo VII. XULIA

Asistente podrá identificar objetos y recopilar información visual a través de la


cámara del dispositivo, y admitir la compra de productos y el envío de dinero.

Alexa

Amazon Alexa es una tecnología de asistente virtual que emplea los servicios
en la nube de Amazon para realizar el reconocimiento de voz y el
procesamiento del lenguaje natural. En el año 2013, Amazon adquirió el
software de reconocimiento de voz de Ivona que ha servido como base para el
desarrollo de la tecnología de reconocimiento de voz de Alexa. Se ha incluido
por primera vez en los altavoces inteligentes Amazon Echo y Echo Dot.

Es capaz de soportar conversaciones con seguimiento de contexto, reproducir


música, leer libros y ofrecer información procedente de búsquedas en internet.
También puede controlar dispositivos inteligentes y puede servir como base de
un sistema domótico de automatización en el hogar. Mediante plugins puede
extenderse su funcionalidad para realizar todo tipo de tareas.

7.8 Referencias

[1] C. E. Steriadis y P. Constantinou, «Designing human-computer interfaces


for quadriplegic people,» ACM Transactions on Computer-Human
Interaction (TOCHI), vol. 10, nº 2, p. 87–118, 2003.
[2] R. Kadouche, B. Abdulrazak y M. Mokhtari, «A BCI-controlled robotic
assistant for quadriplegic people in domestic and professional life,» de
International Conference on Computers for Handicapped Persons, 2004.
[3] C. G. Pinheiro, E. L. Naves, P. Pino, E. Losson, A. O. Andrade y G.
Bourhis, «Alternative communication systems for people with severe
motor disabilities: a survey,» Biomedical engineering online, vol. 10, nº 1, p.
31, 2011.
[4] J. Gips y P. Olivieri, «EagleEyes: An eye control system for persons with
disabilities,» de The eleventh international conference on technology and persons
with disabilities, 1996.
[5] C. Jeon, O. Kwon, D. Shin y D. Shin, «Hand-Mouse Interface Using
Virtual Monitor Concept for Natural Interaction,» IEEE Access, vol. 5, pp.
25181-25188, 2017. https://doi.org/10.1109/ACCESS.2017.2768405.

401
Referencias

[6] M. Betke, «Intelligent interfaces to empower people with disabilities,» de


Handbook of Ambient Intelligence and Smart Environments, Springer, 2010, p.
409–432.
[7] A. Nishikawa, v. Hosoi, K. Koara, D. Negoro, A. Hikita, S. Asano, H.
Kakutani, F. Miyazaki, MiyakeY., M. Sekimoto, M. Yasui, Y. Miyake, S.
Takiguchi y M. Monden, «FAce MOUSe: A novel human-machine
interface for controlling the position of a laparoscope,» IEEE Transactions
on Robotics and Automation, vol. 19, nº 5, pp. 825-841, 2003.
https://doi.org/10.1109/TRA.2003.817093.
[8] X. Huo, H. Park, J. Kim y M. Ghovanloo, «A Dual-Mode Human
Computer Interface Combining Speech and Tongue Motion for People
with Severe Disabilities,» IEEE Transactions on Neural Systems and
Rehabilitation Engineering, vol. 21, nº 6, pp. 979-991, 2013.
https://doi.org/10.1109/TNSRE.2013.2248748.
[9] H. Jiang, B. S. Duerstock y J. P. Wachs, «A machine vision-based gestural
interface for people with upper extremity physical impairments,» IEEE
Transactions on Systems, Man, and Cybernetics: Systems, vol. 44, nº 3, p. 630–
641, 2013. https://doi.org/10.1109/TSMC.2013.2270226.
[10] S. Kim, G. Park, S. Yim, S. Choi y S. Choi, «Gesture-recognizing hand-held
interface with vibrotactile feedback for 3D interaction,» IEEE Transactions
on Consumer Electronics, vol. 55, nº 3, pp. 1169-1177, 2009.
https://doi.org/10.1109/TCE.2009.5277972.
[11] R. Posada-Gomez, L. H. Sanchez-Medel, G. A. Hernandez, A. Martinez-
Sibaja, A. Aguilar-Laserre y L. Leija-Salas, «A hands gesture system of
control for an intelligent wheelchair,» de 2007 4th International Conference
on Electrical and Electronics Engineering, 2007.
https://doi.org/10.1109/ICEEE.2007.4344975.
[12] M. S. Hawley, S. P. Cunningham, P. D. Green, P. Enderby, R. Palmer, S.
Sehgal y P. O'Neill, «A Voice-Input Voice-Output Communication Aid for
People With Severe Speech Impairment,» IEEE Transactions on Neural
Systems and Rehabilitation Engineering, vol. 2, nº 1, pp. 23-31, 2013.
https://doi.org/10.1109/TNSRE.2012.2209678.
[13] P. Kotzé, M. M. Eloff y A. Adesina-Ojo, «Accessible computer interaction
for people with disabilities: The case of quadriplegics,» de 6th
International Conference on Enterprise Information Systems, Porto …, 2004.
[14] J. Zadeh, «Technology of speech for a computer system,» IEEE Potentials,
vol. 23, nº 5, pp. 35-38, 2004.
https://doi.org/10.1109/MP.2004.1301246.
[15] J. M. Noyes, R. Haigh y A. F. Starr, «Automatic speech recognition for
disabled people,» Applied Ergonomics, vol. 20, nº 4, p. 293–298, 1989.

402
Anexo VII. XULIA

[16] S. J. Young, «Designing a conversational speech interface,» IEE Proceedings


E - Computers and Digital Techniques, vol. 133, nº 6, pp. 305-311, 1986.
https://doi.org/10.1049/ip-e.1986.0037.
[17] K. T. V. Grattan, A. W. Palmer y C. S. A. Shurrock, «Speech recognition
for the disabled,» IEEE Engineering in Medicine and Biology Magazine, vol.
10, nº 3, pp. 51-57, 1991. https://doi.org/10.1109/51.84190.
[18] Goh Wee Leng y D. P. Mital, «A voice input word processor system,» IEEE
Transactions on Consumer Electronics, vol. 38, nº 4, pp. 755-761, 1992.
[19] R. C. Simpson y S. P. Levine, «Voice control of a powered wheelchair,»
IEEE Transactions on Neural Systems and Rehabilitation Engineering, vol. 10,
nº 2, pp. 122-125, 2002. https://doi.org/10.1109/TNSRE.2002.1031981.
[20] J. Kumagai, «Talk to the machine,» IEEE Spectrum, vol. 39, nº 9, pp. 60-64,
2002. https://doi.org/10.1109/MSPEC.2002.1030970.
[21] E. Kurniawati, L. Celetto, N. Capovilla y S. George, «Personalized voice
command systems in multi modal user interface,» 2012 IEEE International
Conference on Emerging Signal Processing Applications, pp. 45-47, 2002.
https://doi.org/10.1109/ESPA.2012.6152442.
[22] O. Majdalawieh, J. Gu y M. Meng, «An HTK-developed hidden Markov
model (HMM) for a voice-controlled robotic system,» de 2004 IEEE/RSJ
International Conference on Intelligent Robots and Systems (IROS) (IEEE Cat.
No.04CH37566), 2004. https://doi.org/10.1109/IROS.2004.1390049.
[23] J. R. Evans, W. A. Tjoland y L. G. Allred, «Achieving a hands-free
computer interface using voice recognition and speech synthesis [for
Windows-based ATE],» IEEE Aerospace and Electronic Systems Magazine, vol.
15, nº 1, pp. 14-16, 2000. https://doi.org/10.1109/62.821658.
[24] J. Edwards, «Voice-based interfaces make PCs better listeners,» Computer,
vol. 30, nº 8, pp. 14-16, 1997. https://doi.org/10.1109/2.607043.
[25] «Mozilla DeepSpecch,» [En línea]. Available:
https://github.com/mozilla/DeepSpeech. [Último acceso: 2022 2 20].
[26] «Julius,» [En línea]. Available: https://julius.osdn.jp/en_index.php.
[Último acceso: 2022 2 20].
[27] D. Povey, «Kaldi,» [En línea]. Available: https://kaldi-
asr.org/index.html. [Último acceso: 2022 2 20].
[28] «Philips SpecchLive,» [En línea]. Available:
https://www.speechlive.com/es/. [Último acceso: 2022 2 22].

403
8 Anexo VIII. La Infrabola

8.1 Introducción
Hauria [1] es un ecosistema de automatización de hogares especialmente
diseñado para ser empleado por personas con tetraplejia. Dentro del
ecosistema se definen varios módulos con el objetivo de mejorar las
condiciones de accesibilidad proporcionando mayor libertad y autonomía a sus
usuarios. Está orientado a la mejora de las condiciones de vida de personas
afectadas tanto por tetraplejias como por otras enfermedades que imposibiliten
la movilidad de todos sus miembros, siempre que se mantenga la capacidad de
hablar. Una de las necesidades de interacción que encuentran estas personas
es la interacción con dispositivos electrónicos. De forma general, la mayor parte
de estos dispositivos posibilitan su operación a través de mandos de infrarrojos
que deben ser operados con las manos. Como ejemplos de este tipo de
dispositivos encontramos cadenas musicales, sistemas de acondicionamiento
de aire, ventiladores, radios y la televisión. El modo más habitual de control de
estos dispositivos es mediante órdenes enviadas por mandos a distancia de luz
infrarroja. Todos estos mandos están diseñados para ser manipulados con las
manos, aunque el avance de la tecnología permite que en las gamas más altas
de estos electrodomésticos, estos puedan ser operados por voz.

Dado que nuestro usuario objetivo es una persona con tetraplejia, no tendrá la
capacidad de manipular estos mandos a distancia, lo que implica que
dependerá de otra persona sin limitaciones para operar los dispositivos, y
aunque las gamas altas, posean la operación por voz, muchas personas no
tienen la capacidad económica para poder acceder a este tipo de dispositivos.
Para nuestros usuarios, tareas sencillas como cambiar de canal de televisión,
saltarse la publicidad o simplemente recorrer los canales para localizar la
programación que más le guste, son imposibles de realizar sin ayuda
permanente, e igualmente podrá comprobarse que esta misma situación se
repite con el control de temperatura de una habitación mediante un
dispositivo de aire acondicionado, el accionamiento de una cadena musical o

405
Estudio del arte

el control de cualquier dispositivo actual de grabación de satélite y televisión.


Todos estos dispositivos poseen mandos de control remoto, que deben ser
utilizados mediante las manos. Dado que el número de actividades de estas
personas se ve muy reducido, en una situación normal, una persona con
limitaciones graves, puede emplear varias horas viendo la televisión y en todo
este tiempo no podrá interactuar con ella para cambiar los canales, el volumen
o ver la guía de programación.

La Infrabola está diseñada para eliminar estas limitaciones, pudiendo ser


controlada desde cualquier PC, Tablet o teléfono móvil con conectividad
Bluetooth, sustituyendo la interface con cualquier tipo de dispositivo que
pueda ser actuado mediante un mando a distancia de emisión de señales
infrarrojas.

En el año 2015 se comenzó el desarrollo de la Infrabola, con el objetivo de


permitir la interacción de estos dispositivos mediante la voz a través de su
propia interface de ordenador o de una tablet o a través de la interacción con
Xulia, que es el módulo de control integral por voz de ordenadores con
Windows® dentro del ecosistema de Hauria.

Aunque el hardware de la Infrabola puede ser empleado de forma


independiente con varios dispositivos, conjuntamente con este hardware se ha
diseñado un software de configuración y control que puede ser empleado por
voz o con el ratón, lo que permite que pacientes de ELA, que hasta su fase
terminal no suelen perder la capacidad de movilidad de sus ojos, empleando
un software y hardware de seguimiento ocular puedan desplazar un ratón para
enviar los comandos a la Infrabola empleando su mando virtual, para que esta
interactúe con los dispositivos mediante el envío de los comandos de luz
infrarroja.

8.2 Estudio del arte


En esta investigación se ofrece una solución completa en la que se incorpora
tanto el dispositivo hardware como el software de configuración y control. En

406
Anexo VIII. La Infrabola

la mayor parte de los trabajos que presentan soluciones de interacción con


dispositivos mediante luz infrarroja no se presenta una solución completa,
centrándose en la descripción del hardware de interacción, pero no se
acompaña del software para controlar los dispositivos por voz.

Trabajos de este tipo podemos ver en [2] donde se desarrolla un dispositivo


simple que es capaz de grabar y reproducir un comando de un mando
infrarrojo.

En [3] se presenta un sistema que permite la grabación y reproducción de


secuencias de comandos de mandos de infrarrojos empleando como base un
PC. En este trabajo se desarrolla un sencillo software en el que se implemente
una aplicación con botones que permite simular un mando a distancia.

En [4] y [5] se diseñan sencillos sistemas de control de dispositivos infrarrojos


que sólo implementan las funciones de encendido y apagado. De forma similar,
el trabajo mostrado en [6] también permite apagar un televisor, detectando
automáticamente que la habitación en la que se encuentra el televisor se
encuentra vacía. Para ello se emplea un sensor PIR de detección de
movimiento. Este último trabajo no permite la interacción con el dispositivo en
tiempo real a petición de su usuario.

En [7] también se implementa un hardware de propósito general para


interaccionar con dispositivos de infrarrojos. En este, caso como elemento
diferenciador se ha empleado el protocolo ZigBee para relacionarse con el
dispositivo que puede ser gestionado desde un PC u otro sistema donde puede
desarrollarse una aplicación de control que emplee este protocolo de
comunicaciones.

8.3 Descripción de los componentes del sistema


En lo relativo a los componentes hardware, el sistema de la Infrabola está
compuesto por la propia Infrabola y por un ordenador o tablet. El ordenador
o la tablet contiene el software de interacción con el usuario y el módulo de
configuración, y la Infrabola contiene el hardware comunicaciones, que

407
Descripción de los componentes del sistema

permitirá comunicarse con la tablet o el ordenador para recibir los comandos


que debe enviar a los dispositivos. También dispondrá de los dispositivos para
recepción y emisión de comandos mediante luz infrarroja para interactuar
directamente con los electrodomésticos. De modo optativo, podrá poseer una
interface de comunicación con el sistema domótico Hauria (mediante radio-
frecuencia). En el modo normal de funcionamiento, el usuario dicta el
comando que será procesado por el motor de reconocimiento de voz de la
tablet, y una vez transformado a texto será procesado y convertido en un
paquete de instrucciones que se enviará a la Infrabola mediante bluetooth.
Finalmente la Infrabola recupera el comando recibido por bluetooth desde la
tablet y genera los pulsos infrarrojos codificados para que la televisión ejecute
la operación solicitada en cada caso.

Para la selección inicial de los comandos, puede emplearse tanto la voz como
la interacción con el mando virtual software.

Otra alternativa válida para comunicar comandos a la Infrabola sería el empleo


de la tecnología Wifi, de modo que se ampliaría su alcance y permitiría ser
operada empleando altavoces inteligentes como Google Now o Alexa, o
directamente desde el nodo central de Hauria mediante instrucciones dictadas
mediante la voz. Mediante Wifi, desde cualquier lugar de la casa con este tipo
de conectividad, podríamos seleccionar cualquier dispositivo que se encuentre
al alcance de alguna Infrabola instalada en la casa, independientemente de su
ubicación. Para la primera implantación piloto de la Infrabola se ha instalado
el hardware de la propia Infrabola enlazado con un tablet con Windows®
corriendo la aplicación de control de la Infrabola que será operada mediante
el sistema de control de sistemas Windows® denominado Xulia.

En la Figura 8.3.1 podemos ver los distintos componentes que forman el piloto.
En la imagen puede verse el usuario del sistema que se comunica por voz con
una tablet, y esta envía por radio un paquete con los comandos a la Infrabola,
que a su vez los convierte a comandos infrarrojos y los envía al televisor.

408
Anexo VIII. La Infrabola

Figura 8.3.1 Disposición en habitación real.

8.4 Funcionamiento del hardware


El hardware de la Infrabola posee todos los componentes necesarios para
controlar la mayoría de los dispositivos electrónicos con capacidad de recibir
comandos desde mandos de control por infrarrojos.

Figura 8.4.1 Vista interior.

En la Figura 8.4.1 se ve una Infrabola abierta. La caja está formada por una bola
dividida en dos partes. La parte superior está compuesta por una cúpula
transparente que permite el paso de las ondas de luz infrarroja. El modelo del
prototipo mostrado en la Figura 8.4.2 solo contiene un led emisor infrarrojo,
aunque la implementación de distribución contendrá un array de emisores que
le permitirán acceder a cualquier dispositivo o electrodoméstico que se
encuentra en cualquier punto de la habitación, dado que cubrirá los 360
grados.

409
Funcionamiento del hardware

Figura 8.4.2 Aspecto exterior.

La Infrabola presenta dos estados de funcionamiento diferenciados. Puede


operar en modo grabación de comandos o en modo reproducción.

Cuando opera en el modo de grabación, permite la configuración del


dispositivo, siendo capaz de leer y recuperar los códigos que forman un
comando de infrarrojos de uno de los protocolos reconocidos. En el caso de
que sea capaz de reconocer el protocolo de infrarrojos y el comando, sólo
necesitará grabar los códigos reconocidos junto con la información del
protocolo. La Infrabola es capaz de reconocer comandos de los 8 protocolos
de comunicación de mandos infrarrojos más populares. Para el
reconocimiento de comandos emplea la librería IRremote 58 [8] que soporta
los protocolos Denon/Sharp, JVC, LG/ LG2, NEC/Onkyo/Apple,
Panasonic/Kaseikyo, RC5, RC6, Samsung, Sony.

Para los casos más improbables de que no fuera posible identificar el protocolo
de comunicación con el dispositivo, la Infrabola tiene un modo de grabación
en modo RAW. En este modo se registran todas las transiciones de señal y los
tiempos entre cada transición. Con este modo es posible grabar cualquier
comando, independientemente de su complejidad o del protocolo empleado.
Este tipo de grabación empleará mucha más memoria. En modo reproducción
reproducirá todas las transiciones de señal con los retardos exactos entre
transiciones.

58 Fuente: https://github.com/Arduino-IRremote/Arduino-IRremote [Acceso: 8-may-2022]

410
Anexo VIII. La Infrabola

Para recuperar la información procedente de los mandos de control por


infrarrojos se empleará el sensor de lectura de luz infrarroja TSOP4838 59. La
reproducción de los comandos la realiza un simple led infrarrojo. Para mejorar
el rango de cobertura y el alcance, en su versión final, la Infrabola empleará un
array de leds infrarrojos con los que se cubrirá 360 grados con una sola
Infrabola, aunque en el prototipo presentado en este trabajo, se emplea un
solo led para no complicar las conexiones que son realizadas sobre una placa
de prototipado. En la Figura 8.4.3 pueden apreciarse las conexiones sobre la
placa de prototipos y los componentes mínimos que forman el hardware de la
Infrabola que se encuentran montados sobre un escudo en una placa Arduino
Uno.

Figura 8.4.3 Esquema en placa de prototipos sin array de leds emisores.

La Infrabola está diseñada para reconocer comandos de luz infrarroja sobre


una portadora de 38 KHz ya que el sensor empleado trabaja a esta frecuencia.
Esta es la frecuencia de portadora más estandarizada para este tipo de
comunicaciones.

Para comunicarse con el ordenador se emplea un dispositivo HC-05 60, siendo


el módulo de comunicaciones por bluetooth de menor coste disponible, y el
controlador central está compuesto por un Arduino Uno [9] con un
procesador ATmega 328 de 8 bits y 16 MHz de frecuencia de proceso. En un

59 Fuente: https://www.vishay.com/docs/82459/tsop48.pdf [1-mar-2022]


60 Fuente: https://www.gme.cz/data/attachments/dsh.772-148.1.pdf [Acceso: 1-mar-2022]

411
Software de control y configuración

futuro se incorporará un módulo Wifi ESP8266 61 que permitirá la conexión


con los nodos del sistema domótico Hauria. En la Figura 8.4.4 se muestran las
conexiones físicas de todos los componentes del prototipo junto con las
conexiones de alimentación.

Figura 8.4.4 Conexiones con un Arduino Uno.

La Infrabola contiene el hardware de lectura y reproducción de los comandos


de los mandos. Aunque en un futuro se pretende que sea controlada desde el
control central de Hauria o dispositivos inteligentes como los altavoces Google
Now o Alexa, hasta ese momento será necesario emplear una interface hombre-
máquina que permite enviar los comandos a la Infrabola. Con ese objetivo se
ha diseñado un software de control por voz que permite definir mandos
virtuales asociando funciones y comandos de voz a cada una de sus teclas, que
serán vinculadas a secuencias de comandos de luz infrarroja para controlar las
distintas acciones de los dispositivos. Para controlar este software de interacción
de la Infrabola podemos emplear el sistema de control denominado Xulia (ver
Anexo VII).

8.5 Software de control y configuración


La Infrabola está diseñada para ser empleada desde múltiples dispositivos, pero
la configuración inicial, la creación de mandos virtuales y la grabación de

61Fuente: https://components101.com/wireless/esp8266-pinout-configuration-features-datasheet
[Acceso: 1-mar-2022]

412
Anexo VIII. La Infrabola

comandos debe realizarse siempre desde su propio módulo software de


configuración y control. Este módulo permite la definición de varios mandos
virtuales. Con cada mando se permite la asociación de una imagen del propio
mando en la que se pueden configurar los espacios ocupados por cada uno de
los botones. Cada botón puede asociarse a uno o varios comandos infrarrojos
de alguno de los protocolos soportado y esa secuencia de comandos puede
estar asociada a un comando de voz, de forma que, mediante estos comandos
de voz totalmente configurables, el usuario puede ejecutar las funciones del
mando. Uno de los mandos está configurado como mando activo, este se
muestra en pantalla en el arranque de la aplicación como se muestra en la
Figura 8.5.1. Empleando el comando de voz asociado o el ratón, podremos
ejecutar los comandos asociados con cada uno de los botones del mando virtual
y este enviará los comandos adecuados a la Infrabola para que esta simule el
mando real enviando la señal infrarroja. En caso de que el usuario no pueda
hablar, pero tenga alguna forma de interactuar con una tablet u ordenador
para mover el ratón, también podrá emplear la Infrabola para controlar los
dispositivos. Ejemplo de este tipo de usuarios serán los pacientes de ELA
avanzada, que no pueden hablar, pero normalmente, hasta estadios muy
avanzados de la enfermedad pueden controlar un ratón con los ojos, de forma
que podrán controlar con este dispositivo el mando virtual, que a su vez
interactuará con la televisión, cadena musical u otros dispositivos que se
encuentren al alcance de la Infrabola. Dado que gran parte de los dispositivos
de uso común mediante mandos emisores de señales infrarrojas son emisores
de sonido. Esta señal sonora interfiere la capacidad de reconocimiento
correcto de los comandos dictados por voz por el propio usuario.

Para reducir al mínimo los falsos positivos en el reconocimiento de los


comandos, el motor de reconocimiento de voz se encuentra activado pero el
módulo de ejecución de comandos se encuentra desactivado
permanentemente, para proceder a su activación, el usuario emplea una
secuencia en dos pasos temporizada, empleando un comando de voz para
iniciar la secuencia, y una vez iniciada dispone de tres segundos para completar

413
Software de control y configuración

la secuencia de activación con el segundo comando de voz. En cuanto se activa


el motor de reconocimiento de voz, permanece activo durante el tiempo
máximo configurado escuchando los posibles comandos de voz.

Deben escogerse comandos de voz cuya dicción pueda efectuarse de modo muy
claro, debiendo tener una diferenciación fonética muy acusada entre ellos.

Figura 8.5.1 Interface de control y configuración

Adicionalmente, para controlar dispositivos sonoros, el propio comando de


activación puede tener asociados comandos del propio dispositivo para reducir
el volumen del sonido o desactivarlo totalmente, como ejemplo de comando
de activación en un televisor, lo más habitual es incluir un comando mute que
apaga la voz en el momento de la activación del sistema, o el comando que
reduce la voz a un nivel mínimo. Este sistema mejora en varios órdenes de
magnitud la capacidad del sistema para reconocer correctamente el resto de
comandos, reduciendo al mínimo el riesgo de falsos positivos debidos a las
interferencias sonoras del propio televisor.

De la misma forma, el comando de desactivación de la Infrabola, posee


asociados comandos de ejecución automática que en la mayoría de los casos
restablecerán el volumen del sonido del dispositivo.

414
Anexo VIII. La Infrabola

8.6 Conclusiones
El dispositivo ha sido probado en un salón, en donde se encontraba la mesa de
trabajo con el ordenador de nuestro usuario. Nuestro usuario piloto padece
tetraplejia y emplea de modo habitual el sistema Xulia para controlar su
ordenador que corre bajo el sistema operativo Windows®. En el ordenador se
ha instalado un dispositivo USB bluetooth y el sistema de control de la
Infrabola. La Infrabola se ha instalado a 2 metros de distancia de la mesa de
trabajo orientada hacia un televisor. En el despliegue inicial se han configurado
los comandos mute, subir canal, bajar canal, subir volumen, bajar volumen,
menú principal, navegación arriba, abajo, derecha e izquierda, enter, atrás,
encender y apagar.

Con estos comandos, nuestro usuario piloto ha podido emplear con total
libertad e independencia todas las funciones del televisor, incluidas las
aplicaciones Smart TV. Siendo capaz de cambiar el uso entre el ordenador y el
televisor de modo totalmente libre e independiente, sin recibir ningún tipo de
ayuda por terceras personas.

La percepción de uso del sistema ha sido muy satisfactoria, a pesar de que el


motor de reconocimiento de voz ha reconocido de forma errónea algunos
comandos, debido a las interferencias sonoras.

8.7 Trabajo futuro


Uno de las primeras limitaciones conocidas es su capacidad de emisión de luz
infrarroja, tanto en rango de cobertura como de alcance. Es necesario emplear
leds con mayor potencia y a su vez es necesario emplear un número mayor de
leds de forma que posibilite la cobertura de los 360 grados de una habitación
completa empleando una sola Infrabola.

En la versión actual se emplea la versión SAPI5 que presenta un desempeño


aceptable siempre que el comando de activación reduzca o anule el volumen
de ciertos dispositivos. Con presencia de ruido de fondo se multiplican los
falsos positivos. Es necesario analizar nuevos motores de reconocimiento e

415
Referencias bibliográficas

incluso evaluar el empleo de los servicios de reconocimiento de voz en los que


se basa el asistente de Windows® Cortana, que en este caso podría ser aplicable
siempre que la aplicación se mantenga en primer plano.

Aunque las librerías de soporte implementadas en el firmware de la Infrabola


están diseñadas para emplear el modo RAW de grabación de comandos, con el
que es posible grabar secuencias de comandos, aunque el protocolo no sea
reconocido por la librería IRremote, la primera versión del software de control
todavía no implementa esta funcionalidad, por lo que sería de gran utilidad
incorporarla.

Otro de los puntos de mejora está relacionado con el consumo del dispositivo.
Actualmente la Infrabola está diseñada para ser conectada a una toma de
electricidad, pero dado que el sistema estará la mayor parte del tiempo en
modo de espera, es posible emplear distintos modos de sueño para reducir al
mínimo su consumo. En este caso será posible alimentarlo con una batería
recargable, de forma que podrá situarse en cualquier lugar de una habitación
sin necesidad de disponer de una toma de electricidad próxima,
manteniéndose activo por meses con una sola carga.

En cuanto al apartado de comunicaciones, actualmente la Infrabola se conecta


con el módulo de control a través de bluetooth. De forma sencilla es posible
incorporar un módulo de comunicaciones por Wifi, lo que le permitirá
conectarse a la red Wifi de la casa siendo gestionado por cualquier dispositivo
que soporte este protocolo, independientemente del lugar de la casa en el que
se encuentre.

8.8 Referencias bibliográficas

[1] A. Losada González y M. Pérez Cota, «HAURIA. Unified accessible home:


Integral system of accessibility.,» de 12th Iberian Conference on Information
Systems and Technologies (CISTI), Lisboa, 2017.
https://doi.org/10.23919/CISTI.2017.7975705.
[2] C. Cherciu, C. I. Cherciu y D.-I. Nastac, «A portable device for
intercepting and retransmission of infrared modulated signals,» de 2015

416
Anexo VIII. La Infrabola

IEEE 21st International Symposium for Design and Technology in Electronic


Packaging (SIITME), 2015.
https://doi.org/10.1109/SIITME.2015.7342340.
[3] Jianjun Lv, Zhishu Li, Mingyi Mao, Qingfu Huang y Zhicheng Chen, «A
new USB home appliances based on PC and infrared remote control
protocol,» de 2010 International Conference on Computer and Communication
Technologies in Agriculture Engineering, 2010.
https://doi.org/10.1109/CCTAE.2010.5544444.
[4] A. Satapathy y D. P. Das, «A system for remote operation of devices:
Helpful for elderly and disabled people,» de 2013 International Conference
on Advanced Electronic Systems (ICAES), 2013.
https://doi.org/10.1109/ICAES.2013.6659429.
[5] K. Win y N. N. Win, «Design and Construction of Infrared Remote
Controller for Multiple Home Appliances,» International Journal of
Advances in Scientific Research and Engineering (ijasre), vol. 6, nº 5, pp. 82-87,
2020. https://doi.org/10.31695/IJASRE.2020.33807.
[6] B. Parsaoran, M. L. Taris, A. Patriannisa y M. T. Hutabarat, «Infrared
system for motion detection and universal control on TV system add-on,»
de 2017 International Symposium on Electronics and Smart Devices (ISESD),
2017. https://doi.org/10.1109/ISESD.2017.8253329.
[7] T. Adiono, S. F. Anindya, S. Fuada y M. Y. Fathany, «Developing of
General IrDa Remote to Wirelessly Control IR-based Home Appliances,»
de 2018 IEEE 7th Global Conference on Consumer Electronics (GCCE), 2018.
https://doi.org/10.1109/GCCE.2018.8574863.
[8] R. Khan, «IRremote,» [En línea]. Available:
https://github.com/Arduino-IRremote/Arduino-IRremote. [Último
acceso: 2022 2 22].
[9] «Arduino,» 2018. [En línea]. Available: https://www.arduino.cc/.
[Último acceso: 2022 2 22].

417
9 Anexo IX. ROMAI. Robot manipulador
inteligente. Estudio cinemático

9.1 Introducción
ROMAI son las siglas de RObot MAnipulador Inteligente y forma parte del
conjunto de módulos disponibles en el sistema HAURIA para la mejora de la
accesibilidad de personas tetrapléjicas. HAURIA pretende ofrecer libertad a su
usuario, libertad de movimiento, de comunicación, de presencia e interacción.
La mayoría de los módulos de HAURIA están pensados para interactuar con
dispositivos electrónicos, lo que incrementa las capacidades de interacción y
comunicación de sus usuarios, pero ninguno de ellos está diseñado para tocar
el mundo real. Una de las limitaciones más importantes de las personas que
padecen tetraplejia es su incapacidad de interactuar con objetos. Dado que no
pueden emplear sus miembros, no pueden ni coger ni manipular elementos
de la vida real. Estas personas, normalmente pasan la mayor parte de sus vidas
entre la silla de ruedas y su cama y desde estas ubicaciones, HAURIA tiene
soluciones para interactuar mediante un ordenador con el mundo digital y
para interactuar con aparatos electrónicos, pero con ROMAI se amplían estas
capacidades permitiendo la interacción con objetos reales cercanos. Una
acción tan común como poder beber de un vaso situado en la mesilla al lado
de la cama, para una persona con tetraplejia no es posible sin ayuda de su
cuidador. Con ROMAI se podrá interactuar con objetos que se encuentren en
el radio de acción del brazo robótico.

9.2 Trabajos relacionados


Otros trabajos como [2] también proponen distintos mecanismos para
posibilitar que una persona tetrapléjica pueda interactuar con su entorno, pero
en este caso los dispositivos son muy primitivos y requieren de cierta habilidad
mecánica de su usuario. En el año 98 en [4] ya se proponían brazos articulados
para ser empleados por personas con tetraplejia desde su silla de ruedas o
desde la mesa, pero siempre eran manejados con joystick. En [5] también se

419
Descripción del sistema

propone la incorporación de un brazo articulado similar a ROMAI en una silla


de ruedas, pero este estudio se centra en mejorar las capacidades de par de
servos económicos para mantener su coste en rangos económicos. Otros
trabajos se centran en los mecanismos de control como [7] donde se propone
un sistema de control mediante señales EMG donde resulta lenta la colocación
de los sensores, y en la misma línea, en trabajo como [8] se proponen interfaces
BCI para el control de los brazos articulados. También tenemos otros trabajos
como en [9] en donde encontramos un interface de interacción con brazos
robóticos diseñados para personas con discapacidades mediante la voz.

9.3 Descripción del sistema


Realmente el valor diferencial de ROMAI no se encuentra en ser capaz de
interactuar con objetos, dado que cualquier brazo mecánico podría realizar
esta tarea, la complejidad de esta función es la interface de control del brazo
con la que se transmitirán los comandos de interacción. Siempre hay que tener
en cuenta que su usuario no podrá controlar el brazo mecánico con sus manos
mediante un joystick, por lo que tendrá que emplear su voz, y resulta evidente
que lo deseable sería poder indicar la acción a realizar con el mínimo número
de palabras posible. Una simple acción como “coge el vaso que se encuentra
en la mesilla y acércamelo a mí boca” resulta muy complicada de llevar a cabo
por un ordenador. Primero tendría que ser capaz de entender el significado
de la frase. Hasta aquí se presenta una tarea de complejidad media, en la que
se podrían emplear las capacidades de interpretación del lenguaje natural
mediante la definición de patrones AIML (Artificial Intelligence Markup
Language) de XULIA (Xestión Unificada da Linguaxe con Intelixencia Artificial)
para llevar a cabo esta tarea. Si damos por hecho que el sistema entiende la
frase, en el siguiente paso debería ser capaz de identificar los elementos dentro
del espacio de trabajo, con lo que debería ser capaz de identificar el vaso, la
mesilla y la posición de la boca del usuario. Para localizar los objetos se podría
emplear una CNN como YOLO de forma similar al trabajo realizado en

420
Anexo IX. ROMAI. Robot manipulador inteligente. Estudio cinemático

[11][12][13], y a partir de este punto habría que definir y calcular la trayectoria


para que el brazo mecánico acercara la mano a los objetos.

En este punto, el sistema tendría que identificar de forma muy precisa la


morfología del objeto que tiene que coger calculando la mejor forma de atacar
la sujeción para que no se suelte y el grado de presión que puede realizar para
no dañarlo, y una vez cogido tendría que calcular de nuevo la trayectoria para
situarlo delante de la boca del usuario.

Esta solución sería una alternativa ideal que requeriría un sistema de cómputo
de tamaño medio junto con un sistema de visión estereoscópica para componer
una imagen 3D del objeto a sujetar. Todas estas tecnologías están en plena
investigación y todavía no se encuentran totalmente maduras.

Como una segunda alternativa válida para solucionar este problema se propone
el empleo de un dispositivo de marcaje de objetivos laser y un lidar de muy bajo
coste empleando el hardware TOF VL53LOX con una cámara.

Tanto la microcámara como el lidar estarían montados encima de la pinza del


brazo articulado. El usuario montará en su cabeza una cinta con un emisor
láser que se empleará para el marcaje de los objetos, o también podría tener el
láser instalado en una base con posibilidad de movimiento 3D que fuera
accionada mediante comandos de voz por Xulia. El esquema con los pasos a
seguir sería el siguiente:

1. El usuario activa el láser mediante un comando de voz


2. Una vez activado fija el láser encima del objeto que quiere sujetar e indica el
comando de fijación del objetivo
3. ROMAI tendrá una base de datos con objetos tipo, de forma que una vez
fijado, el usuario le indica el tipo de objeto que quiere que recoja, con lo
que ROMAI tiene información de fragilidad, contenido, tipo de sujeción,
posición y orientación.
4. El sistema debe dirigirse al punto fijado por el láser.
5. Una vez que se encuentre delante del punto, a una distancia de menos de 5
cm procederá al escaneo del objeto mediante el lidar.

421
Descripción del sistema

6. Una vez escaneado podrá comprobar los puntos más adecuados de sujeción,
con lo que podrá coger el objeto
7. En la última parte de la acción, moverá el objeto al lugar indicado, cuyas
coordenadas deben ser conocidas de antemano.

ROMAI es un brazo articulado con 4 articulaciones con una morfología similar


al mostrado en la Figura 9.1.1.

Figura 9.3.1 Simulación del brazo articulado[14].

Todas las articulaciones de ROMAI son de tipo rotacional. La base y las dos
siguientes de la cadena cinemática tienen un grado de libertad y la última, que
lleva anexo el efector final tiene dos grados de libertad.

Esta configuración es típica en los brazos articulados, siendo posible resolver


su cinemática inversa empleando la regla del coseno, con lo que simplifica
mucho la formulación.

422
Anexo IX. ROMAI. Robot manipulador inteligente. Estudio cinemático

Figura 9.3.2 Cadena cinemática y variables implicadas[14].

En [14] se muestran las Ecuaciones (1) a (11) que permiten calcular el ángulo
del brazo, antebrazo y muñeca que resuelven la cadena cinemática mostrada
en la Figura 9.1.2 para una determinada posición del efector final en Xprima y
Yprima.

𝐴𝐴𝐴𝐴𝐴𝐴 = cos(𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶) · 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿ñ𝑒𝑒𝑒𝑒𝑒𝑒 (1)

𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 = 𝑋𝑋𝑋𝑋𝑋𝑋𝑋𝑋𝑋𝑋𝑋𝑋 − 𝐴𝐴𝐴𝐴𝐴𝐴 (2)

𝐴𝐴𝐴𝐴𝐴𝐴 = 𝑌𝑌𝑌𝑌𝑌𝑌𝑌𝑌𝑌𝑌𝑌𝑌 − 𝐴𝐴𝐴𝐴𝐴𝐴 − 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 (3)

𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 = 𝑌𝑌𝑌𝑌𝑌𝑌𝑌𝑌𝑌𝑌𝑌𝑌 − 𝐴𝐴𝐴𝐴𝐴𝐴 − 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 (4)

𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 = �𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿2 + 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿2 (5)

𝐴𝐴𝐴𝐴𝐴𝐴𝑎𝑎 = tan−1 (𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿, 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿) (6)

𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 2 − 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 2 + 𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻2 (7)


𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵 = cos −1 � �
2 · 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 · 𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻

𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 + 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵 (8)

𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵 2 + 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 2 − 𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻2 (9)


𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 = cos −1 � �
2 · 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 · 𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻

𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = −(180 − 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺) (10)

𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴ñ𝑒𝑒𝑒𝑒𝑒𝑒 = 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 − 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 (11)

423
Referencias

9.4 Referencias

[1] O. Rafaa y P. Alain, «An Algorithm for the Accessibility Assessment of


Object Manipulation for a Disabled Person with or without Wheelchair,»
de International Workshop on “Networked embedded and control system
technologies: European and Russian R&D cooperation”, 2009.
[2] V. Kumar, T. Rahman y V. Krovi, «Assistive devices for people with motor
disabilities,» Wiley Encyclopedia of Electrical and Electronics Engineering, 1997.
[3] R. C. Simpson, E. F. LoPresti y R. A. Cooper, «How many people would
benefit from a smart wheelchair?,» Journal of Rehabilitation Research &
Development, nº 1, 2008.
[4] J. Amat, A. T. de Almeida y O. Khatib, «Intelligent wheelchairs and
assistant robots,» de Autonomous Robotic Systems, London, 1998.
https://doi.org/10.1007/BFb0030807.
[5] J. Clouâtre, C. Doyon, J. Bouffard y A. Campeau-Lecours, Preliminary
Development of SIARA (Six-DoF Assistive Robotic Arm), Centre for
Interdisciplinary Research in Rehabilitation.
[6] K.-H. Park, Z. Bien, J.-J. Lee, B. K. Kim, J.-T. Lim, J.-O. Kim, H. Lee, D. H.
Stefanov, D.-J. Kim y J.-W. Jung, «Robotic smart house to assist people
with movement disabilities,» Autonomous Robots, vol. 22, nº 2, p. 183–198,
2007.
[7] Y.-H. Tarng, G.-C. Chang, J.-S. Lai y T.-S. Kuo, «Design of the
human/computer interface for human with disability using myoelectric
signal control,» de Proceedings of the 19th Annual International Conference of
the IEEE Engineering in Medicine and Biology Society.'Magnificent Milestones
and Emerging Opportunities in Medical Engineering'(Cat. No. 97CH36136),
1997.
[8] O. A. Rușanu, «The Development of a Brain-Computer Interface for
Controlling a Robotic Arm and a Mobile Device by Using the Voluntary
Eye Blinking», en 2021 International Conference on e-Health and
Bioengineering (EHB), nov. 2021, pp. 1-4. doi:
10.1109/EHB52898.2021.9657549.
[9] I. Paul, S. Ghosh, y A. Konar, «Voice Command Decoding for Position
Control of Jaco Robot Arm using a Type-2 Fuzzy Classifier», en 2020 IEEE
International Conference on Electronics, Computing and
Communication Technologies (CONECCT), jul. 2020, pp. 1-6. doi:
10.1109/CONECCT50063.2020.9198684
[10] A. Jardón, A. Giménez, R. Correal, S. Martinez y C. Balaguers, «Asibot:
Robot portátil de asistencia a discapacitados. concepto, arquitectura de
control y evaluación clínica,» Revista Iberoamericana de Automática e

424
Anexo IX. ROMAI. Robot manipulador inteligente. Estudio cinemático

Informática Industrial RIAI, vol. 5, nº 2, pp. 48-59, 2008.


https://doi.org/10.1016/S1697-7912(08)70144-4.
[11] J.-Y. Yang, U.-K. Chen, K.-C. Chang, y Y.-J. Chen, «A Novel Robotic Grasp
Detection Technique by Integrating YOLO and Grasp Detection Deep
Neural Networks», en 2020 International Conference on Advanced
Robotics and Intelligent Systems (ARIS), ago. 2020, pp. 1-4. doi:
10.1109/ARIS50834.2020.9205791.
[12] S. Zhang, Z. Guo, J. Huang, W. Ren, y L. Xia, «Robotic Grasping Position
of Irregular Object Based Yolo Algorithm», en 2020 5th International
Conference on Automation, Control and Robotics Engineering
(CACRE), sep. 2020, pp. 642-646. doi:
10.1109/CACRE50138.2020.9229933.
[13] R. K. Megalingam, R. V. Rohith Raj, T. Akhil, A. Masetti, G. N. Chowdary,
y V. S. Naick, «Integration of Vision based Robot Manipulation using ROS
for Assistive Applications», en 2020 Second International Conference on
Inventive Research in Computing Applications (ICIRCA), jul. 2020, pp.
163-169. doi: 10.1109/ICIRCA48905.2020.9183013.
[14] «Robótica. Cinemática inversa» 2022. [En línea]. Available:
https://sites.google.com/site/proyectosroboticos/cinematica-inversa-
iii. [Último acceso: 2022 4 19].

425
Referencias

426

También podría gustarte