Estou trabalhando com um robô humanóide em tamanho real (~ 130 cm) (Hubo +) e procurando uma maneira de programar facilmente novos movimentos e gestos nele. Obviamente, eu poderia escrever minha própria ferramenta, mas estou procurando uma solução que possa aproveitar as ferramentas ou os padrões existentes para o movimento do robô. Meu primeiro pensamento foi tentar usar um software de animação como o Blender ou o Maya e escrever um script para extrair os ângulos das articulações nos quadros-chave. No entanto, poucos pesquisadores de robótica provavelmente são proficientes em Maya. (Eu sei que não sou!)
Já existe algum tipo de ferramenta de pose 3D para robótica que é um padrão? As únicas coisas que vi até agora são o Pose Utility no RoboPlus e o Choregraphe para o Nao, mas ambos os programas parecem limitados a robôs específicos e não parecem extensíveis ao Hubo.
Então, minhas perguntas são:
- Existem formatos de arquivo padrão para o movimento do robô? Movimento do robô não com rodas 2D. Movimento de braço e perna! Algo equivalente ao formato de arquivo .bvh usado na captura de movimento.
- Você conhece alguma ferramenta WYSIWYGish para criar movimento de robô usando quadros-chave e cinemática inversa?
Respostas:
A resposta curta é que não acho que exista um bom formato de arquivo de movimento padronizado e que não haja boas ferramentas genéricas de posicionamento de robôs wysiwyg. Será necessário algum nível de programação personalizada.
RE: Formatos de arquivo padrão para o movimento do robô
Collada é um formato de arquivo de intercâmbio de dados 3D padronizado e tem suporte para armazenar informações básicas sobre animação e tipos de física com um modelo. O suporte não é consistente entre as ferramentas, especialmente para os dados de animação / física.
Além disso, é improvável que você encontre formatos de arquivo de uso geral para armazenar animação robótica. (Embora não seja 100% comparável, consulte a lista da Wikipedia de formatos de arquivo de movimento / gesto .) Tudo o que vi é específico da plataforma e / ou proprietário. Considere que as indústrias de jogos e CAD são ordens de magnitude maiores e mais específicas que a robótica. Eles têm requisitos semelhantes, mas não há formato de arquivo defacto.
No entanto, se você estiver interessado em uma visão mais programática dos dados por esses sistemas proprietários, observar as ferramentas especializadas usadas por esses setores poderá fornecer algumas opções e idéias adicionais. Exemplos:
A criação, armazenamento e execução de animação de personagens (geralmente humanóides), em particular, está bem representada e muito avançada na indústria de desenvolvimento de jogos. Por um preço. Acredito que a maioria dos estúdios maiores tem uma equipe inteira dedicada a fazer nada além de converter dados de um sistema para outro e alimentá-los através de um pipeline de produção.
Um problema recorrente com o uso de ferramentas de desenvolvimento de jogos (ou ferramentas 3D de tipo criativo em geral) para robótica é que, em jogos / filmes, é geralmente aceitável que a animação não modele exatamente a realidade. Isso pode causar problemas quando aplicado a robôs do mundo real.
RE: Ferramentas de posicionamento
Simuladores robóticos (como o V-REP da Coppelia ou mesmo o MS Robotics Studio ) podem ser úteis se eles fornecerem uma API / exportação de algum tipo e forem capazes de simular robôs do tipo humanóide. Eu não conheço nenhum que suporte um modelo humanóide completo. A maioria é apenas para modelar armas e robôs com rodas. Ainda assim, talvez você possa modelar seus movimentos humanóides como uma coleção de subsistemas independentes de braços? isto é, a perna esquerda é um braço robótico. Nesse caso, mais algumas ferramentas wsyiwyg estariam abertas para você.
O Flowstone é outra ferramenta visual que pode ser usada para posar, mas provavelmente não é o wysiwyg que você tinha em mente.
Se você não precisa do WYSIWYG e está aberto a alguma programação, consulte PyPose e Nuke .
Da mesma forma, mas exigindo uma programação mais avançada, vários mecanismos de física podem ser interessantes para receber todas as entradas (modelos 3D e parâmetros associados) e fornecer resultados de movimento aplicando forças e cinemática inversa. Exemplos incluem física ODE e Bullet . Uma opção inclinada programática semelhante seria usar o ROS. Eu já vi alguns projetos e observações sobre o potencial suporte de ROS para movimentos do tipo humanóide.
Tudo isso dito ... embora difícil de aprender, eu ainda acho que o Blender3D tem potencial para ser uma das melhores opções para robótica avançada e poses de movimento e trabalho de movimento, particularmente devido à sua forte integração com a linguagem de programação Python. Alguém já apontou o wiki da Blender Robotics nos comentários. Você também deve revisar o vídeo do Grantlo321 no YouTube usando o blender para controlar servos tocando piano, bem como o post de Justin Daily, onde ele descreve o uso do Blender / Python para controle de servo. Concordo que o Blender3D é difícil de aprender, mas isso provavelmente acontecerá com quase todos os softwares 3D tipo wysiwyg, a menos que seu foco seja muito restrito.
fonte
Se você deseja projetar seu robô, pode usar o software SolidWork, CATIA ou ADAMS, e pode animar seu robô. Mas você pode usar o simulador de robô de plataforma padrão Aldebaran (NAO). Este simulador pode ser útil para você, mas o robô NAO é um robô de tamanho infantil com bons sensores.
fonte