Commit 5e6e840fdf20ce64c41a5fc2493724e7d0ee6abd

Authored by Renan
Committed by Thiago Franco de Moraes
1 parent 8a54181b
Exists in master

Fix dynamic ref (#112)

* Fix dynamic Ref for polhemus and claron

* fix unicode

* Fix dynamic Ref for usb polhemus connection
invesalius/data/coordinates.py
... ... @@ -60,16 +60,17 @@ def ClaronCoord(trck_init, trck_id, ref_mode):
60 60 while k < 20:
61 61 try:
62 62 trck.Run()
63   - probe = np.array([trck.PositionTooltipX1 * scale[0], trck.PositionTooltipY1 * scale[1],
64   - trck.PositionTooltipZ1 * scale[2], trck.AngleX1, trck.AngleY1, trck.AngleZ1])
65   - reference = np.array([trck.PositionTooltipX2 * scale[0], trck.PositionTooltipY2 * scale[1],
66   - trck.PositionTooltipZ2 * scale[2], trck.AngleX2, trck.AngleY2, trck.AngleZ2])
  63 + probe = np.array([trck.PositionTooltipX1, trck.PositionTooltipY1,
  64 + trck.PositionTooltipZ1, trck.AngleX1, trck.AngleY1, trck.AngleZ1])
  65 + reference = np.array([trck.PositionTooltipX2, trck.PositionTooltipY2,
  66 + trck.PositionTooltipZ2, trck.AngleZ2, trck.AngleY2, trck.AngleX2])
67 67 k = 30
68 68 except AttributeError:
69 69 k += 1
70 70 print "wait, collecting coordinates ..."
71 71 if k == 30:
72 72 coord = dynamic_reference(probe, reference)
  73 + coord = (coord[0] * scale[0], coord[1] * scale[1], coord[2] * scale[2], coord[3], coord[4], coord[5])
73 74 else:
74 75 while k < 20:
75 76 try:
... ... @@ -108,15 +109,16 @@ def PolhemusWrapperCoord(trck, trck_id, ref_mode):
108 109  
109 110 if ref_mode:
110 111 trck.Run()
111   - probe = np.array([float(trck.PositionTooltipX1) * scale[0], float(trck.PositionTooltipY1) * scale[1],
112   - float(trck.PositionTooltipZ1) * scale[2], float(trck.AngleX1), float(trck.AngleY1),
  112 + probe = np.array([float(trck.PositionTooltipX1), float(trck.PositionTooltipY1),
  113 + float(trck.PositionTooltipZ1), float(trck.AngleX1), float(trck.AngleY1),
113 114 float(trck.AngleZ1)])
114   - reference = np.array([float(trck.PositionTooltipX2) * scale[0], float(trck.PositionTooltipY2) * scale[1],
115   - float(trck.PositionTooltipZ2) * scale[2], float(trck.AngleX2), float(trck.AngleY2),
  115 + reference = np.array([float(trck.PositionTooltipX2), float(trck.PositionTooltipY2),
  116 + float(trck.PositionTooltipZ2), float(trck.AngleX2), float(trck.AngleY2),
116 117 float(trck.AngleZ2)])
117 118  
118 119 if probe.all() and reference.all():
119 120 coord = dynamic_reference(probe, reference)
  121 + coord = (coord[0] * scale[0], coord[1] * scale[1], coord[2] * scale[2], coord[3], coord[4], coord[5])
120 122  
121 123 else:
122 124 trck.Run()
... ... @@ -148,13 +150,12 @@ def PolhemusUSBCoord(trck, trck_id, ref_mode):
148 150  
149 151 # six coordinates of first and second sensor: x, y, z and alfa, beta and gama
150 152 # jump one element for reference to avoid the sensor ID returned by Polhemus
151   - probe = data[0] * scale[0], data[1] * scale[1], data[2] * scale[2], \
152   - data[3], data[4], data[5], data[6]
153   - reference = data[7] * scale[0], data[8] * scale[1], data[9] * scale[2], data[10], \
154   - data[11], data[12], data[13]
  153 + probe = data[0], data[1], data[2], data[3], data[4], data[5], data[6]
  154 + reference = data[7], data[8], data[9], data[10], data[11], data[12], data[13]
155 155  
156 156 if probe.all() and reference.all():
157 157 coord = dynamic_reference(probe, reference)
  158 + coord = (coord[0] * scale[0], coord[1] * scale[1], coord[2] * scale[2], coord[3], coord[4], coord[5])
158 159  
159 160 return coord
160 161  
... ...
invesalius/data/trackers.py
... ... @@ -67,8 +67,8 @@ def ClaronTracker(tracker_id):
67 67  
68 68 lib_mode = 'wrapper'
69 69 trck_init = pyclaron.pyclaron()
70   - trck_init.CalibrationDir = const.CAL_DIR
71   - trck_init.MarkerDir = const.MAR_DIR
  70 + trck_init.CalibrationDir = const.CAL_DIR.encode(const.FS_ENCODE)
  71 + trck_init.MarkerDir = const.MAR_DIR.encode(const.FS_ENCODE)
72 72 trck_init.NumberFramesProcessed = 10
73 73 trck_init.FramesExtrapolated = 0
74 74 trck_init.PROBE_NAME = "1Probe"
... ...