mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-14 13:14:39 +00:00
Merge remote-tracking branch 'upstream/dev' into device_visualization
This commit is contained in:
@@ -18,7 +18,6 @@ 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():
|
||||
@@ -188,6 +187,7 @@ 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)
|
||||
|
||||
@@ -26,6 +26,7 @@ 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()
|
||||
|
||||
|
||||
0
unilabos/devices/laiyu_add_solid/__init__.py
Normal file
0
unilabos/devices/laiyu_add_solid/__init__.py
Normal file
@@ -14,7 +14,7 @@ from pylabrobot.resources import (
|
||||
Well
|
||||
)
|
||||
|
||||
class DPLiquidHandler(LiquidHandler):
|
||||
class LiquidHandlerAbstract(LiquidHandler):
|
||||
"""Extended LiquidHandler with additional operations."""
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
@@ -1,11 +1,96 @@
|
||||
liquid_handler:
|
||||
description: Liquid handler device controlled by pylabrobot
|
||||
class:
|
||||
module: pylabrobot.liquid_handling:LiquidHandler
|
||||
module: unilabos.devices.liquid_handling.liquid_handler_abstract:LiquidHandlerAbstract
|
||||
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:
|
||||
@@ -178,110 +263,7 @@ 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:
|
||||
|
||||
@@ -43,14 +43,10 @@ set(action_files
|
||||
"action/LiquidHandlerStamp.action"
|
||||
"action/LiquidHandlerTransfer.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/LiquidHandlerAdd.action"
|
||||
"action/LiquidHandlerMix.action"
|
||||
"action/LiquidHandlerMoveTo.action"
|
||||
"action/LiquidHandlerRemove.action"
|
||||
|
||||
"action/EmptyIn.action"
|
||||
"action/FloatSingleInput.action"
|
||||
@@ -61,7 +57,7 @@ set(action_files
|
||||
"action/ResourceCreateFromOuter.action"
|
||||
|
||||
"action/SolidDispenseAddPowderTube.action"
|
||||
|
||||
|
||||
"action/PumpTransfer.action"
|
||||
"action/Clean.action"
|
||||
"action/Separate.action"
|
||||
|
||||
20
unilabos_msgs/action/LiquidHandlerAdd.action
Normal file
20
unilabos_msgs/action/LiquidHandlerAdd.action
Normal file
@@ -0,0 +1,20 @@
|
||||
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
|
||||
---
|
||||
# 反馈
|
||||
11
unilabos_msgs/action/LiquidHandlerMix.action
Normal file
11
unilabos_msgs/action/LiquidHandlerMix.action
Normal file
@@ -0,0 +1,11 @@
|
||||
Resource[] targets
|
||||
int32 mix_time
|
||||
int32 mix_vol
|
||||
float64 height_to_bottom
|
||||
geometry_msgs/Point[] offsets
|
||||
float64 mix_rate
|
||||
string[] none_keys
|
||||
---
|
||||
bool success
|
||||
---
|
||||
# 反馈
|
||||
7
unilabos_msgs/action/LiquidHandlerMoveTo.action
Normal file
7
unilabos_msgs/action/LiquidHandlerMoveTo.action
Normal file
@@ -0,0 +1,7 @@
|
||||
Resource well
|
||||
float64 dis_to_top
|
||||
int32 channel
|
||||
---
|
||||
bool success
|
||||
---
|
||||
# 反馈
|
||||
17
unilabos_msgs/action/LiquidHandlerRemove.action
Normal file
17
unilabos_msgs/action/LiquidHandlerRemove.action
Normal file
@@ -0,0 +1,17 @@
|
||||
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
|
||||
---
|
||||
# 反馈
|
||||
@@ -1,11 +1,25 @@
|
||||
# Bio
|
||||
Resource source
|
||||
float64[] asp_vols
|
||||
float64[] dis_vols
|
||||
Resource[] sources
|
||||
Resource[] targets
|
||||
float64 source_vol
|
||||
float64[] ratios
|
||||
float64[] target_vols
|
||||
float64 aspiration_flow_rate
|
||||
float64[] dispense_flow_rates
|
||||
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
|
||||
---
|
||||
bool success
|
||||
---
|
||||
---
|
||||
# 反馈
|
||||
10
unilabos_msgs/action/ResourceCreateFromOuterEasy.action
Normal file
10
unilabos_msgs/action/ResourceCreateFromOuterEasy.action
Normal file
@@ -0,0 +1,10 @@
|
||||
string id
|
||||
string class
|
||||
string parent
|
||||
geometry_msgs/Point bind_locations
|
||||
int32[] liquid_input_slot
|
||||
string[] liquid_type
|
||||
float32[] liquid_volume
|
||||
---
|
||||
bool success
|
||||
---
|
||||
Reference in New Issue
Block a user