Como simplificar a pesquisa robótica com um ROS nativo
LarLar > blog > Como simplificar a pesquisa robótica com um ROS nativo

Como simplificar a pesquisa robótica com um ROS nativo

Jun 12, 2023

Pela equipe do Robot Report | 28 de agosto de 2023

O Robot Operating System (ROS) é uma poderosa plataforma de código aberto para pesquisa robótica, mas até recentemente faltava hardware de qualidade industrial que estivesse totalmente integrado à pilha de software ROS. Os fabricantes de equipamentos robóticos usam software proprietário e de código fechado e sistemas de controle para seus manipuladores, deixando os pesquisadores com uma colina íngreme a subir para usar ROS em robôs industriais.

Atendendo a essa necessidade e aprimorando as capacidades da comunidade de desenvolvimento de ROS, Tormach criou um manipulador robótico industrial e sistema de controle baseado em ROS que evita problemas de “caixa preta” que afetam as aplicações robóticas modernas. Além disso, o sistema de controle do Tormach, PathPilot, usa Python como linguagem de programação do robô, criando uma interface de programação intuitiva para o movimento do robô e liberando o potencial do ecossistema de pacotes Python.

Esta plataforma robótica de código aberto baseada em ROS – que inclui o sistema de controle, hardware de robô industrial e acesso total a todos os parâmetros do sistema – cria uma solução rápida e acessível que leva a robótica industrial a mais pesquisadores, desenvolvedores e estudantes.

Os fabricantes de controles de robôs hesitam em permitir que os desenvolvedores de ROS acessem todos os parâmetros do sistema em seus controles de código fechado pelos seguintes motivos:

Por estas razões, as integrações entre o ROS e o hardware robótico disponível comercialmente são limitadas. Embora existam drivers para conectar o ROS a outros robôs industriais, suas implementações de largura de banda baixa (10 – 100 Hz) simplesmente alimentam waypoints por gotejamento para um controlador proprietário de código fechado.

Como resultado, o usuário pode não ter acesso para saber se o robô adere ou não às intenções de tempo, velocidade e precisão do caminho. Dados como torque do motor, corrente e erro de seguimento geralmente não estão disponíveis, e a malha de controle lenta limita severamente o que os pesquisadores podem realizar.

A plataforma experimental OpeN-AM, instalada no instrumento VULCAN, conta com um braço robótico Tormach ZA6 que imprime camadas de metal fundido para criar formas complexas. O estudo microscópico das soldas impressas em 3D com feixes de nêutrons permite aos pesquisadores compreender melhor fatores como o estresse causado pelo aquecimento e resfriamento. (Crédito: ORNL/Jill Hemman)

A pilha de hardware e software ROS/HAL oferece feedback que pode fornecer oportunidades valiosas de controle.

O ZA6 fornece o seguinte:

A maioria desses elementos de feedback concentra-se apenas nas camadas de controle de nível inferior. As camadas de controlo de nível superior podem proporcionar outras oportunidades, dependendo das necessidades de investigação.

A conexão entre o ROS e o hardware de um robô depende de uma camada de abstração de hardware (HAL). O HAL evoluiu a partir do projeto Enhanced Machine Controller (EMC) de código aberto que teve sua origem há 25 anos no Instituto Nacional de Padrões e Testes (NIST).

O desenvolvimento ativo do HAL continua até hoje por meio dos projetos LinuxCNC e Machinekit porque o HAL é flexível, 100% de código aberto e é usado em milhares de máquinas em todo o mundo.

HAL consiste em componentes modulares (módulos binários carregáveis) que se comunicam entre si atualizando, lendo e gravando pinos nomeados que se conectam por meio de sinais nomeados. De certa forma, o HAL é como o ROS, mas existem diferenças importantes:

O robô Tormach preenche a lacuna entre o ROS com o componente de código aberto hal_ros_control. A combinação de HAL e ROS permite que uma grande quantidade de dados do robô seja exposta ao usuário. Todos os dados do processo são acessíveis através de comandos shell, utilitários de registro de dados e um escopo gráfico. Todas as informações no barramento EtherCAT, incluindo torque, corrente, erro de seguimento, posição, velocidade e muito mais estão disponíveis em 1 kHz e expostas via HAL para ROS.

Como o HAL é modular e flexível, os usuários podem alterar a configuração HAL do seu robô usando componentes HAL pré-construídos ou escrevendo novos componentes em C ou Python, permitindo fácil integração com praticamente qualquer dispositivo ou processo externo.