|
|
@@ -0,0 +1,539 @@
|
|
|
+{
|
|
|
+ "variable_list": [
|
|
|
+ {
|
|
|
+ "name": "probe_ref_in_tracker",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "probe_in_tracker",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "femur_ref_in_tracker",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "femur_in_femur_ref",
|
|
|
+ "type": "transform_obj",
|
|
|
+ "value": [
|
|
|
+ -158.57010140440562,
|
|
|
+ 109.08408048026303,
|
|
|
+ 311.7159241940251,
|
|
|
+ 0.6426166606045021,
|
|
|
+ -0.3019245048766848,
|
|
|
+ -0.18681286301124206,
|
|
|
+ 0.6789597742738753
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "tibia_ref_in_tracker",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "tibia_in_tibia_ref",
|
|
|
+ "type": "transform_obj",
|
|
|
+ "value": [
|
|
|
+ 117.21224919149104,
|
|
|
+ 38.32624851921699,
|
|
|
+ -72.90989200004259,
|
|
|
+ -0.19759914802407674,
|
|
|
+ 0.6557689584549056,
|
|
|
+ -0.28931051779904626,
|
|
|
+ 0.6687458965242118
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "camera_ref_in_tracker",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "camera_ref_in_tracker_error",
|
|
|
+ "type": "double_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "camera_in_camera_ref",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "camera_in_tracker",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "mvs_ref_in_tracker",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "left_camera_in_tracker",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "right_camera_in_tracker",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "femur_in_tracker",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "tibia_in_tracker",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "probe_in_femur_ref",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "probe_in_tibia_ref",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "probe_in_femur",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "probe_in_tibia",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "femur_in_camera_ref",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "tibia_in_camera_ref",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "probe_tip_in_femur_ref",
|
|
|
+ "type": "scalarxyz_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "probe_tip_in_tibia_ref",
|
|
|
+ "type": "scalarxyz_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "picked_point_in_femur_ref",
|
|
|
+ "type": "scalarxyz_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "picked_point_in_tibia_ref",
|
|
|
+ "type": "scalarxyz_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "probe_tip_in_femur",
|
|
|
+ "type": "scalarxyz_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "probe_tip_in_tibia",
|
|
|
+ "type": "scalarxyz_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "picked_point_in_femur",
|
|
|
+ "type": "scalarxyz_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "picked_point_in_tibia",
|
|
|
+ "type": "scalarxyz_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "camera_in_tracker_denoised",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "left_camera_in_tracker_denoised",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "right_camera_in_tracker_denoised",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "femur_in_tracker_denoised",
|
|
|
+ "type": "transform_obj"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "tibia_in_tracker_denoised",
|
|
|
+ "type": "transform_obj"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "object_list": [
|
|
|
+ {
|
|
|
+ "type": "transform_tree",
|
|
|
+ "name": "transform_tree",
|
|
|
+ "init_config": {
|
|
|
+ "node_list": [
|
|
|
+ {
|
|
|
+ "name": "tracker"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "probe_ref",
|
|
|
+ "parent": "tracker",
|
|
|
+ "transform_var_name": "probe_ref_in_tracker"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "probe",
|
|
|
+ "parent": "probe_ref",
|
|
|
+ "transform": [
|
|
|
+ -0.69,
|
|
|
+ -13.95,
|
|
|
+ -186.84,
|
|
|
+ 1,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "femur_ref",
|
|
|
+ "parent": "tracker",
|
|
|
+ "transform_var_name": "femur_ref_in_tracker"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "femur",
|
|
|
+ "parent": "femur_ref",
|
|
|
+ "transform_var_name": "femur_in_femur_ref"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "tibia_ref",
|
|
|
+ "parent": "tracker",
|
|
|
+ "transform_var_name": "tibia_ref_in_tracker"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "tibia",
|
|
|
+ "parent": "tibia_ref",
|
|
|
+ "transform_var_name": "tibia_in_tibia_ref"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "camera_ref",
|
|
|
+ "parent": "tracker",
|
|
|
+ "transform_var_name": "camera_ref_in_tracker"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "camera",
|
|
|
+ "parent": "camera_ref",
|
|
|
+ "transform_var_name": "camera_in_camera_ref"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "mvs_ref",
|
|
|
+ "parent": "tracker",
|
|
|
+ "transform_var_name": "mvs_ref_in_tracker"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "left_camera",
|
|
|
+ "parent": "mvs_ref",
|
|
|
+ "transform": [
|
|
|
+ 33.2854,
|
|
|
+ -37.7917,
|
|
|
+ -24.4682,
|
|
|
+ 0.6318,
|
|
|
+ 0.3547,
|
|
|
+ 0.4719,
|
|
|
+ -0.5023
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "right_camera",
|
|
|
+ "parent": "mvs_ref",
|
|
|
+ "transform": [
|
|
|
+ 37.3992,
|
|
|
+ -56.7108,
|
|
|
+ -85.8847,
|
|
|
+ 0.6304,
|
|
|
+ 0.3605,
|
|
|
+ 0.4738,
|
|
|
+ -0.4982
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "start_config": {
|
|
|
+ "watch_list": [
|
|
|
+ {
|
|
|
+ "target": "camera",
|
|
|
+ "observer": "tracker",
|
|
|
+ "transform_var_name": "camera_in_tracker"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "target": "left_camera",
|
|
|
+ "observer": "tracker",
|
|
|
+ "transform_var_name": "left_camera_in_tracker"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "target": "right_camera",
|
|
|
+ "observer": "tracker",
|
|
|
+ "transform_var_name": "right_camera_in_tracker"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "target": "femur",
|
|
|
+ "observer": "tracker",
|
|
|
+ "transform_var_name": "femur_in_tracker"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "target": "tibia",
|
|
|
+ "observer": "tracker",
|
|
|
+ "transform_var_name": "tibia_in_tracker"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "target": "probe",
|
|
|
+ "observer": "tracker",
|
|
|
+ "transform_var_name": "probe_in_tracker"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "target": "probe",
|
|
|
+ "observer": "femur_ref",
|
|
|
+ "transform_var_name": "probe_in_femur_ref"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "target": "probe",
|
|
|
+ "observer": "tibia_ref",
|
|
|
+ "transform_var_name": "probe_in_tibia_ref"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "target": "probe",
|
|
|
+ "observer": "femur",
|
|
|
+ "transform_var_name": "probe_in_femur"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "target": "probe",
|
|
|
+ "observer": "tibia",
|
|
|
+ "transform_var_name": "probe_in_tibia"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "target": "femur",
|
|
|
+ "observer": "camera_ref",
|
|
|
+ "transform_var_name": "femur_in_camera_ref"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "target": "tibia",
|
|
|
+ "observer": "camera_ref",
|
|
|
+ "transform_var_name": "tibia_in_camera_ref"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "ndi_interface",
|
|
|
+ "name": "ndi",
|
|
|
+ "init_config": {
|
|
|
+ "address_type": "ethernet",
|
|
|
+ "ip": "10.0.0.5",
|
|
|
+ "tcp_port": 8765,
|
|
|
+ "com_port": "/dev/ttyUSB0",
|
|
|
+ "tool_list": [
|
|
|
+ {
|
|
|
+ "rom_path": "/home/tpx/data/roms/GlassProbe_4Ball_4_SHC.rom",
|
|
|
+ "serial_number": "3DD50000",
|
|
|
+ "outputs": {
|
|
|
+ "transform": "probe_ref_in_tracker"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "rom_path": "/home/tpx/data/roms/Glass_4Ball_2_Endo.rom",
|
|
|
+ "outputs": {
|
|
|
+ "transform": "camera_ref_in_tracker",
|
|
|
+ "marker_uncertainty": "camera_ref_in_tracker_error"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "rom_path": "/home/tpx/data/roms/Glass_4Ball_1_Camera_20240312.rom",
|
|
|
+ "outputs": {
|
|
|
+ "transform": "mvs_ref_in_tracker"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "rom_path": "/home/tpx/data/roms/Glass_3Ball_5_OldHead.rom",
|
|
|
+ "serial_number": "39B33001",
|
|
|
+ "outputs": {
|
|
|
+ "transform": "femur_ref_in_tracker"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "rom_path": "/home/tpx/data/roms/Glass_3Ball_6.rom",
|
|
|
+ "outputs": {
|
|
|
+ "transform": "tibia_ref_in_tracker"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "start_config": {
|
|
|
+ "allow_unreliable": true,
|
|
|
+ "prefer_stream_tracking": false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "variable_validity_watcher",
|
|
|
+ "name": "probe_visibility_watcher",
|
|
|
+ "start_config": {
|
|
|
+ "variable_name": "probe_in_tracker"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "transform_obj_validity_watcher",
|
|
|
+ "name": "camera_visibility_watcher",
|
|
|
+ "start_config": {
|
|
|
+ "variable_name": "camera_ref_in_tracker"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "transform_obj_validity_watcher",
|
|
|
+ "name": "femur_visibility_watcher",
|
|
|
+ "start_config": {
|
|
|
+ "variable_name": "femur_ref_in_tracker"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "transform_obj_validity_watcher",
|
|
|
+ "name": "tibia_visibility_watcher",
|
|
|
+ "start_config": {
|
|
|
+ "variable_name": "tibia_ref_in_tracker"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "scalarxyz_transformer",
|
|
|
+ "name": "probe_tip_in_femur_ref_transformer",
|
|
|
+ "start_config": {
|
|
|
+ "transform_type": "point",
|
|
|
+ "transform_var_name": "probe_in_femur_ref",
|
|
|
+ "target_value": [
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0
|
|
|
+ ],
|
|
|
+ "output_var_name": "probe_tip_in_femur_ref"
|
|
|
+ },
|
|
|
+ "dependencies": [
|
|
|
+ "ndi",
|
|
|
+ "transform_tree"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "scalarxyz_transformer",
|
|
|
+ "name": "probe_tip_in_tibia_ref_transformer",
|
|
|
+ "start_config": {
|
|
|
+ "transform_type": "point",
|
|
|
+ "transform_var_name": "probe_in_tibia_ref",
|
|
|
+ "target_value": [
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0
|
|
|
+ ],
|
|
|
+ "output_var_name": "probe_tip_in_tibia_ref"
|
|
|
+ },
|
|
|
+ "dependencies": [
|
|
|
+ "ndi",
|
|
|
+ "transform_tree"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "transform_stabilizer",
|
|
|
+ "name": "point_picker_in_femur_ref",
|
|
|
+ "start_config": {
|
|
|
+ "stable_type": "point",
|
|
|
+ "input_var_name": "probe_tip_in_femur_ref",
|
|
|
+ "output_var_name": "picked_point_in_femur_ref",
|
|
|
+ "linear_tolerance_mm": 0.05,
|
|
|
+ "temporal_interval_s": 3
|
|
|
+ },
|
|
|
+ "dependencies": [
|
|
|
+ "probe_tip_in_femur_ref_transformer"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "transform_stabilizer",
|
|
|
+ "name": "point_picker_in_tibia_ref",
|
|
|
+ "start_config": {
|
|
|
+ "stable_type": "point",
|
|
|
+ "input_var_name": "probe_tip_in_tibia_ref",
|
|
|
+ "output_var_name": "picked_point_in_tibia_ref",
|
|
|
+ "linear_tolerance_mm": 0.05,
|
|
|
+ "temporal_interval_s": 3
|
|
|
+ },
|
|
|
+ "dependencies": [
|
|
|
+ "probe_tip_in_tibia_ref_transformer"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "scalarxyz_obj_watcher",
|
|
|
+ "name": "picked_point_watcher_for_femur_ref",
|
|
|
+ "start_config": {
|
|
|
+ "variable_name": "picked_point_in_femur_ref"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "scalarxyz_obj_watcher",
|
|
|
+ "name": "picked_point_watcher_for_tibia_ref",
|
|
|
+ "start_config": {
|
|
|
+ "variable_name": "picked_point_in_tibia_ref"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "transform_obj_watcher",
|
|
|
+ "name": "femur_registration_result_watcher",
|
|
|
+ "start_config": {
|
|
|
+ "variable_name": "femur_in_femur_ref"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "transform_obj_watcher",
|
|
|
+ "name": "tibia_registration_result_watcher",
|
|
|
+ "start_config": {
|
|
|
+ "variable_name": "tibia_in_tibia_ref"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "kalman_denoiser",
|
|
|
+ "name": "camera_denoiser",
|
|
|
+ "init_config": {
|
|
|
+ "variable_in": "camera_in_tracker",
|
|
|
+ "variable_out": "camera_in_tracker_denoised"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "kalman_denoiser",
|
|
|
+ "name": "left_camera_denoiser",
|
|
|
+ "init_config": {
|
|
|
+ "variable_in": "left_camera_in_tracker",
|
|
|
+ "variable_out": "left_camera_in_tracker_denoised"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "kalman_denoiser",
|
|
|
+ "name": "right_camera_denoiser",
|
|
|
+ "init_config": {
|
|
|
+ "variable_in": "right_camera_in_tracker",
|
|
|
+ "variable_out": "right_camera_in_tracker_denoised"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "kalman_denoiser",
|
|
|
+ "name": "femur_denoiser",
|
|
|
+ "init_config": {
|
|
|
+ "variable_in": "femur_in_tracker",
|
|
|
+ "variable_out": "femur_in_tracker_denoised"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "kalman_denoiser",
|
|
|
+ "name": "tibia_denoiser",
|
|
|
+ "init_config": {
|
|
|
+ "variable_in": "tibia_in_tracker",
|
|
|
+ "variable_out": "tibia_in_tracker_denoised"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "empty_object",
|
|
|
+ "name": "tracker_all",
|
|
|
+ "dependencies": [
|
|
|
+ "transform_tree",
|
|
|
+ "ndi",
|
|
|
+ "probe_visibility_watcher",
|
|
|
+ "camera_visibility_watcher",
|
|
|
+ "femur_visibility_watcher",
|
|
|
+ "tibia_visibility_watcher",
|
|
|
+ "femur_denoiser",
|
|
|
+ "tibia_denoiser",
|
|
|
+ "left_camera_denoiser",
|
|
|
+ "right_camera_denoiser"
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|