Skip to content

Commit c3ebb86

Browse files
committed
[scene] Automated motion in all scenes using Write/Read state components
1 parent 9f40bff commit c3ebb86

File tree

8 files changed

+26551
-33
lines changed

8 files changed

+26551
-33
lines changed

scenes/InsertionHaptics_Box.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ def createScene(root):
5555
'ConstraintGeometry',
5656
'Geomagic',
5757
'Sofa.Component.Haptics',
58+
'Sofa.Component.Playback'
5859
])
5960

6061

@@ -76,12 +77,16 @@ def createScene(root):
7677
, orientationBase=[0, 0.174, 0, -0.985]
7778
)
7879
toolController.addObject("MechanicalObject", name="mstate_baseMaster"
79-
, position="@GeomagicDevice.positionDevice"
80+
#, position="@GeomagicDevice.positionDevice"
81+
, position="@reader.position"
8082
, template="Rigid3d"
8183
, showObjectScale=0.01
8284
, showObject=False
8385
, drawMode=1
8486
)
87+
#toolController.addObject("WriteState", name="writer", filename="RecordState/Haptics_Box.txt"
88+
# , period=0.01, writeX=True, writeV=True, time=0)
89+
toolController.addObject("ReadState", name="reader", filename="RecordState/Haptics_Box.txt")
8590

8691
needle = root.addChild("Needle")
8792
needle.addObject("EulerImplicitSolver", firstOrder=True)

scenes/InsertionHaptics_Liver.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ def createScene(root):
5555
'ConstraintGeometry',
5656
'Geomagic',
5757
'Sofa.Component.Haptics',
58-
'Sofa.Component.IO.Mesh'
58+
'Sofa.Component.IO.Mesh',
59+
'Sofa.Component.Playback'
5960
])
6061

6162

@@ -77,12 +78,16 @@ def createScene(root):
7778
, orientationBase=[0, 0.174, 0, -0.985]
7879
)
7980
toolController.addObject("MechanicalObject", name="mstate_baseMaster"
80-
, position="@GeomagicDevice.positionDevice"
81+
#, position="@GeomagicDevice.positionDevice"
82+
, position="@reader.position"
8183
, template="Rigid3d"
8284
, showObjectScale=0.01
8385
, showObject=False
8486
, drawMode=1
8587
)
88+
#toolController.addObject("WriteState", name="writer", filename="RecordState/Haptics_Liver.txt"
89+
# , period=0.01, writeX=True, writeV=True, time=0)
90+
toolController.addObject("ReadState", name="reader", filename="RecordState/Haptics_Liver.txt")
8691

8792
needle = root.addChild("Needle")
8893
needle.addObject("EulerImplicitSolver", firstOrder=True)

scenes/NeedleInsertion.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ def createScene(root):
5050
'Sofa.GL.Component.Rendering3D',
5151
'Sofa.GUI.Component',
5252
'Sofa.Component.Engine.Select',
53+
'Sofa.Component.Playback',
5354
'MultiThreading',
5455
'CollisionAlgorithm',
5556
'ConstraintGeometry'
@@ -63,13 +64,18 @@ def createScene(root):
6364
root.addObject("CollisionLoop")
6465

6566
needleBaseMaster = root.addChild("NeedleBaseMaster")
66-
needleBaseMaster.addObject("MechanicalObject", name="mstate_baseMaster", position=[0.04, 0.04, 0, 0, 0, 0, 1], template="Rigid3d", showObjectScale=0.002, showObject=False, drawMode=1)
67-
needleBaseMaster.addObject("LinearMovementProjectiveConstraint",indices=[0], keyTimes=[0,1,7,9],movements=
68-
[ [0.04, 0.04,0,0,0,0]
69-
, [0.04, 0.04,0.05,0,3.14/2,0]
70-
, [0.04, 0.04,-0.07,0,3.14/2,0]
71-
, [0.05, 0.04,-0.07,0,3.14/2 + 3.14/16,0]
72-
],relativeMovements=False)
67+
needleBaseMaster.addObject("MechanicalObject", name="mstate_baseMaster", template="Rigid3d", showObjectScale=0.002, showObject=False, drawMode=1
68+
#, position=[0.04, 0.04, 0, 0, 0, 0, 1])
69+
, position="@reader.position")
70+
#needleBaseMaster.addObject("LinearMovementProjectiveConstraint",indices=[0], keyTimes=[0,1,7,9],movements=
71+
# [ [0.04, 0.04,0,0,0,0]
72+
# , [0.04, 0.04,0.05,0,3.14/2,0]
73+
# , [0.04, 0.04,-0.07,0,3.14/2,0]
74+
# , [0.05, 0.04,-0.07,0,3.14/2 + 3.14/16,0]
75+
#],relativeMovements=False)
76+
#needleBaseMaster.addObject("WriteState", name="writer", filename="RecordState/NeedleInsertion.txt"
77+
# , period=0.01, writeX=True, writeV=True, time=0)
78+
needleBaseMaster.addObject("ReadState", name="reader", filename="RecordState/NeedleInsertion.txt")
7379

