End-User Robot Programming
- Também chamado: end-user programming, EUP
- Categoria: Control › Human in the loop
- Tags: human-robot-interaction, robot-programming, usability, collaborative-robots, programming-by-demonstration
Métodos e ferramentas que permitem a pessoas sem conhecimento de robótica ou de programação criar, adaptar e redirecionar comportamentos de robôs por conta própria, onde e quando precisarem.
Definição
A programação de robôs pelo usuário final (end-user robot programming) é a área da robótica e da interação humano-computador que se ocupa de permitir que as pessoas que de fato usam robôs, como operários de fábrica, técnicos, professores ou cuidadores, digam a um robô o que fazer sem precisar de habilidades especializadas de programação. Ela aplica aos robôs ideias do desenvolvimento pelo usuário final em software, com a diferença de que, nos robôs, os programas também precisam LiDAR com movimento físico, sensoriamento, incerteza e segurança.
Existem muitas abordagens, e elas são frequentemente combinadas. A programação por demonstração permite que os usuários mostrem a tarefa, por exemplo por meio do ensino cinestésico, em que movem o braço com a mão, ou por teleoperação. Ambientes de programação visual, incluindo editores baseados em blocos e ferramentas de fluxograma ou de linha do tempo, permitem que os usuários montem ações graficamente. Os consoles de programação (teach pendants) de braços industriais e colaborativos oferecem cada vez mais modelos de tarefa no estilo assistente. Regras de gatilho-ação, interfaces de realidade aumentada que mostram os movimentos planejados no próprio local e interfaces de linguagem natural, hoje muitas vezes construídas sobre grandes modelos de linguagem que geram código ou planos de tarefa, são outras opções. Árvores de comportamento e máquinas de estados servem com frequência como a representação subjacente do programa.
Os desafios centrais são a expressividade, para que os usuários possam descrever tarefas reais; a correção, para que o que eles criam faça o que pretendiam; e a segurança, para que um programa escrito por um não especialista não crie perigos como colisões, violações de limites de junta, velocidade excessiva perto de pessoas ou pontos de esmagamento. As abordagens para esses desafios incluem pré-visualizações em simulação, verificação e checagem automáticas de programas, críticos ou validadores que codificam conhecimento especializado e dão retorno, e manter o usuário no ciclo para confirmar ou corrigir o resultado. O ensino cinestésico, neste site, é um método de entrada dentro da programação pelo usuário final; a área mais ampla também abrange como os programas são representados, editados, verificados e mantidos.
Por que importa
Robôs em pequenas fábricas, laboratórios, casas e ambientes de cuidado precisam ser redirecionados para novas tarefas com frequência, e contratar especialistas em robótica para cada mudança não é prático. A programação pelo usuário final determina se um robô pode ser adaptado pelas pessoas que trabalham com ele, e é onde os requisitos de usabilidade e de segurança se encontram de forma mais direta.
Principais aplicações
- Redirecionamento de braços colaborativos para novas tarefas na pequena e média manufatura
- Programação de robôs sociais e de serviço para ambientes específicos
- Robótica educacional e ensino de programação
- Robôs assistivos personalizados por cuidadores ou usuários
- Automação de laboratório configurada por cientistas
Na prática
Uma pequena oficina de eletrônica usa um braço colaborativo para alimentar máquinas. Um técnico descreve uma nova tarefa em linguagem simples: pegar placas de uma bandeja, colocá-las em um testador e separá-las em duas caixas conforme o resultado. Um modelo de linguagem transforma a descrição em um programa no framework de tarefas do robô. Antes da execução, um conjunto de críticos automáticos verifica o programa em simulação em busca de colisões, alcançabilidade, velocidade perto da posição do operador e pontos de esmagamento entre o braço e o testador, e relata os problemas em linguagem simples. O técnico corrige as etapas sinalizadas movendo o braço com a mão até waypoints corrigidos, pré-visualiza o movimento em uma visualização de RA e depois o executa em velocidade reduzida nos primeiros ciclos.
Equívocos comuns
- Programação pelo usuário final é só uma interface de usuário mais simples — ela também precisa de formas de verificar, depurar e executar com segurança o que os não especialistas criam
- A linguagem natural resolve a programação de robôs — programas gerados podem estar errados ou ser inseguros e ainda precisam de verificação, retorno e confirmação do usuário
- Programação por demonstração e programação pelo usuário final são a mesma coisa — a demonstração é uma abordagem; outras incluem interfaces visuais, baseadas em regras e de linguagem
- Os usuários finais só precisam gravar movimentos — tarefas reais também exigem condições, sensoriamento, tratamento de erros e laços
Quem deve saber
- Desenvolvedores de ferramentas e interfaces de programação de robôs
- Engenheiros de aplicação que implantam cobots com operadores não especialistas
- Pesquisadores de HRI e HCI
- Gerentes de produto de robôs de serviço e colaborativos
Tecnologias relacionadas
- Programação por demonstração (Programming by Demonstration)
- Programação visual baseada em blocos (Block-Based Visual Programming)
- Consoles de programação (Teach Pendants)
- Interfaces de realidade aumentada (Augmented Reality Interfaces)
- Grandes modelos de linguagem para geração de código (Large Language Models for Code Generation)
- Programação gatilho-ação (Trigger-Action Programming)
Termos relacionados
Projetos relacionados
- Reachy Mini: Open-source desktop robot from Pollen and Hugging Face with an expressive 6-DoF head
- RAI: Vendor-agnostic agent framework for ROS 2 robots and physical AI
- Assistive Gym: Physics simulation framework for training assistive robots in caregiving tasks