d5.3. testing therapist in its inner world · operativo windows7 para aprovechar todo el potencial...

24
THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies D5.3. Testing THERAPIST in its inner world Resp: Raquel Viciana Due: M9 Página 1 / 24

Upload: others

Post on 06-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

D5.3. Testing THERAPIST in its inner world  

 Resp: Raquel Viciana 

Due: M9     

                                        Página  1 / 24    

Page 2: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

  ÍNDICE   

RESUMEN EJECUTIVO 1. MOTIVACIÓN 2. EL ENTORNO virtualAdaptaRobot 

2.1 INSTALACIÓN DEL ENTORNO virtualAdaptaRobot REFERENCIAS GLOSARIO DE FIGURAS Y TABLAS ACRÓNIMOS 

     

                                        Página  2 / 24    

Page 3: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

   

TÍTULO DOCUMENTO  Testing THERAPIST in its inner world 

FECHA DE ENTREGA  18/01/2014 

AUTOR/ES  Raquel Viciana, Adrián Romero­Garcés, Antonio Bandera, Francisco J. García, Luis Manso, Rebeca Marfil 

CONTRIBUIDOR/ES  Pablo Bustos, Fernando Fernández 

 FECHA  VERSIÓN  COMENTARIOS 

11/10/2013  V0.0  Versión inicial 

     

     

     

                                        Página  3 / 24    

Page 4: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

RESUMEN EJECUTIVO  

Este entregable describe la plataforma virtual que permite evaluar la evolución de la arquitectura                           software y su comportamiento global para permitir al robot desarrollar el caso de uso en el                               marco del proyecto THERAPIST.      

                                        Página  4 / 24    

Page 5: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

 

1. MOTIVACIÓN  

 La verificación de módulos individuales y la validación completa de la arquitectura al cerrar cada                             paso de integración es un proceso complejo que, en el marco del proyecto THERAPIST,                           requeriría disponer de un robot en cada centro participante. Para facilitar dicho proceso de                           evaluación y permitir que pueda ser llevado a cabo sin contar con el robot real, los grupos                                 implicados en el proyecto han participado en la creación del entorno virtualAdaptaRobot. El                         entorno virtualAdaptaRobot es un conjunto de componentes que permiten ejecutar de una forma                         simplificada el caso de uso de este proyecto. Este entorno nos ha permitido, por un lado, dar un                                   primer paso en la integración de los componentes involucrados, un proceso crítico en cualquier                           desarrollo software, y por otro lado, tener un entorno de trabajo que permita probar los                             algoritmos implementados de forma que se simplifique notablemente el coste de trasladar este                         software a la plataforma real final (robot).   

2. EL ENTORNO virtualAdaptaRobot  

 Como puede verse en la Figura 1, el entorno virtualAdaptaRobot está formado por los siguientes                             componentes:  

● ConversationalComp. Es el componente encargado de hablar con la persona. 

● RORMNavigationComp. Componente navegación reactiva de bajo nivel. Contiene los                 algoritmos encargados de llegar a un destino evitando posibles obstáculos. 

● NavigationComp. Es el componente que se encarga de la navegación a alto nivel,                         manteniendo una distancia de seguridad a los obstáculos, persona y panel. Envía                       órdenes al RORMNavigatorComp.  

● RobotComp. Representa al robot. Permite ejecutar el evento exógeno “el robot se ha                         quedado sin batería”. 

                                        Página  5 / 24    

Page 6: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

● PanelComp. Es el componente Panel, identificado como posición desde la que el robot                         lleva a cabo distintas actividades.  

● pelea2level. Es el cerebro de todo el sistema. Se encarga de proporcionar el plan para                             ejecutar una determinada tarea. 

● SimulatorComp. El simulador proporciona un entorno simulado del escenario del caso                     de uso. Actualmente está formado por el panel, una persona, el robot y varios obstáculos                             localizados en el suelo. 

● InnerModelComp. Es el modelo interno del mundo (a nivel geométrico) que crea y                         almacena el robot.  

● PersonNetComp. Componente que se encarga de clasificar a una persona. 

