breakable joints

Hi,

I'm currently working on a vacuum gripper, which connects itself to an item with a joint. I found the MaximumForce an MaximumTorque properties on the PhysicsJoint, so the item gets disconected if the force or torque gets to big. But is there a way to see in program wether a PhysicsJoint has broken or not so I can trigger an action after breaking?

Thanks,

Michael

[381 byte] By [MichaelVistein] at [2008-1-9]
# 1
I will have to build a vacuum gripper by myself in near future. Can you please sketch your way to solve this? Is it possible to connect and disconnect joints at simulation runtime?
AlexanderDahl at 2007-10-2 > top of Msdn Tech,Microsoft Robotics Studio,Microsoft Robotics - Simulation...
# 2
Yes,. it is possible to do so.

Currently I'm having a list of grabbable items. With a timer I check every item if it has a side which can be grabbed and create a joint between my gripper and the item at runtime. You can insert the newly created joint with PhysicsEngine.InsertJoint(...) and remove it again with PhysicsEngine.DeleteJoint(...). You have to make sure that all entities have been properly initialized beforehand.

To check wether the gripper is in the right position and orientation, I calculate the normal vectors for the gripper and item face and check the angle between them. Afterwards I check wether the points on the gripper outline are still inside the items face (calculating cut point of normals from the gripper to items face)

Currently I can recognize when the objects gets dragged away from my gripper so far that I would not be able to grip it anymore and release the joint then, but I thought it would be better to use the MaximumForce and MaximumTorque properties, but at the moment I still have the problem that my PhysicsJoint objects remains after breaking. My code refuses to create a new joint while there is still one, so it would be useful to detect the breaking of the joint.

Michael

MichaelVistein at 2007-10-2 > top of Msdn Tech,Microsoft Robotics Studio,Microsoft Robotics - Simulation...
# 3

The physics engine provides a callback that gets called when a joint breaks. Unfortunately, we have not exposed that callback. We will do so in the next release.

Sadly, that does nothing to help you today. In your case, it seems like you could check the distance between the gripper and the object that has a joint attached to it. If that distance is larger than it should be, you could assume that the joint has broken and go ahead and delete it.

-Kyle

KyleJ-MSFT at 2007-10-2 > top of Msdn Tech,Microsoft Robotics Studio,Microsoft Robotics - Simulation...
# 4
KyleJ - MSFT wrote:

Sadly, that does nothing to help you today. In your case, it seems like you could check the distance between the gripper and the object that has a joint attached to it. If that distance is larger than it should be, you could assume that the joint has broken and go ahead and delete it.


Well, that's what we're doing right now. Just thought, if there is a builtin feature for joint breaking, why not using it ... But measuring the distance and angle between normal vectors works quite well now, so there's no real problem

Thanks,

Michael

MichaelVistein at 2007-10-2 > top of Msdn Tech,Microsoft Robotics Studio,Microsoft Robotics - Simulation...

Microsoft Robotics Studio

Site Classified