Skip to content

[draft] Post Camera Synchronization #525

[draft] Post Camera Synchronization

[draft] Post Camera Synchronization #525

Triggered via pull request June 4, 2024 00:33
Status Success
Total duration 2m 8s
Artifacts

build_and_unitest.yml

on: pull_request
Setup Environment
26s
Setup Environment
Matrix: Build/Test
Confirm Build and Unit Tests Completed
0s
Confirm Build and Unit Tests Completed
Fit to window
Zoom out
Zoom in

Annotations

5 errors and 4 notices
src/perception/camera_object_detection/camera_object_detection/post_synchronizer.py#L9
from ultralytics.utils.plotting import Annotator, colors from cv_bridge import CvBridgeError - -class CameraSyncNode(Node): # synchronizes visualizations + + +class CameraSyncNode(Node): # synchronizes visualizations def __init__(self): super().__init__('camera_sync_node') - self.camera_img_sub = Subscriber(self, Image , '/camera/right/image_color') - + self.camera_img_sub = Subscriber(self, Image, '/camera/right/image_color') + self.camera1_sub = Subscriber(self, Detection2DArray, '/camera/left/camera_detections') self.camera2_sub = Subscriber(self, Detection2DArray, '/camera/center/camera_detections') self.camera3_sub = Subscriber(self, Detection2DArray, '/camera/right/camera_detections') - + self.ts = ApproximateTimeSynchronizer( [self.camera_img_sub, self.camera1_sub, self.camera2_sub, self.camera3_sub], queue_size=10, slop=0.1) - + self.ts.registerCallback(self.callback) - - self.combined_detection_publisher = self.create_publisher(Detection2DArray, '/combined_detections', 10) + + self.combined_detection_publisher = self.create_publisher( + Detection2DArray, '/combined_detections', 10) self.vis_publisher = self.create_publisher(Image, '/annotated_img') def process_img(self, image):
src/perception/camera_object_detection/camera_object_detection/post_synchronizer.py#L37
self.get_logger().error(str(e)) return return cv_image - + def postprocess_detections(self, detections, annotator): """ Post-process draws bouningboxes on camera image.
src/perception/camera_object_detection/camera_object_detection/post_synchronizer.py#L65
annotator_img = annotator.result() return (processed_detections, annotator_img) - + def publish_vis(self, annotated_img, msg): # Publish visualizations imgmsg = self.cv_bridge.cv2_to_imgmsg(annotated_img, "bgr8") imgmsg.header.stamp = msg.header.stamp imgmsg.header.frame_id = msg.header.frame_id self.vis_publisher.publish(imgmsg) - + def callback(self, camera_img_sub, camera1_msg, camera2_msg, camera3_msg): combined_detections = Detection2DArray() combined_detections.header = Header()
src/perception/camera_object_detection/camera_object_detection/post_synchronizer.py#L80
combined_detections.header.frame_id = camera1_msg.header.frame_id cv_image = self.process_img(camera_img_sub) - + for detection in camera1_msg.detections: combined_detections.detections.append(detection) - + for detection in camera2_msg.detections: combined_detections.detections.append(detection) - + for detection in camera3_msg.detections: combined_detections.detections.append(detection)
src/perception/camera_object_detection/camera_object_detection/post_synchronizer.py#L96
example=str(self.names), ) (combined_detections, annotated_img) = self.postprocess_detections(combined_detections, annotator) - + self.combined_detection_publisher.publish(combined_detections) self.publish_vis(annotated_img, camera_img_sub) - + + def main(args=None): rclpy.init(args=args) node = CameraSyncNode() - + rclpy.spin(node) - + node.destroy_node() rclpy.shutdown() - + + if __name__ == '__main__': - main() \ No newline at end of file + main()
Setup Environment
Detected infrastructure changes
Setup Environment
Using camera-sync-dan as the source branch
Setup Environment
Using main as the target branch
Confirm Build and Unit Tests Completed
All builds and unit tests completed!