{ "variable_list": [ { "name": "probe_in_tracker", "type": "transform_obj" }, { "name": "femur_ref_in_tracker", "type": "transform_obj" }, { "name": "femur_in_femur_ref", "type": "transform_obj", "value": [ 324.96737353558717, 192.97678258884025, -67.4123353235597, -0.3374618708678985, 0.7283860379847338, -0.05998432687891823, 0.5932749328162472 ] }, { "name": "tibia_ref_in_tracker", "type": "transform_obj" }, { "name": "tibia_in_tibia_ref", "type": "transform_obj", "value": [ 111.38885209055383, -111.38354372578567, 55.48848071109328, 0.044347938544689505, 0.5450279992560348, -0.4325668477263556, 0.7168428437404429 ] }, { "name": "camera_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": "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": "femur_in_femur_ref_error", "type": "double_obj" }, { "name": "tibia_in_tibia_ref_error", "type": "double_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": "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_in_tracker" }, { "name": "probe", "parent": "probe_ref", "transform": [ -0.23, -13.98, -119.65, 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": "left_camera", "parent": "camera_ref", "transform": [ 8.2979, -2.9563, -32.4969, 0.1872, -0.6788, 0.1839, 0.6859 ] }, { "name": "right_camera", "parent": "camera_ref", "transform": [ 7.9742, -2.8386, -98.9961, 0.1839, -0.6813, 0.1875, 0.6832 ] } ] }, "start_config": { "watch_list": [ { "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": "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" } ] } }, { "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": "./roms/GlassProbe_4Ball_4.rom", "outputs": { "transform": "probe_in_tracker" } }, { "rom_path": "./roms/Glass_4Ball_1.rom", "outputs": { "transform": "camera_ref_in_tracker" } }, { "rom_path": "./roms/Glass_3Ball_6.rom", "outputs": { "transform": "femur_ref_in_tracker" } }, { "rom_path": "./roms/Glass_3Ball_5.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": "landmark_registration", "name": "femur_landmark", "start_config": { "fiducial_points": [ [ 1.68412, 22.5766, 202.831 ], [ 13.5083, -24.1831, 200.386 ], [ 26.621, 2.0151, 191.341 ] ], "point_var_name": "picked_point_in_femur_ref", "transform_var_name": "femur_in_femur_ref", "error_var_name": "femur_in_femur_ref_error" }, "dependencies": [ "point_picker_in_femur_ref" ] }, { "type": "landmark_registration", "name": "tibia_landmark", "start_config": { "fiducial_points": [ [ 47.351, 46.6799, -70.5804 ], [ -45.3668, 23.3452, 1.94304 ], [ -55.3382, -4.55638, 54.7446 ] ], "point_var_name": "picked_point_in_tibia_ref", "transform_var_name": "tibia_in_tibia_ref", "error_var_name": "tibia_in_tibia_ref_error" }, "dependencies": [ "point_picker_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": "double_obj_watcher", "name": "femur_registration_error_watcher", "start_config": { "variable_name": "femur_in_femur_ref_error" } }, { "type": "double_obj_watcher", "name": "tibia_registration_error_watcher", "start_config": { "variable_name": "tibia_in_tibia_ref_error" } }, { "type": "scalarxyz_transformer", "name": "probe_tip_in_femur_transformer", "start_config": { "transform_type": "point", "transform_var_name": "probe_in_femur", "target_value": [ 0, 0, 0 ], "output_var_name": "probe_tip_in_femur" }, "dependencies": [ "ndi", "transform_tree" ] }, { "type": "scalarxyz_transformer", "name": "probe_tip_in_tibia_transformer", "start_config": { "transform_type": "point", "transform_var_name": "probe_in_tibia", "target_value": [ 0, 0, 0 ], "output_var_name": "probe_tip_in_tibia" }, "dependencies": [ "ndi", "transform_tree" ] }, { "type": "transform_stabilizer", "name": "point_picker_in_femur", "start_config": { "stable_type": "point", "input_var_name": "probe_tip_in_femur", "output_var_name": "picked_point_in_femur", "linear_tolerance_mm": 0.05, "temporal_interval_s": 3 }, "dependencies": [ "probe_tip_in_femur_transformer" ] }, { "type": "transform_stabilizer", "name": "point_picker_in_tibia", "start_config": { "stable_type": "point", "input_var_name": "probe_tip_in_tibia", "output_var_name": "picked_point_in_tibia", "linear_tolerance_mm": 0.05, "temporal_interval_s": 3 }, "dependencies": [ "probe_tip_in_tibia_transformer" ] }, { "type": "scalarxyz_obj_watcher", "name": "picked_point_watcher_for_femur", "start_config": { "variable_name": "picked_point_in_femur" } }, { "type": "scalarxyz_obj_watcher", "name": "picked_point_watcher_for_tibia", "start_config": { "variable_name": "picked_point_in_tibia" } }, { "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", "left_camera_denoiser", "right_camera_denoiser", "femur_denoiser", "tibia_denoiser" ] }, { "type": "empty_object", "name": "femur_landmark_all", "dependencies": [ "tracker_all", "femur_landmark", "picked_point_watcher_for_femur_ref", "femur_registration_result_watcher", "femur_registration_error_watcher" ] }, { "type": "empty_object", "name": "tibia_landmark_all", "dependencies": [ "tracker_all", "tibia_landmark", "picked_point_watcher_for_tibia_ref", "tibia_registration_result_watcher", "tibia_registration_error_watcher" ] }, { "type": "empty_object", "name": "femur_icp_all", "dependencies": [ "tracker_all", "point_picker_in_femur", "picked_point_watcher_for_femur" ] }, { "type": "empty_object", "name": "tibia_icp_all", "dependencies": [ "tracker_all", "point_picker_in_tibia", "picked_point_watcher_for_tibia" ] } ] }