From 80380d1f4bbfb6b90ea988f8ba82122fe1551757 Mon Sep 17 00:00:00 2001 From: zhangshixiang <@zhangshixiang> Date: Fri, 2 May 2025 23:45:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86joint=5Frepublisher=E5=92=8Cresource?= =?UTF-8?q?=5Fmesh=5Fmanager=E6=B7=BB=E5=8A=A0=E8=BF=9B=20main=5Fslave=5Fr?= =?UTF-8?q?un.py=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unilabos/app/backend.py | 4 +- unilabos/app/main.py | 28 +- unilabos/ros/main_slave_run.py | 28 +- .../nodes/presets/resource_mesh_manager.py | 4008 +---------------- 4 files changed, 32 insertions(+), 4036 deletions(-) diff --git a/unilabos/app/backend.py b/unilabos/app/backend.py index b12ef888..8acc8251 100644 --- a/unilabos/app/backend.py +++ b/unilabos/app/backend.py @@ -12,6 +12,8 @@ def start_backend( controllers_config: dict = {}, bridges=[], without_host: bool = False, + visual: str = "None", + resources_mesh_config: dict = {}, **kwargs ): if backend == "ros": @@ -29,7 +31,7 @@ def start_backend( backend_thread = threading.Thread( target=main if not without_host else slave, - args=(devices_config, resources_config, graph, controllers_config, bridges), + args=(devices_config, resources_config, graph, controllers_config, bridges, visual, resources_mesh_config), name="backend_thread", daemon=True, ) diff --git a/unilabos/app/main.py b/unilabos/app/main.py index 1fe51c93..16667d6c 100644 --- a/unilabos/app/main.py +++ b/unilabos/app/main.py @@ -184,7 +184,8 @@ def main(): signal.signal(signal.SIGINT, _exit) signal.signal(signal.SIGTERM, _exit) mqtt_client.start() - + args_dict["resources_mesh_config"] = {} + if args_dict["visual"] != "None": if args_dict["visual"] == "rviz": enable_rviz=True @@ -192,28 +193,9 @@ def main(): enable_rviz=False resource_visualization = ResourceVisualization(devices_and_resources, args_dict["resources_config"] ,enable_rviz=enable_rviz) - # 如果没有初始化,则初始化ros,并创建一个多线程执行器 - # 在main_slave_run.py中也会初始化ros,并创建一个多线程执行器 - # 所以这里需要判断是否已经初始化,如果已经初始化,则不重复初始化 - if not rclpy.ok(): - rclpy.init(args = ["--log-level", "debug"],) - executor = rclpy.__executor - if not executor: - executor = rclpy.__executor = MultiThreadedExecutor() - - resource_mesh_manager = ResourceMeshManager( - resource_visualization.resource_model, - args_dict["resources_config"], - resource_tracker= DeviceNodeResourceTracker(), - device_id = 'resource_mesh_manager', - ) - joint_republisher = JointRepublisher( - 'joint_republisher', - DeviceNodeResourceTracker() - ) - - rclpy.__executor.add_node(resource_mesh_manager) - rclpy.__executor.add_node(joint_republisher) + args_dict["resources_mesh_config"] = resource_visualization.resource_model + # 将joint_republisher和resource_mesh_manager添加进 main_slave_run.py中 + start_backend(**args_dict) server_thread = threading.Thread(target=start_server) server_thread.start() diff --git a/unilabos/ros/main_slave_run.py b/unilabos/ros/main_slave_run.py index adaee5ed..8560d376 100644 --- a/unilabos/ros/main_slave_run.py +++ b/unilabos/ros/main_slave_run.py @@ -6,6 +6,9 @@ import time from typing import Optional, Dict, Any, List import rclpy +from unilabos.ros.nodes.presets.joint_republisher import JointRepublisher +from unilabos.ros.nodes.presets.resource_mesh_manager import ResourceMeshManager +from unilabos.ros.nodes.resource_tracker import DeviceNodeResourceTracker from unilabos_msgs.msg import Resource # type: ignore from unilabos_msgs.srv import ResourceAdd, SerialCommand # type: ignore from rclpy.executors import MultiThreadedExecutor @@ -45,15 +48,15 @@ def main( graph: Optional[Dict[str, Any]] = None, controllers_config: Dict[str, Any] = {}, bridges: List[Any] = [], + visual: str = "None", + resources_mesh_config: dict = {}, args: List[str] = ["--log-level", "debug"], discovery_interval: float = 5.0, ) -> None: """主函数""" - if not rclpy.ok(): - rclpy.init(args=args) - executor = rclpy.__executor - if not executor: - executor = rclpy.__executor = MultiThreadedExecutor() + + rclpy.init(args=args) + executor = rclpy.__executor = MultiThreadedExecutor() # 创建主机节点 host_node = HostNode( "host_node", @@ -65,6 +68,21 @@ def main( discovery_interval, ) + if visual != "None": + resource_mesh_manager = ResourceMeshManager( + resources_mesh_config, + resources_config, + resource_tracker= DeviceNodeResourceTracker(), + device_id = 'resource_mesh_manager', + ) + joint_republisher = JointRepublisher( + 'joint_republisher', + DeviceNodeResourceTracker() + ) + + executor.add_node(resource_mesh_manager) + executor.add_node(joint_republisher) + thread = threading.Thread(target=executor.spin, daemon=True, name="host_executor_thread") thread.start() diff --git a/unilabos/ros/nodes/presets/resource_mesh_manager.py b/unilabos/ros/nodes/presets/resource_mesh_manager.py index 5f04e1a1..012404b3 100644 --- a/unilabos/ros/nodes/presets/resource_mesh_manager.py +++ b/unilabos/ros/nodes/presets/resource_mesh_manager.py @@ -440,7 +440,7 @@ class ResourceMeshManager(BaseROS2DeviceNode): quat_xyzw=q, frame_id=resource_id ) - time.sleep(0.02) + time.sleep(0.03) self.get_logger().info('资源碰撞网格添加完成') @@ -954,4009 +954,3 @@ class ResourceMeshManager(BaseROS2DeviceNode): return self._apply_planning_scene_service.call_async( ApplyPlanningScene.Request(scene=self.__planning_scene) ) - -if __name__ == '__main__': - model_s = ''' -{'Plate1': {'mesh': '/home/z43/git_pj/Uni-Lab-OS/unilabos/device_mesh/resources/tecan_nested_tip_rack/meshes/plate.stl', 'mesh_tf': [0.064, 0.043, 0, -1.5708, 0, 1.5708]}, -'Plate1_': {'mesh': '/home/z43/git_pj/Uni-Lab-OS/unilabos/device_mesh/resources/generic_labware_tube_10_75/meshes/0_base.stl', 'mesh_tf': [0.0018, 0.0018, 0, -1.5708,0, 0]}} -''' - resource_model = json.loads(model_s.replace("'",'"')) - - config_s = ''' -[ - { - "id": "Gripper1", - "name": "假夹爪", - "children": [], - "parent": null, - "type": "device", - "class": "gripper.mock", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": {}, - "data": {} - }, - { - "id": "Plate1", - "name": "Plate1", - "sample_id": null, - "children": [ - "Plate1_A1", - "Plate1_B1", - "Plate1_C1", - "Plate1_D1", - "Plate1_E1", - "Plate1_F1", - "Plate1_G1", - "Plate1_H1", - "Plate1_A2", - "Plate1_B2", - "Plate1_C2", - "Plate1_D2", - "Plate1_E2", - "Plate1_F2", - "Plate1_G2", - "Plate1_H2", - "Plate1_A3", - "Plate1_B3", - "Plate1_C3", - "Plate1_D3", - "Plate1_E3", - "Plate1_F3", - "Plate1_G3", - "Plate1_H3", - "Plate1_A4", - "Plate1_B4", - "Plate1_C4", - "Plate1_D4", - "Plate1_E4", - "Plate1_F4", - "Plate1_G4", - "Plate1_H4", - "Plate1_A5", - "Plate1_B5", - "Plate1_C5", - "Plate1_D5", - "Plate1_E5", - "Plate1_F5", - "Plate1_G5", - "Plate1_H5", - "Plate1_A6", - "Plate1_B6", - "Plate1_C6", - "Plate1_D6", - "Plate1_E6", - "Plate1_F6", - "Plate1_G6", - "Plate1_H6", - "Plate1_A7", - "Plate1_B7", - "Plate1_C7", - "Plate1_D7", - "Plate1_E7", - "Plate1_F7", - "Plate1_G7", - "Plate1_H7", - "Plate1_A8", - "Plate1_B8", - "Plate1_C8", - "Plate1_D8", - "Plate1_E8", - "Plate1_F8", - "Plate1_G8", - "Plate1_H8", - "Plate1_A9", - "Plate1_B9", - "Plate1_C9", - "Plate1_D9", - "Plate1_E9", - "Plate1_F9", - "Plate1_G9", - "Plate1_H9", - "Plate1_A10", - "Plate1_B10", - "Plate1_C10", - "Plate1_D10", - "Plate1_E10", - "Plate1_F10", - "Plate1_G10", - "Plate1_H10", - "Plate1_A11", - "Plate1_B11", - "Plate1_C11", - "Plate1_D11", - "Plate1_E11", - "Plate1_F11", - "Plate1_G11", - "Plate1_H11", - "Plate1_A12", - "Plate1_B12", - "Plate1_C12", - "Plate1_D12", - "Plate1_E12", - "Plate1_F12", - "Plate1_G12", - "Plate1_H12" - ], - "parent": "Gripper1", - "type": "device", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 69 - }, - "config": { - "type": "Plate", - "size_x": 127.76, - "size_y": 85.48, - "size_z": 15.7, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": "NEST 96 Well Plate 100 µL PCR Full Skirt", - "ordering": [ - "A1", - "B1", - "C1", - "D1", - "E1", - "F1", - "G1", - "H1", - "A2", - "B2", - "C2", - "D2", - "E2", - "F2", - "G2", - "H2", - "A3", - "B3", - "C3", - "D3", - "E3", - "F3", - "G3", - "H3", - "A4", - "B4", - "C4", - "D4", - "E4", - "F4", - "G4", - "H4", - "A5", - "B5", - "C5", - "D5", - "E5", - "F5", - "G5", - "H5", - "A6", - "B6", - "C6", - "D6", - "E6", - "F6", - "G6", - "H6", - "A7", - "B7", - "C7", - "D7", - "E7", - "F7", - "G7", - "H7", - "A8", - "B8", - "C8", - "D8", - "E8", - "F8", - "G8", - "H8", - "A9", - "B9", - "C9", - "D9", - "E9", - "F9", - "G9", - "H9", - "A10", - "B10", - "C10", - "D10", - "E10", - "F10", - "G10", - "H10", - "A11", - "B11", - "C11", - "D11", - "E11", - "F11", - "G11", - "H11", - "A12", - "B12", - "C12", - "D12", - "E12", - "F12", - "G12", - "H12" - ] - }, - "data": {} - }, - { - "id": "Plate1_A1", - "name": "Plate1_A1", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 12.492, - "y": 72.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_B1", - "name": "Plate1_B1", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 12.492, - "y": 63.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_C1", - "name": "Plate1_C1", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 12.492, - "y": 54.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_D1", - "name": "Plate1_D1", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 12.492, - "y": 45.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_E1", - "name": "Plate1_E1", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 12.492, - "y": 36.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_F1", - "name": "Plate1_F1", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 12.492, - "y": 27.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_G1", - "name": "Plate1_G1", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 12.492, - "y": 18.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_H1", - "name": "Plate1_H1", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 12.492, - "y": 9.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_A2", - "name": "Plate1_A2", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 21.492, - "y": 72.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_B2", - "name": "Plate1_B2", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 21.492, - "y": 63.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_C2", - "name": "Plate1_C2", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 21.492, - "y": 54.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_D2", - "name": "Plate1_D2", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 21.492, - "y": 45.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_E2", - "name": "Plate1_E2", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 21.492, - "y": 36.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_F2", - "name": "Plate1_F2", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 21.492, - "y": 27.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_G2", - "name": "Plate1_G2", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 21.492, - "y": 18.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_H2", - "name": "Plate1_H2", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 21.492, - "y": 9.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_A3", - "name": "Plate1_A3", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 30.492, - "y": 72.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_B3", - "name": "Plate1_B3", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 30.492, - "y": 63.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_C3", - "name": "Plate1_C3", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 30.492, - "y": 54.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_D3", - "name": "Plate1_D3", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 30.492, - "y": 45.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_E3", - "name": "Plate1_E3", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 30.492, - "y": 36.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_F3", - "name": "Plate1_F3", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 30.492, - "y": 27.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_G3", - "name": "Plate1_G3", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 30.492, - "y": 18.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_H3", - "name": "Plate1_H3", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 30.492, - "y": 9.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_A4", - "name": "Plate1_A4", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 39.492, - "y": 72.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_B4", - "name": "Plate1_B4", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 39.492, - "y": 63.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_C4", - "name": "Plate1_C4", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 39.492, - "y": 54.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_D4", - "name": "Plate1_D4", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 39.492, - "y": 45.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_E4", - "name": "Plate1_E4", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 39.492, - "y": 36.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_F4", - "name": "Plate1_F4", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 39.492, - "y": 27.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_G4", - "name": "Plate1_G4", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 39.492, - "y": 18.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_H4", - "name": "Plate1_H4", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 39.492, - "y": 9.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_A5", - "name": "Plate1_A5", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 48.492, - "y": 72.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_B5", - "name": "Plate1_B5", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 48.492, - "y": 63.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_C5", - "name": "Plate1_C5", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 48.492, - "y": 54.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_D5", - "name": "Plate1_D5", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 48.492, - "y": 45.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_E5", - "name": "Plate1_E5", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 48.492, - "y": 36.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_F5", - "name": "Plate1_F5", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 48.492, - "y": 27.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_G5", - "name": "Plate1_G5", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 48.492, - "y": 18.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_H5", - "name": "Plate1_H5", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 48.492, - "y": 9.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_A6", - "name": "Plate1_A6", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 57.492, - "y": 72.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_B6", - "name": "Plate1_B6", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 57.492, - "y": 63.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_C6", - "name": "Plate1_C6", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 57.492, - "y": 54.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_D6", - "name": "Plate1_D6", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 57.492, - "y": 45.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_E6", - "name": "Plate1_E6", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 57.492, - "y": 36.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_F6", - "name": "Plate1_F6", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 57.492, - "y": 27.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_G6", - "name": "Plate1_G6", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 57.492, - "y": 18.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_H6", - "name": "Plate1_H6", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 57.492, - "y": 9.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_A7", - "name": "Plate1_A7", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 66.492, - "y": 72.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_B7", - "name": "Plate1_B7", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 66.492, - "y": 63.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_C7", - "name": "Plate1_C7", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 66.492, - "y": 54.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_D7", - "name": "Plate1_D7", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 66.492, - "y": 45.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_E7", - "name": "Plate1_E7", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 66.492, - "y": 36.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_F7", - "name": "Plate1_F7", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 66.492, - "y": 27.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_G7", - "name": "Plate1_G7", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 66.492, - "y": 18.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_H7", - "name": "Plate1_H7", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 66.492, - "y": 9.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_A8", - "name": "Plate1_A8", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 75.492, - "y": 72.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_B8", - "name": "Plate1_B8", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 75.492, - "y": 63.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_C8", - "name": "Plate1_C8", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 75.492, - "y": 54.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_D8", - "name": "Plate1_D8", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 75.492, - "y": 45.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_E8", - "name": "Plate1_E8", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 75.492, - "y": 36.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_F8", - "name": "Plate1_F8", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 75.492, - "y": 27.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_G8", - "name": "Plate1_G8", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 75.492, - "y": 18.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_H8", - "name": "Plate1_H8", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 75.492, - "y": 9.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_A9", - "name": "Plate1_A9", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 84.492, - "y": 72.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_B9", - "name": "Plate1_B9", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 84.492, - "y": 63.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_C9", - "name": "Plate1_C9", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 84.492, - "y": 54.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_D9", - "name": "Plate1_D9", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 84.492, - "y": 45.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_E9", - "name": "Plate1_E9", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 84.492, - "y": 36.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_F9", - "name": "Plate1_F9", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 84.492, - "y": 27.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_G9", - "name": "Plate1_G9", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 84.492, - "y": 18.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_H9", - "name": "Plate1_H9", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 84.492, - "y": 9.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_A10", - "name": "Plate1_A10", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 93.492, - "y": 72.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_B10", - "name": "Plate1_B10", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 93.492, - "y": 63.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_C10", - "name": "Plate1_C10", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 93.492, - "y": 54.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_D10", - "name": "Plate1_D10", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 93.492, - "y": 45.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_E10", - "name": "Plate1_E10", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 93.492, - "y": 36.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_F10", - "name": "Plate1_F10", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 93.492, - "y": 27.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_G10", - "name": "Plate1_G10", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 93.492, - "y": 18.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_H10", - "name": "Plate1_H10", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 93.492, - "y": 9.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_A11", - "name": "Plate1_A11", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 102.492, - "y": 72.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_B11", - "name": "Plate1_B11", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 102.492, - "y": 63.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_C11", - "name": "Plate1_C11", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 102.492, - "y": 54.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_D11", - "name": "Plate1_D11", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 102.492, - "y": 45.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_E11", - "name": "Plate1_E11", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 102.492, - "y": 36.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_F11", - "name": "Plate1_F11", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 102.492, - "y": 27.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_G11", - "name": "Plate1_G11", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 102.492, - "y": 18.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_H11", - "name": "Plate1_H11", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 102.492, - "y": 9.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_A12", - "name": "Plate1_A12", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 111.492, - "y": 72.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_B12", - "name": "Plate1_B12", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 111.492, - "y": 63.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_C12", - "name": "Plate1_C12", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 111.492, - "y": 54.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_D12", - "name": "Plate1_D12", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 111.492, - "y": 45.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_E12", - "name": "Plate1_E12", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 111.492, - "y": 36.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_F12", - "name": "Plate1_F12", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 111.492, - "y": 27.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_G12", - "name": "Plate1_G12", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 111.492, - "y": 18.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "Plate1_H12", - "name": "Plate1_H12", - "sample_id": null, - "children": [], - "parent": "Plate1", - "type": "device", - "class": "", - "position": { - "x": 111.492, - "y": 9.352, - "z": 0.92 - }, - "config": { - "type": "Well", - "size_x": 3.776, - "size_y": 3.776, - "size_z": 14.78, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "max_volume": 100, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - } -] - - ''' - resource_config = json.loads(config_s.replace("'",'"')) - rclpy.init() - resource_mesh_manager = ResourceMeshManager(resource_model, resource_config, DeviceNodeResourceTracker()) - # resource_mesh_manager.resource_mesh_setup() - # resource_mesh_manager.check_move_group_ready() - # resource_mesh_manager.publish_resource_tf() - # resource_mesh_manager.clear_all_collision_objects() - # print(json.dumps(resource_mesh_manager.resource_tf_dict, indent=4, ensure_ascii=False)) - - rclpy.spin(resource_mesh_manager) \ No newline at end of file