Pbd Rigid Grasping
We need to be able to grasp rigid objects. Such as a needle (also other rigids for testing can be nice).
-
Pbd Rigid Grasping -
Rigid Analytic on Rigid Analytic grasping w/ Haptics -
Rigid Analytic on Deformable Mesh grasping w/ Haptics -
Rigid Mesh on Rigid Analytic grasping (this may be done not sure) w/ Haptics -
Positional/point grasping -
Grasping with rotation -
Multi point grasping -
Lap Tool (capsule stand in) Needle Manipulation Example
Grasping was implemented with PbdRigidBodyPointToPointConstraint which constrains a point on a rigid body to a point on another. It can exert both forces and torques to achieve this. Unfortunately the object can still "spin" around the grasped point. You could, ofc, establish more grasp points but you'd want to in an orthonormal basis to prevent rotation in all directions. I would sooner recommend using a PbdAngularDistanceConstraint (already introduced, but possibly not working), and introduce an optional offset there. So you could maintain the relative angles made when grasping.
Multi point grasping could be tricky to keep stable. I don't think the linear will present huge problems. Maybe a low stiffness on the PbdAngularDistanceConstraint. I would test both with and without haptics. With haptics may be more stable. Since you can't pull one device without also pulling the other. Of course, if you don't have two haptic devices I think testing without is fine. Additionally all our devices don't render torque so if you grab a needle in two locations and rotate in opposite directions there will be conflicts/unsolvable situations.