sophiar_config_endo_guide_oldhead.json 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539
  1. {
  2. "variable_list": [
  3. {
  4. "name": "probe_ref_in_tracker",
  5. "type": "transform_obj"
  6. },
  7. {
  8. "name": "probe_in_tracker",
  9. "type": "transform_obj"
  10. },
  11. {
  12. "name": "femur_ref_in_tracker",
  13. "type": "transform_obj"
  14. },
  15. {
  16. "name": "femur_in_femur_ref",
  17. "type": "transform_obj",
  18. "value": [
  19. -158.57010140440562,
  20. 109.08408048026303,
  21. 311.7159241940251,
  22. 0.6426166606045021,
  23. -0.3019245048766848,
  24. -0.18681286301124206,
  25. 0.6789597742738753
  26. ]
  27. },
  28. {
  29. "name": "tibia_ref_in_tracker",
  30. "type": "transform_obj"
  31. },
  32. {
  33. "name": "tibia_in_tibia_ref",
  34. "type": "transform_obj",
  35. "value": [
  36. 117.21224919149104,
  37. 38.32624851921699,
  38. -72.90989200004259,
  39. -0.19759914802407674,
  40. 0.6557689584549056,
  41. -0.28931051779904626,
  42. 0.6687458965242118
  43. ]
  44. },
  45. {
  46. "name": "camera_ref_in_tracker",
  47. "type": "transform_obj"
  48. },
  49. {
  50. "name": "camera_ref_in_tracker_error",
  51. "type": "double_obj"
  52. },
  53. {
  54. "name": "camera_in_camera_ref",
  55. "type": "transform_obj"
  56. },
  57. {
  58. "name": "camera_in_tracker",
  59. "type": "transform_obj"
  60. },
  61. {
  62. "name": "mvs_ref_in_tracker",
  63. "type": "transform_obj"
  64. },
  65. {
  66. "name": "left_camera_in_tracker",
  67. "type": "transform_obj"
  68. },
  69. {
  70. "name": "right_camera_in_tracker",
  71. "type": "transform_obj"
  72. },
  73. {
  74. "name": "femur_in_tracker",
  75. "type": "transform_obj"
  76. },
  77. {
  78. "name": "tibia_in_tracker",
  79. "type": "transform_obj"
  80. },
  81. {
  82. "name": "probe_in_femur_ref",
  83. "type": "transform_obj"
  84. },
  85. {
  86. "name": "probe_in_tibia_ref",
  87. "type": "transform_obj"
  88. },
  89. {
  90. "name": "probe_in_femur",
  91. "type": "transform_obj"
  92. },
  93. {
  94. "name": "probe_in_tibia",
  95. "type": "transform_obj"
  96. },
  97. {
  98. "name": "femur_in_camera_ref",
  99. "type": "transform_obj"
  100. },
  101. {
  102. "name": "tibia_in_camera_ref",
  103. "type": "transform_obj"
  104. },
  105. {
  106. "name": "probe_tip_in_femur_ref",
  107. "type": "scalarxyz_obj"
  108. },
  109. {
  110. "name": "probe_tip_in_tibia_ref",
  111. "type": "scalarxyz_obj"
  112. },
  113. {
  114. "name": "picked_point_in_femur_ref",
  115. "type": "scalarxyz_obj"
  116. },
  117. {
  118. "name": "picked_point_in_tibia_ref",
  119. "type": "scalarxyz_obj"
  120. },
  121. {
  122. "name": "probe_tip_in_femur",
  123. "type": "scalarxyz_obj"
  124. },
  125. {
  126. "name": "probe_tip_in_tibia",
  127. "type": "scalarxyz_obj"
  128. },
  129. {
  130. "name": "picked_point_in_femur",
  131. "type": "scalarxyz_obj"
  132. },
  133. {
  134. "name": "picked_point_in_tibia",
  135. "type": "scalarxyz_obj"
  136. },
  137. {
  138. "name": "camera_in_tracker_denoised",
  139. "type": "transform_obj"
  140. },
  141. {
  142. "name": "left_camera_in_tracker_denoised",
  143. "type": "transform_obj"
  144. },
  145. {
  146. "name": "right_camera_in_tracker_denoised",
  147. "type": "transform_obj"
  148. },
  149. {
  150. "name": "femur_in_tracker_denoised",
  151. "type": "transform_obj"
  152. },
  153. {
  154. "name": "tibia_in_tracker_denoised",
  155. "type": "transform_obj"
  156. }
  157. ],
  158. "object_list": [
  159. {
  160. "type": "transform_tree",
  161. "name": "transform_tree",
  162. "init_config": {
  163. "node_list": [
  164. {
  165. "name": "tracker"
  166. },
  167. {
  168. "name": "probe_ref",
  169. "parent": "tracker",
  170. "transform_var_name": "probe_ref_in_tracker"
  171. },
  172. {
  173. "name": "probe",
  174. "parent": "probe_ref",
  175. "transform": [
  176. -0.69,
  177. -13.95,
  178. -186.84,
  179. 1,
  180. 0,
  181. 0,
  182. 0
  183. ]
  184. },
  185. {
  186. "name": "femur_ref",
  187. "parent": "tracker",
  188. "transform_var_name": "femur_ref_in_tracker"
  189. },
  190. {
  191. "name": "femur",
  192. "parent": "femur_ref",
  193. "transform_var_name": "femur_in_femur_ref"
  194. },
  195. {
  196. "name": "tibia_ref",
  197. "parent": "tracker",
  198. "transform_var_name": "tibia_ref_in_tracker"
  199. },
  200. {
  201. "name": "tibia",
  202. "parent": "tibia_ref",
  203. "transform_var_name": "tibia_in_tibia_ref"
  204. },
  205. {
  206. "name": "camera_ref",
  207. "parent": "tracker",
  208. "transform_var_name": "camera_ref_in_tracker"
  209. },
  210. {
  211. "name": "camera",
  212. "parent": "camera_ref",
  213. "transform_var_name": "camera_in_camera_ref"
  214. },
  215. {
  216. "name": "mvs_ref",
  217. "parent": "tracker",
  218. "transform_var_name": "mvs_ref_in_tracker"
  219. },
  220. {
  221. "name": "left_camera",
  222. "parent": "mvs_ref",
  223. "transform": [
  224. 33.2854,
  225. -37.7917,
  226. -24.4682,
  227. 0.6318,
  228. 0.3547,
  229. 0.4719,
  230. -0.5023
  231. ]
  232. },
  233. {
  234. "name": "right_camera",
  235. "parent": "mvs_ref",
  236. "transform": [
  237. 37.3992,
  238. -56.7108,
  239. -85.8847,
  240. 0.6304,
  241. 0.3605,
  242. 0.4738,
  243. -0.4982
  244. ]
  245. }
  246. ]
  247. },
  248. "start_config": {
  249. "watch_list": [
  250. {
  251. "target": "camera",
  252. "observer": "tracker",
  253. "transform_var_name": "camera_in_tracker"
  254. },
  255. {
  256. "target": "left_camera",
  257. "observer": "tracker",
  258. "transform_var_name": "left_camera_in_tracker"
  259. },
  260. {
  261. "target": "right_camera",
  262. "observer": "tracker",
  263. "transform_var_name": "right_camera_in_tracker"
  264. },
  265. {
  266. "target": "femur",
  267. "observer": "tracker",
  268. "transform_var_name": "femur_in_tracker"
  269. },
  270. {
  271. "target": "tibia",
  272. "observer": "tracker",
  273. "transform_var_name": "tibia_in_tracker"
  274. },
  275. {
  276. "target": "probe",
  277. "observer": "tracker",
  278. "transform_var_name": "probe_in_tracker"
  279. },
  280. {
  281. "target": "probe",
  282. "observer": "femur_ref",
  283. "transform_var_name": "probe_in_femur_ref"
  284. },
  285. {
  286. "target": "probe",
  287. "observer": "tibia_ref",
  288. "transform_var_name": "probe_in_tibia_ref"
  289. },
  290. {
  291. "target": "probe",
  292. "observer": "femur",
  293. "transform_var_name": "probe_in_femur"
  294. },
  295. {
  296. "target": "probe",
  297. "observer": "tibia",
  298. "transform_var_name": "probe_in_tibia"
  299. },
  300. {
  301. "target": "femur",
  302. "observer": "camera_ref",
  303. "transform_var_name": "femur_in_camera_ref"
  304. },
  305. {
  306. "target": "tibia",
  307. "observer": "camera_ref",
  308. "transform_var_name": "tibia_in_camera_ref"
  309. }
  310. ]
  311. }
  312. },
  313. {
  314. "type": "ndi_interface",
  315. "name": "ndi",
  316. "init_config": {
  317. "address_type": "ethernet",
  318. "ip": "10.0.0.5",
  319. "tcp_port": 8765,
  320. "com_port": "/dev/ttyUSB0",
  321. "tool_list": [
  322. {
  323. "rom_path": "/home/tpx/data/roms/GlassProbe_4Ball_4_SHC.rom",
  324. "serial_number": "3DD50000",
  325. "outputs": {
  326. "transform": "probe_ref_in_tracker"
  327. }
  328. },
  329. {
  330. "rom_path": "/home/tpx/data/roms/Glass_4Ball_2_Endo.rom",
  331. "outputs": {
  332. "transform": "camera_ref_in_tracker",
  333. "marker_uncertainty": "camera_ref_in_tracker_error"
  334. }
  335. },
  336. {
  337. "rom_path": "/home/tpx/data/roms/Glass_4Ball_1_Camera_20240312.rom",
  338. "outputs": {
  339. "transform": "mvs_ref_in_tracker"
  340. }
  341. },
  342. {
  343. "rom_path": "/home/tpx/data/roms/Glass_3Ball_5_OldHead.rom",
  344. "serial_number": "39B33001",
  345. "outputs": {
  346. "transform": "femur_ref_in_tracker"
  347. }
  348. },
  349. {
  350. "rom_path": "/home/tpx/data/roms/Glass_3Ball_6.rom",
  351. "outputs": {
  352. "transform": "tibia_ref_in_tracker"
  353. }
  354. }
  355. ]
  356. },
  357. "start_config": {
  358. "allow_unreliable": true,
  359. "prefer_stream_tracking": false
  360. }
  361. },
  362. {
  363. "type": "variable_validity_watcher",
  364. "name": "probe_visibility_watcher",
  365. "start_config": {
  366. "variable_name": "probe_in_tracker"
  367. }
  368. },
  369. {
  370. "type": "transform_obj_validity_watcher",
  371. "name": "camera_visibility_watcher",
  372. "start_config": {
  373. "variable_name": "camera_ref_in_tracker"
  374. }
  375. },
  376. {
  377. "type": "transform_obj_validity_watcher",
  378. "name": "femur_visibility_watcher",
  379. "start_config": {
  380. "variable_name": "femur_ref_in_tracker"
  381. }
  382. },
  383. {
  384. "type": "transform_obj_validity_watcher",
  385. "name": "tibia_visibility_watcher",
  386. "start_config": {
  387. "variable_name": "tibia_ref_in_tracker"
  388. }
  389. },
  390. {
  391. "type": "scalarxyz_transformer",
  392. "name": "probe_tip_in_femur_ref_transformer",
  393. "start_config": {
  394. "transform_type": "point",
  395. "transform_var_name": "probe_in_femur_ref",
  396. "target_value": [
  397. 0,
  398. 0,
  399. 0
  400. ],
  401. "output_var_name": "probe_tip_in_femur_ref"
  402. },
  403. "dependencies": [
  404. "ndi",
  405. "transform_tree"
  406. ]
  407. },
  408. {
  409. "type": "scalarxyz_transformer",
  410. "name": "probe_tip_in_tibia_ref_transformer",
  411. "start_config": {
  412. "transform_type": "point",
  413. "transform_var_name": "probe_in_tibia_ref",
  414. "target_value": [
  415. 0,
  416. 0,
  417. 0
  418. ],
  419. "output_var_name": "probe_tip_in_tibia_ref"
  420. },
  421. "dependencies": [
  422. "ndi",
  423. "transform_tree"
  424. ]
  425. },
  426. {
  427. "type": "transform_stabilizer",
  428. "name": "point_picker_in_femur_ref",
  429. "start_config": {
  430. "stable_type": "point",
  431. "input_var_name": "probe_tip_in_femur_ref",
  432. "output_var_name": "picked_point_in_femur_ref",
  433. "linear_tolerance_mm": 0.05,
  434. "temporal_interval_s": 3
  435. },
  436. "dependencies": [
  437. "probe_tip_in_femur_ref_transformer"
  438. ]
  439. },
  440. {
  441. "type": "transform_stabilizer",
  442. "name": "point_picker_in_tibia_ref",
  443. "start_config": {
  444. "stable_type": "point",
  445. "input_var_name": "probe_tip_in_tibia_ref",
  446. "output_var_name": "picked_point_in_tibia_ref",
  447. "linear_tolerance_mm": 0.05,
  448. "temporal_interval_s": 3
  449. },
  450. "dependencies": [
  451. "probe_tip_in_tibia_ref_transformer"
  452. ]
  453. },
  454. {
  455. "type": "scalarxyz_obj_watcher",
  456. "name": "picked_point_watcher_for_femur_ref",
  457. "start_config": {
  458. "variable_name": "picked_point_in_femur_ref"
  459. }
  460. },
  461. {
  462. "type": "scalarxyz_obj_watcher",
  463. "name": "picked_point_watcher_for_tibia_ref",
  464. "start_config": {
  465. "variable_name": "picked_point_in_tibia_ref"
  466. }
  467. },
  468. {
  469. "type": "transform_obj_watcher",
  470. "name": "femur_registration_result_watcher",
  471. "start_config": {
  472. "variable_name": "femur_in_femur_ref"
  473. }
  474. },
  475. {
  476. "type": "transform_obj_watcher",
  477. "name": "tibia_registration_result_watcher",
  478. "start_config": {
  479. "variable_name": "tibia_in_tibia_ref"
  480. }
  481. },
  482. {
  483. "type": "kalman_denoiser",
  484. "name": "camera_denoiser",
  485. "init_config": {
  486. "variable_in": "camera_in_tracker",
  487. "variable_out": "camera_in_tracker_denoised"
  488. }
  489. },
  490. {
  491. "type": "kalman_denoiser",
  492. "name": "left_camera_denoiser",
  493. "init_config": {
  494. "variable_in": "left_camera_in_tracker",
  495. "variable_out": "left_camera_in_tracker_denoised"
  496. }
  497. },
  498. {
  499. "type": "kalman_denoiser",
  500. "name": "right_camera_denoiser",
  501. "init_config": {
  502. "variable_in": "right_camera_in_tracker",
  503. "variable_out": "right_camera_in_tracker_denoised"
  504. }
  505. },
  506. {
  507. "type": "kalman_denoiser",
  508. "name": "femur_denoiser",
  509. "init_config": {
  510. "variable_in": "femur_in_tracker",
  511. "variable_out": "femur_in_tracker_denoised"
  512. }
  513. },
  514. {
  515. "type": "kalman_denoiser",
  516. "name": "tibia_denoiser",
  517. "init_config": {
  518. "variable_in": "tibia_in_tracker",
  519. "variable_out": "tibia_in_tracker_denoised"
  520. }
  521. },
  522. {
  523. "type": "empty_object",
  524. "name": "tracker_all",
  525. "dependencies": [
  526. "transform_tree",
  527. "ndi",
  528. "probe_visibility_watcher",
  529. "camera_visibility_watcher",
  530. "femur_visibility_watcher",
  531. "tibia_visibility_watcher",
  532. "femur_denoiser",
  533. "tibia_denoiser",
  534. "left_camera_denoiser",
  535. "right_camera_denoiser"
  536. ]
  537. }
  538. ]
  539. }