Proyecto MissionLab-Carmen

Pensamos que MissionLab es la mejor solución para el desarrollo de misiones multirrobot de forma sencilla y rápida. No existe actualmente otro entorno de desarrollo de código abierto que permita la creación de misiones complejas en la que participen y colaboren varios robots sin escribir ni una sola línea de código. Por eso, hemos trabajado duro para conseguir que MissionLab esté disponible en las últimas distribuciones Linux y para integrarlo con Carmen. Vea nuestras motivaciones.

MissionLab es un entorno de desarrollo de robots (RDE) creado en GeorgiaTech para la programación de comportamientos de robots individuales o grupos de robots. Para obtener más información consulta su página oficial.

Carmen es un RDE creado en la Universidad de Carnegie Mellon que proporciona primitivas básicas para la navegación de robots. Puedes conseguir más información en su página oficial

Puedes descargar el código fuente o un paquete precompilado para tu distribución Linux y echar un vistazo a nuestras demos y vídeos.

Motivaciones de MissionLab-Carmen

La versión oficial de MissionLab dejó de actualizarse hace 7 años, no es compatible con distribuciones actuales de Linux y no puede competir en número de algoritmos implementados con otros entornos mucho más extendidos actualmente como ROS u OROCOS.

Con este proyecto se tratan de solucionar estos problemas. Se ha actualizado MissionLab, corrigiendo bugs y sustituyendo sus componentes más problemáticos y desactualizados (CThreads e IPT) por equivalentes actuales con soporte (pthreads e IPC).

La integración con CARMEN aumenta el número de drivers disponibles y mejora sus capacidades de localización, navegación y tratamiento de mapas.

Descargar MissionLab-Carmen

Actualmente, proporcionamos paquetes precompilados para las siguientes distribuciones:

Utilizamos el servicio OpenSuse Build Service para generar los paquetes y distribuirlos. Entra en la web de este proyecto en ese servicio, haz clic en el nombre de tu distribución, selecciona el paquete apropiado para tu arquitectura, descárgalo, ¡y disfrútalo!

Aquí, también puedes descargar el código fuente y compilarlo tu mismo si lo prefieres. Probablemente necesitarás nuestras instrucciones de compilación. Una vez que lo tengas instalado, prueba nuestras demos.

Compilar MissionLab-Carmen

Si quieres cambiar o recompilar el código, te recomendamos instalar primero el paquete correspondiente para tu distribución y arquitectura. Así se instalarán automáticamente todas las dependencias.

Una vez instalado el paquete, podrás encontrar una copia del código fuente en la carpeta /usr/src. Para compilar, abre un terminal en esta carpeta como root y ejecuta:

]# export BUILD_HOME=/usr
]# export DESTDIR=/usr
]# ./configure            (Presiona intro en todas las preguntas)
]# make 

Una vez que la compilación ha terminado, puedes hacer modificaciones en un paquete (por ejemplo cfgedit) y recompilar sólo la carpeta correspondiente:

Si tienes problemas, lee la sección FAQ o contacta con nosotros.

Demos de MissionLab-Carmen

Este paquete instala MissionLab y Carmen. Puedes utilizarlos normalmente por separado o hacerlos colaborar gracias a la integración que hemos desarrollado.

Para aprender cómo crear y ejecutar nuevas misiones, consulta su página oficial y su manual de usuario. Hemos creado una demo para probar si MissionLab está correctamente instalado en tu sistema. Para ejecutarla, consulta este enlace.

También hemos creado otra demo para probar Carmen. Para aprender a manejar mejor este framework, sigue su guía oficial.

La integración que hemos realizado, puede probarse mediante su propia demo. La integración incluye el uso de los drivers de Carmen (base y láser) y las funcionalidades de localización en hserver, el uso del módulo de navegación de Carmen en misiones de MissionLab usando el nuevo comportamiento “CARMEN_Navigate” y el control de cualquier robot de Carmen utilizando cualquier comportamiento de MissionLab.

Demo de MissionLab

Para probar si MissionLab está instalado correctamente en tu sistema, por favor, abre un terminal y ejecuta:

]$ cd /usr/demos/grousal_demos/missionlab
]$ ./start_demo.sh	
    (Deberías ver mlab con tres robots moviéndose alrededor de un cuadrado)
]$ ./stop_demo.sh 

No ejecutes estos comandos como root. No es necesario ni se recomienda. Si quieres hacer cambios en esta demo, es preferible que copies la carpeta completa en otro lugar y utilices cfgedit para modificar la misión (ejecutando “cfgedit missionlab.cdl”).

Demo de Carmen

