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

Connecting custom IK with MoveIt!

asked 2018-06-02 13:27:40 -0500

AdamSorrel gravatar image

Hi everybody,

I am recently struggling with implementation of IK for my robot arm. It's a 4DOF uArm robot (link here), with deterministic IK solutions. I'm working with ROS Kinetic and MoveIt. I have generated an IkFast plugin, but I'm having issues implementing it, because the last joint of my robot arm is not actuated (check the link attached). This seems to confuse MoveIt! and I have not been able to find a solution. It was already brought up in this question. I was researching the option of using a mimic joint, but it doesn't seem to resolve the issue plus it would have to mimic two joints at the same time (joint4 = 0.15707 + joint1 - joint2).

As a matter of fact, I don't actually need such a sophisticated system as IkFast, since the joint values are deterministic for each location. I actually have the IK equations and a C++ implementation. I could use this as an IK, but I don't know how to connect it to MoveIt. I was checking the old tutorial for creating a custom constrained_ik, but it seems to no longer be relevant.

I am after any hint as for where to look. If you have any idea what is the nature of a connection between the IK solver package and MoveIt, what kind of connection and/or message is being used between the two or where I can access such information. I have tried checking a IkFast solution and reverse engineering it, but it's a bit too complicated for my understanding. Can't find which part is actually receiving and sending the solution.

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2018-06-20 02:59:59 -0500

The official documentation is here, along with some links to example code. Another example is ur_kinematics.

The kinematics are loaded in MoveIt via a plugin architecture (see this pluginlib tutorial). When you have created your plugin, you can select it in your kinematics.yaml file like this:

  kinematics_solver: ur_kinematics/UR5KinematicsPlugin
edit flag offensive delete link more


Thanks so much for your help! That's just the kind of pointer I needed.

AdamSorrel gravatar image AdamSorrel  ( 2018-06-21 06:33:00 -0500 )edit

Question Tools



Asked: 2018-06-02 13:27:40 -0500

Seen: 953 times

Last updated: Jun 20 '18