Merge branch 'shalenikol-jazzy' into 'nix-jazzy'

update object detection skill

See merge request robossembler/robossembler-ros2!76
This commit is contained in:
shalenikol 2025-03-05 11:16:51 +00:00
commit 09420025a1

View file

@ -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)