Em continuação ao estudo da manipulação autônoma, realizamos os experimentos envolvendo os planejadores de trajetória e os solucionadores de cinemática utilizando o manipulador UR5 da Universal Robots. Nestes testes iniciais foram avaliados o desempenho do conjunto planejador e solucionador considerando a base do manipulador fixa e um ambiente estático, primeiramente em simulação e em seguida em um ambiente real.

Os planejadores estudados foram o RRT-Connect, RRT-Star e o BiTRRT, já os solucionadores foram IKFast (Inverse Kinematics Fast), KDL (Kinematics and Dynamics library) e o LMA (Levenberg-Marquardt). Foram escolhidos três movimentos que se aproximassem de tarefas reais aplicadas na indústria: movimento na vertical simulando a ação de apertar um botão, movimento na horizontal similar à limpeza de uma superfície e um movimento semicircular similar à inspeção ou limpeza de um tubo.

Movimento na vertical
Movimento 1, movimentação vertical pressionando um botão.
Movimento na horizontal
Movimento 2, movimentação horizontal.
Movimento circular
Movimento 3, movimentação semicircular.

O objetivo era encontrar os tempos de planejamento e execução para cada movimento, logo serão analisadas quatro variáveis de saída: tempo de execução do movimento, tempo de retorno à posição home, tempo de planejamento do movimento e tempo de planejamento para retorno à posição home.

Preparação do sistema

Para realizar a movimentação do manipulador UR5 utilizamos o Ubuntu 20.04, que foi instalado em um computador Intel NUC 8i7BEH1, também foram utilizados o framework ROS na versão Noetic, o Gazebo e MoveIt. Além destes, foram utilizados outros algoritmos existentes nestes frameworks e softwares.

Os planejadores, disponíveis no MoveIt através da biblioteca OMPL, são utilizados na criação de uma trajetória para o manipulador dada uma pose de interesse, já os algoritmos solucionadores são usados na solução da cinemática inversa necessária para a movimentação do manipulador. As trajetórias desejadas para o manipulador, isto é, o conjunto de posições de cada uma das suas juntas no tempo, são enviadas como entrada nos controladores gerados pelo pacote ROS Control, responsável pela geração dos sinais de controle e envio aos atuadores durante a simulação.

Para a conexão entre o ROS e o manipulador UR5 foi utilizado o driver ur_modern_driver. Este driver foi descontinuado e foi desenvolvido para o ROS na versão Kinetic, mas atualmente é o único driver compatível com os manipuladores UR5 da linha CB2 series.

Hands on

Para tornar possível a utilização do manipulador real, inicialmente utilizamos a simulação para testar as movimentações, planejadores e solucionadores. Esses testes possibilitaram criar funções de movimentação válidas e verificar o funcionamento dos algorítmos. Durante estes testes, verificamos que o IKFast apresentava alguns problemas na sua execução. O algoritmo não funcionou em todos os testes, pois algumas vezes apresentava um erro no envio de velocidade para juntas.

Movimento na vertical
Movimento 2, movimentação horizontal na simulação.

Foi definida uma posição de partida, home, e em seguida as trajetórias foram enviadas como um vetor de posições no espaço cartesiano, ao final da trajetória o manipulador retorna a home através de comando de posição de juntas.

Após a simulação, o mesmo foi feito com o manipulador real, ao total foram realizados 54 experimentos na simulação e 54 experimentos no ambiente físico.




Autor


felipemohr
Brenda Alencar
Estagiária no CC RoSA, graduanda em Eng. Elétrica. Participou de projetos de Robótica Subaquática e Manipuladores Subaquáticos