14 June 2015 at 05:30 #3367sarramiBlocked
I want to model a grasping tool with Sofa but I don’t know if I should use “grasping manager” component for modelling the tool or I have to use “Persistent contact” Plugin, because there is an example with the name of grasping in which this plugin is used.
I will be thankful if you inform me how should I start for modelling a grasping tool?
Sarrami15 June 2015 at 09:18 #3368ForestBlocked
The PersistentContact Plugin was an attempt to solve the problem of physical grasping when the instrument is moving. The point was to record the contacts between the torus and the instrument at a given time step and to try to maintain the torus at the same point relatively to the instrument.
As far as I remember, it has never worked satisfyingly.
The GrapingManager is a controller which should be placed in your instrument graph. By reading the code (I never used it) what I can say of it is:
– It is controlled by the keyboard (or by the “active” data)
– It allows you to open or close your instrument (given that your opening articulation is placed correctly)
– It also activates some collision models when the grasping is activated. In the example scene in OptiTrackNatNet plugin, that collision model has a contact response set to “stick”.
You have some examples of grasping tools:
– in the OptiTrackNatNet plugin, which use the GraspingManager controller
– in the Xitact plugin, which use a FrictionContact approach.
The other examples I know of are unfortunately not publicly available. They use objects similar to the GraspingManager that do more or less the following things:
1- detect the closing of the instrument (usually a threshold for your closing angle),
2- look in the contact managers for contact between your instrument and the object you want to grab,
3- punctually deactivate the collisions between your instrument and the object
3- create a bilateral constraint between the two objects, or replace it manually at each time step.
Digital-Trainers17 June 2015 at 07:22 #3372sarramiBlocked
Thank you for your very useful answer.
Please inform me if I want to model a Forceps (for example) which grasps the tissues, can I do it well with the present components of Sofa or I need to write a plugin to add some properties?
Sarrami17 June 2015 at 07:34 #3373ForestBlocked
I have never used it, but you might have a closer look to the grasping examples in the OptiTrackNatNet plugin, and see if you can adapt them to your application. In particular the “stick” contact response might fit your needs (according to its name).
If that does not fit, I unfortunately believe that you will have to write your own component as I am not aware of other publicly available components that could be used without any coding from your side.
- You must be logged in to reply to this topic.