Rosanswers logo

I'm working with a robot arm with 7 degrees of freedom, but as I understand it IKFast only solves up to 6 dof. I can set a free joint using the "--freeindex" argument and am able to make the IKFast plugin for the arm_navigation package, but am now unable to finish any planning requests - I always get "No IK Solution". I do not understand how having an IK solver that cannot plan for the full number of degrees is useful. Am I essentially permanently disabling a joint? Or is arm_navigation/moveit/ompl still able to plan for all dofs somehow? Also, how should the free parameters be chosen, at random?

According to OpenRave:

For chains containing more degrees of freedom (DOF) than the IK type requires, the user can set arbitrary values of a subset of the joints until the number of unknown joints matches the degrees of freedom of the IK type.

I am attempting to use IKFast because I am having issues with KDL being unable to solve for many desired positions as well. I am using these very thorough instructions for setting up IKFast.


Originally posted by Dave Coleman on ROS Answers with karma: 1396 on 2012-12-03

Post score: 2


1 Answer 1


Rosanswers logo

Hi Dave,

Yep those instructions were just recently updated! :-)

You should test the IKFast solution using the command line tool ikfastdemo.cpp or by compiling the inbuilt main() function as mentioned in the OpenRAVE documentation. This was written to check that your IK works before using it in ROS; if you don't get a solution using this test code, then it won't work in ROS either. However it hasn't been tested with 5 or 7 DOF arms, so if you think there's a bug then let me know.

The PR2 and WAM are 7 DOF, so there should be a little bit of documentation around. It seems that you create the IK solution by saying that the shoulder or wrist will be a "free parameter", then you call IK by specifying the known angle/pose of this joint (eg. horizontal) and therefore the solver only has 6 unknowns.

I would suggest that you first test generating an IKFast solution and using the demo program for a known redundant manipulator model eg. the WAM, then this might indicate where the problem is?

Regards, David.

Originally posted by dbworth with karma: 1103 on 2012-12-03

This answer was ACCEPTED on the original site

Post score: 4


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.