Rosanswers logo

Hello List,

Creating simulation of a rower in a boat using ros, gazebo and trac_ik. There are three kinematic loops in the robot's description. This cannot be described in URDF, so they should be closed when generating the SDF from it. I use ik_fast to find the correct joint values for this. I created stubs on both sides of the, still, broken arm's, and ask trac_ik how to close them.

The project can be found om my github page. The code resides in the boot3_description directory. Please see this screenshot of the rower in rviz. The loop with the left arm is closed, but the right arm not yet. Also note the stub-links that have to be placed on top of each other.

I create a program ik_1.py that uses the joint state controller and trac_ik to calculate the correct values of the arm joints to close the loop. The new initial joint values are written in param.xacro to be used later.

Now my question. The program works perfectly when closing the left arm, but does NOT yield the proper values for the right arm. trac_ik finds a solution, but when the new values are used the right arm is not connected.

I can't find any difference in the two chains, apart of course of the different values to get another arm. How can trac_ik find a solution that is clearly wrong?

Hopefully someone can shed some light on this.

UPDATE: I was confused, I use trac_ik, not ik_fast.

Thanks in advance, Sietse

Originally posted by Sietse on ROS Answers with karma: 168 on 2019-03-07

Post score: 0

Original comments

Comment by gvdhoorn on 2019-03-07:
You keep referring to ik_fast, but in your script I only see trac_ik.

Comment by Sietse on 2019-03-07:
Oops, you are right. Thanks, Updated.


1 Answer 1


Rosanswers logo

Answering my own question.

There where some differences in the arms in orientation, and how axes where set, that got me confused. That is now corrected, and using the ik_1.py program I can now close the kinematic loops.

The use case is that, during experiments I need to change the model slightly, larger rower, shorter oars etc. After that the kinematic loops are broken and should be closed again.

Sorry for the confusion.

Originally posted by Sietse with karma: 168 on 2019-03-14

This answer was ACCEPTED on the original site

Post score: 0


Your Answer

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