ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

how to write an IK plugin in moveit

asked 2016-03-07 02:45:36 -0600

gutianqi gravatar image

I want to write a IK plugin in moveit for my own robot just like PR2. I read the IK plugin of PR2 but didn't know how to write it exactly. I wonder what function I should write to connent the IK to moveit. The ROS version I use is Indigo.Thank you!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-03-07 06:56:19 -0600

Airuno2L gravatar image

updated 2016-03-07 06:58:21 -0600

If you are just trying to use a different robot with MoveIt!, you don't need a new IK plugin. The IK plugin is what Moveit uses for computing the inverse kinematics and the default one uses KDL which is a generic solver that should work for any kind of robot arm.

All Moveit! needs to work with a new robot is your robot's URDF file and you have to go through the MoveIt! setup wizard.

If you already knew this and have tried the default plugin and are not happy with the performance, there are two easy alternative IK plugins that I am aware of, the OpenRave IKFast plugin and the Trac-IK one. The IKFast method creates a solver that is custom to your robot since it is an analytical solver, Trac-IK is similar to the KDL one (both are numerical solvers) which should work for all robots.

If you have went through the trouble of solving the analytical IK solution for your arm by hand, you can make you own plugin from scratch, but that is not too easy.

Long story short: You shouldn't need to make your own plugin unless you've tried the default one and are not happy with it.

edit flag offensive delete link more



Thank you very much ! I have tried IKFast plugin but this tutorial in Moveit seems not that right when I typed sudo apt-get install openrave0.8-dp-ikfast . the system couldn't find the openrave0.8 install package.

gutianqi gravatar image gutianqi  ( 2016-03-07 19:32:56 -0600 )edit

Have you tried the default MoveIt plugin? Did it not work?

Airuno2L gravatar image Airuno2L  ( 2016-03-08 06:00:07 -0600 )edit

The TRAC-IK plugin should work if KDL does not. There is a list of over a dozen or so common robot platforms on the TRAC-IK Bitbucket page with IK results. If you have a URDF, I can run a quick test and tell you how well KDL and TRAC-IK perform.

pbeeson gravatar image pbeeson  ( 2016-03-21 11:38:40 -0600 )edit

@pbeeson and @Airuno2L Does the TRAC-IK plugin support mimic joints? KDL doesn't seem to support it and I am having a hard time with the IKFast plugin.

kmohan gravatar image kmohan  ( 2016-07-26 15:49:50 -0600 )edit

I'm not sure, are you trying to do IK with a parallel manipulator?

Airuno2L gravatar image Airuno2L  ( 2016-07-28 07:38:10 -0600 )edit

@Airuno2L It is not a parallel manipulator. However, it does have a parallel linkage connecting the end effector to the base.

kmohan gravatar image kmohan  ( 2016-08-01 15:31:04 -0600 )edit

It sounds like a closed-loop mechanism, maybe a picture added to the question would help? I don't think KDL or even URDF has support for closed-loop structures but I could be wrong.

Airuno2L gravatar image Airuno2L  ( 2016-08-02 06:22:42 -0600 )edit

@Airuno2L , it is not a closed loop structure. Here is a picture of my robot. The end effector is not included in the picture and would be attached to the red colored gear-like link (called "driver") at the very end

kmohan gravatar image kmohan  ( 2016-08-02 14:37:05 -0600 )edit

Question Tools



Asked: 2016-03-07 02:45:36 -0600

Seen: 1,298 times

Last updated: Mar 07 '16