0
$\begingroup$

Rosanswers logo

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 behavior 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


Originally posted by weusthofm on ROS Answers with karma: 11 on 2015-11-19

Post score: 0


Original comments

Comment by Tirgo on 2016-04-18:
Hi, were you able to set it up? I am trying to do something similar. I have a robot with a similar Kinematic, but i only need one mimic joint. I am getting the "has a mimic joint" warning and that the dynamics solver is not initialized. Would be nice to share your experience.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

I'm not sure if support for mimic joints has been fully integrated into MoveIt yet (maybe it has been in the Jade devel), but there is an IK class specifically designed for kinematic chains with mimic joints in the moveit_ros_planning package: http://docs.ros.org/jade/api/moveit_ros_planning/html/classKDL_1_1ChainIkSolverVel__pinv__mimic.html

It's basically inherited from the general class for numerical (Jacobian pseudo-inverse) IK solvers in the KDL library. To use it, you'll have to construct the KDL::Chain corresponding to your robot and give it to an instance of the IK solver. Here's an example where this is done (not for mimic joints, but the overall procedure is more or less the same): https://github.com/burgetf/nao_wholebody_planning/blob/master/rrt_connect_planner/src/nao_constraint_kinematics.cpp


Originally posted by Ali250 with karma: 41 on 2016-03-10

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

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