Diseño y desarrollo de un simulador de código abierto para un robot submarino de propósito general

Design and development of an open source simulator for a general purpose submarine.

Eva Corella-Solís1

Corella-Solís, E. Diseño y desarrollo de un simulador de código abierto para un robot submarino de propósito general. Tecnología en Marcha. Vol. 34, especial. Movilidad Estudiantil. Octubre 2021. Pág 101-108.

https://doi.org/10.18845/tm.v34i5.5920

Palabras clave

Gazebo; modelado; robot; simulador; submarino.

Resumen

El proyecto desarrollado en esta tesis es un simulador para un robot submarino, el cual cuenta con 6 grados de libertad, haciendo uso de ROS, Gazebo y UUV Simulator para su funcionamiento. Para el desarrollo del proyecto se generó un modelado 3D y un modelado físico matemático para adaptar el submarino Kai, del Grupo Integrado de Ingeniería, de la Universidad de la Coruña, al vehículo implementado en el simulador. También se realizó un mundo para que el submarino opere en condiciones similares a las reales. Al final de la tesis se presenta la documentación y los resultados que respaldan el proyecto.

Keywords

Gazebo; modeling; robot; simulator; submarine.

Abstract

The project development in this thesis is a simulator for an underwater robot, which counts with 6 degrees of freedom, using ROS, Gazebo and UUV Simulator for his operation. For the development of the project, a 3D modeling and a mathematical physical modeling was created to adapt the submarine Kai, from El Grupo Integrado de Ingeniería, of the Universidad de la Coruña, to the vehicle implemented in the simulator. A world was also made for the submarine to operate in conditions like the real ones. The documentation and the results that validate this project are at the end of the document.

Introducción

El proyecto consiste en la creación de un simulador para un robot submarino del Grupo Integrado de Ingeniería, de la Universidad de La Coruña, el mismo cuenta con motores, luces, cámara, láser, sonar imagen, sonar obstáculos, elementos que están representados en el UUV (Unmanned Underwater Vehicles). Se utiliza un modelado físico y matemático para describir la planta, estos datos son utilizados por el simulador, para generar movimientos y acciones de acuerdo con sus inercias y momentos.

Plataformas utilizadas

Para realizar el proyecto se hizo uso de dos plataformas, ROS y Gazebo, la elección se dio posterior a una investigación, la cual indico que Gazebo resultaba ser la mejor elección para desarrollar el simulador. Una de las ventajas que presenta Gazebo es su capacidad de permitir variar todos los aspectos que afectan el funcionamiento de una simulación.

Se logra modificar todos los parámetros gracias a que tiene dos entornos, por lo cual es bastante editable, requiere más complejidad, ya que las rutinas no están prediseñadas, pero brinda más libertad a la hora del diseño del mundo y de los modelos. Estos entornos son Gazebo Server, en donde se trabaja todo el código de los modelos, sin existir ninguna interfaz gráfica, y Graphical Client, en donde se puede modificar la simulación y se ven todos los elementos que la componen. [1]

Modelado matemático

Para la implementación del simulador era necesario realizar un modelado completo del vehículo, primero se mostrarán las ecuaciones que rigen el modelado matemático de la planta.

La notación utilizada para el desarrollo matemático se muestra en el cuadro 1, así como en la figura 1.

Cuadro 1. Notación de movimientos para submarinos.

Movimiento

Nombre

Posición

Velocidad

Fuerza

Translación en x

Surge

x

u

X

Translación en y

Sway

y

v

Y

Translación en z

Heave

z

w

Z

Rotación en x

Roll

Φ

p

K

Rotación en y

Pitch

θ

q

M

Rotación en z

Yaw

Ψ

r

N

Figura 1. Notación en robótica submarina.

El movimiento del submarino en el simulador está dado por la formulación vectorial desarrollada por Fossen, en su libro Handbook of marine craft hydrodynamics and motion control. [2]

La ecuación de Fossen se muestra a continuación:

Analizando cada sección, primero se tiene la matriz M, la cual contiene la información de la inercia y la matriz de la masa añadida.

En la matriz C se encuentra la información de las fuerzas centrifugas, así como de coriolis y en la matriz D se representa la información de la viscosidad, y el vector g(η), que contempla la fuerza de gravedad y la fuerza de flotación.

