IMPLEMENTACIÓN DE UN CONTROL NO LINEAL PARA EL
SEGUIMIENTO ROBOT-HUMANO CON UN SENSOR 3D
J. A. Saldarriaga1, G. A. Acosta2, R. Carelli3, D. Herrera4
1Ingeniero en instrumentación y control. E-mail: Jaime_saldarriaga@elpoli.edu.co
2MSc En ingeniería informática. E-mail: gaacosta@elpoli.edu.co
3PhD en ingeniería eléctrica. E-mail: rcarelli@inaut.unsj.edu.ar
4Ingeniero electrónico y de control. E-mail: daniel.herrera.anda@gmail.com
2Politécnico Colombiano Jaime Isaza Cadavid. Medellín- Colombia.
3,4Instituto de automática (INAUT). Universidad Nacional de San Juan. San Juan - Argentina.
En la actualidad más personas adultas requieren de dispositivos mecatrónicos que faciliten y ayuden en sus actividades diarias. Los robots móviles se convirtieron en una buena alternativa debido a que actualmente la tecnología, permite que puedan reconocer y realizar el seguimiento de una persona. En este trabajo, se emplea la plataforma robótica Pionner 3-AT® y un sensor de profundidad Kinect® para realizar el seguimiento de una persona. Secuencias de imágenes de profundidad y un algoritmo de reconocimiento de esqueletos, suministrados por el Kinect®, permite conocer y estimar las coordenadas y velocidad de una persona, que al ser introducidas al control no lineal basado en linealización por realimentación, genera los comandos de velocidad lineal y angular que hacen que el robot mantenga una orientación y distancia deseadas a la persona. Finalmente, se presenta y discute los resultados obtenidos después de realizar la validación del algoritmo con una serie de pruebas experimentales.
Palabras clave: seguimiento de esqueletos, sensor kinect®, robot seguidor de un humano, control no-lineal.
Recibido: 24 de Noviembre de 2016. Aceptado: 28 de Diciembre de 2016
Received: November 24th, 2016. Accepted: December 28th, 2016
Implementation of a Non-Linear Control For Robot-Human Tracking with a 3D Sensor
At present more adult persons need of mechatronic devices that facilitate and help them in his daily activities. The mobile robots turned into a good alternative due to the fact that nowadays the technology has allowed that they can recognize and make the tracking of a person. In this work, is used the Robotics platform Pionner 3- AT® and a sensor of depth Kinect® to making the tracking of a person. Sequences of images of depth and an algorithm of recognition of skeletons, supplied by the Kinect®, it allows to know and to estimate the coordinates and speed of a person, that to be introduced to the non-linear control based on linearization by feedback, it generates the command of linear and angular speed that will made that the robot keep an orientation and distance wished to a person. Finally, we introduce and argue the results achieved after carry out the validation of the algorithm with a series of experimental tests.
Keywords: skeleton tracking, Kinect® sensor, human tracking robot, non-linear control.
Cómo citar este artículo: J. A. Saldarriaga et al, “Implementación de un control no lineal para el seguimiento
robot-humano con un sensor 3D” Revista Politécnica, vol. 12, no. 23, pp. 17-25, 2016.
Uno de los factores que más ha impulsado en años recientes el desarrollo de tecnologías de asistencia personal es el envejecimiento de la población mundial. En un estudio adelantado por Ortman, Velkoff y Hogan, se proyecta que para el 2050, los Estados Unidos experimentará un notable crecimiento de la población adulta con edades de 65 años y más, llegando a la cifra de 83.7 millones de personas [1]. En un reporte de naciones unidas, se estima también que en los próximos 15 años, el incremento de la población mundial con 60 años o más, será del 56%, pasando así de tener en 2015 901 millones de personas a 1.4 billones en 2030 [2].
El incremento del segmento de la población adulta a nivel global, plantea el reto de desarrollar dispositivos que puedan asistir este grupo poblacional. Una de las tecnologías más promisorias en el ámbito de la asistencia personal de adultos mayores es la robótica móvil [3]-[6], la cual, además de las funciones tradicionales de localización, mapeo y navegación, deberá incorporar funcionalidades adicionales de reconocimiento, seguimiento y monitoreo de humanos [7]. El seguimiento de un humano es una tarea que permitirá con la ayuda de otras funcionalidades y comportamientos, proporcionar condiciones de independencia y calidad de vida a las personas adultas que viven solas. Un robot seguidor puede incorporar medios y alternativas para apoyar la supervivencia y la seguridad de este grupo poblacional, generando en las personas la sensación de bienestar y compañerismo.
A continuación se relacionan algunos trabajos e investigaciones relativas al seguimiento de personas. Hoshino y Morioka, desarrollaron un robot provisto de un escáner láser y un sensor Kinect® que realiza la identificación y el seguimiento de un humano [8] e incluye, además, un mecanismo de selección del sensor a emplear. Cuando el humano se encuentra fuera del campo de visión del Kinect®, emplean el escáner láser junto con un algoritmo de filtro de partículas para la detección y seguimiento de piernas. Cuando se detecta un humano tanto con el láser como con el Kinect®, entonces, para una distancia menor de 500mm entre las coordenadas suministradas por ambos dispositivos se privilegia el Kinect® como fuente de información para llevar a cabo el seguimiento. La información de profundidad y su proyección sobre una imagen se usan para establecer las coordenadas de la persona a seguir. Wengefeld et al [9], proponen un robot para seguir y guiar pacientes durante programas de rehabilitación. Para lograr el objetivo, proponen un robot que combina las funcionalidades de seguimiento por proximidad espacial con el reconocimiento de usuarios basado en la apariencia. Doisy et al [10], desarrollaron dos algoritmos para el seguimiento de humanos usando las imágenes de profundidad del sensor Kinect®. El primero (path-following algorithm) reproduce el camino de un humano en el entorno, y el segundo, (adaptive algorithm), utiliza además, un escáner láser para identificar obstáculos y dinámicamente generar el camino del robot dentro de un entorno pre-mapeado. Xing et al [11], implementaron un robot móvil basado en Kinect® para realizar el seguimiento de humanos. Usaron la funcionalidad skeleton tracking para generar una ley de control basada en reglas que mantiene a la persona en el centro de la imagen y a una distancia fija del robot móvil. Chu et al [12], emplean un robot Arduino BOE-BOT® con sensores ultrasónicos para realizar el seguimiento de una persona adulta. Los autores emplean la información suministrada por el sistema de sensores ultrasónicos y mapas internos del sitio por donde navega el robot, para efectuar el seguimiento de la persona y simultáneamente realizar la evasión de obstáculos.
En este trabajo se propone un algoritmo de control no lineal basado en linealización por realimentación, con estimas de la velocidad del humano para realizar su seguimiento empleando únicamente un sensor Kinect®. El artículo se organiza de la siguiente manera, en la sección I, se presentan la introducción y un estado del arte relativo al seguimiento de humanos con robots móviles. En la sección II, se realiza la descripción de métodos, materiales y el algoritmo de control propuesto. En la sección III se describen las pruebas de validación junto con el análisis de resultados y finalmente, en la sección IV, se exponen las conclusiones del trabajo realizado y se plantean algunas líneas de trabajo futuro.
2. MATERIALES Y METODO
2.1 Sensor Kinect®
El sensor Kinect® (Fig.1) fue desarrollado por Microsoft® para la videoconsola XBOX 360®. Está compuesto por una cámara de profundidad, una cámara RGB, un arreglo de micrófonos y una base motorizada. El dispositivo permite el reconocimiento de gestos, comandos de voz y objetos 3D. La cámara RGB tiene una resolución de 640x480 píxeles, y la cámara de profundidad provee una resolución de 320x240 o 640x480 píxeles, ambas a una velocidad de 30 fps. El sensor tiene un campo de visión horizontal y vertical de 57 y 43 grados respectivamente y permite inclinaciones verticales de ± 27 grados con la base motorizada. El rango de profundidad del sensor va de 1,2 a 3,5 metros.
Fig. 1. Componentes de un sensor Kinect®.
Entre las ventajas que ofrece el uso del Kinect® se pueden mencionar su bajo costo con relación a otros dispositivos similares, el gran volumen de información disponible en internet sobre su uso y la disponibilidad de software para acceder a sus funcionalidades. Por ejemplo, Matlab® permite acceder y procesar la información de los dispositivos del Kinect® a través de su toolbox Image Acquisition. Esta toolbox, a través de la cámara de profundidad realiza el seguimiento de esqueletos humanos (skeletal tracking), permitiendo reconocer de manera simultánea hasta seis esqueletos y sus articulaciones. Por cada frame obtenida en este modo, se puede extraer la coordenadas X, Y, Z del esqueleto y sus articulaciones.
2.2 Robot Pionner 3-AT®
El pionner 3-AT® (Fig. 2) es un robot móvil de cuatro ruedas capaz de alcanzar velocidades máximas, lineal y rotacional, de 0.7m/s y 140º/s respectivamente. La plataforma incorpora un controlador de bajo nivel encargado de regular la velocidad lineal y angular. El intercambio de información con el robot se realiza a través de una conexión cliente-servidor, permitiendo la ransferencia de comandos y medidas de los sensores.
Fig. 2. Robot pionner 3-AT®.
2.3 Algoritmo de control
En un trabajo previo de Soria et al [13], se propone un control de seguimiento entre robots. El robot seguidor provisto con una cámara identifica un patrón de marcas cuadradas ubicado en la parte posterior del robot líder. Para el seguimiento de personas es preferible emplear el Kinect®, ya que incorpora algoritmos para la identificación de esqueletos y gestos humanos a través de una interfaz natural hombre-máquina.
En la Fig. 3 se muestra la posición relativa entre el robot y un humano que se mueve con velocidad vr y orientación θ desconocidas. La distancia d y el ángulo φ son determinados a partir de la información provista por el Kinect®. Desde Matlab® se puede acceder a la coordenadas correspondientes a la localización relativa del humano con respecto al Kinect®. Dado que el robot se mueve en un plano 2D y que la información provista por el sensor es 3D, se consideran solo las coordenadas X (desplazamiento lateral) y Z (profundidad).
Fig. 3. Posición relativa entre el robot seguidor y un objetivo humano.
A partir de las coordenadas (x, z) obtenidas, se hallan d y φ por medio de las ecuaciones 1 y 2.
d = √x2 + z2 (1)
φ = tan–1(— x) (2)
En la Fig. 4 se presenta el esquema de control propuesto para efectuar el seguimiento de un humano.
Fig.4. Esquema de control propuesto para el seguimiento robot-humano.
El objetivo del esquema de control consiste en mantener al robot a una distancia dୢ y un ángulo de orientación φୢ, detrás de un objetivo humano que se mueve con una velocidad y orientación desconocidas. Considerando e(t) el error entre la distancia deseada y la distancia medida, y φ(t) el error entre el ángulo deseado y el ángulo medido, los objetivos de control quedan determinados por las ecuaciones 3 y 4.
limt→œ e(t) = limt→œ(dd — d) = 0 (3)
limt→œ φ˜(t) = limt→œ(φd — φ) = 0 (4)
Si se considera la derivada con respecto al tiempo de las expresiones 3 y 4, se puede hallar la posición relativa del robot con respecto al humano. A continuación se obtiene la cinemática de la relación entre el robot y el humano. La derivada del error de distancia viene dada por la diferencia entre las proyecciones de las velocidades del robot y el humano sobre la línea que los une (ecuación 5).
e˙ = vT cos θ — v cos φ˜ (5)
De manera similar, si se considera la velocidad angular ω del robot y el efecto rotacional de las velocidades lineales del robot seguidor y el humano, se puede determinar la variación del ángulo φ˜ con la ecuación 6.
A partir de las ecuaciones 7 y 8, se propone el siguiente controlador:
Donde k1 y k2 son ganancias positivas de control. Al controlador se le deben proporcionar la velocidad v y la orientación θ del humano. No siendo posible una medición directa de estas variables, se puede hacer su estimación a partir de la definición de las ecuaciones 9 y 10.
vT€ = vT cos θ (9)
vTG = vT sin θ (10)
Reemplazando en las ecuaciones 5, 6 y despejando, se obtienen las ecuaciones 11 y 12 para la estimación de las componentes Vtc y Vtg.
La información suministrada por el Kinect® y el robot, permiten estimar estas componentes. Las derivadas se pueden estimar en forma numérica.
Al reemplazar 9, 10 con las estimas calculadas con 11 y 12, en las ecuaciones del controlador 7, 8 se obtienen las siguientes ecuaciones finales para el controlador:
Las ganancias k1 y k2 permiten hacer un ajuste del controlador ponderando el error en distancia y ángulo y evitan la saturación de las acciones de control.
En la Fig. 5 se muestra el diagrama de flujo del software diseñado para la implementación del algoritmo de controlador propuesto.
Fig.5. Diagrama de flujo del software en Matlab®.
La selección del período de muestreo T=200 ms se realizó considerando la velocidad de 30 fps del sensor Kinect®. Un frame es capturado en una fracción de 0.033 s. En este trabajo se consideró, después de realizar algunas validaciones, configurar el sensor para adquirir 6 frames consecutivas y luego actualizar las coordenadas de la persona y calcular las acciones de control.
Las pruebas de validación del esquema de control propuesto se llevaron a cabo con un robot Pionner 3-AT® provisto de un sensor Kinect® en un entorno interior de laboratorio. La información suministrada por el Kinect® es procesada por un aplicativo desarrollado en Matlab®, que genera las acciones de control y las transmite al robot vía wifi (Fig. 6).
Fig.6. Robot pionner 3-AT® con Pc y sensor Kinect® incorporados.
Para dar inicio a cada experimento, un humano se ubica al interior del campo de visión del sensor Kinect® para poder ser identificado. Posteriormente, comienza un desplazamiento en el entorno cambiando de dirección durante el recorrido (Fig. 7). Se asignaron valores de referencia de dd = 1.5 m y φd = 0 rad. Se realizó un ajuste manual de las ganancias k1 y k2. Fue necesario ir realizando un ajuste de la ganancia k2 en cada uno de los experimentos para eliminar oscilaciones en el control de orientación del robot, lo que se describe a continuación.
Fig.7. Robot móvil realizando el seguimiento de un humano.
Para el primer experimento se observa en la Fig. 8 la evolución del error de distancia y ángulo del robot cuando k1 = 0,2 y k2 = 1. La persona se localiza a una distancia inicial de 2.2 metros con respecto al robot e inicia su recorrido. Las fluctuaciones del error de distancia alrededor de cero durante los primeros 600 periodos de muestreo (Fig. 8-a) indican que el robot está ejecutando los comandos de velocidad lineal enviados por el controlador (Fig. 9-a) con el fin de alcanzar y mantener la distancia de referencia de
1.5 metros. Una vez transcurridos los primeros 600 periodos de muestreo la persona se detiene y el error de distancia se estabiliza en cero (Fig. 8-a). Se verifica que se han dejado de enviar comandos de velocidad al robot (Fig. 9-a) por lo que el robot también se detiene y mantiene la distancia respecto a la persona que sigue. De manera similar, cuando se presentan errores de posición angular entre el robot y la persona (Fig. 8-b), el controlador envía los correspondientes comandos de velocidad angular (Fig. 9-b) con el fin de mantener la orientación de 0 radianes entre ambos. Igualmente, una vez la persona se detiene y el error de ángulo se hace cero, se dejan de enviar comandos de velocidad angular al robot (Fig. 8-b, 9-b).
a)
b)
Fig. 8. Primer experimento: a) Error de distancia, b)
Error de posición angular.
a)
b)
Fig.9. Primer experimento, acciones de control: a) Acción de control de velocidad lineal, b) Acción de control de velocidad angular.
La Fig. 10 muestra la evolución de los errores para k1=0,2 y k2=0,8, y en la Fig. 11 se aprecian las acciones de control correspondientes al segundo experimento. En este caso la persona no deja de desplazarse en ningún momento, por lo que tampoco se dejan de enviar referencias de velocidad lineal y angular al robot. El robot realiza un seguimiento continuo de la persona buscando mantenerse a aproximadamente 1.5 m de distancia.
a)
b)
Fig.10. Segundo experimento: a) Error de distancia, b) Error de posición angular.
a)
b)
Fig.11. Segundo experimento, acciones de control: a) Acción de control de velocidad lineal, b) Acción de control de velocidad angular.
Los resultados de un tercer experimento con k1 = 0,2 y k2 = 0,5 se presentan en las Fig. 12 y Fig. 13. La distancia y orientación inicial de la persona con relación al robot son de 2.2 m y 0.1 rad respectivamente (Fig. 12-a y 12-b). Durante los 400 períodos de muestreo que duró el experimento la persona tampoco detuvo su desplazamiento. Los comandos de velocidad lineal y angular de referencia enviados al robot permitieron realizar el seguimiento de la persona manteniendo al robot cercano a las distancias lineales y angulares deseadas.
a)
b)
Fig.12. Tercer experimento: a) Error de distancia, b) Error de posición angular.
a)
b)
Fig.13. Tercer experimento, acciones de control: a) Acción de control de velocidad lineal, b) Acción de control de velocidad angular.
El ajuste de la ganancia k2 permitió disminuir las oscilaciones en la posición angular del robot. Al comparar las Fig. 8.b, 10.b, 12.b, se observa que el menor rango de oscilación alrededor de la referencia φd = 0 rad, se presentó para el caso k2 = 0.8 de la Fig. 10.b (-0.05 a 0.05). No obstante para valores muy bajo de k2 (k2 € 0.5) el Kinect® perdía al humano cuando este realizaba cambios rápidos de dirección. Esto se da por que la velocidad angular con la que debe responder el robot no es suficiente para mantener al humano en el campo de visión del sensor (ecuación 14).
El ajuste de k1 en 0.2 permitió mantener al robot muy cercano a la distancia de referencia dd = 1.5 m (Fig. 8.a, 10.a, 12.a). En tal sentido no fue necesario modificar este valor.
Una de las ventajas de trabajar con el Kinect® es que este asigna un único identificador a cada humano presente en la escena, de forma tal que se puede realizar el seguimiento de una única persona, aún en escenarios con presencia y circulación de otros individuos, lo que se pudo verificar con los experimentos efectuados.
El seguimiento de un humano con un robot móvil, ha despertado el interés de los grupos de investigación de diferentes partes del mundo, propiciando que cada día se publiquen más trabajos donde se describe diferentes algoritmos de control. En la tabla 1, se presenta una comparación entre este artículo (artículo 1) y los artículos publicados por Doisy et al [10] (artículo 2) y Cao et al [7] (artículo 3).
Tabla 1. Características de trabajos para el seguimiento de un humano
La comparación se realizó al considerar: el tipo de algoritmo de control, el sensor y la plataforma robótica empleada y las tareas que puede ejecutar simultáneamente el robot.
En este trabajo se presentó un controlador para realizar el seguimiento de un humano empleando un sensor Kinect® como único dispositivo extereoceptivo. Los experimentos llevados a cabo permitieron validar el algoritmo propuesto, de tal forma que el robot pudo llevar a cabo el seguimiento seguro de una persona que se desplaza o cambia de dirección en un entorno interior de trabajo. Durante los experimentos el robot logró alcanzar y mantener las referencias de distancia y orientación cuando la persona se encontraba en movimiento o detenida. El software implementado en Matlab®, para ejecutar el algoritmo de control no-lineal, presento buena estabilidad logrando el objetivo propuesto: seguir una persona.
Se pueden identificar las siguientes líneas de trabajo: 1) guía de personas en entornos conocidos, como por ejemplo museos, hospitales o sitios con circulación de personas, 2) la incorporación de mecanismos de evasión de obstáculos localizados entre el robot y la persona, 3) incorporación de otros sistemas de percepción que mejoren las limitaciones de rango operativo del sensor Kinect®, 4) la compensación de la dinámica del robot seguidor, a fin de un mejor comportamiento de los transitorios, 5) usar ganancias variables, de forma tal que cuando la persona este próxima a salirse del campo de visión del robot, éste reaccione más rápidamente con el fin de no perderlo de vista, 6) la validación experimental del controlador no lineal propuesto, en entornos exteriores de trabajo.
5. AGRADECIMIENTOS
Los autores agradecen el apoyo brindado por sus instituciones de origen, Politécnico Colombiano Jaime Isaza Cadavid y la Universidad Nacional de San Juan, en el desarrollo de este trabajo.
[1] Ortman, J. M., Velkoff, V. A., y Hogan, H. Anaging nation: the older population in the United States., DC: US Census Bureau., 25-1140, 2014.
[2] United Nations. World Population Ageing 2015. WPA2015. New York. Department of Economic and Social Affairs Population Division., 2015.
[3] Broekens, J., Heerink, M., y Rosendal, H. Assistive social robots in elderly care: a review. Gerontechnology., 8, 94-103, 2009.
[4] Dahl, T. S., y Boulos, M. N. K. Robots in Health and Social Care: A Complementary Technology to Home Care and Telehealthcare?. Robotics., 3, 1- 21, 2013.
[5] Beech, R., y Roberts, D. Assistive technology and older people. London: SCIE., 2008. [6] Allen, K., y Glasby, J. ‘The Billion Dollar Question’: Embedding Prevention in Older People's Services—Ten ‘High-Impact’Changes. British Journal of Social Work, bcs024., 2012.
[7] Cao, M., y Hashimoto, H. Specific person recognition and tracking of mobile robot with Kinect 3D sensor. In Industrial Electronics Society, IECON 2013-39th Annual Conference of the IEEE., 8323- 8328, 2013.
[8] Hoshino, F., y Morioka, K. Human following robot based on control of particle distribution with integrated range sensors. In System Integration (SII), 2011 IEEE/SICE International Symposium on., 212-217, 2011.
[9] Wengefeld, T., Eisenbach, M., Trinh, T. Q., y Gross, H. M. May I be your Personal Coach? Bringing Together Person Tracking and Visual Reidentification on a Mobile Robot. In ISR 2016: 47st International Symposium on Robotics; Proceedings of.,1-8, 2016.
[10] Doisy, G., Jevtic, A., Lucet, E., y Edan, Y. Adaptive person-following algorithm based on depth images and mapping. In Proc. of the IROS Workshop on Robot Motion Planning., 2012.
[11] Xing, G., Tian, S., Sun, H., Liu, W., y Liu, H. People-following system design for mobile robots using Kinect sensor. In 2013 25th Chinese Control and Decision Conference (CCDC)., 3190-3194, 2013.
[12] Chu, H. C., Chien, M. F., Lin, T. H., y Zhang, Z. J. Design and implementation of an auto-following robot-car system for the elderly. In System Science and Engineering (ICSSE), 2016 International Conference on.,1-4, 2016.
[13] Soria, c., Carelli, R., Kelly, R., y Ibarra Zannatha, J. Control de robots cooperativos por medio de visión artificial. XVI congreso de la asociación chilena de control automático. 2004.