FlowBot3D: Learning 3D Articulation Flow to Manipulate Articulated Objects
Autores: Ben Eisner, Harry Zhang, David Held · RSS 2022
Licenças
- Acesso aberto
- Artigo: CC BY 4.0
Tudo o que segue se baseia no artigo completo sob a licença CC BY 4.0; sua figura é mostrada com crédito aos autores.
Em resumo
Uma rede prevê como cada ponto de um objeto articulado se moveria; o robô agarra o ponto de maior movimento e o segue, chegando a 64 % de sucesso no mundo real sem dados de treinamento reais.
Por que importa
A representação não precisa conhecer a árvore cinemática do objeto, então um único modelo treinado apenas com nuvens de pontos simuladas abriu objetos de categorias que nunca viu e foi transferido para um braço Sawyer real sem ajuste fino. Para quem aplica, ela separa a percepção (onde e como as partes se movem) de uma regra de controle analítica simples, o que mantém a política em malha fechada e fácil de inspecionar.
Problema
Robôs em residências precisam abrir portas, gavetas, tampas e objetos articulados semelhantes cuja geometria e cinemática variam muito dentro de cada categoria e entre categorias. Métodos que estimam parâmetros de articulação, como os eixos das juntas, geralmente dependem de conhecimento específico da classe sobre a estrutura do objeto, por isso não podem ser aplicados a categorias novas.
Solução proposta
Os autores definem o 3D Articulation Flow (fluxo de articulação 3D): para cada ponto de uma nuvem de pontos, a direção normalizada em que ele se moveria se sua parte fosse levemente aberta. A ArtFlowNet, uma rede baseada em PointNet++ treinada com aprendizado supervisionado sobre objetos simulados do PartNet-Mobility, prevê esse fluxo a partir de uma única nuvem de pontos. O FlowBot3D então agarra com uma garra de sucção o ponto com maior fluxo previsto (sujeito a filtros de borda e de curvatura) e repetidamente volta a prever o fluxo, movendo a garra ao longo do maior vetor de fluxo visível perto do contato até que a parte esteja aberta.
Principais ideias
- Em uma junta prismática, a melhor direção de puxar é ao longo do eixo da junta em qualquer ponto; em uma junta de revolução, é tangencial no ponto mais distante do eixo, então o ponto com maior fluxo de articulação é a pegada ideal.
- O fluxo por ponto não depende de hierarquia e é limitado à esfera unitária, portanto é invariante a translação e escala e pode ser aprendido sem modelos cinemáticos específicos de cada classe.
- Políticas de clonagem de comportamento e de DAgger tiveram desempenho ruim mesmo recebendo como entrada o fluxo real (ground truth), enquanto a política analítica de seguir o fluxo foi bem.
- Nuvens de pontos renderizadas em simulação têm pouca lacuna de domínio em relação a dados de profundidade reais, o que os autores apontam como a razão da transferência direta da simulação para o mundo real; o aumento de pontos de vista no treinamento ajudou a transferência, mas mudou pouco em simulação.
Principais resultados
- Simulação (ManiSkill com PartNet-Mobility, sucesso = mais de 90 % da amplitude de movimento): FlowBot3D teve sucesso médio de 0,77 em instâncias não vistas das categorias de treinamento e de 0,69 em 10 categorias não vistas; um oráculo usando o fluxo real chegou a 0,92 e 0,82.
- A melhor baseline de clonagem de comportamento (DAgger Oracle + F) chegou a 0,33 de sucesso nas categorias de treinamento e 0,16 nas não vistas; a baseline no estilo UMPNet chegou a 0,52 e 0,45.
- Distância normalizada média até o estado aberto: 0,12 (categorias de treinamento) e 0,15 (categorias não vistas) para o FlowBot3D contra 0,29 e 0,36 para a baseline no estilo UMPNet.
- Mundo real, 14 objetos domésticos e 70 tentativas em um braço Sawyer: 45/70 (64,3 %) de sucesso geral, 64/70 (91,4 %) de sucesso de contato e 45/64 (70,3 %) de sucesso de movimento após o contato.
- A baseline DAgger no mundo real, usando a mesma seleção de contato, teve sucesso em 10/70 tentativas (14,3 %), com distância média de 0,73 contra 0,22 do FlowBot3D.
Limitações
- A maioria das falhas no mundo real veio de erros de previsão do fluxo, muitas vezes quando o robô ocultava boa parte da cena ou não detectava uma articulação (por exemplo, no forno real), e de falhas de contato da sucção em pontos onde não era possível formar vedação.
- Os autores afirmam que são necessários um controlador de braço mais complacente e um módulo mais robusto de previsão da qualidade do contato para eliminar muitos modos de falha; a correção online de previsões erradas fica para trabalhos futuros.
- O método cobre objetos com juntas de revolução ou prismáticas de 1 DoF e base fixa; juntas esféricas, objetos que flutuam livremente e objetos deformáveis ficam de fora.
- Uma garra de sucção real não consegue vedar em bordas, alças ou pontos de alta curvatura, então os pontos de pegada são escolhidos com heurísticas de borda, curvatura e distância ajustadas à mão em vez do ponto ideal de fluxo máximo.
- Os objetos de teste reais tinham de caber no espaço de trabalho, oferecer uma superfície adequada à sucção e não ser escuros ou reflexivos demais para a câmera de profundidade.
Impacto na área
O artigo foi finalista do prêmio de melhor artigo do RSS 2022 (Best Paper Award) e tem 168 citações. Os autores disponibilizam código, dados e materiais suplementares pelo site do projeto.
Resumo
Exploramos um método novo para perceber e manipular objetos articulados 3D que generaliza e permite a um robô articular classes de objetos não vistas. Propomos um sistema baseado em visão que aprende a prever os movimentos potenciais das partes de uma variedade de objetos articulados para orientar o planejamento de movimento subsequente do sistema ao articular os objetos. Para prever os movimentos dos objetos, treinamos uma rede neural que produz um campo vetorial denso representando a direção de movimento ponto a ponto dos pontos da nuvem de pontos sob articulação. Em seguida, implantamos um planejador de movimento analítico baseado nesse campo vetorial para obter uma política que produz a articulação máxima. Treinamos o sistema de visão inteiramente em simulação e demonstramos a capacidade do nosso sistema de generalizar para instâncias de objetos não vistas e para categorias novas, tanto em simulação quanto no mundo real, implantando nossa política em um robô Sawyer sem ajuste fino. Os resultados mostram que nosso sistema alcança desempenho de estado da arte em experimentos tanto simulados quanto no mundo real.
Links
- arXiv 2205.04382: https://arxiv.org/abs/2205.04382
- DOI 10.48550/arXiv.2205.04382: https://doi.org/10.48550/arXiv.2205.04382
- PDF: https://arxiv.org/pdf/2205.04382v1
- Código: https://github.com/r-pad/flowbot3d
- Página do projeto: https://sites.google.com/view/articulated-flowbot-3d/home