Can moveit cope with mimic joint or liniear constraints for planning and trajectory in IK

724 views
Skip to first unread message

Marcel Weusthof

unread,
Nov 23, 2015, 5:26:47 AM11/23/15
to MoveIt! Users

We have a parallel robot which we want to model and control using ROS. For this we need a Forward Kinematic (FK) model as well as calculating the Inverse Kinematics (IK) on velocity level. The kinematic structure of the robot partly behaves serial and partly parallel (2 DOF’s parallel, 3 DOF’s serial). For more info I can refer for the short movie, which can be send on request, which shows the behaviour of each DOF.

 

Implementing the FK was quit straight forward by introducing mimic joints in the URDF-file. These mimic joints are simply a linear function of other joints. This approach works as expected for the FK, however not for the IK. For the IK problem we tried MoveIt, however the standard algorithm used in MoveIt, does not cope with these mimic joints. Maybe we could calculate the manipulator Jacobian by hand and implement our own IK algorithm, however we prefer to use a package like MoveIt, as this package comes with a lot of other possibilities like collision detection, joint limits etcetera.

 

So our question is, how should we implement a parallel kinematic structure in ROS?

 

This question can be divided by the following sub questions:

• Is the use of mimic joints the correct choice?

• Can MoveIt cope with mimic joints?

• Can MoveIt cope with linear constraints (e.g. q3=q2-q1), which is basically coping with the mimic joint?

• Is there an alternative for MoveIt which can do the above? (IKFast?, OpenRave) • Is there a package which uses the Jacobian matrix directly?

• Can we fool MoveIT to solve this

Simon Schmeißer

unread,
Nov 23, 2015, 7:48:33 AM11/23/15
to MoveIt! Users
MoveIt is not a IK-solver by itself! It uses a plugin system for that with KDL being the standard one. IKfast is another possibility. But you can also write your own plugin and reuse the rest of MoveIt. No fooling involved

I don't have answers to the rest of your questions, just wanted to get this right.

Sachin Chitta

unread,
Nov 25, 2015, 1:28:52 PM11/25/15
to Simon Schmeißer, MoveIt! Users
Not really accurate Simon.

MoveIt! does have an IK solver built in that is based on top of KDL. It does take into account mimic joints and they are a good choice for some robots with parallel mechanisms in them. The answer to the first three questions you have, Marcel, is a guarded yes for some robots but we do need more information about your robot. How many DOFs does it have, are there redundancies, is it over-constrained?

Sachin

Kiran Mohan

unread,
Jul 20, 2016, 4:39:18 PM7/20/16
to MoveIt! Users, s.schm...@gmx.net
Hi,

I am new to Moveit. I am facing a similar problem to Marcel's. My robot has 5 DoFs (No Yaw) plus 4 mimic joints. There is a parallel mechanism consisting of these 4 mimic joints that connects the arm to the end effector. The end effector has a point on it, which aligns with the 5th axis (Pitch). How exactly should I configure my planning groups and end effectors?

This is what I've tried and the result I obtained.
    Planning Group  : Configured the entire kinematic chain from the base to the end effector as one planning group.
    End Effector        : Configured the end effector with parent link as the end effector link itself
    kinematics.yaml  : used "position_only_ik: True" in kinematics.yaml configuration file.
    RESULT              : Able to plan using interactive marker which is positioned at the tip of the end effector (as desired).
                                   However, this only works for X-Y-Z motions and the Roll and Pitch do not seem to work while using the interactive markers.
                                   Also, when sending target (even with just X-Y-Z movement) from a C++ move group interface node, I get an error saying "Unable to sample any valid states for goal tree."

What should I do? I suspect that my configuration of end-effector and planning groups are incorrect. But I do not know how exactly I should configure them for the case with mimic joints.

Thank you in advance,
Kiran.
Reply all
Reply to author
Forward
0 new messages