● PersonPerceptorComp. Hace de pasarela entre el componente WinKinectComp y                 PersonNetComp. 

● joystickComp. Este componente permite mover a la persona en el simulador utilizando                       un joystick 

● mission. Interfaz gráfica para ejecutar un plan y visualizar las acciones que se están                           ejecutando junto con los cambios en el modelo del mundo (representado como un                         grafo). 

● RoboCompAGMExecutive. Componente ejecutivo. Es el encargado de activar a los                   componentes involucrados en realizar una determinada acción del plan y de recibir las                         propuestas de cambio en el modelo del mundo. Mantiene una continua comunicación                       con el planificador  PELEA. 

● WinKinectComp. Componente encargado de obtener datos de la cámara RGBD Kinect                     de Microsoft y enviarla al resto de componentes que lo requieran.  

    

                                        Página  6 / 24    

Page 7: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

 Figura 1. Despliegue de la arquitectura virtualAdaptaRobot 

 Se puede observar como todos los componentes se ejecutan en una máquina con sistema                           operativo Linux, salvo el componente WinKinectComp, que se ejecuta en un PC con sistema                           operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos                           PCs se realiza a través de una conexión Gigabit Ethernet.    El componente RoboCompAGMExecutive es el encargado de orquestar todo el funcionamiento                     del entorno cajas vacías. Este componente mantiene el modelo del mundo (grafo AGM). Cuando                           al robot se le indica que ejecute un plan, este componente le pide al planificador (PELEA) el                                 conjunto de acciones a realizar. En ese momento, el componente RoboCompAGMExecutive                     activa a los componentes involucrados para llevar a cabo cada una de esas acciones, además                             de publicar el modelo del mundo a todos los componentes (agentes). Los componentes                         activados recibirán el modelo del mundo y, una vez finalizadas sus acciones, enviarán una                           propuesta de modificación del modelo según las acciones que hayan llevado a cabo. Entonces,                           el Ejecutivo recibe esa información y realiza las modificaciones en el modelo del mundo.   El componente WinKinectComp se encarga de enviar continuamente información a los                     

                                        Página  7 / 24    

Page 8: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

componentes PersonPerceptor y ConversationalComp. Al primero le envía el número de                     personas, caras y esqueleto y al segundo le envía una transcripción de lo que la persona                               detectada haya contestado a las preguntas del robot. En el caso de que, detectado el paciente,                               el robot decida acercarse a ella, el Ejecutivo activa el navegador indicándole cuál es la posición                               de la persona. Una vez alcanzado el objetivo, el ejecutivo activa el componente conversacional                           para saludar a la persona. El resto del caso de uso se irá desarrollando conforme al plan                                 previamente establecido.   Durante la ejecución del caso de uso puede ocurrir que el robot no pueda llevar a cabo                                 determinadas acciones debido a situaciones que pueden ser habituales en un escenario real.                         Algunas de estas opciones ya las tenemos contempladas en este entorno de cajas vacías. Por                             ejemplo, es posible que el paciente se dé la vuelta y no acepte interactuar con el robot. En este                                     caso, es el componente PersonNetComp el que informa al Ejecutivo de que la persona se ha                               perdido y el Ejecutivo informa a PELEA para que replanifique, de forma que el robot vuelva a su                                   punto inicial y se suspenda la sesión.   La capacidad del planificador también ha sido probada a través del evento exógeno “batería                           descargada” que puede ser activado en cualquier momento de la ejecución del caso de uso (a                               través de una interfaz gráfica). Una vez que este evento ha sido pulsado, el robot debería ir al                                   punto de carga.   A continuación se describe la instalación y uso del entorno de virtualAdaptaRobot.  

2.1 INSTALACIÓN DEL ENTORNO virtualAdaptaRobot  

 Paso 1: Instalación de Kinect en Windows 7 (64bits) y del componente                       WinkinectComp  1.1.­ Descargar el componente WinKinectComp del repositorio robocomp.  Está localizado en $ROBOCOMP/Components/Adapta. El contenido es el siguiente:  

● /bin ● /dlls ● /Properties ● WinKinectComp.sln → solución para utilizar en Visual Studio 

 1.2.­ En caso de querer modificar y compilar el componente WinKinectComp (solo para                         desarrollar) 

                                        Página  8 / 24    

