Tuesday, May 21, 2013

Generating an IKFast Plugin for MoveIt

Over the past few weeks I've been using MoveIt quite a bit -- I was actually using the Pick and Place actions for Maxwell's chess playing last weekend at Maker Faire (an updated on that shortly).

I recently changed over to using IKFast for IK under MoveIt. This fixes a number of problems with the default IK plugin. I'm using ROS Groovy under Ubuntu Precise, and ran into several issues which I thought I would mention here.

First off, I start with the excellent moveit_ikfast_generator from Dave Coleman. You should run his instructions for "Create Collada File for Use with OpenRave". Once you have a collada file, here is what I did to make the ikfast generator work:

      sudo apt-add-repository ppa:openrave/release
      sudo apt-get update
      sudo apt-get install openrave0.8-dp-ikfast

At this point, I had to edit a /usr/lib/python2.7/dist-packages/openravepy/__init__.py to add the following line just after the copyright:

      __openravepy_version__ = "0.8"

Without this, nothing seems to run. Once the code is updated, the tools listed in section 5 of the ROS Industrial tutorial work as indicated.

Then it's back to the README in moveit_ikfast_generator, where the instructions will walk you through generating the ikfast plugin. One note there is also a command for:

    openrave-robot.py my_robot.dae --info joints

which is very helpful if you have a 7-dof actuator and need to fill in the --freeindex parameter.

I'd like to take one quick moment to thank Dave and the ROS Industrial team for their documentation, and Ioan Sucan and the rest of the MoveIt team for the great platform they've provided.


  1. Thanks Mike!

    Note: I've just merged the repo to the main MoveIt! code, now located at https://github.com/ros-planning/moveit_ikfast

    And I've incorporated your feedback into the updated and moved instructions:

    I'd love feedback on this!

  2. The link http://moveit.ros.org/wiki/index.php/Groovy/Kinematics/IKFast points to an empty page, mate! Thanks for the post. Trying out the IK code generation now... could be very useful in the project. And MoveIt! looks great as well.

  3. The docs are now at http://moveit.ros.org/wiki/Kinematics/IKFast