Boletín No. 90
1o. de mayo de 2022
DISEÑO E IMPLEMENTACIÓN DE ENTORNOS 3D PARA EL SIMULADOR GAZEBO EN VEHÍCULOS AÉREOS NO TRIPULADOS A TRAVÉS DE LA HERRAMIENTA DE GRÁFICOS BLENDER
M. C. Esther Viridiana Vázquez Carmona
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
M. C. Rodrigo Vázquez López
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
M. en C. Luis Alberto Flores Montaño
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Dr. Juan Carlos Herrera Lozada
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Instituto Politécnico Nacional
Centro de Innovación y Desarrollo Tecnológico en Cómputo
Resumen
Actualmente con el auge de nuevas tecnologías especialmente en áreas como robótica, el ser humano se ha visto en la necesidad de adaptarse a estas para colaborar en conjunto y resolver tareas que van desde entrega de paquetes hasta exploración en entornos de difícil acceso. Sin embargo, este tipo de sistemas deben cumplir con ciertos criterios como: planificación, percepción y control. Una vez que se cumplen estas métricas, por lo general los robots deben pasar por una etapa de simulación, con el objetivo de validar tareas o procesos en un entorno virtual, con características que se apegan a la realidad. En este documento se presenta el diseño de entornos virtuales a través de la herramienta para gráficos Blender, así como su implementación en el simulador Gazebo. Los entornos virtuales también llamados escenarios en Gazebo se realizaron, añadiendo modelos que simulan una ciudad, en donde un dron o vehículo aéreo no tripulado interactúa con el mundo que lo rodea. Cabe destacar que este documento no se centra en la planificación de trayectorias, si no en el diseño e implementación del entorno a través de la creación de modelos para el simulador en Gazebo. Como resultado se obtuvo un entorno al que se le añadieron texturas y objetos para tratar de apegarse a un entorno real.
1. Introducción
Hoy en día, gracias al desarrollo e integración de sistemas robóticos, nuestra calidad de vida tanto laboral como doméstica ha mejorado, debido a la colaboración entre robots puesto que ofrecen soluciones para realizar tareas precisas, repetitivas o que implican algún tipo de riesgo, además de caracterizarse por su productividad y eficiencia, mejorando el tiempo de ejecución y logrando una mayor competitividad. Sin embargo, en la navegación de un robot móvil, involucra una serie de tareas, tales como: planificación, percepción y control. Dentro de estas tareas se involucra la etapa de simulación, la cual permite realizar pruebas que consideran los parámetros y escenarios de ejecución en un entorno virtual.
1.1 Percepción, planificación y control
Como se mencionó anteriormente la navegación en robots móviles está conformada por una serie de tareas, dentro de ellas se encuentra la tarea de percepción, la cual se efectúa a través del uso de sensores, por ejemplo, una cámara web, un sensor ultrasónico, sistemas láser, un sonar, entre otros, permiten la abstracción de un entorno, la estimación de la posición y orientación, así como la detección de obstáculos. Posteriormente, el entorno se modela a través de la reconstrucción de mapas en tiempo real o mapeo, con el objetivo de evitar colisiones o evadir obstáculos durante la navegación. Por lo que respecta a la tarea de planificación, tiene como propósito generar una trayectoria o misión para el vehículo a través del uso de algoritmos. Cabe destacar que en esta etapa también puede integrarse la tarea de control, en la que se incluyen modelos cinemáticos con el objetivo de que el robot móvil sea capaz de tomar decisiones dentro de un entorno determinado. Por ello es conveniente agregar una etapa de pruebas dentro de entornos virtuales para emular el funcionamiento del robot y así evaluar su desempeño, lo cual representa ser rápido y menos costoso.
1.2 Gazebo
Gazebo es un simulador de entornos virtuales 3D, capaz de simular robots bajo diversas condiciones, en un entorno diseñado por el propio usuario, agregando configuraciones que se apeguen a un entorno real. Los entornos de Gazebo son llamados también worlds (archivo .world), visualmente están integrados por una colección de robots, objetos (casas, luces, paredes, mesas, entre otros), propiedades físicas y parámetros ambientales (luz, cielo, entre otros). De forma abstracta es un archivo que contiene una descripción SDF en el que se pueden combinar diferentes tipos de datos y unificarlos para utilizarlos como una sola herramienta (lenguaje unificado que describe objetos y entornos en simulación, visualización y control) en formato XML (open source robotics foundation,2014) .
Por otra parte, los objetos físicos que integran el archivo world se denominan modelos (pueden ser una cancha, carro, cocina, caja, una figura geométrica, entre otros), los cuales son creados a partir de una herramienta de modelado 3D, en software como Blender, Maya, SolidWorks o CAD (en inglés Computer-Aided Design) y se denominan mallas (en inglés meshes de tipo .dae, .stl y .obj).
1.3 Estructura de un modelo en Gazebo
Los modelos en gazebo están integrados por materiales (materials), mallas (meshes), miniaturas (thumbnails), el archivo de descripción del modelo SDF y un archivo de metadatos del modelo en formato XML. En la figura 1 se describe a detalle la estructura que debe tener un directorio para modelos en Gazebo (open,2014).
Figura 1. Estructura y formato específicos de carpetas contenidas dentro del directorio de modelos. |
2. Desarrollo
Para este documento, se va a trabajar con el diseño de un laberinto (3dmdb,2014), posteriormente se realizará el proceso para exportar este diseño a un escenario para el simulador de Gazebo. Para ello se utilizó el software Blender 2.79 (Blender,2022) donde se aplicaron las texturas. En la figura 2 se describe cada paso.
Figura 2. En la primera figura se muestra el proceso de importar un objeto, en este caso la corteza de un laberinto, este puede ser un archivo de tipo .stl, .obj , entre otros. La figura del centro muestra la vista “edit view” del software donde se observa cada una de las caras a las cuales se aplicará la textura. La figura final muestra el objeto 3D, al cual se le aplica la textura 2D a través de la instrucción “Unwrap”. |
Posteriormente se añaden las texturas a cada una de las caras, en este caso se utilizó una textura de pasto de tipo .png. En la figura 3 se describe el proceso para texturizar (tutoriales de aplicaciones y video juegos,2022).
Figura 3. En la primera figura se muestra la ventana de propiedades donde se encuentra la pestaña de material y se crea un nuevo material a través de la instrucción “assign”. En la figura del centro se observa la opción textura, para ello se agrega la imagen por medio de la instrucción “image”. En la figura final se observa la figura de laberinto texturizada a través de la vista “texture paint”. |
La imagen que se obtiene se exporta a un tipo de archivo llamado Collada que significa: actividad de diseño colaborativo con extensión .dae. Este tipo de formato hacen referencia a archivos de imagen adicionales que actúan como texturas desplegadas en el objeto 3D . En la figura 4 se muestra el proceso para exportar este tipo de archivos que es usualmente utilizado en el simulador de Gazebo (esri,2018).
Figura 4. En la primera figura se puede observar el modelo texturizado. En la segunda figura se muestran los parámetros que se requieren para exportar adecuadamente el archivo .dae. |
3. Resultados
A partir de este punto se trabaja con los archivos .dae , model.config y model.sdf , cabe considerar que es necesario trabajar donde esta instalado el simulador.
En este caso se realizó la parte del diseño en Windows 11 y la parte de implementación sobre Ubuntu 18.04. Aunque ambos se pueden trabajar en un solo sistema operativo.
A continuación, se presentan los parámetros que usualmente deben llevar los archivos antes mencionados.
Comenzamos por el archivo model.config este archivo, usualmente este archivo contiene la información de licencia para los modelos, un nombre para la base de datos y una lista de todos los modelos válidos. El formato se muestra en la figura 5.
Figura 5. A través del nombre, la base de datos es utilizada por la GUI y otras herramientas. |
El archivo model.sdf se muestra en la figura 6. Este archivo es un formato XML que describe objetos y entornos para simuladores, visualización y control de robots (open source robotics foundation,2020).
Figura 6. El archivo model.sdf cuenta con distintos parámetros sin embargo aquí se muestra un archivo base para poder crear un modelo sencillo en Gazebo. |
La estructura de archivos que debe tener la carpeta del modelo es la siguiente:
El archivo .dae que se generó en Blender, debe estar contenido en una carpeta con los siguientes archivos, los cuales se muestran en la figura 7.
Figura 7. Existe una carpeta llamada meshes, la cual contiene el archivo .dae. Hay una carpeta llamada Scripts donde se encuentra el archivo material que se observa en la figura final. Posteriormente se encuentra una carpeta llamada textures en la que se encuentra el fondo.png. Finalmente, en la carpeta raíz se encuentra el archivo .sdf y .config. |
Para mandar a llamar el modelo en Gazebo procedemos con los siguientes pasos, los cuales se muestran en la figura 8.
Figura 8. En la primera figura se muestra el simulador de Gazebo, en la parte izquierda del menú para editar el modelo se agrega la ruta donde se tiene la carpeta que contiene los archivos antes mencionados. Posteriormente se arrastra el archivo al centro de los ejes. En la figura central se observa un vehículo aéreo no tripulado, con el objetivo de complementar el escenario de laberinto y utilizarlo para fines de simulación. Finalmente se observa el laberinto con las texturas que se eligieron para este escenario. |
Cuando se tiene el modelo listo y ya no se van a incrustar otros objetos, colores, u otras características, se puede guardar el archivo como .world en la carpeta de Gazebo …/usr/share/gazebo-9/worlds y posteriormente realizar simulaciones.
Conclusiones
En este documento se muestra el diseño e implementación de un escenario en Blender para Gazebo. En el que se importó solo la parte de la estructura de un laberinto, posteriormente se añadieron las texturas. Luego se editaron los archivos que necesitan los modelos en gazebo. En este trabajo no se realizó alguna simulación con el escenario lo cual se deja para trabajo a futuro.
Referencias
- 3dmdb, Laberinto 3D Models. (2014). Recuperado de: https://3dmdb.com/en/3d-models/laberinto/
- Blender. About – Blender (2022). Recuperado de: https://www.blender.org/about/
- esri. (2018). Una vista general del conjunto de herramientas A Collada,Recuperado de: https://pro.arcgis.com/es/pro-app/latest/tool-reference/conversion/an-overview-of-the-to-collada-toolset.htm
- Open Source Robotics Foundation. (2014). Model structure and requirements, Recuperado de: http://gazebosim.org/tutorials?tut=model_structure
- Open Source Robotics Foundation. (2020). SDFormat Home, Recuperado de: http://sdformat.org
- Open Source Robotics Foundation. (2014). Gazebo Tutorials, Recuperado de: http://gazebosim.org/tutorials
- Tutoriales de aplicaciones y video juegos. (2022). ), Blender Render, agregar imagen/textura, Recuperado de: https://appgametutoriales.com/blender-render-agregar-imagen-textura/