Page 9: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

1.2.1.­ Instalar: 

 ● Kinect for Windows SDK v1.8. Incluye Microsoft Speech Platform ­ Software                     

Development Kit  v11 ○ http://www.microsoft.com/en­us/download/details.aspx?id=40278 

● Kinect for Windows Language Packs v11.0: ○ http://www.microsoft.com/en­us/download/details.aspx?id=34809 

● Visual Studio Proffesional 2012 (opcional) ○ https://www.dreamspark.com/Student/Default.aspx 

● ZeroC Ice (instalar también plugin para Visual Studio) ○ http://www.zeroc.com/download.html#win32_msi 

  

1.2.2.­ Compilar  

Para poder compilar, tenemos dos opciones: a) utilizar la herramienta Visual Studio,                       cuyo proyecto se encargará de todo todo el proceso y b) utilizar la línea de comandos,                               sin necesidad de lanzar ningún entorno adicional. 

 1.2.2.1 ­ Obtener y localizar las librerías necesarias 

 Antes de poder compilar, necesitamos tener localizadas todas las librerías que                     se utilizan en el componente, las cuales listamos a continuación: 

 ● Ice.dll 

○ Librería Ice: La tendremos dentro de la ruta: Program Files/ZeroC/IceVersion/bin/(x64) 

● IceStorm.dll ○ Librería de Storm para la publicación no sincronizada sobre Ice. 

Localizada en: Program Files/ZeroC/IceVersion/assemblies/sl ● Microsoft.Kinect.dll 

○ Librería para el uso del SDK oficial de kinect. Localizada en: Program Files/Microsoft SDKs/Kinect/version/assemblies 

● Microsoft.Speech.dll ○ Librería para el uso del SDK oficial para obtener la transcripción 

utilizando kinect. Localizada en: Program Files/Microsoft SDKs/speech/version/assemblies 

● PresentationCore.dll ○ Localizada en: Program Files/Reference 

Assemblies/Microsoft/Framework/version ● WindowsFormsIntegration.dll 

                                        Página  9 / 24    

Page 10: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

○ Localizada en: Program Files/Reference Assemblies/Microsoft/Framework/version 

● Microsoft.Kinect.Toolkit.Interaction.dll ○ Esta librería, junto a la que se encuentra a continuación, deben 

generarse compilando el proyecto específico dentro de la herramienta Kinect For Windows Developer Toolkit v1.8. 

○ Para ello haremos los siguientes pasos: 1. Instalar tanto el SDK como las herramientas de desarrollador desde aqui: 

a. SDK → http://www.microsoft.com/en­us/download/details.aspx?id=40278 

b. Developer tools → http://www.microsoft.com/en­us/download/details.aspx?id=40276 

2. Abrir el programa “Developer Toolkit Browser (Kinect For Windows)”, localizado en Inicio → Todos los Programas → Kinect For Windows SDK v1.8 

3. Desde la pestaña de Components, instalar los tres primeros, en una carpeta deseada 

a. Microsoft.Kinect.Toolkit b. Microsoft.Kinect.Toolkit.Controls c. Microsoft.Kinect.Toolkit. FaceTracking 

4. Abrir la solución existente dentro de cada uno de las carpetas que se crean con la instalación, para ello, puede utilizarse la versión gratuita de visual studio express → http://www.microsoft.com/es­es/download/details.aspx?id=34673 

5. Seleccionar el modo release en la pestaña de arriba, al lado de la flecha verde (normalmente estará en modo Debug) y compilar 

6. Obtener la librería ● Microsoft.Kinect.Toolkit.FaceTracking.dll 

○ Librería para el uso del seguimiento de caras con el SDK oficial de kinect. Se obtiene como se ha mostrado en la librería anterior 

 1.2.2.2 ­ Utilizando Visual Studio: 

 ● Abrir el fichero WinKinectComp.sln. ● Añadir dependencias (rutas a las dlls) en el proyecto. 

