Cómo simplificar la investigación en robótica con un ROS nativo
HogarHogar > Blog > Cómo simplificar la investigación en robótica con un ROS nativo

Cómo simplificar la investigación en robótica con un ROS nativo

Jun 12, 2023

Por el personal de The Robot Report | 28 de agosto de 2023

El Sistema Operativo de Robot (ROS) es una poderosa plataforma de código abierto para la investigación en robótica, pero hasta hace poco carecía de hardware de calidad industrial que esté estrechamente integrado con la pila de software ROS. Los fabricantes de equipos robóticos utilizan software y sistemas de control patentados de código cerrado para sus manipuladores, lo que deja a los investigadores con una cuesta empinada que escalar para poder utilizar ROS en robots industriales.

Para abordar esta necesidad y mejorar las capacidades de la comunidad de desarrollo de ROS, Tormach ha creado un sistema de control y manipulador robótico industrial basado en ROS que evita los problemas de "caja negra" que afectan a las aplicaciones de robótica modernas. Además, el sistema de control de Tormach, PathPilot, utiliza Python como lenguaje de programación del robot, creando una interfaz de programación intuitiva para el movimiento del robot y liberando el potencial del ecosistema del paquete Python.

Esta plataforma de robótica de código abierto basada en ROS (que incluye el sistema de control, el hardware del robot industrial y acceso completo a todos los parámetros del sistema) crea una solución rápida y accesible que acerca la robótica industrial a más investigadores, desarrolladores y estudiantes.

Los fabricantes de controles de robots dudan en permitir que los desarrolladores de ROS accedan a todos los parámetros del sistema en sus controles de código cerrado por las siguientes razones:

Por estos motivos, las integraciones entre ROS y el hardware de robot disponible comercialmente son limitadas. Si bien existen controladores para conectar ROS a otros robots industriales, sus implementaciones de ancho de banda bajo (10 – 100 Hz) simplemente envían puntos de ruta por goteo a un controlador propietario de código cerrado.

Como resultado, es posible que el usuario no tenga acceso a si el robot cumple o no con los intentos de precisión de sincronización, velocidad y trayectoria. Datos como el par del motor, la corriente y el error de seguimiento no suelen estar disponibles, y el lento circuito de control limita gravemente lo que los investigadores pueden lograr.

La plataforma experimental OpeN-AM, instalada en el instrumento VULCAN, cuenta con un brazo robótico Tormach ZA6 que imprime capas de metal fundido para crear formas complejas. El estudio microscópico de las soldaduras impresas en 3D con haces de neutrones permite a los investigadores comprender mejor factores como el estrés causado por el calentamiento y el enfriamiento. (Crédito: ORNL/Jill Hemman)

La pila de hardware y software ROS/HAL ofrece retroalimentación que puede brindar valiosas oportunidades de control.

El ZA6 proporciona lo siguiente:

La mayoría de estos elementos de retroalimentación se centran únicamente en las capas de control de nivel inferior. Las capas de control de nivel superior pueden brindar otras oportunidades, dependiendo de las necesidades de investigación.

La conexión entre ROS y el hardware de un robot se basa en una capa de abstracción de hardware (HAL). HAL evolucionó a partir del proyecto de controlador de máquina mejorado (EMC) de código abierto que tuvo su origen hace 25 años en el Instituto Nacional de Estándares y Pruebas (NIST).

El desarrollo activo de HAL continúa hoy a través de los proyectos LinuxCNC y Machinekit porque HAL es flexible, 100% de código abierto y se utiliza en miles de máquinas en todo el mundo.

HAL consta de componentes modulares (módulos binarios cargables) que se comunican entre sí actualizando, leyendo y escribiendo pines con nombre que se conectan a través de señales con nombre. En cierto modo, HAL es como ROS, pero existen diferencias importantes:

El robot Tormach cierra la brecha entre ROS con el componente de código abierto hal_ros_control. La combinación de HAL y ROS permite exponer al usuario una gran cantidad de datos del robot. Se puede acceder a todos los datos del proceso a través de comandos de shell, utilidades de registro de datos y un alcance gráfico. Toda la información del bus EtherCAT, incluido el par, la corriente, el error de seguimiento, la posición, la velocidad y más, está disponible a 1 kHz y se expone a través de HAL a ROS.

