Baxter gripper and IK

Typically: "How do I... ", "How can I... " questions
Post Reply
atoz
Posts: 57
Joined: 18 Oct 2013, 09:02

Baxter gripper and IK

Post by atoz » 24 Mar 2016, 14:32

Hi,

I have a Baxter running with joints in IK mode. I'm trying to attach the gripper on to the Baxter robot but the finger parts of the gripper keep detaching during simulation. The gripper base and central joint remain attached. I've assembled the gripper with the connection point on the arm. Any idea why this is?

coppelia
Site Admin
Posts: 7229
Joined: 14 Dec 2012, 00:25

Re: Baxter gripper and IK

Post by coppelia » 25 Mar 2016, 12:20

Hello,

this is strange. Either the base of the gripper should stay attached together with the fingers, or the whole gripper should fall (if not attached correctly). Can you post the scene?

Cheers

atoz
Posts: 57
Joined: 18 Oct 2013, 09:02

Re: Baxter gripper and IK

Post by atoz » 25 Mar 2016, 18:11

I have fixed the issue. The problem was that the Baxter_tip dummy wasn't directly under the Baxter gripper on the top level in the tree structure. Why would this cause a problem?

Another thing I'd like to understand is the relationship between simIKGroupHandle and simRMLMoveToPosition. Does simRMLMoveToPosition require the use of simIKGroupHandle in a separate script to work or does simRMLMoveToPosition have its own built-in functionality to handle IK? I'm trying to move the Baxter arm from the tip dummy to a target dummy using simRMLMoveToPosition but it stops part way when I do not use simIKGroupHandle

coppelia
Site Admin
Posts: 7229
Joined: 14 Dec 2012, 00:25

Re: Baxter gripper and IK

Post by coppelia » 28 Mar 2016, 09:24

When building a dynamic structure, it is very important to follow the guidelines listed here.

As for your second question: there is no relationship at all between those two functionality. You have basically an IK group that is (by default) handled by the main script: it will try to have the tip dummy follow the target dummy, by computing the appropriate joint values. If you manually move the target dummy, then IK will automatically compute the joint values and apply them. Now, how you move the target dummy is up to you. You can do this via the mouse, programmatically with simRMLMoveToPosition, with simSetObjectPosition, etc.

So by default the main script will take care of your IK group by computing appropriate joint values (and applying them) under the wood. But you can also take care of that yourself, by setting your IK group as explicit handling: in that case, your main script will not take care of your IK group. You will have to take care of it yourself, e.g. inside of a child script. So in that case, everytime you call simHandleIkGroup on that explicitely handled IK group, it will compute and apply joint values. If you stop calling simHandleIkGroup, then the arm will stop following the target dummy.

If you want to can also do everything yourself with simCheckIkGroup, which will compute joint values, but will not apply them directly.

Cheers

Post Reply