○ Las dlls necesarias aparecerán en la carpeta “References” dentro del explorador de soluciones. NOTA: Probablemente habrá que actualizar las rutas a esas dlls. 

○ Localizar las dlls necesarias. ■ Ice.dll y IceStorm.dll → En la carpeta “Assemblies” del directorio 

de instalación de Ice. Por ejemplo: C:\Program Files\ZeroC\Ice­3.5.0\Assemblies\ 

                                        Página  10 / 24    

Page 11: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

■ Microsoft.Kinect.XXX.dll → En la carpeta “Assemblies” del directorio de instalación del SDK de Kinect. Por ejemplo: C:\Program Files\Microsoft SDKs\Kinect\v1.8\Assemblies 

■ Microsoft.Speech.dll → En la carpeta “Assemblies” del directorio de instalación del Microsoft.Speech. Por ejemplo: C:\Program Files\Microsoft SDKs\Speech\v11.0 

○ Actualizar las rutas a las dlls. ■ Dentro del explorador de soluciones →  botón derecho sobre 

“References” → “Agregar Referencia”:  

 Figura 2. Actualización de las rutas a las dlls 

 ■ Hacer click sobre el menú “Examinar” situado a la izquierda para ver las 

dlls incluidas en el proyecto. Para añadir una nueva pulsar el botón “Examinar…”: 

 

                                        Página  11 / 24    

Page 12: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

 Figura 3. Administración de referencias (WinKinectComp) 

  

● Compilar (recomendamos en modo “Release”).  

1.2.2.3­ Desde línea de comandos.  

1.2.2.3.1.­ Obtener los fichero .cs a partir de ICE ● Desde línea de comandos, realizamos la siguiente orden: 

○ slice2cs ­­output­dir generatedDir fileInput.ice, donde generatedDir es el directorio donde se alojará el fichero.cs generado y fileInput.ice el fichero de entrada en formato ice. 

 1.2.2.3.2.­ Compilar 

● Se puede compilar desde la línea de comandos utilizando para ello la consola de compilación de visual studio, también llamado símbolo de sistema de las herramientas cruzadas de VS (dentro del menú inicio/VisualStudio/VisualStudioTools). 

● Todas las dependencias (dlls y ficheros. cs) deben indicarse explícitamente a la hora de compilar, además de estar presentes en la carpeta raíz. 

                                        Página  12 / 24    

Page 13: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

● Para compilar, utilizamos la orden csc (C Sharp Compile) con todos los parámetros de la siguiente forma: 

○ csc /reference:Ice.dll,Microsoft.Kinect.dll,Microsoft.Speech.dll,IceStorm.dll,PresentationCore.dll,WindowsFormsIntegration.dll,Microsoft.Kinect.Toolkit.Interaction.dll,Microsoft.Kinect.Toolkit.FaceTracking.dll MSKPublisher.cs generated\MSK.cs AudioAccess.cs MapFaceFrameToDetailedFace.cs MapInteractionInfo.cs MapSkeletonToPerson.cs MDKinectInteractions.cs MSKRGBDI.cs MSKRGBDServer.cs ProcesssDepthImage.cs KinectAccess.cs ProcesssFaceTracking.cs ProcessSkeletonFrame.cs ProcesssRGBImage.cs SkeletonFaceTracker.cs 

 1.3.­ En caso de tener el ejecutable del WinKinectComp (no querer modificar/compilar el                         componente) 

1.3.1.­ Instalar:  

● Kinect for Windows ­ Runtime (Version 1.8). Incluye Microsoft Speech Runtime v11 ○ http://www.microsoft.com/en­us/download/details.aspx?id=40277 

● Kinect for Windows Language Packs v11.0: ○ http://www.microsoft.com/en­us/download/details.aspx?id=34809 

Paso 2: Instalación del virtualAdaptaRobot (CajasVaciasAGM) en Linux.  2.1.­ Actualizar el repositorio  La carpeta CajasVaciasAGM, que contiene los componentes de virtualAdaptaRobot a desplegar                     en Linux, está dentro del directorio robocomp/Components/Adapta/.  

● git fetch ● git pull 

 En caso de no tener instalado el repositorio, será necesario obtenerlo utilizando la orden 