En el otro lado de la ecuación se encuentra el vector τ que contiene las fuerzas provocadas por los propulsores del submarino. Los últimos vectores son go, el cual representa la fuerza de lastre, y el vector w, que contiene las perturbaciones ambientales, esto contempla desde el viento hasta las corrientes marinas.

Modelado 3D

Para el modelado 3D se hizo uso de SolidWorks ya que presenta la herramienta SW2URDF, con la cual se puede modelar un elemento y convertirlo en un archivo compatible para trabajar en Gazebo.

En la figura 2 se muestra el modelo realizado en SolidWorks renderizado.

Figura 2. Modelado 3D del submarino.

Además, era necesario crear un elemento de colisión, ya que el mallado anterior no contiene propiedades físicas, por lo cual funciona como un elemento visual, para comprobar su funcionamiento en el mundo se determino el cuadrado de color verde que se aprecia en la figura 3.

Figura 3. Medidas generales del modelo de colisión.

Diseño del mundo

Para poner el submarino en funcionamiento es necesario tener un ambiente realista, en el cual sea posible probar las propiedades físicas del submarino. Se realizó un fondo del océano mediante un mapeado de puntos en Python, con esto se generó un mallado, como se ve en la figura 4.

Figura 4. Mapeado 3D de los puntos para la superficie del fondo del mar.

Resultados

Para la comprobación del funcionamiento se verificaron las propiedades programadas para el simulador, dentro de las cuales destacan la capacidad de flotabilidad del vehículo, así como la representación de una colisión entre el mundo y el vehículo.

Mundo y Vehículo

Los elementos se ingresan en el simulador de tal forma que se abren de manera simultánea, en las imágenes a continuación se muestra el vehículo y el mundo en funcionamiento en la plataforma de Gazebo.

Figura 5. Vehículo en Gazebo.

Figura 6. Mundo en Gazebo.

Movimiento

Se logró la implementación de 4 movimiento del submarino:

Rotacional en el eje z [verde].

Longitudinal en el eje z [verde].

Longitudinal en el eje y [amarillo].

Longitudinal en el eje x [rojo].

Figura 7. Movimientos del submarino.

Flotabilidad

Para comprobar la flotabilidad del vehículo se coloco dentro del océano, sin ningún control y este respondió al irse hacia la superficie, siendo afectado por el movimiento de las olas del océano.

Figura 8. Submarino flotando en la superficie del océano.

Colisión

Tanto el mundo como el vehículo cuentan con elementos solidos de colisión, que permiten a la simulación comprobar los limites que tienen los elementos. En la imagen que se muestra a continuación se puede ver como el submarino está chocando directamente con el fondo del océano.

Figura 9. Colisión entre el submarino y el fondo del océano.

Conclusiones

De acuerdo con la investigación realizada, el programa para la realización del simulador que más se adaptaba a las necesidades fue Gazebo, el cual presentó elementos de compatibilidad con ROS, que permitieron el desarrollo de propiedades hidrostáticas necesarias para el submarino.

La formalización del modelo físico matemático del vehículo permitió la sustitución de valores dentro del código de simulación, así como la comprensión de las fuerzas presentes en el submarino.

El modelo 3D del submarino corresponde visualmente con el real, y genera los movimientos básicos del submarino en sus grados de libertad.

Se generó un modelado del mundo el cual contempla dos secciones con densidades distintas, y además elementos solidos de colisión, que permiten el manejo del submarino como si este estuviera sumergido en el mar.

Referencias

[1] Cuevas, C. (2016). Ros-Gazebo. Una valiosa herramienta de vanguardia para el desarrollo de la robótica. Recuperado de https://www.researchgate.net/publication/315920834_Ros-gazebo_una_valiosa_Herramienta_de_Vanguardia_para_el_Desarrollo_de_la_Robotica

[2] Fossen, T. (2011). Handbook of marine craft hydrodynamics and motion control. Recuperado de http://dl.kashti.ir/ENBOOKS/HMCH.pdf


1 Ingeniera Mecatrónica. Universidad de la Coruña, Escuela Politécnica Superior, Grupo Integrado de Ingeniería. España.
Correo electrónico: evamcorella@gmail.com
https://orcid.org/0000-0003-4751-2567