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

Closing kinematic loop with trac_ik

asked 2019-03-07 08:50:26 -0600

Sietse gravatar image

updated 2019-03-07 13:49:50 -0600

gvdhoorn gravatar image

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

edit retag flag offensive close merge delete

Comments

You keep referring to ik_fast, but in your script I only see trac_ik.

gvdhoorn gravatar image gvdhoorn  ( 2019-03-07 10:04:45 -0600 )edit

Oops, you are right. Thanks, Updated.

Sietse gravatar image Sietse  ( 2019-03-07 13:20:30 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2019-03-14 04:59:46 -0600

Sietse gravatar image

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.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2019-03-07 08:50:26 -0600

Seen: 785 times

Last updated: Mar 14 '19