Skip to content

Commit add2cad

Browse files
committed
[scene] Automated NeedleInsertionLayers script
1 parent 5ca22ce commit add2cad

File tree

2 files changed

+3221
-4
lines changed

2 files changed

+3221
-4
lines changed

scenes/NeedleInsertionLayers.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import Sofa
33

44
g_needleLength=0.200 #(m)
5-
g_needleNumberOfElems=20 #(# of edges)
5+
g_needleNumberOfElems=12 #(# of edges)
66
g_needleBaseOffset=[0.04,0.15,-0.2]
77
g_needleRadius = 0.001 #(m)
88
g_needleMechanicalParameters = {
@@ -64,6 +64,9 @@ def createScene(root):
6464
'Sofa.GL.Component.Rendering3D',
6565
'Sofa.GUI.Component',
6666
'Sofa.Component.Engine.Select',
67+
'Sofa.Component.Playback',
68+
'Geomagic',
69+
'Sofa.Component.Haptics',
6770
'MultiThreading',
6871
'CollisionAlgorithm',
6972
'ConstraintGeometry'
@@ -97,12 +100,16 @@ def createScene(root):
97100
, orientationBase=[0, 0.174, 0, -0.985]
98101
)
99102
toolController.addObject("MechanicalObject", name="mstate_baseMaster"
100-
, position="@GeomagicDevice.positionDevice"
103+
#, position="@GeomagicDevice.positionDevice"
104+
, position="@reader.position"
101105
, template="Rigid3d"
102106
, showObjectScale=0.01
103107
, showObject=False
104108
, drawMode=1
105109
)
110+
#toolController.addObject("WriteState", name="writer", filename="RecordState/NeedleInsertionLayers.txt"
111+
# , period=0.005, writeX=True, writeV=True, time=0)
112+
toolController.addObject("ReadState", name="reader", filename="RecordState/NeedleInsertionLayers.txt")
106113

107114
needle = root.addChild("Needle")
108115
needle.addObject("EulerImplicitSolver", firstOrder=True)
@@ -158,7 +165,7 @@ def createScene(root):
158165
FF = root.addChild("ForceFeedback")
159166
FF.addObject("MechanicalObject", name="mstate_lcp", template="Rigid3d"
160167
, showObject=False, src="@../Needle/needleBase/mstate_base")
161-
FF.addObject("LCPForceFeedback", name="lcp_ff", activate=1, forceCoef=0.0015)
168+
FF.addObject("LCPForceFeedback", name="lcp_ff", activate=1, forceCoef=0.0012)
162169
FFBody = FF.addChild("Body")
163170
FFBody.addObject("EdgeSetTopologyContainer", name="Container", src="@../../Needle/bodyCollision/Container_body")
164171
FFBody.addObject("MechanicalObject", name="mstate_coli", constraint="@../../Needle/bodyCollision/mstate_body.constraint")
@@ -231,7 +238,7 @@ def createScene(root):
231238

232239
for i in range(0,3):
233240
algo = root.addChild("algo"+str(i))
234-
punctureForce = 500 if i < 2 else 2000
241+
punctureForce = 400 if i < 2 else 2000
235242
algo.addObject("InsertionAlgorithm", name="InsertionAlgo"+str(i),
236243
tipGeom="@/Needle/tipCollision/geom_tip",
237244
surfGeom="@/Layer"+str(i)+"/collision/geom_tri",

0 commit comments

Comments
 (0)