Dado que HAL es modular y flexible, los usuarios pueden modificar la configuración HAL de su robot utilizando componentes HAL prediseñados o escribiendo nuevos componentes en C o Python, lo que permite una fácil integración con casi cualquier dispositivo o proceso externo.

Anteriormente, utilizar un robot disponible comercialmente con ROS requería encontrar y descargar el controlador apropiado para el control, un archivo URDF para describir la cinemática; crear una configuración de moveit, elegir uno o más planificadores, solucionadores de IK y tal vez encontrar e incorporar modelos sólidos a Rviz. Configurar un nuevo robot para usarlo con ROS es un desafío incluso para desarrolladores experimentados de ROS.

Python, un lenguaje de programación que se ha utilizado durante décadas, hace que la programación de Tormachrobot sea accesible para muchos. La gran cantidad de dispositivos y software que se ejecutan en Python significa que el ZA6 tiene una cantidad aparentemente incontable de integraciones posibles.

Una configuración ROS predeterminada optimizada para el manipulador, como la proporcionada por Tormach como parte del control, ayuda a aliviar muchos de estos problemas. Se define el modelo URDF (formato unificado de descripción del robot), se configuran los canales de movimiento y se seleccionan y optimizan los planificadores de trayectorias y los solucionadores cinemáticos para que el robot esté listo para funcionar desde el primer momento.

El hardware del robot, la interfaz de usuario y el lenguaje de programación del robot están completamente documentados y respaldados por Tormach. Vaya aquí para obtener documentación.

La configuración ROS predeterminada del robot será ideal para la mayoría de las aplicaciones, lo que ahorrará meses de tiempo de configuración y también es abierta para permitir a los usuarios desarrollar sus propias configuraciones únicas a voluntad.

La falta de un lenguaje de programación de robots estándar en la industria llevó a Tormach a elegir Python para su robot ZA6. El lenguaje de programación de robots Tormach (TRPL) utiliza el intérprete Python 3 y funciona de manera similar a otros lenguajes de programación de robots comunes, con comandos para diferentes tipos de movimientos, comandos para leer y configurar entradas y salidas, y comandos para configurar y cambiar marcos de herramientas y usuarios. El idioma está documentado aquí.

Es importante tener en cuenta que cualquier programa Python 3 es un programa de robot válido. La capacidad del robot para interpretar cualquier programa Python significa que se puede importar casi cualquier paquete Python para ayudar con las tareas del robot más desafiantes. Ejemplos incluyen:

Si bien el intérprete TRPL simplifica muchas tareas de programación como comandos de movimiento y compensaciones, los usuarios avanzados que están familiarizados con ROS pueden acceder directamente a la API de ROS subyacente. Encuentre más información aquí.

Leif Sorgule, educador tecnológico en Perú, Nueva York, lanzó un conjunto de proyectos centrados en educadores utilizando ZA6.

La interfaz de usuario de PathPilot facilita la escritura de programas sencillos en modo de enseñanza para ayudar a los estudiantes a aprender los conceptos que necesitan para tener éxito en la robótica industrial. A diferencia de otros robots diseñados para el aula, el ZA6 enseña conceptos de robots industriales como marcos de usuario, marcos de herramientas, programación de puntos de referencia y tipos de puntos de referencia de ángulo cartesiano versus articulación. Otra razón para utilizar el robot como herramienta de enseñanza es su interfaz de usuario fácil de aprender.

La interfaz de usuario de PathPilot facilita la escritura de programas sencillos en modo de enseñanza para ayudar a los estudiantes a aprender los conceptos que necesitan para tener éxito en la robótica industrial. A diferencia de otros robots diseñados para el aula, el ZA6 enseña conceptos de robots industriales como marcos de usuario, marcos de herramientas, programación de puntos de referencia y tipos de puntos de referencia de ángulo cartesiano versus articulación. Otra razón para utilizar el robot como herramienta de enseñanza es su interfaz de usuario fácil de aprender.

El Dr. John Wen del Instituto Politécnico Rensselaer está desarrollando Robot Raconteur, que es un proyecto libre de regalías destinado a proporcionar una solución para el control distribuido y las interfaces de componentes. El sistema está diseñado precisamente para el escenario de un ingeniero que desea controlar un componente desde un lenguaje de alto nivel en condiciones distribuidas o no distribuidas.

Vea cómo los investigadores de RPI han integrado el robot Tormach en su programa Robot Raconteur para el control de fuerza-par.