● git clone git://git.code.sf.net/p/robocomp/code robocomp­code ○ Para no desarrolladores o 

● git clone ssh://[email protected]/p/robocomp/code robocomp­code ○ Para desarrolladores dados de alta 

                                        Página  13 / 24    

Page 14: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

2.2.­ Explorando el proyecto  El contenido de la carpeta CajasVaciasAGM (dentro de robocomp/Components/Adapta/) es el                     siguiente:  

● /AGM ○ librería AGM. 

● /ConversacionComp ○ agente conversacional 

● /NavigationComp ○ agente navegación. Utiliza el RORMNavigatorComp 

● /RORMNavigationComp ○ componente navegación reactiva. 

● /RobotComp ○ agente robot. 

● /PanelComp ○ agente panel. 

● /pelea2level ○ planificador PELEA 

● /Simulator ○ simulador del escenario del caso de uso (aeropuerto) 

● /InnerModel ○ modelo interno del robot. 

● /PersonNetComp ○ agente persona. 

● /PersonPerceptorComp ○ componente persona. Hace de pasarela entre el componente WinKinectComp y                   

PersonNetComp ● /joystickComp 

○ componente para mover a la persona en el simulador con el joystick. ● /mission 

○ interfaz gráfica para ejecutar un plan y visualizar las acciones que se están                         ejecutando junto con los cambios en el grafo AGM. 

● /RoboCompAGMExecutive ○ componente ejecutivo. 

● /speechComp ○ convierte cadenas de texto en audio.   

● /Files ○ ficheros de configuración 

● /vfhLocalNavigatorComp ○ componente navegador (alternativa al RORMNavigatorComp) 

 

                                        Página  14 / 24    

Page 15: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

2.3.­ Instalar fastDownward para el componente pelea2level. 

2.3.1.­ Dentro del directorio CajasVaciasAGM/pelea2level/planners, crear una carpeta               "Fastdownward" y descargar y compilar dentro fastdownward siguiendo los siguientes pasos:  

● http://www.fast­downward.org/ObtainingAndRunningFastDownward  2.4.­ Instalar Festival en español e inglés para el componente speechComp 

● sudo apt­get install festival festival­doc festvox­kdlpc16k festvox­ellpc11k  2.5.­ Compilar e instalar librería qmatrix 

● Ir al directorio /robocomp/Classes/qmatrix ● cmake . ● make ● sudo make install 

 2.6.­ Compilar e instalar librería innermodel 

● Ir al directorio /robocomp/Classes/innermodel ● cmake . ● make ● sudo make install 

 2.7.­ Compilar e instalar librería AGM (versión CajasVaciasAGM) 

 ● Ir al directorio /robocomp/Components/Adapta/CajasVaciasAGM/AGM ● cmake . ● make ● sudo make install 

 2.8.­ Compilar los siguientes agentes/componentes dentro del CajasVaciasAGM 

Agentes: ConversacionComp, NavigationComp ,RORMNavigationComp, RobotComp,         PanelComp, Simulator, InnerModel, PersonNetComp, PersonPerceptorComp, joystickComp,           mission, RoboCompAGMExecutive, todos compilados mediante: 

 ● cmake . ● make 

 

                                        Página  15 / 24    

Page 16: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

Si tenemos problemas al compilar, puede deberse a alguna configuración de compilación de                         otro usuario que se haya guardado erróneamente, por lo que haremos:  

● make clean ● rm CMakeCache.txt ● cmake . ● make 

 El proceso de compilación nos dejará un ejecutable con el nombre del componente/agente                         dentro de la carpeta bin/, pero dado que la ejecución debe realizarse utilizando algunos                           parámetros de configuración, veremos cómo ejecutarlos todos de forma conjunta más adelante. 

Paso 3: Ejecutar el CajasVaciasAGM  3.1.­ Inicio  Antes de nada, instalaremos el entorno de pestañas yakuake, el cual permite trabajar de forma                             cómoda con diferentes consolas, así como generar scripts que las abran con las rutas                           adecuadas.  

● sudo apt­get install yakuake  Desde yakuake, ir al directorio /robocomp/Components/Adapta/CajasVaciasAGM y ejecutar:  

