From 8ba911bb55d03968559b6dfb8e75d2ec5a3c0739 Mon Sep 17 00:00:00 2001 From: zhangshixiang <@zhangshixiang> Date: Wed, 10 Dec 2025 15:10:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=B9=E6=8D=AE=E6=96=B0?= =?UTF-8?q?=E7=9A=84=E7=89=A9=E6=96=99=E6=A0=BC=E5=BC=8F=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=8F=AF=E8=A7=86=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unilabos/device_mesh/resource_visalization.py | 15 +++++++++++---- .../ros/nodes/presets/resource_mesh_manager.py | 10 +++++----- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/unilabos/device_mesh/resource_visalization.py b/unilabos/device_mesh/resource_visalization.py index fc37150..ee58d67 100644 --- a/unilabos/device_mesh/resource_visalization.py +++ b/unilabos/device_mesh/resource_visalization.py @@ -128,14 +128,21 @@ class ResourceVisualization: new_dev.set("device_name", node["id"]+"_") # if node["parent"] is not None: # new_dev.set("station_name", node["parent"]+'_') - - new_dev.set("x",str(float(node["position"]["position"]["x"])/1000)) - new_dev.set("y",str(float(node["position"]["position"]["y"])/1000)) - new_dev.set("z",str(float(node["position"]["position"]["z"])/1000)) + if "position" in node: + new_dev.set("x",str(float(node["position"]["position"]["x"])/1000)) + new_dev.set("y",str(float(node["position"]["position"]["y"])/1000)) + new_dev.set("z",str(float(node["position"]["position"]["z"])/1000)) if "rotation" in node["config"]: new_dev.set("rx",str(float(node["config"]["rotation"]["x"]))) new_dev.set("ry",str(float(node["config"]["rotation"]["y"]))) new_dev.set("r",str(float(node["config"]["rotation"]["z"]))) + if "pose" in node: + new_dev.set("x",str(float(node["pose"]["position"]["x"])/1000)) + new_dev.set("y",str(float(node["pose"]["position"]["y"])/1000)) + new_dev.set("z",str(float(node["pose"]["position"]["z"])/1000)) + new_dev.set("rx",str(float(node["pose"]["rotation"]["x"]))) + new_dev.set("ry",str(float(node["pose"]["rotation"]["y"]))) + new_dev.set("r",str(float(node["pose"]["rotation"]["z"]))) if "device_config" in node["config"]: for key, value in node["config"]["device_config"].items(): new_dev.set(key, str(value)) diff --git a/unilabos/ros/nodes/presets/resource_mesh_manager.py b/unilabos/ros/nodes/presets/resource_mesh_manager.py index f46184b..1ff504c 100644 --- a/unilabos/ros/nodes/presets/resource_mesh_manager.py +++ b/unilabos/ros/nodes/presets/resource_mesh_manager.py @@ -203,9 +203,9 @@ class ResourceMeshManager(BaseROS2DeviceNode): continue # 提取位置信息并转换单位 position = { - "x": float(resource_config['position']['position']['x'])/1000, - "y": float(resource_config['position']['position']['y'])/1000, - "z": float(resource_config['position']['position']['z'])/1000 + "x": float(resource_config['pose']['position']['x'])/1000, + "y": float(resource_config['pose']['position']['y'])/1000, + "z": float(resource_config['pose']['position']['z'])/1000 } rotation_dict = { @@ -214,8 +214,8 @@ class ResourceMeshManager(BaseROS2DeviceNode): "z": 0 } - if 'rotation' in resource_config['position']: - rotation_dict = resource_config['position']['rotation'] + if 'rotation' in resource_config['pose']: + rotation_dict = resource_config['pose']['rotation'] # 从欧拉角转换为四元数 q = quaternion_from_euler(