# Odd joint behavior

I have noticed some unexpected behavior with joints, and maybe you can help me understand what’s going on…

First, my setup: I have an Object (a rigidbody with mass), a hand (also a rigidbody with mass), and an invisible target to tell the hand where it should be. The target is a kinematic rigidbody.

To make the hand move to the target, I have added a configurable joint between hand and target, with linear and angular drive, and added some drag to the hand rb. This works reasonably well, the hand moves to the position and rotation of the target, doesn’t overshoot, and I can use it to push the Object around (by putting the target on the other side, and letting the configurable joint pull the hand toward it, colliding and moving the Object at the same time. Great.

Now I am trying to add a “grab” feature, where the hand attaches to the Object, and should drag it around (allowing me to now pull the object, as well as the previous push). So when grabbing, I create a Fixed Joint between the hand and the Object. Things no longer behave quite so well. First, the combined hand and Object feels heavier than when i was just pushing it with no FixedJoint, maybe twice as heavy. Second, if i start to pull the combined objects by placing the target a little bit away, the combined objects start moving but then dont accelerate much. In addition, if I put the target far away (a meter), the combined object velocity actually drops, and it moves at a snail pace towards the target. It is like the configurable joint works as a spring when the anchor points are separated up to a distance, and then beyond that exerts only enough force to counter the drag, but no more (since there is no acceleration). This does not make sense to me! I can clearly see differences in the total velocity depending on how the target is placed. I would expect the configurable joint to apply more and more force as the anchor points are separated, producing an acceleration on the Object.

Furthermore, while moving, the hand will move slowly away from the Object as I move the target further. The fixed joint is stretching, rather than remaining fixed. Why is this?

Finally, when the hand reaches the target, still gripping the Object, it wobbles and oscillates around. I’ve temporarily worked around this by tweaking the Objects drag a little higher during the grab, and resetting it to 0 (i’m free floating in zero-g) when the grab ends. Without this, the solution is rather unstable.

I just noticed that if I change the configurable joint between hand and target so that xyz drive is 0, and only use the angular drive, and add a spring joint between hand and target, then most of the issues disappear.
Why is this?
The spring joint isnt quite as nice as the drive of the configurable joint… its a bit too mushy and overshoots, or is laggy, whereas configurable joint drive is more responsive… any way to adjust the spring joint for more responsiveness? Just upping the spring makes it more wobbly, and then i have to up the drag which makes it about the same again

(Object)—fixedjoint–(Hand)-----conf/spring joint----(target)