● ./start­agents.sh  

                                        Página  16 / 24    

Page 17: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

 Figura 4. Captura de pantalla una vez lanzados todos los componentes (Inicio) 

  La figura 4 muestra las interfaces gráficas que aparecen tras arrancar los componentes:  

1 → Representa al agente RobotComp. Permite descargar la batería. 2 → Innermodel 3 → Simulador 4 → Interfaz de control mission. Permite: 

a) Ejecutar diferentes misiones. Para el caso de estudio utilizaremos                   attractPerson y go home. 

b) Visualizar los cambios en el modelo del mundo (grafo AGM). c) Visualizar el plan que se está ejecutando en ese momento. 

  Paso 4: Ejecutar el componente WinKinectComp  4.1.­ Verificar la configuración IP  Antes de ejecutar el componente, verificar las direcciones IP en el fichero de configuración                           config.pub, dentro de la carpeta WinKinectComp/bin/Release:  

                                        Página  17 / 24    

Page 18: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

# # This property is used by the clients to connect to IceStorm. # #TopicManager.Proxy=IceStorm/TopicManager:tcp ­h localhost ­p 10000 TopicManager.Proxy=IceStorm/TopicManager:tcp ­h 192.168.187.73 ­p 9999 ← poner aquí               dirección IP del PC linux # # Network Tracing # # 0 = no network tracing # 1 = trace connection establishment and closure # 2 = like 1, but more detailed # 3 = like 2, but also trace data transfer # Ice.Trace.Network=0 Ice.Default.EncodingVersion=1.0 Ice.MessageSizeMax=10240 #Ice.Warn.Connections=3 # # IceMX configuration. # #Ice.Admin.Endpoints=tcp ­h localhost ­p 10003 ##Ice.Admin.Endpoints=tcp ­h localhost ­p 10217 Ice.Admin.InstanceName=publisher IceMX.Metrics.Debug.GroupBy=id IceMX.Metrics.ByParent.GroupBy=parent # Object adapter, estas dos propiedades siempre deben estar: Adapter.Endpoints=tcp ­h 192.168.187.83 ­p 10007 ← direccion IP del PC windows (vale                       localhost) Adapter.AdapterId=WinKinectComp.Adapter BodyService.id=MSKBodyService RGBDService.id=MSKRGBDService FaceService.id=MSKFaceService ASRService.id=MSKASR #Topic names topicNameASR = MSKASR ##topicNameHand = MSKHand ##topicNameBody = MSKBody ##topicNameFace = MSKFace ##topicNameRGBD = MSKRGBD  4.2.­ Usando Visual Studio 

                                        Página  18 / 24    

Page 19: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

En caso de lanzar el componente desde el visual studio, pulsar el botón “Iniciar”.  4.3.­ Sin Visual Studio  En caso de haber compilado, pero querer ejecutarlo desde fuera del Visual Studio:  

4.3.1.­ Ir a la carpeta WinKinectComp/bin/Release 4.3.2.­ Lanzar el ejecutable con nombre WinKinectComp.exe. 

 La Figura 5 muestra la salida por consola.  

  

Figura 5. Captura de pantalla una vez lanzado en componente WinKinectComp   

Paso 5: Probando el caso de uso  Una vez arrancado el CajasVaciasAGM y el WinKinectComp se puede probar el caso de uso.                             Consiste en que el robot detecte a una persona, se acerque, la clasifique, le ofrezca un                               producto y en caso de que acceda, lo lleve al panel. Una vez allí el robot se despedirá y volverá                                       al punto de inicio. Si la persona no está interesada, el robot volverá al punto de inicio. Lo mismo                                     ocurre si el robot “pierde” a la persona durante un periodo de tiempo. Pasos a seguir:  5.1.­ Inicio 

                                        Página  19 / 24    

Page 20: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