Para probar si Carmen está instalado correctamente en tu sistema, abre una terminal y ejecuta:

]$ cd /usr/demos/grousal_demos/carmen
]$ ./start_demo.sh
    (Deberías ver un robot de Carmen en los visores robotgui y navigatorgui)
    (Coloca el robot utilizando el botón "place robot" en navigatorgui)
    (Coloca la meta para tu robot usando el botón "place goal" en navigatorgui)
    (Pulsa el botón "Go" en navigatorgui, para que el robot vaya al objetivo)
]$ ./stop_demo.sh 

No ejecutes estos comandos como root. No es necesario ni se recomienda. Para aprender más sobre el manejo de Carmen, puedes seguir su guía oficial.

Demo de la Integración

Para probar si MissionLab y Carmen están correctamente instalados y pueden cooperar con la integración que hemos implementado, por favor, abre un terminal y ejecuta:

]$ cd /usr/demos/grousal_demos/missionlab_carmen
]$ ./start_demo.sh
    (Deberías ver tres robots moviéndose en un mapa de grandes dimensiones)
    (Varios visores deberían mostrar la misión: mlab, robotgui y navigatorgui)
]$ ./stop_demo.sh 

El primer robot está controlado completamente por MissionLab. El segundo está simulado mediante Carmen. Además, usa el módulo de navegación, el módulo de localización y lecturas láser de Carmen. Sin embargo, su comportamiento está implementado en una misión de MissionLab. El tercer robot está simulado por MissionLab, pero usa lecturas láser y el módulo de navegación de Carmen.

Vídeos de MissionLab-Carmen

Aquí puedes ver una toro mecánico industrial navegando de forma autónoma durante más de 20 minutos gracias a MissionLab-Carmen. Utiliza un driver de MissionLab para controlar la dirección y la velocidad, y leer encoders y sónares. Utiliza también funcionalidades de Carmen como el driver de láser, el módulo de localización, el de navegación y el módulo “robot” para evitar obstáculos. Todo ello controlado por una misión de MissionLab.

https://youtu.be/hoMR2whFuYs

FAQ sobre MissionLab-Carmen

1) Al compilar, aparece este error: “error fatal: ipt/message.h: No existe el fichero o el directorio”
  • Tus variables de entorno (BUILD_HOME and DESTDIR) no están correctamente configuradas. Quizá has cambiado de usuario o de terminal después de exportarlas. Si estás usando “sudo”, ten en cuenta que, por defecto, las variables de entorno no se conservan. En este caso, te recomendamos que uses “su” o “sudo su” para convertirte en superusuario y después sigas las instrucciones sin usar “sudo”.
2) Problemas activando los gráficos 3D en mlab, errores gráficos o falta GL/GLwDrawA.h al compilar.
  • Puedes activar las funciones de visualización 3D de mlab ejecutando el script ./configure y recompilando. Esto permite a mlab mostrar terrenos en 3D, aunque esta funcionalidad no está probada en este paquete. Adicionalmente, activar esta funcionalidad puede producir problemas con algunos drivers de tarjetas gráficas, incluso al mostrar gráficos en 2D. Recomendamos tarjetas gráficas Nvidia porque hemos detectado estos problemas con varias tarjetas ATI e Intel. Para evitar problemas de compilación, debes instalar el paquete libGLw-devel, MesaGLw-devel or libglw1-mesa-dev dependiendo de tu distribución.
3) Muchos componentes no funcionan después de compilar directamente el código del .tar.gz
  • Para que muchos componentes funcionen es necesario que hayas ejecutado como root “make install” después de la compilación. Si quieres evitar esto porque no tienes los suficientes permisos o por cualquier otra razón, abre el archivo Makefile, cambia la línea “export DESTDIR=/usr” por “export DESTDIR=`pwd`”, ejecuta “make clean”, después “make” y finalmente añade la subcarpeta “bin” que se genera a tu variable de entorno PATH.

Envíenos sus preguntas y sugerencias a fjaviersr@usal.es

Créditos de MissionLab-Carmen

Missionlab:

  • Copyright 1994 – 2006 Georgia Tech Research Corporation. Todos los derechos reservados.

Carmen:

  • Copyright (c) 2002 Michael Montemerlo, Nicholas Roy, Sebastian Thrun, Dirk Haehnel
  • Cyrill Stachniss and Jared Glover
  • Licenciado bajo GNU GPL v2

ICP:

  • Copyright (c) 2008, Carnegie Mellon University
  • Autores principales: Reid Simmons, Christopher Fedor, Richard Goodwin, Trey Smith
  • Todos los derechos reservados

Nuevos drivers de hserver, componentes (como IPC-Adapter) y modificaciones en este paquete:

  • Copyright (c) 2013, Universidad de Salamanca
  • Todos los derechos reservados
  • Licenciado bajo GNU GPL v2 u otra versión superior

Contactar sobre MissionLab-Carmen

Por favor, escriba a fjaviersr@usal.es si tiene alguna pregunta, sugerencia o problema con la instalación y uso de este software.