Um problema de orientação

O problema com o pick and place com o moveit, e da execução do posicionamento do end effector conforme o tutorial do moveit foi no minimo mitigado, quando não resolvido.

Quando descobri o uArm (swift e pro), mais um braço do tipo do eezybotarm, e o software que estes braços têm para o ros moveit disponivel no github, e verifiquei que com este software o moveit conseguia efectuar o planeamento. Após rápida reflexão a razão do sucesso parecia evidente. O urdf destes braços não incluia em nenhuma joint mimic.

A descrição que efectuei do ebamk2 incluia duas mimic joints. Uma entre o link_2 e um link virtual que acrescentei entre este e o link_3, para descrever a relação que existe entre o movimento destes links, pois não são complementamente independentes. Outra entre o link_3 e o link_4, que é o link final onde se connecta o end effector. Estes dois links relacionam-se atravez de duas articulações, a que estabelecem entre si, e a que o link 4 estabelece com uma articulação passiva no corpo do braço, cujo objectivo é manter o end effector sempre horizontal.

Portanto, rescrevi o urdf do eezybotarm mk2 de duas formas, uma sem nenhuma joint mimic, e outra em que conservei a joint mimic e o link virtual entre o link_2 e o link_3, e quando experimentei acabei por ter sucesso no passo em que estava encalhado no tutorial do moveit (mover o braço robótico para um pose).

Ou seja, a orientação do end effector na versão com o mimic entre a joint_3 e joint_4 era impossivel de atingir, pois era incompativel com o quaternion (x,y,z,w) com os valores (0,0,0,1).