Para comenzar, ir a la interfaz gráfica del componente mission y pulsar el botón attractPerson.                             La primera acción a realizar será detectPerson, como se muestra en la Figura 6.  

 Figura 6. Captura de pantalla una vez lanzados todos los componentes (detectPerson) 

  5.2.­ Desarrollo del caso de uso I.­ Detectando la persona  Para que el robot detecte a una persona hay que colocarse delante de la kinect. En ese                                 momento, el robot empezará a moverse hasta la posición de la persona en el simulador. En el                                 innermodel podrá aparecer las siguientes figuras: 

● Cilindro con símbolo de interrogación. Se ha detectado a una persona pero todavía no se                             ha clasificado. 

● Cilindro con símbolo mujer encima. Se ha clasificado a la persona como mujer/niña. 

● Cilindro con símbolo hombre encima. Se ha clasificado a la persona como hombre/niño. 

● En caso de detectar la cara de la persona también aparecerá una pequeña esfera                           blanca encima del cilindro. 

 

                                        Página  20 / 24    

Page 21: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

5.3.­ Desarrollo del caso de uso II.­Conversación  Una vez que el robot ha llegado hasta la persona procederá a saludarlo y se ofrecerá para iniciar                                   la sesión.  

● El sistema de conversación está preparado para responder preguntas relacionadas con                     la sesión 

● Todas las explicaciones terminan con una pregunta directa sobre si el paciente quiere                         continuar/realizar un ejercicio para que el usuario siempre pueda responder                   afirmativa/negativamente. 

● Si el cliente accede (diciendo “Si”, “Acepto” o similares), el robot continuará con la                           sesión programada. NOTA: Para volver a empezar el caso de uso hay que pulsar de                             nuevo el botón attractPerson. 

● Si el cliente no está interesado entonces el robot se despedirá y volverá al punto de                               inicio. 

 5.4.­ Eventos externos I.­ Falta de batería  Es posible simular que el robot se ha quedado sin batería. Para ello basta con pulsar el botón                                   Discharge Battery de la interfaz RobotComp.   Paso 6: Detener el CajasVaciasAGM y WinKinectComp  6.1.­ Detener el CajasVaciasAGM  Para detener los componentes del CajasVaciasAGM ejecutar:  

● ./kill_agents.sh  6.2.­ Detener el WinKinectComp 

6.2.1.­ Si se ha lanzado desde VisualStudio se puede detener:  

● Directamente desde la herramienta. ● Pulsando Ctrl­C en la aplicación WinKinectComp. 

 6.2.2.­ Si se ha lanzado desde consola pulsar Ctrl­C. 

 

                                        Página  21 / 24    

Page 22: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

REFERENCIAS  

 [1] Vidal Alcázar, Cesar Guzmán, David Prior, Daniel Borrajo, Luis Castillo, and Eva Onaindia.                           pelea: Planning, learning and execution architecture. In Proceedings of the 28th Workshop of the                           UK Planning and Scheduling Special Interest Group (Plan­SIG'10), pages 1­8, Brescia (Italia),                       December 2010.     

                                        Página  22 / 24    

Page 23: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

GLOSARIO DE FIGURAS Y TABLAS  

  

Figura 1. Despliegue de la arquitectura virtualAdaptaRobot  7 

Figura 2. Actualización de las rutas de las dlls  11 

Figura 3. Administración de referencias (WinKinectComp)  12 

Figura 4. Captura de pantalla una vez lanzados todos los componentes (Inicio)  17 

Figura 5. Captura de pantalla una vez lanzado el componente WinKinectComp  19 

Figura 6. Captura de pantalla una vez lanzados todos los componentes (detectPerson)  20 

    

                                        Página  23 / 24    

Page 24: D5.3. Testing THERAPIST in its inner world · operativo Windows7 para aprovechar todo el potencial de la kinect. La conexión entre ambos PCs se realiza a través de una conexión

    THERAPIST: An autonomous and socially interactive robot for motor and neurorehabilitation therapies  

ACRÓNIMOS  

  PC Ordenador personal AGM Grafo que crea y usa el robot para modelar a nivel simbólico el mundo PELEA Arquitectura para planificación [1] (Planning, Execution and Learning Arquitecture) PDDL Lenguaje de planificación (Planning Domain Definition Language) XML Lenguaje de marcas extensible (eXtensible Markup Language)     

                                        Página  24 / 24