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 object_detection_lifecycle_node_via_interface_node
ROS 2 program for Object Detection ROS 2 program for Object Detection
@shalenikol release 0.3 @shalenikol release 0.4
""" """
from typing import Optional from typing import Optional
@ -116,20 +116,22 @@ class ObjectDetection(Node):
dependency = {} dependency = {}
for comm in self.skill_cfg["BTAction"]: for comm in self.skill_cfg["BTAction"]:
for par in comm["param"]: for par in comm["param"]:
if par["type"] == "weights":
dependency = par["dependency"] dependency = par["dependency"]
elif par["type"] == "topic": if par["type"] == "topic":
self.topicImage = par["dependency"]["topicOut"] self.topicImage = dependency["topicOut"]
assert dependency, "no weights dependency" 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.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): if not os.path.isfile(self.yolov8_weights_file):
self.get_logger().warning(f"No weights found <{self.yolov8_weights_file}>") self.get_logger().warning(f"No weights found <{self.yolov8_weights_file}>")
return TransitionCallbackReturn.FAILURE return TransitionCallbackReturn.FAILURE
self.objName = dependency["object_name"]
# Create the publisher. # Create the publisher.
if self._is_image_mode: if self._is_image_mode:
self._pub = self.create_lifecycle_publisher(Image, self.topicDetectImage, 3) self._pub = self.create_lifecycle_publisher(Image, self.topicDetectImage, 3)
@ -169,6 +171,8 @@ class ObjectDetection(Node):
self.image_det = [] self.image_det = []
self.bbox_res = None self.bbox_res = None
self.topicImage = "" self.topicImage = ""
self.objName = ""
self.yolov8_weights_file = ""
self.destroy_timer(self._timer) self.destroy_timer(self._timer)
self.destroy_publisher(self._pub) self.destroy_publisher(self._pub)