From 3460f4eae93e4e954a64ed51c96f051db2768702 Mon Sep 17 00:00:00 2001 From: shalenikol Date: Wed, 5 Mar 2025 14:03:53 +0300 Subject: [PATCH] update object detection skill --- rbss_objectdetection/scripts/od_yolo_lc.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/rbss_objectdetection/scripts/od_yolo_lc.py b/rbss_objectdetection/scripts/od_yolo_lc.py index 6fa6bc9..f1d5f62 100755 --- a/rbss_objectdetection/scripts/od_yolo_lc.py +++ b/rbss_objectdetection/scripts/od_yolo_lc.py @@ -3,7 +3,7 @@ object_detection_lifecycle_node_via_interface_node ROS 2 program for Object Detection - @shalenikol release 0.3 + @shalenikol release 0.4 """ from typing import Optional @@ -116,20 +116,22 @@ class ObjectDetection(Node): dependency = {} for comm in self.skill_cfg["BTAction"]: for par in comm["param"]: - if par["type"] == "weights": - dependency = par["dependency"] - elif par["type"] == "topic": - self.topicImage = par["dependency"]["topicOut"] - assert dependency, "no weights dependency" + dependency = par["dependency"] + if par["type"] == "topic": + self.topicImage = dependency["topicOut"] + elif par["type"] == "formBuilder": + self.objName = dependency["output"]["object_name"] + val = dependency["output"]["process"]["selectProcess"]["value"] + self.yolov8_weights_file = os.path.join(val["instancePath"], val["instanceName"]+".pt") + assert self.objName, "no object name" assert self.topicImage, "no input topic dependency" + # assert self.yolov8_weights_file, "no weights dependency" - self.yolov8_weights_file = dependency["weights_file"] + # self.yolov8_weights_file = dependency["weights_file"] if not os.path.isfile(self.yolov8_weights_file): self.get_logger().warning(f"No weights found <{self.yolov8_weights_file}>") return TransitionCallbackReturn.FAILURE - self.objName = dependency["object_name"] - # Create the publisher. if self._is_image_mode: self._pub = self.create_lifecycle_publisher(Image, self.topicDetectImage, 3) @@ -169,6 +171,8 @@ class ObjectDetection(Node): self.image_det = [] self.bbox_res = None self.topicImage = "" + self.objName = "" + self.yolov8_weights_file = "" self.destroy_timer(self._timer) self.destroy_publisher(self._pub)