Asistencia de pacientes con Pepper

De RoViT
Saltar a: navegación, buscar

En este página se muestra un resumen del trabajo realizado por el estudiante de ingeniería mecatrónica Steven Jiménez del Instituto Tecnológico de Costa Rica, para desarrollar el proyecto de graduación titulado Implementación de una sistema para la asistencia de pacientes mediante el robot Pepper realizado en el laboratorio de Investigación de robótica y visión tridimensional ubicado en la Universidad de Alicante, España.

Pepper.png

Contenido

Descripción del proyecto

Este trabajo consiste en desarrollar un sistema funcional capaz de asistir a pacientes con algún tipo de discapacidad, por dar dos ejemplos, personas que sufren de daño cerebral adquirido o personas con movilidad reducida congénita o adquirida. La tarea específica que se plantea solventar con este robot es alcanzar objetos al paciente que se encuentren en un entorno cerrado como un cuarto de habitación u hospital.

Para hacer frente a este problema se utiliza el robot humanoide Pepper el cual tiene distintos módulos como cámaras 2D y 3D, parlantes, sensores rotativos magnéticos, además cuenta con brazos articulados y una base móvil para su desplazamiento.

Para lograrlo, en este proyecto se utiliza ROS el cual es un software que permite la abstracción de hardware de distintos dispositivos, de esta forma se lograr combinar herramientas de deep learning, reconocimiento de voz, reconocimiento de códigos QR y conceptos de robótica para completar el objetivo.

En el siguiente diagrama se muestra la lógica detrás del proyecto.

DiagraFlujoFinal.png

¿Cómo lo pongo en marcha?

El sistema consta de un proyecto de ROS. Debido a que se utilizan muchas herramientas, a continuación se muestra los principales requerimientos para ponerlo a funcionar:

Requerimientos previos:

  • ROS: Robot Operating System (version Kinetic) [1]
  • CAFFE: framework deep learning [2]
    • Recordar requerimientos propuestos por el desarrollador
  • Python (version 2.7)
  • Proyecto py-faster-rcnn [3]
  • Python Package - SpeechRecognition (version 3.8.1) [4]
    • Recordar requerimientos propuestos por el desarrollador
  • Aldebaran Python SDK (PyNAOqi) [5]
  • Puente entre el sistema NAOqi y ROS para controlar al robot Pepper [6]
  • Detección de códigos QR [7]
  • Crear cuenta de Google Cloud Platform para utilizar APIs [8]

Una recomendación para relacionarse con el robot Pepper es utilizar Choregraphe [9]

Construcción del proyecto:

En la dirección del repositorio se encuentran tres carpetas, la primera que dice importantPythonScripts el cual contiene unos scripts que se invocan desde ROS y deben ser puestos en la máquina local, otra carpeta llamada scriptServerWithGPU que contiene un script el cual funciona como servicio de clasificación en una máquina que posea una potente GPU, y la tercera carpeta llamada rcnn_live_detector es la carpeta donde está construido todo el proyecto. El nombre puede confundir un poco, pero lo dejo intacto para evitar errores si cambio su nombre.

A continuación está el link del repositorio: [10]

Puesta en marcha:

Una vez todo el proyecto construido existen dos variantes según sea el caso donde se lleva a cabo el reconocimiento de objetos, ya sea en la máquina local o en servidor con una GPU potente.

SIN GPU

Si se utiliza el reconocimiento en la máquina local ejecutar los siguientes comandos:

  1. cd catkin_ws
  2. roscore
  3. source devel/setup.bash
  4. roslaunch rcnn_live_detector asistencia1LOCAL
  5. source devel/setup.bash
  6. roslaunch rcnn_live_detector asistencia2

CON GPU

Si se utiliza el reconocimiento en un servidor externo con una GPU potente ejecutar los siguientes comandos:

Ejecutar el servicio de clasificación en el servidor mediante

  1. python classifier_server.py

Una vez corriendo el servicio de clasificación ejecutar los siguientes en la máquina local

  1. cd catkin_ws
  2. roscore
  3. source devel/setup.bash
  4. roslaunch rcnn_live_detector asistencia1JACKSON.launch
  5. source devel/setup.bash
  6. roslaunch rcnn_live_detector asistencia2

Advertencia:

El reconocimiento de voz utiliza un micrófono conectado a la máquina local donde se ejecuta este proyecto y no utiliza los micrófonos del robot Pepper.

Resultados y Vídeos Demostrativos

El resultado de este proyecto es exitoso pero se pueden mejorar ciertas cosas como implementar la cinemática inversa de los brazos del robot, eliminar la necesidad de utilizar un código QR y un sistema de ubicación del robot para evitar obstáculos.

El principal problema gira en torno al desempeño de los brazos del robot ya que estos se recalientan debido a su uso en cuestión de 5 minutos y luego es necesario enfriarlos por un lapso de 30 minutos aproximadamente.

En los siguientes vídeos se pueden observar los fallos por los que no se logra el objetivo.

Como recomendación aumentar la velocidad de los vídeos a 2x.

Intento caja de Palomitas y botella:

Intento caja de palomitas:

Intento caja de Cafe:

Intento caja de Chocolate:

En este otro video se observa como los brazos del robot se recalientan a tal punto que uno funciona y el otro no:

En los dos siguiente videos se observa que si se cumple el objetivo en su totalidad.

Contacto Steven Jiménez Bustamante Estudiante Ingeniería Mecatrónica Instituto Tecnológico de Costa Rica +506 88575852 steven.jimenez.bustamante@gmail.com

Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas