diff --git a/unilabos/app/main.py b/unilabos/app/main.py index c08c1b49..ebee015e 100644 --- a/unilabos/app/main.py +++ b/unilabos/app/main.py @@ -18,6 +18,7 @@ if unilabos_dir not in sys.path: from unilabos.config.config import load_config, BasicConfig, _update_config_from_env from unilabos.utils.banner_print import print_status, print_unilab_banner +from unilabos.device_mesh.resource_visalization import ResourceVisualization def parse_args(): @@ -187,7 +188,6 @@ def main(): if args_dict["visual"] != "disable": enable_rviz = args_dict["visual"] == "rviz" if devices_and_resources is not None: - from unilabos.device_mesh.resource_visalization import ResourceVisualization # 此处开启后,logger会变更为INFO,有需要请调整 resource_visualization = ResourceVisualization(devices_and_resources, args_dict["resources_config"] ,enable_rviz=enable_rviz) args_dict["resources_mesh_config"] = resource_visualization.resource_model start_backend(**args_dict) diff --git a/unilabos/app/mq.py b/unilabos/app/mq.py index afdde3b4..018c65cb 100644 --- a/unilabos/app/mq.py +++ b/unilabos/app/mq.py @@ -26,7 +26,6 @@ class MQTTClient: def __init__(self): self.mqtt_disable = not MQConfig.lab_id self.client_id = f"{MQConfig.group_id}@@@{MQConfig.lab_id}{uuid.uuid4()}" - logger.info("[MQTT] Client_id: " + self.client_id) self.client = mqtt.Client(CallbackAPIVersion.VERSION2, client_id=self.client_id, protocol=mqtt.MQTTv5) self._setup_callbacks() diff --git a/unilabos/devices/laiyu_add_solid/__init__.py b/unilabos/devices/laiyu_add_solid/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/liquid_handling/liquid_handler_abstract.py b/unilabos/devices/liquid_handling/action_definition.py similarity index 99% rename from unilabos/devices/liquid_handling/liquid_handler_abstract.py rename to unilabos/devices/liquid_handling/action_definition.py index c349403e..530703ad 100644 --- a/unilabos/devices/liquid_handling/liquid_handler_abstract.py +++ b/unilabos/devices/liquid_handling/action_definition.py @@ -14,7 +14,7 @@ from pylabrobot.resources import ( Well ) -class LiquidHandlerAbstract(LiquidHandler): +class DPLiquidHandler(LiquidHandler): """Extended LiquidHandler with additional operations.""" # --------------------------------------------------------------- diff --git a/unilabos/registry/devices/liquid_handler.yaml b/unilabos/registry/devices/liquid_handler.yaml index 2bf975de..ba921c77 100644 --- a/unilabos/registry/devices/liquid_handler.yaml +++ b/unilabos/registry/devices/liquid_handler.yaml @@ -1,96 +1,11 @@ liquid_handler: description: Liquid handler device controlled by pylabrobot class: - module: unilabos.devices.liquid_handling.liquid_handler_abstract:LiquidHandlerAbstract + module: pylabrobot.liquid_handling:LiquidHandler type: python status_types: name: String action_value_mappings: - remove: - type: LiquidHandlerRemove - goal: - vols: vols - sources: sources - waste_liquid: waste_liquid - use_channels: use_channels - flow_rates: flow_rates - offsets: offsets - liquid_height: liquid_height - blow_out_air_volume: blow_out_air_volume - spread: spread - delays: delays - is_96_well: is_96_well - top: top - none_keys: none_keys - feedback: { } - result: { } - add_liquid: - type: LiquidHandlerAdd - goal: - asp_vols: asp_vols - dis_vols: dis_vols - reagent_sources: reagent_sources - targets: targets - use_channels: use_channels - flow_rates: flow_rates - offsets: offsets - liquid_height: liquid_height - blow_out_air_volume: blow_out_air_volume - spread: spread - is_96_well: is_96_well - mix_time: mix_time - mix_vol: mix_vol - mix_rate: mix_rate - mix_liquid_height: mix_liquid_height - none_keys: none_keys - feedback: { } - result: { } - transfer_liquid: - type: LiquidHandlerTransfer - goal: - asp_vols: asp_vols - dis_vols: dis_vols - sources: sources - targets: targets - tip_racks: tip_racks - use_channels: use_channels - asp_flow_rates: asp_flow_rates - dis_flow_rates: dis_flow_rates - offsets: offsets - touch_tip: touch_tip - liquid_height: liquid_height - blow_out_air_volume: blow_out_air_volume - spread: spread - is_96_well: is_96_well - mix_stage: mix_stage - mix_times: mix_times - mix_vol: mix_vol - mix_rate: mix_rate - mix_liquid_height: mix_liquid_height - delays: delays - none_keys: none_keys - feedback: { } - result: { } - mix: - type: DPLiquidHandlerMix - goal: - targets: targets - mix_time: mix_time - mix_vol: mix_vol - height_to_bottom: height_to_bottom - offsets: offsets - mix_rate: mix_rate - none_keys: none_keys - feedback: { } - result: { } - move_to: - type: LiquidHandlerMoveTo - goal: - well: well - dis_to_top: dis_to_top - channel: channel - feedback: { } - result: { } aspirate: type: LiquidHandlerAspirate goal: @@ -263,7 +178,110 @@ dp_liquid_handler: status_types: status: String action_value_mappings: - + remove_liquid: + type: DPLiquidHandlerRemoveLiquid + goal: + vols: vols + sources: sources + waste_liquid: waste_liquid + use_channels: use_channels + flow_rates: flow_rates + offsets: offsets + liquid_height: liquid_height + blow_out_air_volume: blow_out_air_volume + spread: spread + delays: delays + is_96_well: is_96_well + top: top + none_keys: none_keys + feedback: {} + result: {} + add_liquid: + type: DPLiquidHandlerAddLiquid + goal: + asp_vols: asp_vols + dis_vols: dis_vols + reagent_sources: reagent_sources + targets: targets + use_channels: use_channels + flow_rates: flow_rates + offsets: offsets + liquid_height: liquid_height + blow_out_air_volume: blow_out_air_volume + spread: spread + is_96_well: is_96_well + mix_time: mix_time + mix_vol: mix_vol + mix_rate: mix_rate + mix_liquid_height: mix_liquid_height + none_keys: none_keys + feedback: {} + result: {} + transfer_liquid: + type: DPLiquidHandlerTransferLiquid + goal: + asp_vols: asp_vols + dis_vols: dis_vols + sources: sources + targets: targets + tip_racks: tip_racks + use_channels: use_channels + asp_flow_rates: asp_flow_rates + dis_flow_rates: dis_flow_rates + offsets: offsets + touch_tip: touch_tip + liquid_height: liquid_height + blow_out_air_volume: blow_out_air_volume + spread: spread + is_96_well: is_96_well + mix_stage: mix_stage + mix_times: mix_times + mix_vol: mix_vol + mix_rate: mix_rate + mix_liquid_height: mix_liquid_height + delays: delays + none_keys: none_keys + feedback: {} + result: {} + custom_delay: + type: DPLiquidHandlerCustomDelay + goal: + seconds: seconds + msg: msg + feedback: {} + result: {} + touch_tip: + type: DPLiquidHandlerTouchTip + goal: + targets: targets + feedback: {} + result: {} + mix: + type: DPLiquidHandlerMix + goal: + targets: targets + mix_time: mix_time + mix_vol: mix_vol + height_to_bottom: height_to_bottom + offsets: offsets + mix_rate: mix_rate + none_keys: none_keys + feedback: {} + result: {} + set_tiprack: + type: DPLiquidHandlerSetTiprack + goal: + tip_racks: tip_racks + feedback: {} + result: {} + move_to: + type: DPLiquidHandlerMoveTo + goal: + well: well + dis_to_top: dis_to_top + channel: channel + feedback: {} + result: {} schema: type: object properties: diff --git a/unilabos_msgs/CMakeLists.txt b/unilabos_msgs/CMakeLists.txt index 134dbbb6..69fbaa3a 100644 --- a/unilabos_msgs/CMakeLists.txt +++ b/unilabos_msgs/CMakeLists.txt @@ -43,10 +43,14 @@ set(action_files "action/LiquidHandlerStamp.action" "action/LiquidHandlerTransfer.action" - "action/LiquidHandlerAdd.action" - "action/LiquidHandlerMix.action" - "action/LiquidHandlerMoveTo.action" - "action/LiquidHandlerRemove.action" + "action/DPLiquidHandlerAddLiquid.action" + "action/DPLiquidHandlerCustomDelay.action" + "action/DPLiquidHandlerMix.action" + "action/DPLiquidHandlerMoveTo.action" + "action/DPLiquidHandlerRemoveLiquid.action" + "action/DPLiquidHandlerSetTiprack.action" + "action/DPLiquidHandlerTouchTip.action" + "action/DPLiquidHandlerTransferLiquid.action" "action/EmptyIn.action" "action/FloatSingleInput.action" @@ -57,7 +61,7 @@ set(action_files "action/ResourceCreateFromOuter.action" "action/SolidDispenseAddPowderTube.action" - + "action/PumpTransfer.action" "action/Clean.action" "action/Separate.action" diff --git a/unilabos_msgs/action/LiquidHandlerAdd.action b/unilabos_msgs/action/LiquidHandlerAdd.action deleted file mode 100644 index 0611b276..00000000 --- a/unilabos_msgs/action/LiquidHandlerAdd.action +++ /dev/null @@ -1,20 +0,0 @@ -float64[] asp_vols -float64[] dis_vols -Resource[] reagent_sources -Resource[] targets -int32[] use_channels -float64[] flow_rates -geometry_msgs/Point[] offsets -float64[] liquid_height -float64[] blow_out_air_volume -string spread -bool is_96_well -int32 mix_time -int32 mix_vol -int32 mix_rate -float64 mix_liquid_height -string[] none_keys ---- -bool success ---- -# 反馈 \ No newline at end of file diff --git a/unilabos_msgs/action/LiquidHandlerMix.action b/unilabos_msgs/action/LiquidHandlerMix.action deleted file mode 100644 index 81d1b71c..00000000 --- a/unilabos_msgs/action/LiquidHandlerMix.action +++ /dev/null @@ -1,11 +0,0 @@ -Resource[] targets -int32 mix_time -int32 mix_vol -float64 height_to_bottom -geometry_msgs/Point[] offsets -float64 mix_rate -string[] none_keys ---- -bool success ---- -# 反馈 \ No newline at end of file diff --git a/unilabos_msgs/action/LiquidHandlerMoveTo.action b/unilabos_msgs/action/LiquidHandlerMoveTo.action deleted file mode 100644 index 740d0fc6..00000000 --- a/unilabos_msgs/action/LiquidHandlerMoveTo.action +++ /dev/null @@ -1,7 +0,0 @@ -Resource well -float64 dis_to_top -int32 channel ---- -bool success ---- -# 反馈 \ No newline at end of file diff --git a/unilabos_msgs/action/LiquidHandlerRemove.action b/unilabos_msgs/action/LiquidHandlerRemove.action deleted file mode 100644 index e6b43c53..00000000 --- a/unilabos_msgs/action/LiquidHandlerRemove.action +++ /dev/null @@ -1,17 +0,0 @@ -float64[] vols -Resource[] sources -Resource waste_liquid -int32[] use_channels -float64[] flow_rates -geometry_msgs/Point[] offsets -float64[] liquid_height -float64[] blow_out_air_volume -string spread -int32[] delays -bool is_96_well -float64[] top -string[] none_keys ---- -bool success ---- -# 反馈 \ No newline at end of file diff --git a/unilabos_msgs/action/LiquidHandlerTransfer.action b/unilabos_msgs/action/LiquidHandlerTransfer.action index 39df59bb..b6e3be32 100644 --- a/unilabos_msgs/action/LiquidHandlerTransfer.action +++ b/unilabos_msgs/action/LiquidHandlerTransfer.action @@ -1,25 +1,11 @@ -float64[] asp_vols -float64[] dis_vols -Resource[] sources +# Bio +Resource source Resource[] targets -Resource[] tip_racks -int32[] use_channels -float64[] asp_flow_rates -float64[] dis_flow_rates -geometry_msgs/Point[] offsets -bool touch_tip -float64[] liquid_height -float64[] blow_out_air_volume -string spread -bool is_96_well -string mix_stage -int32[] mix_times -int32 mix_vol -int32 mix_rate -float64 mix_liquid_height -int32[] delays -string[] none_keys +float64 source_vol +float64[] ratios +float64[] target_vols +float64 aspiration_flow_rate +float64[] dispense_flow_rates --- bool success ---- -# 反馈 \ No newline at end of file +--- \ No newline at end of file diff --git a/unilabos_msgs/action/ResourceCreateFromOuterEasy.action b/unilabos_msgs/action/ResourceCreateFromOuterEasy.action deleted file mode 100644 index f92ec2b4..00000000 --- a/unilabos_msgs/action/ResourceCreateFromOuterEasy.action +++ /dev/null @@ -1,10 +0,0 @@ -string id -string class -string parent -geometry_msgs/Point bind_locations -int32[] liquid_input_slot -string[] liquid_type -float32[] liquid_volume ---- -bool success ----