添加硬件

This commit is contained in:
zhangshixiang
2025-07-25 12:17:35 +08:00
parent e7d90a8aae
commit ee576c9f6e
13 changed files with 13735 additions and 49 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -92,18 +92,18 @@ class ResourceVisualization:
# 遍历设备节点
for node in device.values():
if node['type'] in self.resource_type or (node['type'] == 'device' and node['class'] != ''):
if (node['type'] in self.resource_type and node['class'] != '') or (node['type'] == 'device' and node['class'] != ''):
model_config = {}
if node['type'] in self.resource_type:
resource_class = node['class']
if resource_class not in registry.resource_type_registry.keys():
raise ValueError(f"资源类型 {resource_class} 未在注册表中注册")
raise ValueError(f"{node['id']}资源类型 {resource_class} 未在注册表中注册")
elif "model" in registry.resource_type_registry[resource_class].keys():
model_config = registry.resource_type_registry[resource_class]['model']
elif node['type'] == 'device' and node['class'] != '':
device_class = node['class']
if device_class not in registry.device_type_registry.keys():
raise ValueError(f"设备类型 {device_class} 未在注册表中注册")
raise ValueError(f"{node['id']}设备类型 {device_class} 未在注册表中注册")
elif "model" in registry.device_type_registry[device_class].keys():
model_config = registry.device_type_registry[device_class]['model']
if model_config:

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" ?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="hplc_plate">
<link name='plate_link'>
<visual name='visual'>
<geometry>
<mesh filename="meshes/hplc_plate.stl"/>
</geometry>
<material name="clay" />
</visual>
</link>
</robot>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" ?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="plate_96_high">
<link name='plate_link'>
<visual name='visual'>
<geometry>
<mesh filename="meshes/plate_96_high.stl"/>
</geometry>
<material name="clay" />
</visual>
</link>
</robot>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" ?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="tiprack_96_high">
<link name='plate_link'>
<visual name='visual'>
<geometry>
<mesh filename="meshes/tiprack_96_high.stl"/>
</geometry>
<material name="clay" />
</visual>
</link>
</robot>

View File

@@ -1,31 +1,5 @@
arm_slider_arm_controller:
ros__parameters:
command_interfaces:
- position
joints:
- arm_slider_arm_base_joint
- arm_slider_arm_link_1_joint
- arm_slider_arm_link_2_joint
- arm_slider_arm_link_3_joint
- arm_slider_gripper_base_joint
state_interfaces:
- position
- velocity
arm_slider_gripper_controller:
ros__parameters:
command_interfaces:
- position
joints:
- arm_slider_gripper_right_joint
state_interfaces:
- position
- velocity
controller_manager:
ros__parameters:
arm_slider_arm_controller:
type: joint_trajectory_controller/JointTrajectoryController
arm_slider_gripper_controller:
type: joint_trajectory_controller/JointTrajectoryController
joint_state_broadcaster:
type: joint_state_broadcaster/JointStateBroadcaster
update_rate: 100

View File

@@ -7,3 +7,28 @@ class HotelContainer:
def get_rotation(self):
return self.rotation
class DeckContainer:
def __init__(self, rotation: dict, **kwargs):
self.rotation = rotation
self.status = 'idle'
def get_rotation(self):
return self.rotation
class TipRackContainer:
def __init__(self, rotation: dict, **kwargs):
self.rotation = rotation
self.status = 'idle'
def get_rotation(self):
return self.rotation
class PlateContainer:
def __init__(self, rotation: dict, **kwargs):
self.rotation = rotation
self.status = 'idle'
def get_rotation(self):
return self.rotation

View File

@@ -2187,65 +2187,65 @@ virtual_multiway_valve:
data_source: executor
data_type: fluid
description: 八通阀门端口1
handler_key: "1"
handler_key: '1'
io_type: source
label: "1"
label: '1'
side: NORTH
- data_key: fluid_port_2
data_source: executor
data_type: fluid
description: 八通阀门端口2
handler_key: "2"
handler_key: '2'
io_type: source
label: "2"
label: '2'
side: EAST
- data_key: fluid_port_3
data_source: executor
data_type: fluid
description: 八通阀门端口3
handler_key: "3"
handler_key: '3'
io_type: source
label: "3"
label: '3'
side: EAST
- data_key: fluid_port_4
data_source: executor
data_type: fluid
description: 八通阀门端口4
handler_key: "4"
handler_key: '4'
io_type: source
label: "4"
label: '4'
side: SOUTH
- data_key: fluid_port_5
data_source: executor
data_type: fluid
description: 八通阀门端口5
handler_key: "5"
handler_key: '5'
io_type: source
label: "5"
label: '5'
side: SOUTH
- data_key: fluid_port_6
data_source: executor
data_type: fluid
description: 八通阀门端口6
handler_key: "6"
handler_key: '6'
io_type: source
label: "6"
label: '6'
side: WEST
- data_key: fluid_port_7
data_source: executor
data_type: fluid
description: 八通阀门端口7
handler_key: "7"
handler_key: '7'
io_type: source
label: "7"
label: '7'
side: WEST
- data_key: fluid_port_8
data_source: executor
data_type: fluid
description: 八通阀门端口8
handler_key: "8"
handler_key: '8'
io_type: source
label: "8"
label: '8'
side: NORTH
icon: EightPipeline.webp
init_param_schema:

View File

@@ -0,0 +1,57 @@
plate_96_high:
description: 96孔板
class:
module: unilabos.devices.resource_container.container:PlateContainer
type: python
model:
type: resource
mesh: plate_96_high/meshes/plate_96_high.stl
mesh_tf:
- 0
- 0.086
- 0
- 1.5708
- 0
- 1.5708
hplc_plate:
description: HPLC板
class:
module: unilabos.devices.resource_container.container:PlateContainer
type: python
model:
type: resource
mesh: hplc_plate/meshes/hplc_plate.stl
mesh_tf:
- 0
- 0
- 0
- 0
- 0
- 3.1416
tiprack_96_high:
description: 96孔板
class:
module: unilabos.devices.resource_container.container:TipRackContainer
type: python
model:
type: resource
mesh: tiprack_96_high/meshes/tiprack_96_high.stl
mesh_tf:
- 0
- 0.086
- 0
- 1.5708
- 0
- 1.5708
children_mesh: generic_labware_tube_10_75/meshes/0_base.stl
children_mesh_tf:
- 0.0018
- 0.0018
- -0.03
- -1.5708
- 0
- 0

View File

@@ -16,12 +16,11 @@ OTDeck:
registry_type: resource
version: 1.0.0
hplc_station:
description: Opentrons deck
description: hplc_station deck
class:
module: pylabrobot.resources.opentrons.deck:OTDeck
type: pylabrobot
module: unilabos.devices.resource_container.container:DeckContainer
type: python
model:
type: device
mesh: hplc_station