Com base no ficheiro URDF que descreve o braço eezybotarm mk1 feito é altura de tentar usar o ROS moveit.
O procedimento descrito abaixo foi efectuado de acordo com as indicações disponiveis em:
- http://docs.ros.org/melodic/api/moveit_tutorials/html/doc/setup_assistant/setup_assistant_tutorial.html
No caso de estar a usar o ROS kinetic as indicações estão disponiveis em:
- http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/setup_assistant/setup_assistant_tutorial.html
Efectuei vários testes com dois ficheiros URDF diferentes. Um com garra, e outro sem a garra. No processo descrito abaixo, a versão sem garra tem apenas o planning group Arm, com os links de 1 a 3, e não tem o End Efector.
O moveit setup assistant permite criar um pacote do ROS para usar um braço robótico com o Moveit.
O processo começa na execução do Moveit setup assistant com o seguinte comando:
roslaunch moveit_setup_assistant setup_assistant.launch
Escolher criar uma nova configuração para o moveit
Escolher o ficheiro URDF que descreve o braço eezyBotArm MK1 e enviar;
Clicar em Self Colisions
Clicar em Generate Colision Matrix;
Clicar em Virtual Joints
Clicar em Add Virtual Joint;
No joint name colocar “virtual_joint”;
No child link selecionar “base_link”;
No parent frame name colocar “world”;
No Joint Type selecionar “fixed”;
Clicar em Save;
Clicar em Planning Groups
Criar dois grupos. Um para o braço e outro para a garra.
Clicar em Add Group;
No group name colocar: Arm;
No kinematic solver seleccionar: kdl_kinematics_plugin/KDLKinematicPlugin;
Manter Kin. Search Resolution e Kin. Search Timeout nos valores pré-definidos;
Clicar em Add Joints;
Do lado esquerdo selecionar: Joint_1, Joint_2, Joint_3 e Joint_4 e mover para o lado direito;
Clicar em Save;
Clicar em Add Group;
No group name colocar: Hand;
Não selecionar nada no kinematic solver;
Manter Kin. Search Resolution e Kin. Search Timeout nos valores pré-definidos;
Clicar em Add Joints;
Do lado esquerdo selecionar: Joint_5 e mover para o lado direito;
Clicar em Save;
Clicar em Robot Poses
Clicar em Add pose
Em pose name colocar: Start
Definir os valores apropriados para Joint_1, Joint_2, Joint_3 e Joint_4;
Clicar em Save
Clicar em End Efector
Em End Efector Name colocar: Hand
No End Efector Group selecionar: Hand
No Parent Link selecionar: Joint_4
Clicar em Author Information
Definir o nome e o email do autor
Clicar em Configuration Files
Escolher o Configuration Package Save Path
Clicar em Browse,
No selector de pastas que se abre, clicar no icone para criar uma nova pasta, e atribuir-lhe o nome: ebamk1_movit_config
Clicar em Generate Package
No final, para sair, clicar em Exit Setup Assistant
De fora desta preparação ficaram as seguintes áreas.
- Passive Joints
- ROS Control
- Simulation
- 3D perception
Para visualizar o resultado no rviz usa-se o seguinte comando:
roslaunch ebamk1_moveit_config demo.launch
Durante a processo de aprendizagem fiz vários testes, e acabei por conservar também o primeiro teste ebamk1t1_moveit_config.