Arreglar y crear un nuevo plugin para el agarre de la pinza en gazebo harmonic del ejercicio pick and place

Semana 6 y 7 ·

Objetivos

En esta parte del trabajo se ha abordado la adaptación y desarrollo de un plugin de agarre para Gazebo Harmonic, con el objetivo de habilitar el funcionamiento del ejercicio de Pick & Place en este entorno. Debido a la ausencia del plugin de enlace utilizado en Gazebo Classic, ha sido necesario implementar una solución alternativa compatible con la arquitectura ECS (Entity Component System) de Gazebo Harmonic.

Tareas realizadas:

- Análisis del plugin en Gazebo Classic

En primer lugar, se ha estudiado el funcionamiento del plugin de agarre utilizado en Gazebo Classic, que permite simular la sujeción de objetos mediante la creación de joints físicos entre enlaces. Este plugin utiliza directamente la API del motor físico para crear y destruir uniones, lo que facilita tanto el attach como el detach de los objetos durante la ejecución del ejercicio.

- Identificación de limitaciones en Gazebo Harmonic

Se ha comprobado que Gazebo Harmonic no ofrece una implementación equivalente directa, ya que su arquitectura basada en ECS requiere gestionar explícitamente los componentes del sistema. En particular, la creación y eliminación de uniones entre enlaces se realiza mediante componentes como DetachableJoint, lo que implica un cambio significativo en la forma de implementar el agarre.

- Desarrollo del plugin LinkAttacher para Harmonic

Se ha implementado un nuevo plugin que reproduce la funcionalidad de attach y detach en Gazebo Harmonic. Este plugin crea dinámicamente una entidad con un componente DetachableJoint que conecta el efector final del robot con el objeto a manipular. Para ello, se han desarrollado funciones de búsqueda de entidades (modelos y enlaces) dentro del Entity Component Manager y se han gestionado las solicitudes de attach y detach mediante servicios ROS 2.

- Corrección del funcionamiento del detach

Durante el desarrollo se ha identificado un problema en la operación de detach, en la que los objetos permanecían unidos al robot incluso tras solicitar su liberación. Este comportamiento se debía a una eliminación incompleta del joint en el sistema ECS. La solución ha consistido en gestionar correctamente la entidad asociada al DetachableJoint, eliminándola mediante RequestRemoveEntity y manteniendo una referencia al joint activo para garantizar su correcta destrucción.

- Integración con el HAL y ROS 2

El plugin se ha integrado con el sistema mediante servicios ROS 2 (AttachLink y DetachLink), permitiendo que el HAL invoque las operaciones de agarre y liberación durante la ejecución del ejercicio. Para ello, se ha utilizado el paquete linkattacher_msgs, asegurando la compatibilidad con la arquitectura existente.

- Validación del comportamiento

Finalmente, se ha validado el funcionamiento del plugin comprobando que el robot es capaz de agarrar y soltar objetos correctamente durante la ejecución del Pick & Place en Gazebo Harmonic. Se han realizado pruebas para verificar la estabilidad del agarre, la correcta liberación de los objetos y la compatibilidad con el resto del sistema.

← Volver a Semana 5