{ "controller_port": 5277, "variable_list": [ { "name": "ref_in_tracker", "type": "transform_obj" }, { "name": "bone_in_tracker", "type": "transform_obj" }, { "name": "robot_in_tracker", "type": "transform_obj" }, { "name": "target_in_robot", "type": "transform_obj" }, { "name": "bone_in_robot", "type": "transform_obj" }, { "name": "bone_in_ref", "type": "transform_obj" }, { "name": "collect_result", "type": "transform_obj" }, { "name": "robot_control_mode", "type": "u64int_obj" }, { "name": "robot_is_moving", "type": "bool_obj" } ], "object_list": [ { "type": "transform_tree", "name": "transform_tree", "init_config": { "node_list": [ { "name": "tracker" }, { "name": "ref", "parent": "tracker", "transform_var_name": "ref_in_tracker" }, { "name": "bone_target", "parent": "ref", "transform": [ -35.592, 31.7571, -0.923395, 0.991606, 0.05668, 0.0567023, -0.101438 ] }, { "name": "bone", "parent": "tracker", "transform_var_name": "bone_in_tracker" }, { "name": "robot", "parent": "tracker", "transform_var_name": "robot_in_tracker" } ] }, "start_config": { "watch_list": [ { "target": "bone_target", "observer": "robot", "transform_var_name": "target_in_robot" }, { "target": "bone", "observer": "robot", "transform_var_name": "bone_in_robot" }, { "target": "bone", "observer": "ref", "transform_var_name": "bone_in_ref" } ] } }, { "type": "ndi_interface", "name": "ndi", "init_config": { "address_type": "serial", "ip": "10.0.0.5", "tcp_port": 8765, "com_port": "COM9", "tool_list": [ { "rom_path": "D:\\Program\\Robot\\Tools\\roms\\TZL_Ref.rom", "outputs": { "transform": "ref_in_tracker" } }, { "rom_path": "D:\\Program\\Robot\\Tools\\roms\\TZL_Bone.rom", "outputs": { "transform": "bone_in_tracker" } }, { "rom_path": "D:\\Program\\Robot\\Tools\\roms\\TZB_Robot.rom", "outputs": { "transform": "robot_in_tracker" } } ] }, "start_config": { "allow_unreliable": true, "prefer_stream_tracking": false } }, { "type": "transform_obj_validity_watcher", "name": "ref_visibility_watcher", "start_config": { "variable_name": "ref_in_tracker" } }, { "type": "transform_obj_validity_watcher", "name": "bone_visibility_watcher", "start_config": { "variable_name": "bone_in_tracker" } }, { "type": "transform_obj_validity_watcher", "name": "robot_visibility_watcher", "start_config": { "variable_name": "robot_in_tracker" } }, { "type": "fracture_robot_interface", "name": "frac_robot", "init_config": { "com_port": "COM4", "screw": { "top": { "origin": [ 193.62, 274.24, -169.95 ], "direction": [ 0.2580, -0.8932, -0.3682 ] }, "side": { "origin": [ 225.42, 262.80, -195.37 ], "direction": [ 0.9044, 0.4147, 0.1004 ] } } }, "start_config": { "input_config": { "max_velocity": 5.0, "controller_gain": 0.5, "control_mode": "cartesian", "current_tcp": "bone_in_robot", "target_tcp": "target_in_robot" }, "output_config": { "current_control_mode": "robot_control_mode", "is_moving": "robot_is_moving" } }, "dependencies": [ "transform_tree", "ndi" ] }, { "type": "empty_object", "name": "all", "dependencies": [ "frac_robot", "ref_visibility_watcher", "bone_visibility_watcher", "robot_visibility_watcher" ] }, { "type": "transform_stabilizer", "name": "target_collector", "start_config": { "stable_type": "transform", "input_var_name": "bone_in_ref", "output_var_name": "collect_result", "linear_tolerance_mm": 0.05, "temporal_interval_s": 3 }, "dependencies": [ "ndi" ] }, { "type": "transform_obj_watcher", "name": "result_watcher", "start_config": { "variable_name": "collect_result" } }, { "type": "empty_object", "name": "collect", "dependencies": [ "target_collector", "result_watcher", "transform_tree" ] } ] }