crea tu modelo urdf con Fusion360

Crea el modelo URDF de tu robot con Fusion360

Aunque es sencillo crear un robot a partir de formas básicas como bloques, esferas y cilindros directamente en nuestro archivo URDF, podemos realizar diseños mucho más vistosos y complejos empleando un software de diseño 3D y luego exportando el modelo a URDF mediante el uso de un plugin.

En este artículo vamos a ver cómo hacerlo utilizando el programa Fusion360 de Autodesk, que tiene una versión gratuita para uso personal que puede descargarse desde el siguiente enlace https://www.autodesk.com/products/fusion-360/personal, y el plugin fusion2urdf desarrollado por syuntoku14, que puede descargarse desde https://github.com/syuntoku14/fusion2urdf e instalarse siguiendo las instrucciones que se indican en la propia página.

El proceso a seguir para elaborar el modelo no es complicado, pero sí hay que cumplir una serie de requisitos o de lo contrario el plugin no será capaz de generar correctamente el archivo URDF. Como ejemplo vamos a diseñar un vehículo muy simple con dos ruedas motrices más una tipo caster, sobre el que vamos a montar un sensor LIDAR y una cámara. 

En este post no entraré en detalles sobre el uso propiamente dicho de Fusion360, dando por hecho que el lector tiene al menos unos conocimientos básicos de la aplicación, y me centraré solo en los pasos a realizar para poder generar el archivo URDF de forma automática.

PASO 1. Diseñar cada una de las partes del robot (links)

Lo primero es crear cada una de las partes de nuestro robot. Es obligatorio que las partes sean componentes, no cuerpos. Por lo que si realizamos el diseño mediante cuerpos tendremos que convertirlos.

Cada uno de estos componentes constituirá un link en el archivo URDF, siendo el chasis o la base del robot el link padre sobre el que irán colgando los demás. Así pues, en nuestro ejemplo vamos a considerar 7 links: el chasis, las 2 ruedas motrices, la rueda caster, el sensor LIDAR, la cámara y su soporte.

El primer paso por tanto es diseñar el chasis.

Una vez que tenemos el chasis añadimos las ruedas motrices.

La rueda tipo caster la diseñaremos como un cilindro terminado en esfera.

Continuamos añadiendo el sensor LIDAR y la cámara.

Y por último definimos los materiales de cada parte.

PASO 2. Asignar al componente asociado a la base o chasis el nombre base_link

Para que el plugin funcione es totalmente obligatorio asignar el nombre base_link al componente asociado a la base o chasis del robot. Si no lo hacemos nos dará un error al ejecutarlo. El resto de componentes pueden tener cualquier nombre pero deben comenzar en minúscula.

PASO 3. Definir las uniones entre cada uno de los componentes (joints)

Para nuestro ejemplo tendremos que definir las siguientes uniones:

 

      • TIPO REVOLUCION. Entre las ruedas motrices y el chasis.
      • TIPO RÍGIDA. Entre la rueda caster y el chasis, entre el sensor LIDAR y el chasis, entre el soporte de la cámara y el chasis, y entre la cámara propiamente dicha y su soporte.

A la hora de definir cada una de la uniones en Fusion360 es requerido para que el plugin funcione que el componente hijo debe ser siempre el que seleccionemos como Component1 y el padre debe ser el seleccionado en Component2.

Unión entre el chásis y la rueda motriz derecha

PASO 4. Ejecutar el plugin para exportar a URDF.

Una vez definidas todas las uniones ya podemos exportar el modelo a URDF ejecutando el plugin. Para ello pulsamos Shift+S, seleccionamos URDF_Exporter y hacemos click en RUN.

Tras elegir la ruta donde queremos que nos guarde la salida el plugin crea una carpeta con el nombre _description y en su interior genera la estructura de un paquete compatible con ROS1 (no con ROS2).

Dentro de la carpeta meshes se encuentran los archivos .stl que definen la forma de cada uno de los componentes del modelo:

Y en la carpeta urdf es donde realmente se encuentran los archivos con la definición de nuestro modelo:

Aunque toda la información de nuestro modelo puede recogerse en un único archivo es una buena práctica separarla en varios en función del tipo información que contiene. Así pues, la información contenida en los archivos que genera el plugin es la siguiente:

      • .xacro. Es el archivo principal, donde realmente se encuentra la información URDF de nuestro modelo. Contiene la definición de sus diferentes componentes (links) y las articulaciones (joints) entre ellos.
      • .gazebo. Contiene información para la simulación del modelo en Gazebo. En el se indican los plugin que se deben cargar por ejemplo para realizar el control de los actuadores asociados a cada articulación o simular una cámara o un sensor LIDAR, así como las referencias de los componentes del modelo junto con sus características como el color, si se ve afectado por la gravedad, si puede colisionar con otros componentes, etc.
      • .trans. En él se indica para cada articulación móvil la relación que existe entre el actuador y la propia articulación, por ejemplo si hay una reductora, así como el tipo de controlador de ROS_CONTROL a utilizar.
      • materials.xacro. Almacena la información del color de los materiales asignados a los componentes.

Con esto ya tendríamos el modelo URDF del robot. No obstante, si queremos usarlo en Gazebo todavía nos faltaría incorporar en el archivo .gazebo las instrucciones necesarias para cargar los plugins para poder controlar el robot mediante el envío de mensajes twist desde ROS y simular tanto el sensor LIDAR como la cámara, e incorporar todos los archivos en un paquete compatible con ROS2….pero eso lo veremos en otros posts

Comparte este artículo:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *