Hi,
I have an object (A) which is the child of a gripper's attach point.
The object A has a dynamically enabled child passive joint, to attach another object (B).
When I move the gripper, object A moves as it should, but object B doesn't move even if the movement is orthogonal to the joint's DOF.
Is there a way to enable such a behavior, where the joint can allow passive movement of object B as object A moves?
Thanks!
Moving a chain of objects
Re: Moving a chain of objects
Hello,
can you post a minimalistic scene that illustrates your problem? Not sure I understood exactly...
Cheers
can you post a minimalistic scene that illustrates your problem? Not sure I understood exactly...
Cheers
Re: Moving a chain of objects
Hi, thanks for the fast reply!
I've uploaded two short videos to
https://www.dropbox.com/s/1yo4g1evtsxv9 ... f.mp4?dl=0
https://www.dropbox.com/s/6daqjwha3yl75 ... n.mp4?dl=0
"Base" is the red object in the scene.
When I disable dynamics in the "Rigid Body Dynamic Properties" dialog (_off.mp4), it moves along with the gripper/fastener. When dynamics are enabled (_on.mp4), it doesn't move.
I would like the Base to be dynamically enabled, because the joints attaching it to the object in the gripper should allow it to behave like a threaded connection rather than a rigid weld.
Any suggestions are welcome!
I've uploaded two short videos to
https://www.dropbox.com/s/1yo4g1evtsxv9 ... f.mp4?dl=0
https://www.dropbox.com/s/6daqjwha3yl75 ... n.mp4?dl=0
"Base" is the red object in the scene.
When I disable dynamics in the "Rigid Body Dynamic Properties" dialog (_off.mp4), it moves along with the gripper/fastener. When dynamics are enabled (_on.mp4), it doesn't move.
I would like the Base to be dynamically enabled, because the joints attaching it to the object in the gripper should allow it to behave like a threaded connection rather than a rigid weld.
Any suggestions are welcome!
Re: Moving a chain of objects
This really depends how you have built the scene hierarchy.
If you have your object:
redBase --> revoluteJoint --> nut
and you want your gripper to rigidly attach to the nut, then you have a problem because you ideally want to attach nut to a force sensor, itself attached to the gripper. So you will have to use a loop-closure construct:
redBase --> revoluteJoint --> nut --> dummyA
and your gripper:
Gripper --> forceSensor --> dummyB
DummyA and dummyB need to be linked together via the dynamics, overlap constraint. When this happens, the physics engine tried to have dummyA and dummyB perfectly overlap, thus creating a connection.
Have a look at the demo model Robots/non-mobile/uarm.ttm: it uses exactly this mechanism to rigidly connect to objects it grabs: the dummy-dummy connection is however already created, and the code will dynamically position make dummyA child of the object to grab.
Cheers
If you have your object:
redBase --> revoluteJoint --> nut
and you want your gripper to rigidly attach to the nut, then you have a problem because you ideally want to attach nut to a force sensor, itself attached to the gripper. So you will have to use a loop-closure construct:
redBase --> revoluteJoint --> nut --> dummyA
and your gripper:
Gripper --> forceSensor --> dummyB
DummyA and dummyB need to be linked together via the dynamics, overlap constraint. When this happens, the physics engine tried to have dummyA and dummyB perfectly overlap, thus creating a connection.
Have a look at the demo model Robots/non-mobile/uarm.ttm: it uses exactly this mechanism to rigidly connect to objects it grabs: the dummy-dummy connection is however already created, and the code will dynamically position make dummyA child of the object to grab.
Cheers
Re: Moving a chain of objects
Hi,
Sorry for being unclear, it is difficult for me to make a useful MWE scene. The heirarchy goes:
robot -> gripper -> force sensor -> nut -> prismatic joint -> revolute joint -> red base
Basically, I want the base to behave like it is attached to the nut via a passive screw joint.
I will try use dummies to connect the revolute joint and red base, but from your reply I am unsure about how this would help since the setup above seems to work when the base's dynamics are disabled.
Also, since the creation of the above nut -> ... -> base heirarchy is triggered in a script, ideally I would not have to complicate that connection any further. But is it possible to constrain the dummies via API?
Thanks again!
Sorry for being unclear, it is difficult for me to make a useful MWE scene. The heirarchy goes:
robot -> gripper -> force sensor -> nut -> prismatic joint -> revolute joint -> red base
Basically, I want the base to behave like it is attached to the nut via a passive screw joint.
I will try use dummies to connect the revolute joint and red base, but from your reply I am unsure about how this would help since the setup above seems to work when the base's dynamics are disabled.
Also, since the creation of the above nut -> ... -> base heirarchy is triggered in a script, ideally I would not have to complicate that connection any further. But is it possible to constrain the dummies via API?
Thanks again!
Re: Moving a chain of objects
Have a look at this page, the section about dynamically enabled joints or force sensors. There it is explained how to create a loop closure (which is what you want to do).
You can also get inspiration from this scene, that also illustrates a dynamic loop closure.
Cheers
You can also get inspiration from this scene, that also illustrates a dynamic loop closure.
Cheers