7480

7581

scenes/NeedleInsertionCycles.py

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ def createScene(root):
5050
'Sofa.GL.Component.Rendering3D',
5151
'Sofa.GUI.Component',
5252
'Sofa.Component.Engine.Select',
53+
'Sofa.Component.Playback',
5354
'MultiThreading',
5455
'CollisionAlgorithm',
5556
'ConstraintGeometry'
@@ -63,29 +64,34 @@ def createScene(root):
6364
root.addObject("CollisionLoop")
6465

6566
needleBaseMaster = root.addChild("NeedleBaseMaster")
66-
needleBaseMaster.addObject("MechanicalObject", name="mstate_baseMaster", position=[0.04, 0.04, 0, 0, 0, 0, 1], template="Rigid3d", showObjectScale=0.002, showObject=True, drawMode=1)
67-
needleBaseMaster.addObject("LinearMovementProjectiveConstraint",indices=[0],
68-
keyTimes=[
69-
0, 1, 4, 4.5, 5, 8
70-
,8.5,9,12,12.5,13,16
71-
],
72-
movements=[
73-
[0.04, 0.04,0,0,0,0],
74-
[0.04, 0.04,0.05,0,3.14/2,0],
75-
[0.04, 0.04,-0.07,0,3.14/2,0],
76-
[0.05, 0.04,-0.07,0,3.14/2 + 3.14/16,0],
77-
[0.04, 0.04,-0.07,0,3.14/2,0],
78-
[0.04, 0.04,0.005,0,3.14/2,0],
79-
# Change to insertion at an angle
80-
[0.06, 0.04,0.005,0,3.14/2,0],
81-
[0.06, 0.04,0.005,0,3.14/2 + 3.14/8,0],
82-
[0.030866, 0.04,-0.04119,0,3.14/2 + 3.14/8,0],
83-
[0.030866, 0.04,-0.04119,0,3.14/2,0],
84-
[0.030866, 0.04,-0.04119,0,3.14/2 + 3.14/8,0],
85-
[0.06, 0.04,0.005,0,3.14/2 + 3.14/8,0]
86-
]
87-
,relativeMovements=False
88-
)
67+
needleBaseMaster.addObject("MechanicalObject", name="mstate_baseMaster", template="Rigid3d", showObjectScale=0.002, showObject=True, drawMode=1
68+
#, position=[0.04, 0.04, 0, 0, 0, 0, 1])
69+
, position="@reader.position")
70+
#needleBaseMaster.addObject("LinearMovementProjectiveConstraint",indices=[0],
71+
# keyTimes=[
72+
# 0, 1, 4, 4.5, 5, 8
73+
# ,8.5,9,12,12.5,13,16
74+
# ],
75+
# movements=[
76+
# [0.04, 0.04,0,0,0,0],
77+
# [0.04, 0.04,0.05,0,3.14/2,0],
78+
# [0.04, 0.04,-0.07,0,3.14/2,0],
79+
# [0.05, 0.04,-0.07,0,3.14/2 + 3.14/16,0],
80+
# [0.04, 0.04,-0.07,0,3.14/2,0],
81+
# [0.04, 0.04,0.005,0,3.14/2,0],
82+
# # Change to insertion at an angle
83+
# [0.06, 0.04,0.005,0,3.14/2,0],
84+
# [0.06, 0.04,0.005,0,3.14/2 + 3.14/8,0],
85+
# [0.030866, 0.04,-0.04119,0,3.14/2 + 3.14/8,0],
86+
# [0.030866, 0.04,-0.04119,0,3.14/2,0],
87+
# [0.030866, 0.04,-0.04119,0,3.14/2 + 3.14/8,0],
88+
# [0.06, 0.04,0.005,0,3.14/2 + 3.14/8,0]
89+
# ]
90+
# ,relativeMovements=False
91+
#)
92+
#needleBaseMaster.addObject("WriteState", name="writer", filename="RecordState/NeedleInsertionCycles.txt"
93+
# , period=0.01, writeX=True, writeV=True, time=0)
94+
needleBaseMaster.addObject("ReadState", name="reader", filename="RecordState/NeedleInsertionCycles.txt")
8995

9096

9197
needle = root.addChild("Needle")

0 commit comments

Comments
 (0)