Skip to content

ENH: Pbd Rigid-Rigid Grasping and Rigid-Deformable (with haptics/two-way this time)

Andrew Wilson requested to merge andrew.wilson/iMSTK:PbdRigidGrasping into master

Adds:

  • LineMeshToCapsuleCD upped parallel condition to 500 cells. Multithreading here is very slow unless there are MANY elements. I suspect on most modern computers 500 is even too small.
  • CellPicker is meant to report all cells found inside another Analytic Geometry or ClosedSurfaceMesh. This worked but not in some specific instances where collision detection returned vertices. Now it uses vertex-to-cell map to compute those extra cells.
  • PbdHingeJointConstraint moved to PbdAngularConstraint. PbdAngularDistanceConstraint added there as well. Intending for all angular constraints to go under that include. Unit tests added for both constraints.
  • PbdObjectGrasping refactored to be more general and work for rigid-on-rigid grasping and rigid-on-deformable two-way grasping.
  • PbdObjectGrasping has a sizeable suite of tests now.

Examples to check out:

  • PbdRigidGrasping: Demonstrates grasping of various rigid objects sitting on a plane.
  • PbdLapToolSuturing: Demonstrates grasping with proper laparoscopic tools movement (tool on tool contact, tool on thread, thread and needle grasping, port hole constraints with properly inverted lap tool movement). This works with one haptic device minimum. But it will be very hard to actually use with one device.
  • PbdRigidInDeformableGrasping: Bit of a weird one. But I do think it demonstrates some pretty neat stuff so kept it for now.
  • PbdHapticGrasping: Now uses pbd rigid object instead of the multi body approach. Much smoother. Also enabled collisions with dilated capsule grasping.
Edited by Andrew Wilson

Merge request reports