Controle Remoto de Robôs Usando Realidade Virtual
Um novo sistema de VR permite que os usuários controlem robôs à distância.
― 8 min ler
Teleoperação é quando uma pessoa controla um robô à distância. Esse método é útil em várias áreas, especialmente nas pesquisas em robótica. Um grande desafio em ensinar robôs a agir é conseguir boas referências de comportamento de especialistas. Isso envolve gravar como uma pessoa habilidosa realiza tarefas para que o robô possa aprender com esses exemplos. No entanto, coletar gravações de alta qualidade pode levar muito tempo e esforço. Isso pode limitar o número de demonstrações disponíveis para o robô aprender.
Para resolver esse problema, foi introduzido um novo método que usa Realidade Virtual (VR) para controlar um robô chamado Franka Emika Panda. Essa abordagem utiliza um headset de VR, como o Oculus Quest 2, permitindo que um usuário controle o robô através de uma experiência imersiva. O software que alimenta esse sistema é de código aberto, o que significa que qualquer um pode acessá-lo e modificá-lo. Esse sistema é fácil de configurar e não depende de nenhum robô específico ou configuração experimental.
Desafios no Uso de VR para Controle de Robôs
Um grande problema ao usar VR é garantir que as imagens para o usuário correspondam aos seus movimentos de cabeça. Se a representação visual não mudar rápido o suficiente com a posição da cabeça do usuário, ele pode sentir desconforto, conhecido como mal-estar em VR. Essa mal-estar pode causar dores de cabeça, náusea e cansaço ocular. Para evitar isso, é importante que a câmera virtual atualize sua posição em tempo real.
Nesse sistema, dois métodos principais são usados para manter as visuais em sincronia. O primeiro envolve o uso de câmeras estacionárias para observar o ambiente do robô. O segundo utiliza visão computacional para identificar objetos ao redor do robô, que podem ser representados no ambiente virtual. Ambos os métodos permitem que o motor de VR ajuste a câmera virtual de acordo com os movimentos do usuário.
Construindo um Sistema Amigável
Ao projetar esse sistema, fazer com que ele seja fácil de usar e modificar foi uma prioridade. O software foi desenvolvido usando Unity, uma engine popular de desenvolvimento de jogos. Essa escolha foi feita porque o Unity é conhecido por suas funcionalidades amigáveis. O Oculus Quest 2 foi selecionado por ser um dos headsets de VR mais utilizados, tornando-o acessível para a maioria dos usuários.
Embora o foco principal tenha sido no robô Franka Emika Panda, o software pode ser adaptado para trabalhar com outros tipos de robôs apenas fazendo pequenas mudanças no código. Essa flexibilidade é importante para pesquisadores e desenvolvedores que podem querer usar robôs diferentes em seu trabalho.
Métodos de Demonstração Relacionados
Demonstrações humanas são cruciais para muitas aplicações práticas em robótica, incluindo o treinamento de robôs através de aprendizado por imitação e aprendizado por reforço profundo. Existem vários métodos para coletar essas demonstrações, cada um com seus prós e contras. Alguns métodos dependem de demonstrações visuais, enquanto outros usam quadros-chave, ensino cinestésico e teleoperação.
Demonstrações visuais permitem que uma pessoa mostre a um robô como realizar tarefas sem precisar mudar muito seus movimentos. Contudo, os vídeos muitas vezes faltam informações detalhadas sobre certos aspectos, como força ou pressão, o que pode limitar sua eficácia.
Demonstrações com quadros-chave envolvem fornecer instantâneas ou pontos importantes em uma tarefa. Embora ajudem a simplificar o controle, podem deixar de capturar movimentos detalhados. O ensino cinestésico exige que uma pessoa guie fisicamente o robô em uma tarefa. Esse método gera dados de alta qualidade, mas pode ser cansativo e demorado. A teleoperação é considerada o melhor método para demonstrações de qualidade, mas as técnicas tradicionais podem ser complicadas e não intuitivas para o usuário.
O Pipeline de Teleoperação
O sistema de teleoperação conecta o aplicativo de VR ao robô. Os usuários usam o headset Oculus e podem ver uma versão virtual do ambiente com imagens representando o efetor final do robô. Movendo controladores manuais, os usuários controlam os movimentos do robô. O sistema captura essas entradas e envia os comandos para o robô.
À medida que o robô atua, câmeras fornecem um feed de vídeo da cena. Esse vídeo é analisado em busca de informações sobre objetos e suas localizações, que são então enviadas de volta ao ambiente de VR. Esse processo se repete, permitindo interação em tempo real entre o usuário e o robô.
Usando Unity para o Ambiente Virtual
Unity foi usado para criar o ambiente de VR para teleoperação. Ele suporta o desenvolvimento fácil de aplicações de VR com recursos como rastreamento de cabeça e mapeamento de controladores. O design inclui objetos permanentes e observados dentro do ambiente de VR. Objetos permanentes são os elementos fixos, enquanto os objetos observados são aqueles rastreados pelo sistema de visão.
Quando o sistema de visão identifica um objeto, ele envia seus detalhes para o Unity, que gera uma representação do objeto na cena. Os usuários controlam o robô através dos controladores manuais, que rastreiam os movimentos das mãos deles no mundo virtual.
Sistema de Comunicação Entre Componentes
Para conectar o aplicativo de VR ao controlador do robô, foi utilizado um método de comunicação usando sockets UDP. Isso permite que mensagens rápidas sejam trocadas entre a aplicação Unity e o controlador do robô. Cada atualização envia informações sobre a posição do robô, localizações de objetos e outros detalhes, mantendo uma experiência sincronizada.
Quando o usuário move o controlador, o sistema calcula a posição e a envia para o robô. O robô então executa esses comandos, e o feedback é retransmitido de volta ao ambiente de VR para atualizar as visuais.
Trabalhando com um Ambiente Simulado
Além de controlar o robô físico Franka Emika Panda, uma versão simulada foi criada. Isso permite que usuários sem acesso ao hardware testem o sistema de teleoperação em um ambiente virtual. A simulação imita a interação do mundo real, permitindo a avaliação do desempenho do software sem depender de hardware real.
Melhorando a Funcionalidade com uma Mão Robótica
Para estender as capacidades do sistema de teleoperação, uma mão robótica de cinco dedos foi adicionada. Essa mão imita o movimento humano e é controlada usando os gestos da mão do usuário detectados pelo headset Oculus. Isso fornece uma camada adicional de controle, permitindo que os usuários operem a mão robótica em detalhes.
Demonstração de Tarefa: Empilhamento de Blocos
Para demonstrar como o sistema funciona bem, foi realizada uma tarefa de pegar e colocar blocos. O usuário controlou o robô para pegar um bloco, movê-lo e depois colocá-lo no lugar. Essa tarefa ilustrou como o sistema traduziu com sucesso os movimentos do usuário em ações do robô.
Medindo a Latência do Sistema
Para garantir que o sistema opere suavemente, foram realizados testes para medir sua responsividade. Dois testes foram realizados: um no ambiente simulado e um com o robô físico. Os resultados mostraram que, embora o sistema operasse a uma taxa decente em ambas as configurações, a implementação de hardware enfrentou mais latência, provavelmente devido a atrasos de comunicação. No entanto, a frequência das atualizações ainda era suficiente para um controle eficaz.
Lidando com Sobrecarga de Comunicação
O sistema também foi testado para sua capacidade de gerenciar múltiplos objetos simultaneamente. Ao gerar vários objetos no ambiente virtual, os limites do sistema de comunicação foram avaliados. Os resultados indicaram que o sistema poderia lidar eficientemente com um número significativo de objetos sem erros, garantindo um desempenho robusto sob pressão.
Conclusão
O sistema de teleoperação descrito permite o controle intuitivo de um robô Franka Emika Panda usando hardware acessível e ferramentas de código aberto. Ele foi projetado para ser flexível e adaptável para várias utilizações, tornando-se um recurso valioso para pesquisadores e desenvolvedores na área de robótica. Incorporando tanto ambientes reais quanto simulados, esse sistema é uma solução abrangente para tarefas teleoperadas em robótica, aumentando a acessibilidade e a facilidade de uso para todos os usuários.
Título: OpenVR: Teleoperation for Manipulation
Resumo: Across the robotics field, quality demonstrations are an integral part of many control pipelines. However, collecting high-quality demonstration trajectories remains time-consuming and difficult, often resulting in the number of demonstrations being the performance bottleneck. To address this issue, we present a method of Virtual Reality (VR) Teleoperation that uses an Oculus VR headset to teleoperate a Franka Emika Panda robot. Although other VR teleoperation methods exist, our code is open source, designed for readily available consumer hardware, easy to modify, agnostic to experimental setup, and simple to use.
Autores: Abraham George, Alison Bartsch, Amir Barati Farimani
Última atualização: 2023-05-16 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2305.09765
Fonte PDF: https://arxiv.org/pdf/2305.09765
Licença: https://creativecommons.org/licenses/by-nc-sa/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.