Como usar en ROS2 un paquete de ROS1 generado por SolidWorks to URDF – Spanish ROS Tutorial

This tutorial is created by Rosbotics Ambassador 025 Miguel

Rosbotics Ambassador Program https://www.theconstruct.ai/rosbotics-ambassador/)

Que vamos a aprender:

  1. Como crear un paquete en ROS 2
  2. Como modificar el URDF para hacerlo compatible con Rviz 2
  3. Como modificar el launch file
  4. Como modificar el package.xml para encontrar los modelos

Lista de recursos usados en este post

  1. Usa este rosject: https://app.theconstructsim.com/l/5fea4bb1/
  2. The construct: https://app.theconstructsim.com
  3. Cursos de ROS 2:
    1. URDF para el modelado de robots en ROS2: https://app.theconstructsim.com/courses/83
    2. Conceptos básicos de ROS2 en 5 días (Python): https://app.theconstructsim.com/courses/132

Descripción

En este tutorial, aprenderás el proceso de portar un paquete de ROS 1, creado originalmente en SolidWorks, a un formato URDF compatible con ROS 2. Exploraremos los pasos esenciales para migrar tu diseño robótico al nuevo entorno, asegurando la compatibilidad y funcionalidad en la última versión de ROS. Sigue la guía detallada para una transición sin complicaciones y mantén tus proyectos robóticos al día con las últimas tecnologías.

Abriendo el rosject

Para poder seguir al pie de la letra este tutorial, necesitamos tener ROS 2 Humble instalado en nuestro sistema, e idealmente un workspace para crear los paquetes en él. Para facilitarnos el proceso, ya hemos preparado un rosject para esto: https://app.theconstructsim.com/l/5e643001/

Solo copiando el rosject (Abriendo el enlace anterior), tendremos un entorno previamente configurado.

Después de que el rosject se haya copiado correctamente en tu entorno, debemos presionar el botón Ejecuta para ejecutar e inicializar el entorno del rosject.

[Inserta imagen del Rosject]

Crear un paquete de ROS 2 con ament_python

Para poder crear nuestro paquete de ROS 2, necesitamos situarnos en el workspace, y para eso, necesitamos la terminal.

Abramos una terminal oprimiendo el botón de abrir una nueva terminal:

[Inserte imagen de la terminal]

Una vez dentro de la terminal vamos a movernos al ros2_ws/src y creamos nuestro paquete:
cd ~/ros2_ws/src
ros2 pkg create lidar3d --build-type ament_python --dependencies rclpy

Una vez creado nuestro paquete ingresamos a él y copiamos el contenido de nuestro paquete generado por Solidworks:
cd lidar3d
cp -r ../lidar3d/* .

Ahora vamos a abrir el editor de código para modificar nuestros archivos. Para abrir el editor de código oprimimos el botón de editor de código:

 

[Inserte imagen de vscode]

Nos situamos en ros2_ws/src/lidar3d/urdf y abrimos el archivo de urdf:

[Inserte imagen del URDF]

Primero vamos a añadir un nuevo objeto vacío de base_link con un joint al base_link generado por Solidworks ya que rviz 2 no soporta base_link con inercia y le cambiamos el nombre al base_link de Solidworks:

[Inserte imagen de vscode con urdf modificado]

Ahora debido a que modificamos el nombre del paquete, vamos a usar la función de sustituir palabra integrada con Vscode:

[inserte imagen de sustitución]

El siguiente paso es ir a ros2_ws/src/lidar3d/launch para crear un launch de Python compatible con ROS 2, para eso damos click derecho y Nuevo archivo y le ponemos de nombre display.launch.py

[inserte imagen del launch file]

Por ultimo antes de compilar, debemos decirle a nuestro paquete donde se encuentran los solidos URDF los meshes y los launch files, para eso nos vamos a ros2_ws/src/lidar3d y añadimos las respectivas instrucciones install para que encuentre nuestras carpetas:

[Inserte imagen del package modificado]

Ya que tenemos nuestro paquete configurado podemos compilar y ejecutar nuestro launch file para poder generar las configuraciones por defecto de rviz2

chmod +x ~/ros2_ws/src/lidar3d/launch/*.py
cd ~/ros2_ws
colcon build --packages-select lidar3d
source install/setup.bash
ros2 launch lidar3d display.launch.py

[Inserte imagen de rviz y terminal]

Para poder activar las configuraciones requeridas de rviz 2 vamos a modificar nuesto Fixed Frame y cambiamos map por base_link, ahora le damos a añadir y para poder depurar mejor nuestro objeto añadimos el arbol de TF con la opcion TF, y por último vamos a añadir el modelo de nuestro robot añadiendo RobotModel:

[Inserte imagen de rviz]

Como podemos observar, aun no se ve nuestro robot, para eso debemos en la sub-opción de Description Topic seleccionar el topico de robot_description

[Inserte imagen de rviz con el modelo]

Video Tutorial

 

Topics: python | ros1
Masterclass 2023 batch2 blog banner

Check Out These Related Posts

129. ros2ai

129. ros2ai

I would like to dedicate this episode to all the ROS Developers who believe that ChatGPT or...

read more

3 Comments

  1. Name

    Comment

    Reply
  2. Name

    wAq3j7AA

    Reply

Submit a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Pin It on Pinterest

Share This