Kinovarobotics / kinova-ros

ROS packages for Jaco2 and Mico robotic arms
BSD 3-Clause "New" or "Revised" License
363 stars 318 forks source link

ik fast #417

Closed lixryjz closed 4 months ago

lixryjz commented 1 year ago

hello ,I see there are three ikfast file,could you tell us ,what file is suitable to what type of robot arm and graspper? Thanks!

felixmaisonneuve commented 1 year ago

Hi @lixryjz,

Are you talking about kinova_moveit/inverse_kinematics_plugins/ikfast/j2n6s300_ikfast/include/ikfast.h kinova_moveit/inverse_kinematics_plugins/ikfast/j2s6s300_ikfast/include/ikfast.h kinova_moveit/inverse_kinematics_plugins/ikfast/j2s7s300_ikfast/include/ikfast.h

From what I see, every IKfast file is within a folder for each arm config. The IK is computed in a _arm_ikfast_solver.cpp example : kinova_moveit/inverse_kinematics_plugins/ikfast/j2n6s300_ikfast/src/j2n6s300_arm_ikfast_solver.cpp

and you can find an IK solver for j2n6s300, j2s6s300, j2s7s300 and m1n6s300

https://github.com/Kinovarobotics/kinova-ros/tree/melodic-devel/kinova_moveit/inverse_kinematics_plugins/ikfast

Is this what you are looking for? If not, I may not understand your question correctly. Can you detail a bit more?

Best, Felix

lixryjz commented 1 year ago

Hi,thanks for your reply!As you know,the 7dof arm can use different graspper,like the followed figure,I hope to know the ikfast file is only for the arm ik to solve,or with a kind of graspper?,and I need to use the ikfast file to compile without any main function as a shared object,so I hope to know what file is refer to what kind of arm and endefferctor?The problem is the endeffector image

lixryjz commented 1 year ago

the ikfast file should use without grasppe?and should I convert the coodinate?

lixryjz commented 1 year ago

for this question,I dont know the endeffector is what which is to build the ikfast file,so i dont know the file result is reparent what, so i hope to know the the endeffector in this ikfast file!Thanks!

felixmaisonneuve commented 1 year ago

Ok,

The j2s7s300_arm_ikfast_solver.cpp file is for the jaco2 arm (j2), with a spherical wrist (s), 7dof (7), service mode (s) and a 3 fingers gripper (3).

Is this what you want to know?

lixryjz commented 1 year ago

yes,thank you very much!But is there an ikfast file for j2s7_arm which without the gripper?

image

felixmaisonneuve commented 1 year ago

Looking deeper into this, I am pretty sure the ikfast_solver.cpp file is generated by the update_ikfast_plugin.sh script (that you can find in the arm's folder). It calls create_ikfast_moveit_plugin.py. Arguments for this script are robot_name, planning_group_name, moveit_plugin_pkg and ikfast_output_file. I see we are always using arm as the planning_group_name, so I think the ikfast file is only for the section of the arm without the gripper.

This means you could use the ikfast file for an arm without any gripper and it should work