Dificuldades no posicionamento do end effector link on eezybotarm

Recentemente passei à fase do pick and place no eezybot arm2, mas pelos vistos vou encalhar nesta fase.

O problema que encontrei é a dificuldade no posicionamento do end effector link on eezybotarm mk2 quando a mesma é efectuada por um script em python.

Não consegui efectuar um único movimento baseado na indicação da pose de destino com a interface do moveit move group em python. O que me deixa desconcertado face ao sucesso em resolver a cinemática inversa e planear trajectorias usando o rviz. Especialmente quando se usa Allow Aproximate IK Solutions activo.

A mensagem habitual é a seguinte:

[ INFO] [1590451846.572774885]: ABORTED: No motion plan found. No execution attempted.

Tentei várias soluções sem qualquer sucesso. Primeiro tentei alterar a tolerancia relativamente ao objectivo com o uso dos seguintes métodos:

move_group.set_goal_tolerance(0.1)
move_group.set_goal_position_tolerance(0.01)
move_group.set_goal_orientation_tolerance(0.1)

Nestas experiências o que consegui foi explicitar uma tolerancia tão grande que a decisão era nao se mexer porque já estava no sitio.

Como não tive sucesso, numa segunda fase tentei usar outro IK solver. Encontrei boas referencias relativamente ao bio_ik disponivel no seguinte endereço, mas também não tive sucesso.

  • https://github.com/TAMS-Group/bio_ik

Nota: O bio_ik solver á semelhança do LMAK também permite a especificação da rotação sobre o eixo z (joint_1) no eezybotarm mk2.

Por último descobri indicações que o seguinte método tinha o mesmo efeito que o Allow Aproximate IK Solutions, activo.

move_group.set_joint_value_target(pose_goal, "eef_link", True)

Mais uma vez não tive qualquer sucesso ao efectuar o posicionamento do braço no script de python.

Neste caso acresce a seguinte mensagem de aviso

[ WARN] [1590451841.449395412]: Returning dirty link transforms

Links

https://answers.ros.org/question/329107/moveit-approximate-ik-solutions/