LosadaGonzalez Antonio TD 2022
LosadaGonzalez Antonio TD 2022
LosadaGonzalez Antonio TD 2022
TESE DE DOUTORAMENTO
Ano 2022
i
Escola Internacional de Doutoramento
ii
“No envíes a un humano para hacer el trabajo de una máquina”
Matrix
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.
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.
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
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
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 IX. ROMAI. Robot manipulador inteligente. Estudio cinemático .... 419
x
Índice de Tablas
Tabla 5.7.1. Consumo de los modos de sueño del chip Atmega328. ............. 138
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
xi
Índice de Figuras
Figura 3.5.4 Reloj con batería para usar con microcontroladores. .................. 44
xii
Figura 3.5.8 Sensor de temperatura de objetos por infrarrojos. ...................... 46
xiii
Figura 4.2.4. Área de una baliza con emisión perpendicular al suelo. ............ 88
Figura 5.3.4. Volumen cubierto por el cono de emisión de una baliza. ........ 118
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
xiv
Figura 5.6.1. Imagen de un sensor de distancia SRF-H04. ............................. 127
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.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.13. Error según los grados de desviación en la orientación. ........ 163
Figura 5.11.2 Apertura del cono de radiación de los transductores. ............. 170
Figura 5.11.4 Formulación para el cálculo del punto P11. ............................. 172
Figura 5.11.8 Cálculo del ángulo contra el origen de coordenadas. ............. 176
Figura 6.2.2. Mitad del anillo de emisores de ultrasonidos y su soporte. ...... 183
Figura 6.3.1. Vista posterior de RODI con los encoder y servos..................... 189
xvi
Figura 6.3.5. Fluctuación con Kp alto. ............................................................. 194
Figura 7.3.8. Detalle de la situación de las piezas en el brazo real. ................ 208
Figura 7.4.1 Pantalla de control del software de gestión de DANI. ............... 214
xvii
Figura 7.6.5 Identificación de obstáculos ........................................................ 225
Figura 7.6.9 Ajuste de posición para enlace con la trayectoria. ..................... 229
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.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
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.
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.
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
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].
5
Contexto y evolución de la investigación
6
Introducción
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
8
Introducción
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
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
10
Introducción
InfraBola
11
Estructura de la memoria
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.
12
Introducción
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.
13
Estructura de la memoria
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.
14
Introducción
15
Estructura de la memoria
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.
17
Evolución de los sistemas de localizació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.
18
Los sistemas de localización
19
Evolución de los sistemas de localización
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
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.
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.
23
Clasificación de los sistemas de localización en interiores
Figura 2.3.1. Distribución mínima de balizas por habitación (en rojo) para localización 2D en interiores.
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
Tipo de sincronismo
Precisión
25
Clasificación de los sistemas de localización en interiores
26
Los sistemas de localización
Las señales (emitidas y recibidas) pueden estar codificadas en (i) banda base,
también conocida como banda estrecha, o (ii) banda ancha.
27
Clasificación de los sistemas de localización en interiores
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.
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.
29
Resumen del capítulo
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 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.
33
Introducción
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
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.
10 https://www.stellantis.com/
35
Clasificación de tareas y campos de aplicación
Campos de aplicación
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.
36
Robots de servicio
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
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.
38
Robots de servicio
39
Robótica cognitiva e interacción social
40
Robots de servicio
41
Componentes de un robot de servicio
Variables
Algoritmo
de Actuadores Proceso real Salida
entrada de control
Sensores
Sensores
42
Robots de servicio
43
Componentes de un robot de servicio
• 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
45
Componentes de un robot de servicio
• 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
47
Componentes de un robot de servicio
48
Robots de servicio
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.
50
Robots de servicio
poder procesar los más de 600 mapas de 360 grados que se generan por
segundo.
12 https://www.xbox.com/
51
Componentes de un robot de servicio
52
Robots de servicio
Actuadores
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.
• 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.
54
Robots de servicio
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
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 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
• 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.
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
58
Robots de servicio
59
Componentes de un robot de servicio
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)
𝑑𝑑
y
𝑡𝑡
1
𝑦𝑦(𝑡𝑡) = 𝑦𝑦(0) + � �𝑆𝑆̇ 𝑅𝑅 (𝑡𝑡) + 𝑆𝑆̇ 𝐿𝐿 (𝑡𝑡)� sin(𝜃𝜃(𝑡𝑡)) 𝑑𝑑𝑑𝑑 (3.13)
2
0
61
Competiciones de robots de servicios
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.
17 https://www.robocup.org/
18 https://www.softbankrobotics.com/emea/es/nao
62
Robots de servicio
63
Resumen del capítulo
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.
65
Resumen del capítulo
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.
67
Análisis de señales a emplear para localización en interiores
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.
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
Láser RFID
Infrarrojos
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
71
Análisis de señales a emplear para localización en interiores
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
73
Análisis de señales a emplear para localización en interiores
Reconocimiento de patrones
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.
Visión artificial
75
Análisis de señales a emplear para localización en interiores
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.
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
19 Accesible en https://www.generationrobots.com/
77
Análisis de señales a emplear para localización en interiores
78
Sistemas de localización en interiores: estado del arte y elección tecnológica
Luz infrarroja
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.
80
Sistemas de localización en interiores: estado del arte y elección tecnológica
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
82
Sistemas de localización en interiores: estado del arte y elección tecnológica
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.
84
Sistemas de localización en interiores: estado del arte y elección tecnológica
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.
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.
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.
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
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
90
Sistemas de localización en interiores: estado del arte y elección tecnológica
Tipos de referencia
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
92
Sistemas de localización en interiores: estado del arte y elección tecnológica
93
Sistemas de localización de alta precisión con 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.
94
Sistemas de localización en interiores: estado del arte y elección tecnológica
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.
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
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
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
Sistemas de sincronización
98
Sistemas de localización en interiores: estado del arte y elección tecnológica
99
Sistemas de localización de alta precisión con ultrasonidos
• Sincronización puntual
𝑑𝑑 𝑣𝑣𝑠𝑠
𝑑𝑑 = 𝑣𝑣𝑠𝑠 (𝑡𝑡𝑠𝑠 + 𝑡𝑡𝑐𝑐 ) = 𝑣𝑣𝑠𝑠 �𝑡𝑡𝑠𝑠 + � = 𝑣𝑣𝑠𝑠 𝑡𝑡𝑠𝑠 + 𝑑𝑑 (4.1)
𝑐𝑐 𝑐𝑐
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
Cálculo de la posición
• 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.
101
Sistemas de localización de alta precisión con ultrasonidos
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
102
Sistemas de localización en interiores: estado del arte y elección tecnológica
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
Cricket
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.
Hemanite
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).
3D-LOCUS
106
Sistemas de localización en interiores: estado del arte y elección tecnológica
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.
Dolphin
107
Sistemas de localización en interiores más representativos
108
Sistemas de localización en interiores: estado del arte y elección tecnológica
LOSNUS
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.
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
110
Sistemas de localización en interiores: estado del arte y elección tecnológica
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
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.
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
113
Función de cada elemento
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
115
Descripción de las balizas
116
SAPPO. Sistema de Alta Precisión de POsicionamiento
𝑏𝑏
𝛽𝛽 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
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.
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
Área de
cobertura
Baliza
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.
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
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
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.
122
SAPPO. Sistema de Alta Precisión de POsicionamiento
Figura 5.3.9 Área de localización con balizas con arrays de transductores instaladas paralelas al suelo.
123
Descripción de las balizas
Baliza 2 Baliza 1
Perímetro
Área útil de de la
localización habitación
de objetos
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.
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.
125
Descripción del hardware
126
SAPPO. Sistema de Alta Precisión de POsicionamiento
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 €.
128
SAPPO. Sistema de Alta Precisión de POsicionamiento
129
Descripción del hardware
130
SAPPO. Sistema de Alta Precisión de POsicionamiento
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).
131
Composición de las balizas
Array Placa de
Receptor RF
Transductores control
433MHz
HC-SR04 atmega328
132
SAPPO. Sistema de Alta Precisión de POsicionamiento
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
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.
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
ATMega3
28
Regulador
de 5V a 3,3V
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
136
SAPPO. Sistema de Alta Precisión de POsicionamiento
Entrada de
Micro voltaje de
ATMega3 baterías
28
Módulo
nRF2401
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.5. Modificación del algoritmo base para adaptarlo a las balizas de bajo
consumo
138
SAPPO. Sistema de Alta Precisión de POsicionamiento
139
Algoritmo de obtención de medidas concurrentes
140
SAPPO. Sistema de Alta Precisión de POsicionamiento
141
Algoritmo de obtención de medidas concurrentes
142
SAPPO. Sistema de Alta Precisión de POsicionamiento
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.
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.
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.
144
SAPPO. Sistema de Alta Precisión de POsicionamiento
Aceptación de servicio
145
Algoritmo de obtención de medidas concurrentes
Finalización de servicio
Sincronización de medida
146
SAPPO. Sistema de Alta Precisión de POsicionamiento
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.
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.
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.
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.
149
Algoritmo de obtención de medidas concurrentes
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)
𝑟𝑟12 − 𝑟𝑟22 + 𝑑𝑑 2
𝑥𝑥 = (5.7)
2𝑑𝑑
(𝑟𝑟21 − 𝑟𝑟22 + 𝑑𝑑 2 )2
𝑦𝑦 2 + 𝑧𝑧 2 = 𝑟𝑟12 − (5.8)
4𝑑𝑑 2
𝑧𝑧 = �𝑟𝑟12 − 𝑥𝑥 2 − 𝑦𝑦 2 (5.10)
151
Algoritmo de obtención de medidas concurrentes
𝑎𝑎2 = 𝑏𝑏 2 + 𝑐𝑐 2 (5.11)
siendo,
152
SAPPO. Sistema de Alta Precisión de POsicionamiento
(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.
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.
154
SAPPO. Sistema de Alta Precisión de POsicionamiento
𝑙𝑙 2 (5.20)
� 2
𝑎𝑎 = 𝑟𝑟 − � �
2
𝑙𝑙
𝑟𝑟 = � � (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.
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.
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
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
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.
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.
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.
160
SAPPO. Sistema de Alta Precisión de POsicionamiento
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.
162
SAPPO. Sistema de Alta Precisión de POsicionamiento
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.
163
Filtrado de señales
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
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.
164
SAPPO. Sistema de Alta Precisión de POsicionamiento
165
Filtrado de señales
∑𝑛𝑛𝑖𝑖=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.
𝑌𝑌(0), 𝑘𝑘 = 0
𝑆𝑆(𝑘𝑘) = � (5.27)
𝛼𝛼𝛼𝛼(𝑘𝑘) + (1 − 𝛼𝛼)𝑆𝑆(𝑘𝑘 − 1), 𝑘𝑘 > 0
166
SAPPO. Sistema de Alta Precisión de POsicionamiento
𝑃𝑃𝑛𝑛,𝑛𝑛−1
𝐾𝐾𝑛𝑛 = (5.30)
𝑃𝑃𝑛𝑛,𝑛𝑛−1 − 𝑟𝑟𝑛𝑛
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).
168
SAPPO. Sistema de Alta Precisión de POsicionamiento
169
Estimación de la orientación
170
SAPPO. Sistema de Alta Precisión de POsicionamiento
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.
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
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
a2 = 𝑏𝑏 2 + 𝑐𝑐 2 ⇒ 𝑏𝑏 = �𝑎𝑎2 − 𝑐𝑐 2 (5.35)
172
SAPPO. Sistema de Alta Precisión de POsicionamiento
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.
2 (5.37)
𝐵𝐵 2 − 𝐶𝐶 ′ − 𝐴𝐴′2
𝑤𝑤3 = cos −1 � �
2𝐶𝐶 ′ 𝐴𝐴′
173
Estimación de la orientación
𝐻𝐻 = �𝐴𝐴′2 − 𝐵𝐵 2 (5.38)
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.
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
174
SAPPO. Sistema de Alta Precisión de POsicionamiento
𝑚𝑚1 − 𝑚𝑚2
𝑤𝑤2 = tan−1 � � (5.42)
1 + 𝑚𝑚1 · 𝑚𝑚2
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
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.
176
SAPPO. Sistema de Alta Precisión de POsicionamiento
𝐵𝐵 2 − 𝐴𝐴2 − 𝐶𝐶 2
𝑤𝑤 = cos −1 �− � (5.45)
2 · 𝐴𝐴 · 𝐶𝐶
177
Resumen del capítulo
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.
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.
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
Motores y reductoras
182
RODI. Robot de servicio para investigación y pruebas de SAPPO
183
Componentes e imágenes
Sensores odométricos
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
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.
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
Placa de control
Hardware y placas
Alimentación Entrada
sensores de Interface de conexión con alimentación
ultrasonidos Arduino mega 256 de la placa
186
RODI. Robot de servicio para investigación y pruebas de SAPPO
Ubicación de componentes
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
187
Sistema de locomoción
Para RODI se han evaluado distintas alternativas para su tren motriz que serán
evaluadas en los siguientes apartados.
188
RODI. Robot de servicio para investigación y pruebas de SAPPO
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.
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
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.
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.
190
RODI. Robot de servicio para investigación y pruebas de SAPPO
𝑑𝑑𝑑𝑑(𝑡𝑡)
𝑢𝑢(𝑡𝑡) = 𝐾𝐾𝑝𝑝 𝑒𝑒(𝑡𝑡) + 𝐾𝐾𝑖𝑖 � 𝑒𝑒(𝑡𝑡)𝑑𝑑𝑑𝑑 + 𝐾𝐾𝑑𝑑 (6.1)
𝑑𝑑𝑑𝑑
191
Sistema de locomoción
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.
• Acción proporcional
193
Sistema de locomoción
• Acción derivativa
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.
• 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).
195
Sistema de locomoción
Descripción cinemática
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:
𝑦𝑦 = 𝑣𝑣(𝑡𝑡)𝑠𝑠𝑠𝑠𝑠𝑠(𝜃𝜃(𝑡𝑡)) (6.6)
𝐷𝐷𝑟𝑟 + 𝐷𝐷𝑙𝑙
𝜃𝜃 = (6.12)
2
197
Resumen del capítulo
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
Funcionalidades
200
DANI. Robot de servicio de exploración y telepresencia
201
Estructura, componentes y composición modular
202
DANI. Robot de servicio de exploración y telepresencia
Descomposición modular
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
Sistema de alimentación
203
Estructura, componentes y composición modular
204
DANI. Robot de servicio de exploración y telepresencia
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
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
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
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
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
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.
209
Estructura, componentes y composición modular
Servo de
dirección
Sensor de
odometría
Motor
Patrón de
detección
Sensor
infrarrojo
210
DANI. Robot de servicio de exploración y telepresencia
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
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)
∆𝜃𝜃 = (∆𝑆𝑆𝑅𝑅 − ∆𝑆𝑆𝐿𝐿 )
𝑑𝑑
212
DANI. Robot de servicio de exploración y telepresencia
1
𝑠𝑠(𝑡𝑡) = (𝑆𝑆𝑅𝑅 (𝑡𝑡) − 𝑆𝑆𝐿𝐿 (𝑡𝑡)) (7.3)
2
1
𝜃𝜃(𝑡𝑡) = 𝜃𝜃(0) + (𝑆𝑆𝑅𝑅 (𝑡𝑡) − 𝑆𝑆𝐿𝐿 (𝑡𝑡)) (7.4)
𝑑𝑑
y
𝑡𝑡
1
𝑦𝑦(𝑡𝑡) = 𝑦𝑦(0) + � �𝑆𝑆̇ 𝑅𝑅 (𝑡𝑡) + 𝑆𝑆̇ 𝐿𝐿 (𝑡𝑡)� sin(𝜃𝜃(𝑡𝑡)) 𝑑𝑑𝑑𝑑 (7.6)
2
0
213
Software de control
214
DANI. Robot de servicio de exploración y telepresencia
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.
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 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
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 21. En esta zona se permiten seleccionar las cámaras del robot.
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®.
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.
Reconocimiento de voz
218
DANI. Robot de servicio de exploración y telepresencia
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.
220
DANI. Robot de servicio de exploración y telepresencia
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.
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.
222
DANI. Robot de servicio de exploración y telepresencia
• Carga de mapas
223
Sistema de navegación
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
• 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.
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
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.
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
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.
228
DANI. Robot de servicio de exploración y telepresencia
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.
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.
230
8.1 Introducción
8
8 Resultados obtenidos
231
Diseño de las pruebas y entorno de ejecución
Marco experimental
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
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.
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
234
Resultados obtenidos
235
Evaluación estática
Entorno de ejecución
236
Resultados obtenidos
Medidas independientes
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
237
Evaluación estática
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
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
239
Evaluación estática
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
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
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.
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
Datos estadísticos
Media 79,707
Error típico 0,228
Mediana 80,190
Moda 80,180
242
Resultados obtenidos
Filtro de Kalman
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
243
Evaluación estática
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
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
Figura 8.3.9 Comparativa de comportamiento de los filtros media móvil, EMA y Kalman.
244
Resultados obtenidos
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
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
245
Evaluación estática
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.
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
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
248
Resultados obtenidos
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
249
Resultados obtenidos en otros módulos de HAURIA
DANI
30 https://youtu.be/j53HTfqsK6c
31 https://youtu.be/HWQ2XHRMnDs
32 https://youtu.be/hhheBr_1gpM
250
Resultados obtenidos
251
Resultados obtenidos en otros módulos de HAURIA
XULIA
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
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
ROMAI
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
255
Resumen del capítulo
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.
256
Resultados obtenidos
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.
259
Evolución y mejoras en SAPPO
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
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.
261
Evolución y mejoras en SAPPO
Navegación a ciegas
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.
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.
263
Trabajo futuro en otros módulos de HAURIA
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.
Evolución de DANI
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.
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.
Evolución de XULIA
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.
267
Trabajo futuro en otros módulos 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
268
Conclusiones y trabajo futuro
269
10 Referencias
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
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
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
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
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
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
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
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
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.
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
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
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.
295
Dispositivos
SRF02
296
Anexo II. Tipos y propiedades de los transceptores de ultrasonidos
• Comunicaciones
• Modos de conexión
297
Dispositivos
SRF04 o HC-SR04
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.
299
Dispositivos
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
300
Anexo II. Tipos y propiedades de los transceptores de ultrasonidos
• Comunicaciones
• Registros
301
Dispositivos
• 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.
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
• Modificación de ganancia
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.
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
• Limitaciones y características
304
Anexo II. Tipos y propiedades de los transceptores de ultrasonidos
• Comunicación
• 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
305
Dispositivos
• 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
306
Anexo II. Tipos y propiedades de los transceptores de ultrasonidos
SRF485
307
Dispositivos
• Comunicación RS485
Datos: son los datos que desea enviar al módulo, cero (0x00) si el comando no
requiere nada.
• 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.
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
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
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
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.
313
Precisión de medidas estáticas
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
315
Precisión de medidas estáticas
316
Anexo III. Cálculo de precisión entre dos transductores en SAPPO
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
317
Precisión de medidas estáticas
318
Anexo III. Cálculo de precisión entre dos transductores en SAPPO
3340
valor medido en microsegundos
3330
3320
3310
3300
3290
3280
3270
1 5 9 13172125293337414549535761656973778185899397
Muestras de las lecturas
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
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.
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.
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
322
Anexo III. Cálculo de precisión entre dos transductores en SAPPO
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
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
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.
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
324
Anexo III. Cálculo de precisión entre dos transductores en SAPPO
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.
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
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
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.
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.
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
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
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).
331
Resolución trigonométrica
𝑐𝑐 𝑐𝑐
sin(𝜃𝜃) = => 𝜃𝜃 = arcsin � � = 75,42º (3)
𝑎𝑎 𝑎𝑎
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.
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.
𝑐𝑐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
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
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
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].
335
Generación del entorno de simulación
336
Anexo V. Simulación de navegación de un robot diferencial con CoppeliaSim
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.
337
Algoritmo de seguimiento de trayectoria
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
𝑑𝑑𝑑𝑑(𝑡𝑡)
𝑢𝑢(𝑡𝑡) = 𝐾𝐾𝑝𝑝 𝑒𝑒(𝑡𝑡) + 𝐾𝐾𝑖𝑖 � 𝑒𝑒(𝑡𝑡)𝑑𝑑𝑑𝑑 + 𝐾𝐾𝑑𝑑 (1)
𝑑𝑑𝑑𝑑
339
Objetivos de la simulación
5.5 Referencias
49 https://www.youtube.com/watch?v=wlCQpnYj15k
340
Anexo V. Simulación de navegación de un robot diferencial con CoppeliaSim
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
• Métodos geométricos
• A partir de las matrices de transformación homogénea
• Por desacoplamiento cinemático
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
345
Desarrollo del algoritmo
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.
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.
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.
347
Desarrollo del algoritmo
348
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio
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.
349
Desarrollo del algoritmo
• Posición inicial
350
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio
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.
351
Desarrollo del algoritmo
• 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).
352
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio
353
Desarrollo del algoritmo
• Desplazamiento lateral
354
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio
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).
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
357
Desarrollo del algoritmo
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.
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
359
Desarrollo del algoritmo
simSetJointTargetPosition(join_cadera_izq_lateral, valor);
simSetJointTargetPosition(join_cadera_der_lateral, valor);
simSetJointTargetPosition(join_pie_izq_lateral, -valor);
simSetJointTargetPosition(join_pie_der_lateral, -valor);
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
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.
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
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.
362
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio
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
364
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio
365
Desarrollo del algoritmo
Referencias bibliográficas
366
Anexo VI. Simulación y estudio cinemático de la caminata bípeda en robots de servicio
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.
369
Introducción
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.
370
Anexo VII. XULIA
371
Descripción general de Xulia como sistema de accesibilidad
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
373
Descripción general de Xulia como sistema de accesibilidad
374
Anexo VII. XULIA
375
Descripción general de Xulia como sistema de accesibilidad
376
Anexo VII. XULIA
permanente intentando reconocer audio, sino que solo esté activo cuando
se encuentre activa la funcionalidad de reconocimiento continuo de voz.
377
Descripción general de Xulia como sistema de accesibilidad
378
Anexo VII. XULIA
379
Técnicas de gestión de la transcripción de audio a texto
380
Anexo VII. XULIA
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
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
382
Anexo VII. XULIA
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
383
Técnicas de gestión de la transcripción de audio a texto
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
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.
Modos de operación
• Modo comando.
• Modo conversación.
• Modo dictado continuo Google.
• Modo dictado continuo Windows.
• Modo rejilla.
• Modo corrección.
• Modo deletrear.
Modo comando
385
Técnicas de gestión de la transcripción de audio a texto
Modo conversación
386
Anexo VII. XULIA
387
Versiones de las librerías de reconocimiento de voz empleadas en XULIA
Modo corrección
Figura 7.3.1. Imagen de la ventana de corrección con todas las palabras de la frase numeradas.
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.
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.
390
Anexo VII. XULIA
Microsoft
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
391
Motores de reconocimiento de voz de alto rendimiento multilenguaje
Microsoft Cloud
392
Anexo VII. XULIA
Nuance
Google Cloud
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%.
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
IBM
394
Anexo VII. XULIA
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.
El software necesita Python 2.7 y Git Large File Storage (una extensión de Git
para crear versiones de archivos grandes).
Julius
395
Motores de reconocimiento de voz de alto rendimiento multilenguaje
Kaldi
Philips SpeechLive
396
Anexo VII. XULIA
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
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.
Braina
398
Anexo VII. XULIA
VozComando
Voice Finger
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.
399
Asistentes personales
Cortana
Google Assistant
400
Anexo VII. XULIA
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.
7.8 Referencias
401
Referencias
402
Anexo VII. XULIA
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
406
Anexo VIII. La Infrabola
407
Descripción de los componentes del sistema
Para la selección inicial de los comandos, puede emplearse tanto la voz como
la interacción con el mando virtual software.
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
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
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.
410
Anexo VIII. La Infrabola
411
Software de control y configuración
61Fuente: https://components101.com/wireless/esp8266-pinout-configuration-features-datasheet
[Acceso: 1-mar-2022]
412
Anexo VIII. La Infrabola
413
Software de control y configuración
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.
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.
415
Referencias bibliográficas
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.
416
Anexo VIII. La Infrabola
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.
419
Descripción del sistema
420
Anexo IX. ROMAI. Robot manipulador inteligente. Estudio cinemático
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.
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.
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.
422
Anexo IX. ROMAI. Robot manipulador inteligente. Estudio cinemático
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.
423
Referencias
9.4 Referencias
424
Anexo IX. ROMAI. Robot manipulador inteligente. Estudio cinemático
425
Referencias
426