tl;dr: move (or rotate) the transform, then set the autoConfigureConnectedAnchor of the joint to false, then back to true in the same frame. This will reset the joint anchoring.
If you try to change the position or rotation of a gameobject with a joint, or if you try to move or rotate its rigidbody, you will have to face the resistance of your joint. To move or rotate an object that is jointed with another, you must change the anchoring. Then anchoring is the position and rotation of your jointed object, relatively to the connected body.
You can efficiently translate a jointed object, if you update its anchor position accordingly. If you translate an objet by (1, 0, 0), you just have to add (-1, 0, 0) to the anchor. You can even change the connectedBody anchor if you like.
For the rotation, its a lot more tricky. Joints don’t give access to the anchor rotation and allow only to set primary and secondary axis, which is a pain in the ass in my opinion. You can try to rotate your object and then change these two axis accordingly, but this is way more painful than it is for a simple transaltion.
Now there is a much simpler way, consisting on reseting completly the anchoring. This solution will only work if you are using automatic anchoring for your joint. You just have to set the property “autoConfigureConnectedAnchor” to false, then back to true. Each time this value is set to true, it will calculate the anchor position (and rotation internaly, even if it’s visible nowhere in the inspector) considering the actual position and rotation of the jointed object.
So change your object position and rotation as you wish, then use this trick and you will be able to move a jointed object relatively to the connected body without facing the joint constraint. Be careful though, it may be CPU extensive, depending how the rigidbody react to this change, I don’t know. It works for me.