|
|
@@ -1,6 +1,34 @@
|
|
|
{
|
|
|
"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"
|
|
|
@@ -8,13 +36,122 @@
|
|
|
{
|
|
|
"name": "robot_is_moving",
|
|
|
"type": "bool_obj"
|
|
|
- },
|
|
|
- {
|
|
|
- "name": "motor_velocity",
|
|
|
- "type": "array6_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",
|
|
|
@@ -23,26 +160,26 @@
|
|
|
"screw": {
|
|
|
"top": {
|
|
|
"origin": [
|
|
|
- 0,
|
|
|
- 0,
|
|
|
- 0
|
|
|
+ 193.62,
|
|
|
+ 274.24,
|
|
|
+ -169.95
|
|
|
],
|
|
|
"direction": [
|
|
|
- 0,
|
|
|
- 1,
|
|
|
- 0
|
|
|
+ 0.2580,
|
|
|
+ -0.8932,
|
|
|
+ -0.3682
|
|
|
]
|
|
|
},
|
|
|
"side": {
|
|
|
"origin": [
|
|
|
- 0,
|
|
|
- 0,
|
|
|
- 0
|
|
|
+ 225.42,
|
|
|
+ 262.80,
|
|
|
+ -195.37
|
|
|
],
|
|
|
"direction": [
|
|
|
- 0,
|
|
|
- 0,
|
|
|
- -1
|
|
|
+ 0.9044,
|
|
|
+ 0.4147,
|
|
|
+ 0.1004
|
|
|
]
|
|
|
}
|
|
|
}
|
|
|
@@ -50,17 +187,60 @@
|
|
|
"start_config": {
|
|
|
"input_config": {
|
|
|
"max_velocity": 5.0,
|
|
|
- "controller_gain": 3.0,
|
|
|
- "control_mode": "direct",
|
|
|
- "current_tcp": "tcp_in_robot_base",
|
|
|
- "target_tcp": "target_tcp_in_robot_base",
|
|
|
- "target_motor_velocity": "motor_velocity"
|
|
|
+ "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"
|
|
|
+ ]
|
|
|
}
|
|
|
]
|
|
|
}
|