From 7a2879109145d3c728941a4afe14001405d1323f Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Thu, 5 Sep 2024 13:51:15 -0400 Subject: [PATCH 01/30] simple square detection with aspect ratio --- .../dock_color_detection.py | 37 ++++++++++++++++++ .../test_images/dock_blue1.jpg | Bin 0 -> 111616 bytes .../test_images/dock_red1.jpg | Bin 0 -> 200621 bytes 3 files changed, 37 insertions(+) create mode 100644 NaviGator/perception/navigator_vision/nodes/dock_color_detection/dock_color_detection.py create mode 100644 NaviGator/perception/navigator_vision/nodes/dock_color_detection/test_images/dock_blue1.jpg create mode 100644 NaviGator/perception/navigator_vision/nodes/dock_color_detection/test_images/dock_red1.jpg diff --git a/NaviGator/perception/navigator_vision/nodes/dock_color_detection/dock_color_detection.py b/NaviGator/perception/navigator_vision/nodes/dock_color_detection/dock_color_detection.py new file mode 100644 index 000000000..26bbaa567 --- /dev/null +++ b/NaviGator/perception/navigator_vision/nodes/dock_color_detection/dock_color_detection.py @@ -0,0 +1,37 @@ +import cv2 as cv +import numpy as np + +image = cv.imread('./test_images/dock_blue1.jpg') + +gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) + +# Apply Gaussian blur to the image +blurred = cv.GaussianBlur(gray, (5, 5), 0) + +# Use Canny edge detection +edges = cv.Canny(blurred, 50, 150) + +# Find contours in the edged image +contours, _ = cv.findContours(edges, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE) + +# Loop over the contours +for contour in contours: + # Approximate the contour to a polygon + epsilon = 0.02 * cv.arcLength(contour, True) + approx = cv.approxPolyDP(contour, epsilon, True) + + # If the approximated contour has 4 vertices, it's a square (or rectangle) + if len(approx) == 4: + x, y, w, h = cv.boundingRect(approx) + + # Calculate the aspect ratio + aspect_ratio = float(w) / h + + # Check if the aspect ratio is close to 1 (square) + if 0.95 <= aspect_ratio <= 1.05: + cv.drawContours(image, [approx], -1, (0, 255, 0), 2) + +# Display the result +cv.imshow("Squares Detected", image) +cv.waitKey(0) +cv.destroyAllWindows() \ No newline at end of file diff --git a/NaviGator/perception/navigator_vision/nodes/dock_color_detection/test_images/dock_blue1.jpg b/NaviGator/perception/navigator_vision/nodes/dock_color_detection/test_images/dock_blue1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bd824eb5493a2ef4811ebacc8ba632aee18f56a5 GIT binary patch literal 111616 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�lDOWZ(LPUQ~BZwQ{!7Qnnpt5ehbf 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 literal 0 HcmV?d00001 From b1255374e65df868694939d31a41098c5d6b867e Mon Sep 17 00:00:00 2001 From: andrew-aj Date: Thu, 5 Sep 2024 15:07:04 -0400 Subject: [PATCH 02/30] moved docking mission over from 2022 --- .../navigator_missions/docking.py | 674 ++++++++++++++---- 1 file changed, 542 insertions(+), 132 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 1f9b561d3..c869d7384 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -1,150 +1,560 @@ #!/usr/bin/env python3 +import copy +import random +from typing import Optional + +import cv2 import numpy as np -from geometry_msgs.msg import Point -from mil_misc_tools import ThrowingArgumentParser -from mil_msgs.msg import ObjectsInImage -from mil_msgs.srv import CameraToLidarTransform, CameraToLidarTransformRequest -from mil_tools import rosmsg_to_numpy +import rospy +from cv_bridge import CvBridge +from dynamic_reconfigure.msg import DoubleParameter +from geometry_msgs.msg import Pose +from image_geometry import PinholeCameraModel +from mil_tools import pose_to_numpy, rosmsg_to_numpy +from nav_msgs.msg import OccupancyGrid +from sensor_msgs.msg import CameraInfo, Image +from std_srvs.srv import SetBool, SetBoolRequest +from tf.transformations import quaternion_matrix from .navigator import NaviGatorMission +PANNEL_MAX = 0 +PANNEL_MIN = 2 + +CAMERA_LINK_OPTICAL = "wamv/front_left_camera_link_optical" + +COLOR_SEQUENCE_SERVICE = "/vrx/scan_dock/color_sequence" + +TIMEOUT_SECONDS = 30 + class Docking(NaviGatorMission): - @classmethod - def decode_parameters(cls, parameters): - argv = parameters.split() - return cls.parser.parse_args(argv) + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.ogrid = None + self.ogrid_origin = None + self.ogrid_cpm = None + self.ogrid_sub = self.nh.subscribe( + "/ogrid", + OccupancyGrid, + callback=self.ogrid_cb, + ) - @classmethod - async def setup(cls): - parser = ThrowingArgumentParser( - description="Dock", - usage="""Default parameters: \'runtask Docking - \'""", + self.pcodar_save = self.nh.get_service_client("/pcodar/save", SetBool) + # self.image_sub = self.nh.subscribe( + # "/wamv/sensors/cameras/front_left_camera/image_raw", Image + # ) + self.image_sub = self.nh.subscribe( + "/wamv/sensors/cameras/front_left_camera/image_raw", + Image, ) - parser.add_argument("-t", "--time", type=int, default=-1) - cls.parser = parser - - cls.bboxsub = cls.nh.subscribe("/bbox_pub", ObjectsInImage) - await cls.bboxsub.setup() - cls.camera_lidar_tf = cls.nh.get_service_client( - "/camera_to_lidar/front_right_cam", - CameraToLidarTransform, + self.cam_frame = None + # self.image_info_sub = self.nh.subscribe( + # "/wamv/sensors/cameras/front_left_camera/camera_info", CameraInfo + # ) + self.image_info_sub = self.nh.subscribe( + "/wamv/sensors/cameras/front_left_camera/camera_info", + CameraInfo, ) + self.model = PinholeCameraModel() + self.center = None + self.intup = lambda arr: tuple(np.array(arr, dtype=np.int64)) + self.last_image = None + + @classmethod + async def init(cls): + cls.contour_pub = cls.nh.advertise("/contour_pub", Image) + await cls.contour_pub.setup() @classmethod async def shutdown(cls): - await cls.bboxsub.shutdown() + await cls.contour_pub.shutdown() + await cls.ogrid_sub.shutdown() + await cls.image_sub.shutdown() + await cls.image_info_sub.shutdown() async def run(self, args): - # Parse Arguments - wait_time = args.time - - # Find Dock - dock_position = None - largest_size = 0 - boat_pos = (self.tx_pose)[0] - # Get 10 closest unclassified objects - unclass = await self.get_sorted_objects(name="UNKNOWN", n=10, throw=False) - for obj in unclass[0]: - point = rosmsg_to_numpy(obj.pose.position) - scale = rosmsg_to_numpy(obj.scale) - - # Filter such that we know the dock is closer than 20 meters - if np.linalg.norm(point - boat_pos) > 20: - break - - size = scale[0] * scale[1] - - if size > largest_size: - largest_size = size - dock_position = point - - if dock_position is None: - self.send_feedback("Cancelling, failed to find dock position") - return - - self.send_feedback("Found dock, looking for image") - - # Find the camera input - center_frame = await self.get_center_frame() - symbol = center_frame[2].lower() - - self.send_feedback(f"Identified {symbol}") - - # Find the target point - target_pt = await self.get_target_pt(center_frame) - - self.send_feedback("Identified target") - - # Identify the time to wait in the dock - if wait_time == -1: - if "triangle" in symbol: - wait_time = 7 - elif "circle" in symbol: - wait_time = 17 - else: # Cruciform - wait_time = 27 - - # Go to pose - self.send_feedback("Moving into dock") - await self.move.set_position(target_pt).look_at(dock_position).go(blind=True) - - # Sleep the appropriate amount of time - self.send_feedback("------------------------------------------------") - self.send_feedback("!!!!!!!!!!!!! STATION KEEPING !!!!!!!!!!!!!!!!!!") - await self.nh.sleep(wait_time) - self.send_feedback("!!!!!!!!!!!!!!! EXITING DOCK !!!!!!!!!!!!!!!!!!!") - self.send_feedback("------------------------------------------------") - - # Back out of the dock - await self.move.backward(5).go(blind=True) - await self.move.backward(5).go(blind=True) - - self.send_feedback("Done with docking!") - - async def get_center_frame(self): - msgf = await self.bboxsub.get_next_message() - msg = msgf.objects[0] - # print msg - c1 = rosmsg_to_numpy(msg.points[0]) - c2 = rosmsg_to_numpy(msg.points[1]) - tmp = (((c1 + c2) / 2.0), msgf, msg.name) - return tmp - - async def get_target_pt(self, center_frame): - msg = CameraToLidarTransformRequest() - msg.header.stamp = center_frame[1].header.stamp - msg.header.frame_id = center_frame[1].header.frame_id - msg.point = Point(x=center_frame[0][0], y=center_frame[0][1], z=0.0) - msg.tolerance = 500 - - pose_offset = await self.camera_lidar_tf(msg) - - cam_to_enu = await self.tf_listener.get_transform( - "enu", - center_frame[1].header.frame_id, + await self.ogrid_sub.setup() + await self.image_sub.setup() + await self.image_info_sub.setup() + await self.pcodar_save.wait_for_service() + + self.bridge = CvBridge() + msg = await self.image_info_sub.get_next_message() + self.model.fromCameraInfo(msg) + rospy.logerr("HERE") + + self.cam_frame = (await self.image_sub.get_next_message()).header.frame_id + rospy.logerr("HERE2") + await self.pcodar_save(SetBoolRequest(True)) + + pcodar_cluster_tol = DoubleParameter() + pcodar_cluster_tol.name = "cluster_tolerance_m" + pcodar_cluster_tol.value = 10 + await self.pcodar_set_params(doubles=[pcodar_cluster_tol]) + rospy.logerr("HERE3") + await self.nh.sleep(5) + + pos = await self.poi.get("dock") + rospy.logerr("HERE4") + await self.move.look_at(pos).set_position(pos).go() + + # Decrease cluster tolerance as we approach dock since lidar points are more dense + # This helps scenario where stc buoy is really close to dock + pcodar_cluster_tol = DoubleParameter() + pcodar_cluster_tol.name = "cluster_tolerance_m" + pcodar_cluster_tol.value = 4 + await self.pcodar_set_params(doubles=[pcodar_cluster_tol]) + await self.nh.sleep(5) + + await self.move_to_correct_side() + + # recalculate dock position once on correct side + # await self.find_dock() + + await self.move_to_correct_side() + + dock, pos = await self.get_sorted_objects(name="dock", n=1) + # dock is PerceptionObject + position, rotation, dock = self.get_dock_data(dock) + points = rosmsg_to_numpy(dock.points) + enu_to_boat = await self.tf_listener.get_transform("wamv/base_link", "enu") + corrected = np.empty(points.shape) + for i in range(points.shape[0]): + corrected[i] = enu_to_boat.transform_point(points[i]) + + centers, clusters = self.get_cluster_centers(corrected) + centers = centers[centers[:, 1].argsort()][::-1] + images = await self.crop_images(clusters) + self.find_color(images, 1) + + left = copy.deepcopy(centers[0]) + rospy.logerr(centers[0]) + rospy.logerr(centers[1]) + rospy.logerr(centers[2]) + left[0] = 0 + forward = copy.deepcopy(centers[0]) + forward[0] = forward[0] - 5 + boat_to_enu = await self.tf_listener.get_transform("enu", "wamv/base_link") + centers[0] = boat_to_enu.transform_point(left) + nextPt = boat_to_enu.transform_point(forward) + await self.move.set_position(centers[0]).go(blind=True, move_type="skid") + await self.move.set_position(nextPt).go(blind=True, move_type="skid") + await self.pcodar_save(SetBoolRequest(False)) + + await self.contour_pub.shutdown() + await self.ogrid_sub.shutdown() + await self.image_sub.shutdown() + await self.image_info_sub.shutdown() + await self.pcodar_save.shutdown() + + def get_dock_data(self, dock): + dock = dock[0] + position, quat = pose_to_numpy(dock.pose) + rotation = quaternion_matrix(quat) + return position, rotation, dock + + async def move_to_correct_side(self): + await self.find_dock() + + # get a vector to the longer side of the dock + dock, pos = None, None + while dock is None or pos is None: + try: + dock, pos = await self.get_sorted_objects(name="dock", n=1) + except Exception as _: + await self.find_dock() + dock, pos = await self.get_sorted_objects(name="dock", n=1) + + side, position = self.get_correct_side(dock) + + # TODO, add check to recaluclate position once we get on either side of the dock + await self.move.set_position(side).look_at(position).backward(2).go() + + def get_correct_side(self, dock): + # dock is PerceptionObject + position, rotation, dock = self.get_dock_data(dock) + bbox_large = rosmsg_to_numpy(dock.scale) + bbox_copy = copy.deepcopy(bbox_large) + + bbox_large[2] = 0 + bbox_small = copy.deepcopy(bbox_large) + + max_dim = np.argmax(bbox_large[:2]) + bbox_large[max_dim] = 0 + bbox_enu = np.dot(rotation[:3, :3], bbox_large) + + min_dim = np.argmin(bbox_small[:2]) + bbox_small[min_dim] = 0 + bbox_enu_small = np.dot(rotation[:3, :3], bbox_small) + # this black magic uses the property that a rotation matrix is just a + # rotated cartesian frame and only gets the vector that points towards + # the longest side since the vector pointing that way will be at the + # same index as the scale for the smaller side. This is genius! + # - Andrew Knee + + # move to first attempt + print("moving in front of dock") + # curr_pose = await self.tx_pose() + side_a = bbox_enu + position + side_b = -bbox_enu + position + side_c = bbox_enu_small + position + side_d = -bbox_enu_small + position + + return ( + self.calculate_correct_side( + copy.deepcopy(side_a), + copy.deepcopy(side_b), + copy.deepcopy(side_c), + copy.deepcopy(side_d), + position, + rotation[:3, :3], + bbox_copy, + ), + position, ) - normal = rosmsg_to_numpy(pose_offset.normal) - normal = cam_to_enu.transform_vector(normal) - normal = normal[0:2] / np.linalg.norm(normal[0:2]) - normal = np.append(normal, [0]) - found_pt = rosmsg_to_numpy(pose_offset.closest) - found_pt = cam_to_enu.transform_point(found_pt) - found_pt[2] = 0 - - # Extend out by normal multiplier - normal *= 3 - found_pt_1 = found_pt + normal - found_pt_2 = found_pt + -1 * normal - - # Which is closer - boat_pos = (self.tx_pose)[0] - if np.linalg.norm(found_pt_1 - boat_pos) > np.linalg.norm( - found_pt_2 - boat_pos, - ): - found_pt = found_pt_2 + + def get_cluster_centers(self, data): + mean = np.mean(data, axis=0)[2] + data = data[data[:, 2] > mean] + centroids = [] + + # Sample initial centroids + random_indices = random.sample(range(data.shape[0]), 3) + for i in random_indices: + centroids.append(data[i]) + + # Create a list to store which centroid is assigned to each dataset + assigned_centroids = [0] * len(data) + + def compute_l2_distance(x, centroid): + # Initialise the distance to 0 + dist = 0 + + # Loop over the dimensions. Take squared difference and add to dist + + for i in range(len(x)): + dist += (centroid[i] - x[i]) ** 2 + + return dist + + def get_closest_centroid(x, centroids): + # Initialise the list to keep distances from each centroid + centroid_distances = [] + + # Loop over each centroid and compute the distance from data point. + for centroid in centroids: + dist = compute_l2_distance(x, centroid) + centroid_distances.append(dist) + + # Get the index of the centroid with the smallest distance to the data point + closest_centroid_index = min( + range(len(centroid_distances)), + key=lambda x: centroid_distances[x], + ) + + return closest_centroid_index + + def compute_sse(data, centroids, assigned_centroids): + # Initialise SSE + sse = 0 + + # Compute the squared distance for each data point and add. + for i, x in enumerate(data): + # Get the associated centroid for data point + centroid = centroids[assigned_centroids[i]] + + # Compute the Distance to the centroid + dist = compute_l2_distance(x, centroid) + + # Add to the total distance + sse += dist + + sse /= len(data) + return sse + + # Number of dimensions in centroid + num_centroid_dims = data.shape[1] + + # List to store SSE for each iteration + sse_list = [] + + # Loop over iterations + for n in range(10): + + # Loop over each data point + for i in range(len(data)): + x = data[i] + + # Get the closest centroid + closest_centroid = get_closest_centroid(x, centroids) + + # Assign the centroid to the data point. + assigned_centroids[i] = closest_centroid + + # Loop over centroids and compute the new ones. + for c in range(len(centroids)): + # Get all the data points belonging to a particular cluster + cluster_data = [ + data[i] for i in range(len(data)) if assigned_centroids[i] == c + ] + + # Initialise the list to hold the new centroid + new_centroid = [0] * len(centroids[0]) + + # Compute the average of cluster members to compute new centroid + # Loop over dimensions of data + for dim in range(num_centroid_dims): + dim_sum = [x[dim] for x in cluster_data] + dim_sum = sum(dim_sum) / len(dim_sum) + new_centroid[dim] = dim_sum + + # assign the new centroid + centroids[c] = new_centroid + + # Compute the SSE for the iteration + sse = compute_sse(data, centroids, assigned_centroids) + sse_list.append(sse) + + cluster_members = [] + + for c in range(len(centroids)): + cluster_member = [ + data[i] for i in range(len(data)) if assigned_centroids[i] == c + ] + cluster_members.append(np.array(cluster_member)) + + means = [] + + for c in range(len(cluster_members)): + means.append(np.mean(cluster_members[c], axis=0)) + + print(means) + return np.asarray(means), cluster_members + + def crop_image(self, pts, transform, img): + pts = [self.model.project3dToPixel(transform.transform_point(a)) for a in pts] + pts = np.array([[int(a[0]), int(a[1])] for a in pts], dtype=np.int32) + pts = np.int32([pts]) + rospy.logerr(pts) + mask = np.zeros((img.shape[0], img.shape[1]), dtype=np.uint8) + cv2.fillPoly(mask, pts, (255)) + res = cv2.bitwise_and(img, img, mask=mask) + rect = cv2.boundingRect(pts) + cropped = res[rect[1] : rect[1] + rect[3], rect[0] : rect[0] + rect[2]] + return cropped + + def get_cluster_corners(self, cluster): + avg_x = np.mean(cluster[:, 0]) + min_y = np.amin(cluster[:, 1]) + max_y = np.amax(cluster[:, 1]) + min_z = np.amin(cluster[:, 2]) + max_z = np.amax(cluster[:, 2]) + return np.asarray( + [ + [avg_x, min_y, min_z], + [avg_x, min_y, max_z], + [avg_x, max_y, max_z], + [avg_x, max_y, min_z], + ], + ) + + async def crop_images(self, clusters): + image = await self.image_sub.get_next_message() + image = self.bridge.imgmsg_to_cv2(image) + boat_to_cam = await self.tf_listener.get_transform( + self.cam_frame, + "wamv/base_link", + ) + + left = self.crop_image( + self.get_cluster_corners(clusters[0]), + boat_to_cam, + image, + ) + middle = self.crop_image( + self.get_cluster_corners(clusters[1]), + boat_to_cam, + image, + ) + right = self.crop_image( + self.get_cluster_corners(clusters[2]), + boat_to_cam, + image, + ) + list = [left, middle, right] + + h_min = min(a.shape[0] for a in list) + resized = [ + cv2.resize( + im, + (int(im.shape[1] * h_min / im.shape[0]), h_min), + interpolation=cv2.INTER_CUBIC, + ) + for im in list + ] + concat = cv2.hconcat(resized) + msg = self.bridge.cv2_to_imgmsg(concat, encoding="rgb8") + self.contour_pub.publish(msg) + return list + + def find_color(self, images, color): + for img in images: + img = img.astype("uint8") + ret3, th3 = cv2.threshold(img, 0, 255, cv2.THRESH_OTSU) + img = cv2.cvtColor(th3, cv2.COLOR_GRAY2RGB) + # edges = cv2.Canny(img, 100, 200) + # contours, _ = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) + # img = cv2.cvtColor(edges, cv2.COLOR_GRAY2RGB) + # largestContour = (0, None) + # for contour in contours: + # area = cv2.contourArea(contour) + # if area > largestContour[0]: + # largestContour = (area, contour) + # cv2.drawContours(img, contours, -1, (0, 255, 0), 3) + msg = self.bridge.cv2_to_imgmsg(img, encoding="rgb8") + self.contour_pub.publish(msg) + + def get_ogrid_coords(self, arr): + return self.intup(self.ogrid_cpm * (np.asarray(arr) - self.ogrid_origin))[:2] + + def bbox_to_point(self, scale, rot, pos, xmul, ymul): + return self.intup( + self.ogrid_cpm + * ( + self.get_point( + [(xmul * scale[0]) / 2, (ymul * scale[1]) / 2, scale[2]], + rot, + pos, + ) + - self.ogrid_origin + )[:2], + ) + + # returns True if side a is closest, False is side b is closest + def calculate_correct_side( + self, + side_a: [float], + side_b: [float], + side_c: [float], + side_d: [float], + position: [float], + rotation: [[float]], + scale: [float], + ) -> [float]: + print("Finding ogrid center of mass") + + point1 = self.bbox_to_point(scale, rotation, position, -1, 1) + point2 = self.bbox_to_point(scale, rotation, position, 1, 1) + point3 = self.bbox_to_point(scale, rotation, position, 1, -1) + point4 = self.bbox_to_point(scale, rotation, position, -1, -1) + contours = np.array([point1, point2, point3, point4]) + + center = self.calculate_center_of_mass(contours) + mask = np.zeros(self.last_image.shape, np.uint8) + + bounding_rect = cv2.boundingRect(contours) + x, y, w, h = bounding_rect + + image_or = np.zeros(self.last_image.shape, np.uint8) + + cv2.line(mask, self.get_ogrid_coords(side_a), center, (255, 255, 255), 2) + side_a_and = cv2.bitwise_and(copy.deepcopy(self.last_image), mask) + image_or = cv2.bitwise_or(image_or, side_a_and) + mask = np.zeros(self.last_image.shape, np.uint8) + + cv2.line(mask, self.get_ogrid_coords(side_b), center, (255, 255, 255), 2) + side_b_and = cv2.bitwise_and(copy.deepcopy(self.last_image), mask) + image_or = cv2.bitwise_or(image_or, side_b_and) + mask = np.zeros(self.last_image.shape, np.uint8) + + cv2.line(mask, self.get_ogrid_coords(side_c), center, (255, 255, 255), 2) + side_c_and = cv2.bitwise_and(copy.deepcopy(self.last_image), mask) + image_or = cv2.bitwise_or(image_or, side_c_and) + mask = np.zeros(self.last_image.shape, np.uint8) + + cv2.line(mask, self.get_ogrid_coords(side_d), center, (255, 255, 255), 2) + side_d_and = cv2.bitwise_and(copy.deepcopy(self.last_image), mask) + image_or = cv2.bitwise_or(image_or, side_d_and) + + msg = self.bridge.cv2_to_imgmsg(image_or, encoding="rgb8") + self.contour_pub.publish(msg) + + side_a_count = np.count_nonzero(side_a_and == np.asarray([255, 255, 255])) + print(side_a_count) + side_b_count = np.count_nonzero(side_b_and == np.asarray([255, 255, 255])) + print(side_b_count) + side_c_count = np.count_nonzero(side_c_and == np.asarray([255, 255, 255])) + print(side_c_count) + side_d_count = np.count_nonzero(side_d_and == np.asarray([255, 255, 255])) + print(side_d_count) + + lowest = min([side_a_count, side_b_count, side_c_count, side_d_count]) + print("Center of mass found") + if lowest == side_a_count: + return side_a + elif lowest == side_b_count: + return side_b + elif lowest == side_c_count: + return side_c else: - found_pt = found_pt_1 + return side_d + + def ogrid_to_position(self, ogrid): + ogrid = np.array(ogrid, dtype=np.float64) + ogrid = ogrid / self.ogrid_cpm + ogrid = ogrid + self.ogrid_origin[:2] + return tuple(ogrid) + + def calculate_center_of_mass(self, points): + bounding_rect = cv2.boundingRect(points) + x, y, w, h = bounding_rect + mask = np.zeros(self.last_image.shape, np.uint8) + cv2.drawContours(mask, [points], -1, (255, 255, 255), -1, cv2.LINE_AA) + masked = cv2.bitwise_and(self.last_image, mask) + count = 0 + x_sum = 0 + y_sum = 0 + for i in range(x, x + w): + for j in range(y, y + h): + if (masked[j, i] == [255, 255, 255]).all(): + x_sum = x_sum + i + y_sum = y_sum + j + count = count + 1 + x_sum = int(x_sum / count) + y_sum = int(y_sum / count) + return (x_sum, y_sum) + + def get_point(self, corner, rotation_matrix, center): + return np.matmul(rotation_matrix, np.asarray(corner)) + np.asarray(center) + + async def find_dock_poi(self, hint: Optional[Pose] = None): + print("Finding poi") + + # This function is used to find the position of the dock after the boat is near a POI + async def find_dock(self): + print("Searching for dock") + msg = None + while msg is None: + try: + # msgs, poses = await self.get_sorted_objects(name="UNKNOWN", n=-1) + msg = await self.get_largest_object() + except Exception: + await self.move.forward(10).go() + await self.pcodar_label(msg.id, "dock") + # if no pcodar objects, throw error, exit mission + # pose = poses[0] + pose = pose_to_numpy(msg.pose) + + return pose + + def ogrid_cb(self, msg): + self.ogrid = np.array(msg.data).reshape((msg.info.height, msg.info.width)) + self.ogrid_origin = rosmsg_to_numpy(msg.info.origin.position) + self.ogrid_cpm = 1 / msg.info.resolution + + image = 255 * np.greater(self.ogrid, 90).astype(np.uint8) + grayImage = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR) - return found_pt + self.last_image = grayImage + return From 31f9025d879bb48839fda539e86bc8ad6a949417 Mon Sep 17 00:00:00 2001 From: andrew-aj Date: Mon, 9 Sep 2024 19:10:07 -0400 Subject: [PATCH 03/30] added more comments --- .../navigator_missions/docking.py | 47 ++++++++++++++++--- .../navigator_missions/navigator.py | 5 ++ 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index c869d7384..86d90750b 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -40,6 +40,7 @@ def __init__(self, *args, **kwargs): callback=self.ogrid_cb, ) + # Service to save and restore the settings of PCODAR self.pcodar_save = self.nh.get_service_client("/pcodar/save", SetBool) # self.image_sub = self.nh.subscribe( # "/wamv/sensors/cameras/front_left_camera/image_raw", Image @@ -86,8 +87,11 @@ async def run(self, args): self.cam_frame = (await self.image_sub.get_next_message()).header.frame_id rospy.logerr("HERE2") + + # Save PCODAR settings await self.pcodar_save(SetBoolRequest(True)) + # Change cluster tolerance to make it easier to find dock pcodar_cluster_tol = DoubleParameter() pcodar_cluster_tol.name = "cluster_tolerance_m" pcodar_cluster_tol.value = 10 @@ -95,6 +99,8 @@ async def run(self, args): rospy.logerr("HERE3") await self.nh.sleep(5) + # Get the POI (point of interest) from the config file and move to it + # This is a predetermined position of the general location for the dock pos = await self.poi.get("dock") rospy.logerr("HERE4") await self.move.look_at(pos).set_position(pos).go() @@ -107,31 +113,45 @@ async def run(self, args): await self.pcodar_set_params(doubles=[pcodar_cluster_tol]) await self.nh.sleep(5) + # move to the open side of the dock await self.move_to_correct_side() - # recalculate dock position once on correct side - # await self.find_dock() - + # retry calculation to make sure we really found the open side await self.move_to_correct_side() + # get the dock object from the database dock, pos = await self.get_sorted_objects(name="dock", n=1) + # dock is PerceptionObject position, rotation, dock = self.get_dock_data(dock) + + # get LIDAR points points = rosmsg_to_numpy(dock.points) + + # get transform from enu to boat space enu_to_boat = await self.tf_listener.get_transform("wamv/base_link", "enu") corrected = np.empty(points.shape) + + # convert LIDAR points from enu to boat space for i in range(points.shape[0]): corrected[i] = enu_to_boat.transform_point(points[i]) + # get the centers and clusters that represent the backside of the dock centers, clusters = self.get_cluster_centers(corrected) + centers = centers[centers[:, 1].argsort()][::-1] + + # crop the images to get bbox and find color images = await self.crop_images(clusters) self.find_color(images, 1) + # temporary code that just moves boat to center of leftmost cluster left = copy.deepcopy(centers[0]) rospy.logerr(centers[0]) rospy.logerr(centers[1]) rospy.logerr(centers[2]) + + # calculate center of cluster and move towards it but at an offset distance left[0] = 0 forward = copy.deepcopy(centers[0]) forward[0] = forward[0] - 5 @@ -161,19 +181,24 @@ async def move_to_correct_side(self): dock, pos = None, None while dock is None or pos is None: try: + # looks the the LIDAR cluster database and finds the object with name "dock" dock, pos = await self.get_sorted_objects(name="dock", n=1) except Exception as _: + # retries if an exception occurs await self.find_dock() dock, pos = await self.get_sorted_objects(name="dock", n=1) + # find the open side of the dock side, position = self.get_correct_side(dock) - # TODO, add check to recaluclate position once we get on either side of the dock + # move the boat to the middle of the correct side offset by 2 meters back and face the center of the dock await self.move.set_position(side).look_at(position).backward(2).go() def get_correct_side(self, dock): # dock is PerceptionObject position, rotation, dock = self.get_dock_data(dock) + + # get bounding box of the dock bbox_large = rosmsg_to_numpy(dock.scale) bbox_copy = copy.deepcopy(bbox_large) @@ -214,7 +239,10 @@ def get_correct_side(self, dock): position, ) + # separates the clusters using k means clustering def get_cluster_centers(self, data): + + # cut off all points below the mean z value mean = np.mean(data, axis=0)[2] data = data[data[:, 2] > mean] centroids = [] @@ -432,6 +460,12 @@ def bbox_to_point(self, scale, rot, pos, xmul, ymul): ) # returns True if side a is closest, False is side b is closest + # This function works by drawing lines on the OGrid image. The OGrid is a 2D top down + # image that takes the LIDAR points and colors a pixel in this grid is a point occupies it. + # Using the bounding box of the LIDAR object, we create a bounding box around the 2D image of the dock. + # Then, the center is calculated and lines are drawn to the middle point of each side of the bounding box. + # The number of occupies squares are counted on the line from the object center to line middle. The line + # which has the least amount of occupied space points to the open side of the dock. def calculate_correct_side( self, side_a: [float], @@ -537,15 +571,16 @@ async def find_dock(self): msg = None while msg is None: try: - # msgs, poses = await self.get_sorted_objects(name="UNKNOWN", n=-1) + # gets the largest object in the clusters database msg = await self.get_largest_object() except Exception: await self.move.forward(10).go() + # label the largest LIDAR object in the PCODAR database "dock" await self.pcodar_label(msg.id, "dock") # if no pcodar objects, throw error, exit mission - # pose = poses[0] pose = pose_to_numpy(msg.pose) + # return position of dock return pose def ogrid_cb(self, msg): diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py b/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py index 36c78fcbc..ddd89b055 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py @@ -546,6 +546,11 @@ def set_valve(self, name, state): req = SetValveRequest(actuator=name, opened=state) return self._actuator_client(req) + async def get_largest_object(self, name: str = "UNKNOWN", **kwargs): + objects = (await self.database_query(object_name=name, **kwargs)).objects + largest_object = max(objects, key=lambda x: x.scale.x * x.scale.y) + return largest_object + async def get_sorted_objects( self, name: str, From 0d454d21f81dcf9fa1f1b1107f512acffe620d13 Mon Sep 17 00:00:00 2001 From: andrew-aj Date: Thu, 12 Sep 2024 13:29:37 -0400 Subject: [PATCH 04/30] added old stuff and fixed topic names --- .../launch/shore/xbox_controller.launch | 2 +- .../navigator_missions/docking.py | 9 +++- .../CMakeLists.txt | 2 +- .../object_associator.hpp | 1 + .../object_detector.hpp | 1 + .../ogrid_manager.hpp | 1 + .../pcodar_controller.hpp | 10 +++++ .../persistent_cloud_filter.hpp | 1 + .../point_cloud_builder.hpp | 2 + .../src/object_associator.cpp | 6 +++ .../src/object_detector.cpp | 6 +++ .../src/ogrid_manager.cpp | 34 +++++++++------ .../src/pcodar_controller.cpp | 42 +++++++++++++++++++ .../src/persistent_cloud_filter.cpp | 6 +++ .../src/point_cloud_builder.cpp | 5 +++ 15 files changed, 111 insertions(+), 17 deletions(-) diff --git a/NaviGator/mission_control/navigator_launch/launch/shore/xbox_controller.launch b/NaviGator/mission_control/navigator_launch/launch/shore/xbox_controller.launch index 66239600b..4a2383a00 100644 --- a/NaviGator/mission_control/navigator_launch/launch/shore/xbox_controller.launch +++ b/NaviGator/mission_control/navigator_launch/launch/shore/xbox_controller.launch @@ -3,7 +3,7 @@ - + diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 86d90750b..98f24593d 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -46,7 +46,7 @@ def __init__(self, *args, **kwargs): # "/wamv/sensors/cameras/front_left_camera/image_raw", Image # ) self.image_sub = self.nh.subscribe( - "/wamv/sensors/cameras/front_left_camera/image_raw", + "/wamv/sensors/camera/front_left_cam/image_raw", Image, ) self.cam_frame = None @@ -54,7 +54,7 @@ def __init__(self, *args, **kwargs): # "/wamv/sensors/cameras/front_left_camera/camera_info", CameraInfo # ) self.image_info_sub = self.nh.subscribe( - "/wamv/sensors/cameras/front_left_camera/camera_info", + "/wamv/sensors/camera/front_left_cam/camera_info", CameraInfo, ) self.model = PinholeCameraModel() @@ -75,10 +75,15 @@ async def shutdown(cls): await cls.image_info_sub.shutdown() async def run(self, args): + rospy.logerr("RUN START") await self.ogrid_sub.setup() + rospy.logerr("OGRID DONE") await self.image_sub.setup() + rospy.logerr("IMAGE DONE") await self.image_info_sub.setup() + rospy.logerr("INFO DONE") await self.pcodar_save.wait_for_service() + rospy.logerr("PCODAR DONE") self.bridge = CvBridge() msg = await self.image_info_sub.get_next_message() diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/CMakeLists.txt b/mil_common/perception/point_cloud_object_detection_and_recognition/CMakeLists.txt index fc2306573..3bae3e2e2 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/CMakeLists.txt +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/CMakeLists.txt @@ -1,6 +1,6 @@ set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) -cmake_minimum_required(VERSION 3.0.2) +cmake_minimum_required(VERSION 2.8.3) project(point_cloud_object_detection_and_recognition) find_package(catkin REQUIRED COMPONENTS diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/object_associator.hpp b/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/object_associator.hpp index 4d009602d..238b73544 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/object_associator.hpp +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/object_associator.hpp @@ -19,6 +19,7 @@ class Associator public: /// Update the dynamic reconfigure parameters associated with this class void update_config(Config const& config); + void get_config(Config& config); /// Associate old objects with newly identified clusters. @prev_objects is updated + appended in place for new /// associations void associate(ObjectMap& prev_objects, point_cloud const& pc, clusters_t clusters); diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/object_detector.hpp b/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/object_detector.hpp index 3a9c127b2..29f94dd15 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/object_detector.hpp +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/object_detector.hpp @@ -18,6 +18,7 @@ class ObjectDetector clusters_t get_clusters(point_cloud_const_ptr pc); /// Update the dynamic reconfigure parameters associated with this class void update_config(Config const& config); + void get_config(Config& config); private: pcl::EuclideanClusterExtraction cluster_extractor_; diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/ogrid_manager.hpp b/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/ogrid_manager.hpp index 1a4ef4a3f..35d93126f 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/ogrid_manager.hpp +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/ogrid_manager.hpp @@ -23,6 +23,7 @@ class OgridManager void update_ogrid(ObjectMap const& objects); void draw_boundary(); void update_config(Config const& config); + void get_config(Config& config); void set_bounds(point_cloud_ptr pc); private: diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/pcodar_controller.hpp b/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/pcodar_controller.hpp index 9cb685617..630767d4c 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/pcodar_controller.hpp +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/pcodar_controller.hpp @@ -24,6 +24,7 @@ #include "pcodar_types.hpp" #include "persistent_cloud_filter.hpp" #include "point_cloud_builder.hpp" +#include "std_srvs/SetBool.h" namespace pcodar { @@ -47,6 +48,7 @@ class NodeBase bool DBQuery_cb(mil_msgs::ObjectDBQuery::Request& req, mil_msgs::ObjectDBQuery::Response& res); /// Reset PCODAR virtual bool Reset(std_srvs::Trigger::Request& req, std_srvs::Trigger::Response& res); + /// Transform bool transform_to_global(std::string const& frame, ros::Time const& time, Eigen::Affine3d& out, ros::Duration timeout = ros::Duration(1, 0)); @@ -54,6 +56,8 @@ class NodeBase bool transform_point_cloud(const sensor_msgs::PointCloud2& pcloud2, point_cloud& out); virtual bool bounds_update_cb(const mil_bounds::BoundsConfig& config); virtual void ConfigCallback(Config const& config, uint32_t level); + virtual void save_config(); + virtual void restore_config(); public: std::shared_ptr objects_; @@ -79,6 +83,8 @@ class NodeBase // Visualization MarkerManager marker_manager_; OgridManager ogrid_manager_; + + Config saved_config_; }; class Node : public NodeBase @@ -91,16 +97,20 @@ class Node : public NodeBase void initialize() override; private: + void save_config() override; + void restore_config() override; bool bounds_update_cb(const mil_bounds::BoundsConfig& config) override; void ConfigCallback(Config const& config, uint32_t level) override; /// Reset PCODAR bool Reset(std_srvs::Trigger::Request& req, std_srvs::Trigger::Response& res) override; + bool StoreParameters(std_srvs::SetBool::Request& req, std_srvs::SetBool::Response& res); private: ros::Publisher pub_pcl_; // Subscriber ros::Subscriber pc_sub; + ros::ServiceServer store_parameters_service_; // Model (It eventually will be object tracker, but for now just detections) InputCloudFilter input_cloud_filter_; diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/persistent_cloud_filter.hpp b/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/persistent_cloud_filter.hpp index bb4425510..6bf1a30c5 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/persistent_cloud_filter.hpp +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/persistent_cloud_filter.hpp @@ -13,6 +13,7 @@ class PersistentCloudFilter PersistentCloudFilter(); void filter(point_cloud_const_ptr in, point_cloud& pc); void update_config(Config const& config); + void get_config(Config& config); private: pcl::RadiusOutlierRemoval outlier_filter_; diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/point_cloud_builder.hpp b/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/point_cloud_builder.hpp index e3cb97ee5..190cf62d9 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/point_cloud_builder.hpp +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/include/point_cloud_object_detection_and_recognition/point_cloud_builder.hpp @@ -26,6 +26,8 @@ class PointCloudCircularBuffer /// Clear buffer void clear(); + void get_config(Config& config); + private: /// Accumulated pointcloud kept up to date with each call to add_point_cloud point_cloud_ptr mega_cloud_; diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/src/object_associator.cpp b/mil_common/perception/point_cloud_object_detection_and_recognition/src/object_associator.cpp index d506d6553..d30c512cd 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/src/object_associator.cpp +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/src/object_associator.cpp @@ -80,4 +80,10 @@ void Associator::update_config(Config const& config) forget_unseen_ = config.associator_forget_unseen; } +void Associator::get_config(Config& config) +{ + config.associator_max_distance = max_distance_; + config.associator_forget_unseen = forget_unseen_; +} + } // namespace pcodar diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/src/object_detector.cpp b/mil_common/perception/point_cloud_object_detection_and_recognition/src/object_detector.cpp index 86832c064..169ec50f5 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/src/object_detector.cpp +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/src/object_detector.cpp @@ -27,4 +27,10 @@ void ObjectDetector::update_config(Config const& config) cluster_extractor_.setMinClusterSize(config.cluster_min_points); } +void ObjectDetector::get_config(Config& config) +{ + config.cluster_tolerance_m = cluster_extractor_.getClusterTolerance(); + config.cluster_min_points = cluster_extractor_.getMinClusterSize(); +} + } // namespace pcodar diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/src/ogrid_manager.cpp b/mil_common/perception/point_cloud_object_detection_and_recognition/src/ogrid_manager.cpp index b921ae016..eb191ccb9 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/src/ogrid_manager.cpp +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/src/ogrid_manager.cpp @@ -16,21 +16,21 @@ void OgridManager::initialize(ros::NodeHandle& nh) void OgridManager::draw_boundary() { - std::vector bounds(bounds_->size()); - for (int i = 0; i < bounds.size(); ++i) - { - bounds[i] = point_in_ogrid(bounds_->points[i]); - } + /* + std::vectorbounds(pcodar::boundary.size()); + for(int i = 0; i < bounds.size(); ++i) { + bounds[i] = point_in_ogrid(bounds[i]); + } - for (int i = 0; i < bounds.size(); ++i) - { - // std::cout << bounds[i] << std::endl; - cv::circle(ogrid_mat_, bounds[i], 15, cv::Scalar(99), -1); - } - const cv::Point* pts = (const cv::Point*)cv::Mat(bounds).data; - int npts = cv::Mat(bounds).rows; + for(int i = 0; i < bounds.size(); ++i) { + // std::cout << bounds[i] << std::endl; + cv::circle(ogrid_mat_, bounds[i], 15, cv::Scalar(99), -1); + } + const cv::Point *pts = (const cv::Point*) cv::Mat(bounds).data; + int npts = cv::Mat(bounds).rows; - cv::polylines(ogrid_mat_, &pts, &npts, 1, true, cv::Scalar(99), 5); + cv::polylines(ogrid_mat_, &pts, &npts, 1, true, cv::Scalar(99), 5); + */ } void OgridManager::set_bounds(point_cloud_ptr pc) @@ -110,4 +110,12 @@ void OgridManager::update_config(Config const& config) ogrid_mat_ = cv::Mat(cv::Size(ogrid_.info.width, ogrid_.info.height), CV_8UC1, ogrid_.data.data()); } +void OgridManager::get_config(Config& config) +{ + config.ogrid_width_meters = width_meters_; + config.ogrid_height_meters = height_meters_; + config.ogrid_resolution_meters_per_cell = resolution_meters_per_cell_; + config.ogrid_inflation_meters = inflation_cells_ * resolution_meters_per_cell_; +} + } // namespace pcodar diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/src/pcodar_controller.cpp b/mil_common/perception/point_cloud_object_detection_and_recognition/src/pcodar_controller.cpp index 06fdeabdb..f17bad289 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/src/pcodar_controller.cpp +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/src/pcodar_controller.cpp @@ -93,6 +93,16 @@ bool NodeBase::Reset(std_srvs::Trigger::Request& req, std_srvs::Trigger::Respons return true; } +void NodeBase::save_config() +{ + ogrid_manager_.get_config(saved_config_); +} + +void NodeBase::restore_config() +{ + ogrid_manager_.update_config(saved_config_); +} + bool NodeBase::transform_point_cloud(const sensor_msgs::PointCloud2& pc_msg, point_cloud& out) { Eigen::Affine3d transform; @@ -127,6 +137,37 @@ Node::Node(ros::NodeHandle _nh) : NodeBase(_nh) input_cloud_filter_.set_robot_footprint(min, max); } +void Node::save_config() +{ + NodeBase::save_config(); + persistent_cloud_builder_.get_config(saved_config_); + persistent_cloud_filter_.get_config(saved_config_); + detector_.get_config(saved_config_); + ass.get_config(saved_config_); +} + +void Node::restore_config() +{ + NodeBase::restore_config(); + persistent_cloud_builder_.update_config(saved_config_); + persistent_cloud_filter_.update_config(saved_config_); + detector_.update_config(saved_config_); + ass.update_config(saved_config_); +} + +bool Node::StoreParameters(std_srvs::SetBool::Request& req, std_srvs::SetBool::Response& res) +{ + if (req.data) + { + save_config(); + } + else + { + restore_config(); + } + return true; +} + void Node::ConfigCallback(Config const& config, uint32_t level) { NodeBase::ConfigCallback(config, level); @@ -149,6 +190,7 @@ void Node::initialize() // Publish occupancy grid and visualization markers pub_pcl_ = nh_.advertise("persist_pcl", 1); + store_parameters_service_ = nh_.advertiseService("save", &Node::StoreParameters, this); } bool Node::Reset(std_srvs::Trigger::Request& req, std_srvs::Trigger::Response& res) diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/src/persistent_cloud_filter.cpp b/mil_common/perception/point_cloud_object_detection_and_recognition/src/persistent_cloud_filter.cpp index 0a75b0b2b..35a77fcb2 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/src/persistent_cloud_filter.cpp +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/src/persistent_cloud_filter.cpp @@ -23,4 +23,10 @@ void PersistentCloudFilter::update_config(Config const& config) outlier_filter_.setMinNeighborsInRadius(config.persistant_cloud_filter_min_neighbors); } +void PersistentCloudFilter::get_config(Config& config) +{ + config.persistant_cloud_filter_radius = outlier_filter_.getRadiusSearch(); + config.persistant_cloud_filter_min_neighbors = outlier_filter_.getMinNeighborsInRadius(); +} + } // namespace pcodar diff --git a/mil_common/perception/point_cloud_object_detection_and_recognition/src/point_cloud_builder.cpp b/mil_common/perception/point_cloud_object_detection_and_recognition/src/point_cloud_builder.cpp index d69caddc3..4513b3a39 100644 --- a/mil_common/perception/point_cloud_object_detection_and_recognition/src/point_cloud_builder.cpp +++ b/mil_common/perception/point_cloud_object_detection_and_recognition/src/point_cloud_builder.cpp @@ -34,6 +34,11 @@ void PointCloudCircularBuffer::update_config(Config const& config) prev_clouds_.set_capacity(config.accumulator_number_persistant_clouds); } +void PointCloudCircularBuffer::get_config(Config& config) +{ + config.accumulator_number_persistant_clouds = prev_clouds_.capacity(); +} + point_cloud_ptr PointCloudCircularBuffer::get_point_cloud() { return mega_cloud_; From fb27d8ab9a0babb8244e028c39355fd480679286 Mon Sep 17 00:00:00 2001 From: andrew-aj Date: Thu, 12 Sep 2024 14:38:45 -0400 Subject: [PATCH 05/30] fixed poi --- .../mission_control/navigator_launch/config/poi_sim.yaml | 2 +- .../navigator_missions/navigator_missions/docking.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/NaviGator/mission_control/navigator_launch/config/poi_sim.yaml b/NaviGator/mission_control/navigator_launch/config/poi_sim.yaml index 273c9c99d..ed5e17fb9 100644 --- a/NaviGator/mission_control/navigator_launch/config/poi_sim.yaml +++ b/NaviGator/mission_control/navigator_launch/config/poi_sim.yaml @@ -2,7 +2,7 @@ global_frame: enu initial_pois: circle_totems: [26.09821319580078, 59.91523361206055, 0.0] - dock: [108.05, -1.07, 0.0] + dock: [-27, 64, 0.0] entrance_gate: [51.28, -48.69, 0.0] obstacle_course: [-32.803, -83.41, 0.0] ring_challenge: [61.271873474121094, 15.894840240478516, 0.0] diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 98f24593d..5f5a1d0b0 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -102,13 +102,13 @@ async def run(self, args): pcodar_cluster_tol.value = 10 await self.pcodar_set_params(doubles=[pcodar_cluster_tol]) rospy.logerr("HERE3") - await self.nh.sleep(5) # Get the POI (point of interest) from the config file and move to it # This is a predetermined position of the general location for the dock pos = await self.poi.get("dock") rospy.logerr("HERE4") - await self.move.look_at(pos).set_position(pos).go() + pos = pos[0] + await self.move.set_position(pos).look_at(pos).go() # Decrease cluster tolerance as we approach dock since lidar points are more dense # This helps scenario where stc buoy is really close to dock From 84a8ab3ff9ad0f931301ca5104ab8ab881ea5f12 Mon Sep 17 00:00:00 2001 From: andrew-aj Date: Fri, 13 Sep 2024 15:24:25 -0400 Subject: [PATCH 06/30] fixed docking so it now moves --- .../navigator_missions/navigator_missions/docking.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 5f5a1d0b0..b53624457 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -62,10 +62,11 @@ def __init__(self, *args, **kwargs): self.intup = lambda arr: tuple(np.array(arr, dtype=np.int64)) self.last_image = None + self.contour_pub = self.nh.advertise("/contour_pub", Image) + @classmethod async def init(cls): - cls.contour_pub = cls.nh.advertise("/contour_pub", Image) - await cls.contour_pub.setup() + pass @classmethod async def shutdown(cls): @@ -75,6 +76,7 @@ async def shutdown(cls): await cls.image_info_sub.shutdown() async def run(self, args): + await self.contour_pub.setup() rospy.logerr("RUN START") await self.ogrid_sub.setup() rospy.logerr("OGRID DONE") @@ -85,6 +87,8 @@ async def run(self, args): await self.pcodar_save.wait_for_service() rospy.logerr("PCODAR DONE") + await self.change_wrench("autonomous") + self.bridge = CvBridge() msg = await self.image_info_sub.get_next_message() self.model.fromCameraInfo(msg) @@ -147,8 +151,8 @@ async def run(self, args): centers = centers[centers[:, 1].argsort()][::-1] # crop the images to get bbox and find color - images = await self.crop_images(clusters) - self.find_color(images, 1) + # images = await self.crop_images(clusters) + # self.find_color(images, 1) # temporary code that just moves boat to center of leftmost cluster left = copy.deepcopy(centers[0]) From 06fa82eac17bd3e42736175828b8911cc180d19f Mon Sep 17 00:00:00 2001 From: josht8601 Date: Fri, 13 Sep 2024 16:10:20 -0400 Subject: [PATCH 07/30] Doing some debug printinh --- .../navigator_missions/navigator_missions/docking.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index b53624457..a0faf3268 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -151,8 +151,8 @@ async def run(self, args): centers = centers[centers[:, 1].argsort()][::-1] # crop the images to get bbox and find color - # images = await self.crop_images(clusters) - # self.find_color(images, 1) + images = await self.crop_images(clusters) + self.find_color(images, centers) # temporary code that just moves boat to center of leftmost cluster left = copy.deepcopy(centers[0]) @@ -435,7 +435,10 @@ async def crop_images(self, clusters): self.contour_pub.publish(msg) return list - def find_color(self, images, color): + def find_color(self, images, centers): + print("Centers") + print(centers) + for img in images: img = img.astype("uint8") ret3, th3 = cv2.threshold(img, 0, 255, cv2.THRESH_OTSU) From 8af7791b678eca094edd95174bdde2f4b872f7b6 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sun, 15 Sep 2024 15:44:08 -0400 Subject: [PATCH 08/30] adding methods for square detection --- .../dock_color_detection.py | 55 ++++++++++--------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/NaviGator/perception/navigator_vision/nodes/dock_color_detection/dock_color_detection.py b/NaviGator/perception/navigator_vision/nodes/dock_color_detection/dock_color_detection.py index 26bbaa567..dc0dec4bc 100644 --- a/NaviGator/perception/navigator_vision/nodes/dock_color_detection/dock_color_detection.py +++ b/NaviGator/perception/navigator_vision/nodes/dock_color_detection/dock_color_detection.py @@ -1,37 +1,42 @@ import cv2 as cv import numpy as np -image = cv.imread('./test_images/dock_blue1.jpg') -gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) +def find_center_pixel(image_path): + image = cv.imread(image_path) -# Apply Gaussian blur to the image -blurred = cv.GaussianBlur(gray, (5, 5), 0) + gray_image = cv.cvtColor(image, cv.COLOR_RGB2GRAY) -# Use Canny edge detection -edges = cv.Canny(blurred, 50, 150) + median = cv.medianBlur(gray_image, 5) -# Find contours in the edged image -contours, _ = cv.findContours(edges, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE) + kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]]) -# Loop over the contours -for contour in contours: - # Approximate the contour to a polygon - epsilon = 0.02 * cv.arcLength(contour, True) - approx = cv.approxPolyDP(contour, epsilon, True) + sharpened_image = cv.filter2D(median, -1, kernel) - # If the approximated contour has 4 vertices, it's a square (or rectangle) - if len(approx) == 4: - x, y, w, h = cv.boundingRect(approx) + _, binary = cv.threshold(sharpened_image, 0, 255, cv.THRESH_BINARY + cv.THRESH_OTSU) - # Calculate the aspect ratio - aspect_ratio = float(w) / h + kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 5)) + morphed = cv.morphologyEx(binary, cv.MORPH_CLOSE, kernel) + morphed = cv.morphologyEx(morphed, cv.MORPH_OPEN, kernel) - # Check if the aspect ratio is close to 1 (square) - if 0.95 <= aspect_ratio <= 1.05: - cv.drawContours(image, [approx], -1, (0, 255, 0), 2) + cv.imshow("Morphed", morphed) + cv.waitKey(0) + cv.destroyAllWindows() -# Display the result -cv.imshow("Squares Detected", image) -cv.waitKey(0) -cv.destroyAllWindows() \ No newline at end of file + +def red_blue_or_green(pixel): + red, green, blue = pixel + + max_color = max(red, green, blue) + + if max_color == red: + return "red" + elif max_color == green: + return "green" + elif max_color == blue: + return "blue" + else: + return "unknown" + + +find_center_pixel("./test_images/dock_red1.jpg") From 16c3e232d8b3c8a81e63724a702f356bb0a15691 Mon Sep 17 00:00:00 2001 From: willzoo Date: Thu, 19 Sep 2024 20:47:08 -0400 Subject: [PATCH 09/30] Added rudimentary implementation of find_color(). Successfully determines dock color sometimes. --- .../navigator_missions/docking.py | 126 +++++++++++++++--- 1 file changed, 110 insertions(+), 16 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index b53624457..eef96d9e1 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -421,6 +421,10 @@ async def crop_images(self, clusters): ) list = [left, middle, right] + rospy.logerr(f"Left image shape: {left.shape}") + rospy.logerr(f"Middle image shape: {middle.shape}") + rospy.logerr(f"Right image shape: {right.shape}") + h_min = min(a.shape[0] for a in list) resized = [ cv2.resize( @@ -428,30 +432,120 @@ async def crop_images(self, clusters): (int(im.shape[1] * h_min / im.shape[0]), h_min), interpolation=cv2.INTER_CUBIC, ) - for im in list + for im in list if im.size > 0 # Occasionally size is 0, causes errors ] concat = cv2.hconcat(resized) msg = self.bridge.cv2_to_imgmsg(concat, encoding="rgb8") self.contour_pub.publish(msg) + return list - def find_color(self, images, color): + def find_color(self, images, color): + # NOTE: An OpenCV window will open, close it to progress + # Current iteration of find color works by looking through images, + # then cropping images to the gray backboard (crop_images() does not always crop), + # then it looks at a vertical line at the center of the image and averages the + # non-gray values, returning Red Green Blue or Other. + # Function does not always work, because the source image is weirdly cropped + # or missing sometimes. for img in images: - img = img.astype("uint8") - ret3, th3 = cv2.threshold(img, 0, 255, cv2.THRESH_OTSU) - img = cv2.cvtColor(th3, cv2.COLOR_GRAY2RGB) - # edges = cv2.Canny(img, 100, 200) - # contours, _ = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) - # img = cv2.cvtColor(edges, cv2.COLOR_GRAY2RGB) - # largestContour = (0, None) - # for contour in contours: - # area = cv2.contourArea(contour) - # if area > largestContour[0]: - # largestContour = (area, contour) - # cv2.drawContours(img, contours, -1, (0, 255, 0), 3) - msg = self.bridge.cv2_to_imgmsg(img, encoding="rgb8") + # Check if the image is empty before processing + if img is None or img.size == 0: + rospy.logerr("Error: Find color received image with 0 size, skipping") + continue + + # Convert from BGR to RGB + img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + + # Split RGB channels + R, G, B = cv2.split(img_rgb) + + # Thresholds for detecting gray + diff_threshold = 20 # Maximum difference allowed between R, G, and B + gray_lower = 80 # Lower bound for gray intensity + gray_upper = 200 # Upper bound for gray intensity + + # Create a mask to find the gray board + mask = ( + (abs(R - G) < diff_threshold) & + (abs(R - B) < diff_threshold) & + (abs(G - B) < diff_threshold) & + (R >= gray_lower) & (R <= gray_upper) & # Apply threshold for gray intensity + (G >= gray_lower) & (G <= gray_upper) & + (B >= gray_lower) & (B <= gray_upper) + ).astype("uint8") * 255 # Convert the mask to a binary format (0 or 255) + # cv2.imshow('Gray Detection Mask', mask) # Shows the mask + + dock_color = (0,0,0) # Default value for color of dock + + # Find contours of gray regions (the gray board) + contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + if contours: + # Largest contour is gray board + largest_contour = max(contours, key=cv2.contourArea) + x, y, w, h = cv2.boundingRect(largest_contour) + + # Uncomment to draw a rectangle around the detected gray board, show in openCV + # cv2.rectangle(img_rgb, (x, y), (x + w, y + h), (0, 255, 0), 2) + # cv2.imshow('Gray Board Detection', img_rgb) + + # Crops Image around Gray Board + cropped_img = img_rgb[y:y+h, x:x+w] + cv2.imshow('CLOSE WINDOW TO UNBLOCK', cropped_img) + + # Now we find the color of the dock using the vertical centerline + # Iterate over the vertical centerline from top to bottom + center_x = cropped_img.shape[1] // 2 + total_red = 0 + total_green = 0 + total_blue = 0 + num_pixels = 0 # Number of nongray pixels at center + for center_y in range(cropped_img.shape[0]): + current_color = cropped_img[center_y, center_x] # Get RGB value at center + current_color = current_color.astype(np.int32) # Turns int8 colors into int32 to prevent overflow + # Check if the color is gray + if not ( + abs(current_color[2] - current_color[1]) < diff_threshold and + abs(current_color[2] - current_color[0]) < diff_threshold and + abs(current_color[1] - current_color[0]) < diff_threshold and + gray_lower <= current_color[0] <= gray_upper and + gray_lower <= current_color[1] <= gray_upper and + gray_lower <= current_color[2] <= gray_upper + ): + # If the color is not gray, add it to the total color + total_red += current_color[0] + total_green += current_color[1] + total_blue += current_color[2] + num_pixels += 1 + # Color at center is average of non gray pixels + dock_color = (total_red/num_pixels, total_green/num_pixels, total_blue/num_pixels) + + else: + # If no gray detected + rospy.logerr("Error: No dock detected in find_color()") + + # Max ratio allowed between main color and other 2 values + color_ratio = 0.9 + # Log the color (even after converting to RGB they still need to be BGR for this somehow) + if dock_color[0] > color_ratio*(dock_color[1] + dock_color[2]): + rospy.logerr("Detected color: Blue") + elif dock_color[1] > color_ratio*(dock_color[0] + dock_color[2]): + rospy.logerr("Detected color: Green") + elif dock_color[2] > color_ratio*(dock_color[0] + dock_color[1]): + rospy.logerr("Detected color: Red") + else: + rospy.logerr(f"Detected color: RGB{dock_color}") + + # Publish the image + msg = self.bridge.cv2_to_imgmsg(img_rgb, encoding="rgb8") self.contour_pub.publish(msg) - + + # Loop until the OpenCV window is closed + while cv2.getWindowProperty('CLOSE WINDOW TO UNBLOCK', cv2.WND_PROP_VISIBLE) >= 1: + if cv2.waitKey(1) != -1: # Pressing any key will also not close window + break + cv2.destroyAllWindows() + def get_ogrid_coords(self, arr): return self.intup(self.ogrid_cpm * (np.asarray(arr) - self.ogrid_origin))[:2] From c91e7c2bea8bccf7da3b51142becfb833b380864 Mon Sep 17 00:00:00 2001 From: Keith Khadar Date: Fri, 20 Sep 2024 13:13:01 -0400 Subject: [PATCH 10/30] Added way to check for a color and move to it --- .../navigator_missions/docking.py | 123 ++++++++++++------ SubjuGator/drivers/vectornav | 2 +- mil_common/axros | 2 +- mil_common/perception/vision_stack | 2 +- ptk.txt | 11 ++ 5 files changed, 96 insertions(+), 44 deletions(-) create mode 100644 ptk.txt diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 66fa45492..9899fe52d 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -151,14 +151,14 @@ async def run(self, args): centers = centers[centers[:, 1].argsort()][::-1] # crop the images to get bbox and find color - images = await self.crop_images(clusters) - self.find_color(images, centers) + images = await self.crop_images(clusters, centers) + + # Temp goal color until we can get the actual color that we want to dock to + goal_color = "Red" + correct_dock_number = self.find_color(images, goal_color) # temporary code that just moves boat to center of leftmost cluster - left = copy.deepcopy(centers[0]) - rospy.logerr(centers[0]) - rospy.logerr(centers[1]) - rospy.logerr(centers[2]) + left = copy.deepcopy(centers[correct_dock_number]) # calculate center of cluster and move towards it but at an offset distance left[0] = 0 @@ -396,9 +396,12 @@ def get_cluster_corners(self, cluster): ], ) - async def crop_images(self, clusters): + async def crop_images(self, clusters, centers): image = await self.image_sub.get_next_message() image = self.bridge.imgmsg_to_cv2(image) + cv2.imshow("Initial image", image) + cv2.waitKey(0) + cv2.destroyAllWindows() boat_to_cam = await self.tf_listener.get_transform( self.cam_frame, "wamv/base_link", @@ -432,7 +435,8 @@ async def crop_images(self, clusters): (int(im.shape[1] * h_min / im.shape[0]), h_min), interpolation=cv2.INTER_CUBIC, ) - for im in list if im.size > 0 # Occasionally size is 0, causes errors + for im in list + if im.size > 0 # Occasionally size is 0, causes errors ] concat = cv2.hconcat(resized) msg = self.bridge.cv2_to_imgmsg(concat, encoding="rgb8") @@ -440,15 +444,17 @@ async def crop_images(self, clusters): return list - def find_color(self, images, centers): + def find_color(self, images, goal_color): # NOTE: An OpenCV window will open, close it to progress - # Current iteration of find color works by looking through images, + # Current iteration of find color works by looking through images, # then cropping images to the gray backboard (crop_images() does not always crop), - # then it looks at a vertical line at the center of the image and averages the + # then it looks at a vertical line at the center of the image and averages the # non-gray values, returning Red Green Blue or Other. # Function does not always work, because the source image is weirdly cropped # or missing sometimes. + count = 0 + for img in images: # Check if the image is empty before processing if img is None or img.size == 0: @@ -461,26 +467,35 @@ def find_color(self, images, centers): # Split RGB channels R, G, B = cv2.split(img_rgb) - # Thresholds for detecting gray + # Thresholds for detecting gray diff_threshold = 20 # Maximum difference allowed between R, G, and B gray_lower = 80 # Lower bound for gray intensity gray_upper = 200 # Upper bound for gray intensity # Create a mask to find the gray board mask = ( - (abs(R - G) < diff_threshold) & - (abs(R - B) < diff_threshold) & - (abs(G - B) < diff_threshold) & - (R >= gray_lower) & (R <= gray_upper) & # Apply threshold for gray intensity - (G >= gray_lower) & (G <= gray_upper) & - (B >= gray_lower) & (B <= gray_upper) - ).astype("uint8") * 255 # Convert the mask to a binary format (0 or 255) + (abs(R - G) < diff_threshold) + & (abs(R - B) < diff_threshold) + & (abs(G - B) < diff_threshold) + & (gray_lower <= R) + & (gray_upper >= R) # Apply threshold for gray intensity + & (gray_lower <= G) + & (gray_upper >= G) + & (gray_lower <= B) + & (gray_upper >= B) + ).astype( + "uint8", + ) * 255 # Convert the mask to a binary format (0 or 255) # cv2.imshow('Gray Detection Mask', mask) # Shows the mask - dock_color = (0,0,0) # Default value for color of dock + dock_color = (0, 0, 0) # Default value for color of dock # Find contours of gray regions (the gray board) - contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + contours, _ = cv2.findContours( + mask, + cv2.RETR_EXTERNAL, + cv2.CHAIN_APPROX_SIMPLE, + ) if contours: # Largest contour is gray board largest_contour = max(contours, key=cv2.contourArea) @@ -491,8 +506,8 @@ def find_color(self, images, centers): # cv2.imshow('Gray Board Detection', img_rgb) # Crops Image around Gray Board - cropped_img = img_rgb[y:y+h, x:x+w] - cv2.imshow('CLOSE WINDOW TO UNBLOCK', cropped_img) + cropped_img = img_rgb[y : y + h, x : x + w] + cv2.imshow("CLOSE WINDOW TO UNBLOCK", cropped_img) # Now we find the color of the dock using the vertical centerline # Iterate over the vertical centerline from top to bottom @@ -500,26 +515,35 @@ def find_color(self, images, centers): total_red = 0 total_green = 0 total_blue = 0 - num_pixels = 0 # Number of nongray pixels at center + num_pixels = 0 # Number of nongray pixels at center for center_y in range(cropped_img.shape[0]): - current_color = cropped_img[center_y, center_x] # Get RGB value at center - current_color = current_color.astype(np.int32) # Turns int8 colors into int32 to prevent overflow + current_color = cropped_img[ + center_y, + center_x, + ] # Get RGB value at center + current_color = current_color.astype( + np.int32, + ) # Turns int8 colors into int32 to prevent overflow # Check if the color is gray if not ( - abs(current_color[2] - current_color[1]) < diff_threshold and - abs(current_color[2] - current_color[0]) < diff_threshold and - abs(current_color[1] - current_color[0]) < diff_threshold and - gray_lower <= current_color[0] <= gray_upper and - gray_lower <= current_color[1] <= gray_upper and - gray_lower <= current_color[2] <= gray_upper + abs(current_color[2] - current_color[1]) < diff_threshold + and abs(current_color[2] - current_color[0]) < diff_threshold + and abs(current_color[1] - current_color[0]) < diff_threshold + and gray_lower <= current_color[0] <= gray_upper + and gray_lower <= current_color[1] <= gray_upper + and gray_lower <= current_color[2] <= gray_upper ): # If the color is not gray, add it to the total color total_red += current_color[0] - total_green += current_color[1] - total_blue += current_color[2] + total_green += current_color[1] + total_blue += current_color[2] num_pixels += 1 # Color at center is average of non gray pixels - dock_color = (total_red/num_pixels, total_green/num_pixels, total_blue/num_pixels) + dock_color = ( + total_red / num_pixels, + total_green / num_pixels, + total_blue / num_pixels, + ) else: # If no gray detected @@ -528,25 +552,42 @@ def find_color(self, images, centers): # Max ratio allowed between main color and other 2 values color_ratio = 0.9 # Log the color (even after converting to RGB they still need to be BGR for this somehow) - if dock_color[0] > color_ratio*(dock_color[1] + dock_color[2]): + if ( + dock_color[0] > color_ratio * (dock_color[1] + dock_color[2]) + and goal_color == "Blue" + ): rospy.logerr("Detected color: Blue") - elif dock_color[1] > color_ratio*(dock_color[0] + dock_color[2]): + return count + elif ( + dock_color[1] > color_ratio * (dock_color[0] + dock_color[2]) + and goal_color == "Green" + ): rospy.logerr("Detected color: Green") - elif dock_color[2] > color_ratio*(dock_color[0] + dock_color[1]): + return count + elif ( + dock_color[2] > color_ratio * (dock_color[0] + dock_color[1]) + and goal_color == "Red" + ): rospy.logerr("Detected color: Red") + return count else: rospy.logerr(f"Detected color: RGB{dock_color}") # Publish the image msg = self.bridge.cv2_to_imgmsg(img_rgb, encoding="rgb8") self.contour_pub.publish(msg) - + # Loop until the OpenCV window is closed - while cv2.getWindowProperty('CLOSE WINDOW TO UNBLOCK', cv2.WND_PROP_VISIBLE) >= 1: + while ( + cv2.getWindowProperty("CLOSE WINDOW TO UNBLOCK", cv2.WND_PROP_VISIBLE) + >= 1 + ): if cv2.waitKey(1) != -1: # Pressing any key will also not close window break cv2.destroyAllWindows() - + + count += 1 + def get_ogrid_coords(self, arr): return self.intup(self.ogrid_cpm * (np.asarray(arr) - self.ogrid_origin))[:2] diff --git a/SubjuGator/drivers/vectornav b/SubjuGator/drivers/vectornav index 1bf953def..b907c18b2 160000 --- a/SubjuGator/drivers/vectornav +++ b/SubjuGator/drivers/vectornav @@ -1 +1 @@ -Subproject commit 1bf953defad87b7373e318b3858614f5a8bdaf70 +Subproject commit b907c18b2c43da64ad8fb089e3001b25640b7a39 diff --git a/mil_common/axros b/mil_common/axros index a86842c93..edf86ec28 160000 --- a/mil_common/axros +++ b/mil_common/axros @@ -1 +1 @@ -Subproject commit a86842c93370a62c0dad3fba0e6ef250137edf21 +Subproject commit edf86ec28f8be8f0659827fc924ef3fb46884331 diff --git a/mil_common/perception/vision_stack b/mil_common/perception/vision_stack index c0465411b..f0b44298b 160000 --- a/mil_common/perception/vision_stack +++ b/mil_common/perception/vision_stack @@ -1 +1 @@ -Subproject commit c0465411b257a947b06c7be07e8a36b270956d6d +Subproject commit f0b44298b6019978725dcb7e51ded59ecb81deea diff --git a/ptk.txt b/ptk.txt new file mode 100644 index 000000000..0b416f542 --- /dev/null +++ b/ptk.txt @@ -0,0 +1,11 @@ +806818 +806854 +810408 +813798 +819075 +822941 +833759 +833795 +840277 +846192 +846230 From c80ae23d6f5580be4831b2d80dca798c41819f72 Mon Sep 17 00:00:00 2001 From: willzoo Date: Tue, 24 Sep 2024 22:17:46 -0400 Subject: [PATCH 11/30] Getting cluster from lidar now loops for user input (temporary solution). Press e if the image-lidar transformation is correct to move on to find_color() --- .../navigator_missions/docking.py | 303 ++++++++++-------- 1 file changed, 167 insertions(+), 136 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 9899fe52d..f2c0aa567 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -128,46 +128,69 @@ async def run(self, args): # retry calculation to make sure we really found the open side await self.move_to_correct_side() - # get the dock object from the database - dock, pos = await self.get_sorted_objects(name="dock", n=1) - - # dock is PerceptionObject - position, rotation, dock = self.get_dock_data(dock) - - # get LIDAR points - points = rosmsg_to_numpy(dock.points) - - # get transform from enu to boat space - enu_to_boat = await self.tf_listener.get_transform("wamv/base_link", "enu") - corrected = np.empty(points.shape) - - # convert LIDAR points from enu to boat space - for i in range(points.shape[0]): - corrected[i] = enu_to_boat.transform_point(points[i]) - - # get the centers and clusters that represent the backside of the dock - centers, clusters = self.get_cluster_centers(corrected) - - centers = centers[centers[:, 1].argsort()][::-1] - - # crop the images to get bbox and find color - images = await self.crop_images(clusters, centers) + # The LIDAR to camera mapping is very unreliable, so we loop until it is correct + while True: + # get the dock object from the database + dock, pos = await self.get_sorted_objects(name="dock", n=1) + + # dock is PerceptionObject + position, rotation, dock = self.get_dock_data(dock) + + # get LIDAR points + points = rosmsg_to_numpy(dock.points) + + # get transform from enu to boat space + enu_to_boat = await self.tf_listener.get_transform("wamv/base_link", "enu") + corrected = np.empty(points.shape) + + # convert LIDAR points from enu to boat space + for i in range(points.shape[0]): + corrected[i] = enu_to_boat.transform_point(points[i]) + + # get the centers and clusters that represent the backside of the dock + centers, clusters = self.get_cluster_centers(corrected) + + # Sort both the centers and the clusters by y coordinate + sorted_indices = centers[:, 1].argsort()[::-1] + centers = centers[sorted_indices] + clusters = [clusters[i] for i in sorted_indices] + + # crop the images to get bbox and find color + images = await self.crop_images(clusters, centers) + + # preferred height (x) for cropped image: 170-180 + # preferred width (y) for cropped image: 130-150 + + # When 'e' key is pressed, the current set of images will be chosen and move forward + # When another key is pressed, we try again + if images[0].size > 0: + cv2.imshow('Image 0 (press e if all images are correct) ', cv2.cvtColor(images[0], cv2.COLOR_BGR2RGB)) + if images[1].size > 0: + cv2.imshow('Image 1 (press e if all images are correct) ', cv2.cvtColor(images[1], cv2.COLOR_BGR2RGB)) + if images[2].size > 0: + cv2.imshow('Image 2 (press e if all images are correct) ', cv2.cvtColor(images[2], cv2.COLOR_BGR2RGB)) + key = cv2.waitKey(0) & 0xFF + if key == ord('e'): + cv2.destroyAllWindows() + break + cv2.destroyAllWindows() # Close the image window before re-looping # Temp goal color until we can get the actual color that we want to dock to goal_color = "Red" correct_dock_number = self.find_color(images, goal_color) + rospy.logerr(f"Here is the correct dock number: {correct_dock_number}") - # temporary code that just moves boat to center of leftmost cluster + # temporary code that just moves boat to center of cluster with whatever color was specified left = copy.deepcopy(centers[correct_dock_number]) # calculate center of cluster and move towards it but at an offset distance left[0] = 0 - forward = copy.deepcopy(centers[0]) + forward = copy.deepcopy(centers[correct_dock_number]) forward[0] = forward[0] - 5 boat_to_enu = await self.tf_listener.get_transform("enu", "wamv/base_link") - centers[0] = boat_to_enu.transform_point(left) + centers[correct_dock_number] = boat_to_enu.transform_point(left) nextPt = boat_to_enu.transform_point(forward) - await self.move.set_position(centers[0]).go(blind=True, move_type="skid") + await self.move.set_position(centers[correct_dock_number]).go(blind=True, move_type="skid") await self.move.set_position(nextPt).go(blind=True, move_type="skid") await self.pcodar_save(SetBoolRequest(False)) @@ -370,10 +393,11 @@ def compute_sse(data, centroids, assigned_centroids): return np.asarray(means), cluster_members def crop_image(self, pts, transform, img): + rospy.logerr("The points for cropping before are", pts) pts = [self.model.project3dToPixel(transform.transform_point(a)) for a in pts] pts = np.array([[int(a[0]), int(a[1])] for a in pts], dtype=np.int32) pts = np.int32([pts]) - rospy.logerr(pts) + rospy.logerr("The points for cropping are", pts) mask = np.zeros((img.shape[0], img.shape[1]), dtype=np.uint8) cv2.fillPoly(mask, pts, (255)) res = cv2.bitwise_and(img, img, mask=mask) @@ -398,15 +422,16 @@ def get_cluster_corners(self, cluster): async def crop_images(self, clusters, centers): image = await self.image_sub.get_next_message() - image = self.bridge.imgmsg_to_cv2(image) - cv2.imshow("Initial image", image) - cv2.waitKey(0) - cv2.destroyAllWindows() + image = self.bridge.imgmsg_to_cv2(image) + # cv2.imshow("Initial image", image) Not needed boat_to_cam = await self.tf_listener.get_transform( self.cam_frame, "wamv/base_link", ) - + rospy.logerr('Cluster 0: ', clusters[0]) + rospy.logerr('Cluster 1: ', clusters[1]) + rospy.logerr('Cluster 2: ', clusters[2]) + left = self.crop_image( self.get_cluster_corners(clusters[0]), boat_to_cam, @@ -429,18 +454,24 @@ async def crop_images(self, clusters, centers): rospy.logerr(f"Right image shape: {right.shape}") h_min = min(a.shape[0] for a in list) - resized = [ - cv2.resize( - im, - (int(im.shape[1] * h_min / im.shape[0]), h_min), - interpolation=cv2.INTER_CUBIC, - ) - for im in list - if im.size > 0 # Occasionally size is 0, causes errors - ] - concat = cv2.hconcat(resized) - msg = self.bridge.cv2_to_imgmsg(concat, encoding="rgb8") - self.contour_pub.publish(msg) + counter = 0 + # Skip resize, its broken + # resized = [] + # for im in list: + # if im.size > 0: # Occasionally size is 0, causes errors + # resized = [ + # cv2.resize( + # im, + # (int(im.shape[1] * h_min / im.shape[0]), h_min), + # interpolation=cv2.INTER_CUBIC, + # ) + # ] + # else: + # print(f"Error: Image {counter} has size 0") + # counter += 1 + # concat = cv2.hconcat(resized) + # msg = self.bridge.cv2_to_imgmsg(concat, encoding="rgb8") + # self.contour_pub.publish(msg) return list @@ -462,93 +493,92 @@ def find_color(self, images, goal_color): continue # Convert from BGR to RGB - img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) - - # Split RGB channels - R, G, B = cv2.split(img_rgb) - - # Thresholds for detecting gray - diff_threshold = 20 # Maximum difference allowed between R, G, and B - gray_lower = 80 # Lower bound for gray intensity - gray_upper = 200 # Upper bound for gray intensity - - # Create a mask to find the gray board - mask = ( - (abs(R - G) < diff_threshold) - & (abs(R - B) < diff_threshold) - & (abs(G - B) < diff_threshold) - & (gray_lower <= R) - & (gray_upper >= R) # Apply threshold for gray intensity - & (gray_lower <= G) - & (gray_upper >= G) - & (gray_lower <= B) - & (gray_upper >= B) - ).astype( - "uint8", - ) * 255 # Convert the mask to a binary format (0 or 255) - # cv2.imshow('Gray Detection Mask', mask) # Shows the mask - - dock_color = (0, 0, 0) # Default value for color of dock - - # Find contours of gray regions (the gray board) - contours, _ = cv2.findContours( - mask, - cv2.RETR_EXTERNAL, - cv2.CHAIN_APPROX_SIMPLE, - ) - if contours: - # Largest contour is gray board - largest_contour = max(contours, key=cv2.contourArea) - x, y, w, h = cv2.boundingRect(largest_contour) - - # Uncomment to draw a rectangle around the detected gray board, show in openCV - # cv2.rectangle(img_rgb, (x, y), (x + w, y + h), (0, 255, 0), 2) - # cv2.imshow('Gray Board Detection', img_rgb) - - # Crops Image around Gray Board - cropped_img = img_rgb[y : y + h, x : x + w] - cv2.imshow("CLOSE WINDOW TO UNBLOCK", cropped_img) - - # Now we find the color of the dock using the vertical centerline - # Iterate over the vertical centerline from top to bottom - center_x = cropped_img.shape[1] // 2 - total_red = 0 - total_green = 0 - total_blue = 0 - num_pixels = 0 # Number of nongray pixels at center - for center_y in range(cropped_img.shape[0]): - current_color = cropped_img[ - center_y, - center_x, - ] # Get RGB value at center - current_color = current_color.astype( - np.int32, - ) # Turns int8 colors into int32 to prevent overflow - # Check if the color is gray - if not ( - abs(current_color[2] - current_color[1]) < diff_threshold - and abs(current_color[2] - current_color[0]) < diff_threshold - and abs(current_color[1] - current_color[0]) < diff_threshold - and gray_lower <= current_color[0] <= gray_upper - and gray_lower <= current_color[1] <= gray_upper - and gray_lower <= current_color[2] <= gray_upper - ): - # If the color is not gray, add it to the total color - total_red += current_color[0] - total_green += current_color[1] - total_blue += current_color[2] - num_pixels += 1 - # Color at center is average of non gray pixels + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + + + + # This code was used to detect the gray dock board and mask everything else out + # But it is not very useful, because there is a gray building in the background + # # Split RGB channels + # R, G, B = cv2.split(img_rgb) + # # Thresholds for detecting gray + # diff_threshold = 20 # Maximum difference allowed between R, G, and B + # gray_lower = 80 # Lower bound for gray intensity + # gray_upper = 200 # Upper bound for gray intensity + + # # Create a mask to find the gray board + # mask = ( + # (abs(R - G) < diff_threshold) + # & (abs(R - B) < diff_threshold) + # & (abs(G - B) < diff_threshold) + # & (gray_lower <= R) + # & (gray_upper >= R) # Apply threshold for gray intensity + # & (gray_lower <= G) + # & (gray_upper >= G) + # & (gray_lower <= B) + # & (gray_upper >= B) + # ).astype( + # "uint8", + # ) * 255 # Convert the mask to a binary format (0 or 255) + + # dock_color = (0, 0, 0) # Default value for color of dock + + # # Find contours of gray regions (the gray board) + # contours, _ = cv2.findContours( + # mask, + # cv2.RETR_EXTERNAL, + # cv2.CHAIN_APPROX_SIMPLE, + # ) + # if contours: + # # Largest contour is gray board + # largest_contour = max(contours, key=cv2.contourArea) + # x, y, w, h = cv2.boundingRect(largest_contour) + + # # Uncomment to draw a rectangle around the detected gray board, show in openCV + # # cv2.rectangle(img_rgb, (x, y), (x + w, y + h), (0, 255, 0), 2) + # # cv2.imshow('Gray Board Detection', img_rgb) + + # # Crops Image around Gray Board + # cropped_img = img_rgb[y : y + h, x : x + w] + # cv2.imshow(f"{count}", cropped_img) + + # Now we find the color of the dock using the vertical centerline + # Iterate over the vertical centerline from top to bottom + cropped_img = img + center_x = cropped_img.shape[1] // 2 + total_red = 0 + total_green = 0 + total_blue = 0 + num_pixels = 0 # Number of nongray pixels at center + for center_y in range(cropped_img.shape[0]): + current_color = cropped_img[ + center_y, + center_x, + ] # Get RGB value at center + current_color = current_color.astype( + np.int32, + ) # Turns int8 colors into int32 to prevent overflow + # Check if the color is weighted towards R G or B + if ( + current_color[2] > current_color[0] + current_color[1] + or current_color[1] > current_color[0] + current_color[2] + or current_color[0] > current_color[1] + current_color[2] + ): + # If the color is not gray, add it to the total color + total_red += current_color[0] + total_green += current_color[1] + total_blue += current_color[2] + num_pixels += 1 + # Color at center is average of non gray pixels + if num_pixels == 0: # Check if any colors found + dock_color = (0,0,0) + else: dock_color = ( total_red / num_pixels, total_green / num_pixels, total_blue / num_pixels, ) - else: - # If no gray detected - rospy.logerr("Error: No dock detected in find_color()") - # Max ratio allowed between main color and other 2 values color_ratio = 0.9 # Log the color (even after converting to RGB they still need to be BGR for this somehow) @@ -556,6 +586,9 @@ def find_color(self, images, goal_color): dock_color[0] > color_ratio * (dock_color[1] + dock_color[2]) and goal_color == "Blue" ): + cv2.imshow('Blue Dock Detected', cropped_img) + cv2.waitKey(0) + cv2.destroyAllWindows() rospy.logerr("Detected color: Blue") return count elif ( @@ -568,23 +601,21 @@ def find_color(self, images, goal_color): dock_color[2] > color_ratio * (dock_color[0] + dock_color[1]) and goal_color == "Red" ): + cv2.imshow('Red Dock Detected', cropped_img) + cv2.waitKey(0) + cv2.destroyAllWindows() rospy.logerr("Detected color: Red") return count else: rospy.logerr(f"Detected color: RGB{dock_color}") # Publish the image - msg = self.bridge.cv2_to_imgmsg(img_rgb, encoding="rgb8") + msg = self.bridge.cv2_to_imgmsg(img, encoding="rgb8") self.contour_pub.publish(msg) - # Loop until the OpenCV window is closed - while ( - cv2.getWindowProperty("CLOSE WINDOW TO UNBLOCK", cv2.WND_PROP_VISIBLE) - >= 1 - ): - if cv2.waitKey(1) != -1: # Pressing any key will also not close window - break - cv2.destroyAllWindows() + # Press key to destroy OpenCV window + # cv2.waitKey(0) + # cv2.destroyAllWindows() count += 1 From 8b9062865123c2cbd2ba1c7991c112c1b59eb1b8 Mon Sep 17 00:00:00 2001 From: D-G Singla Date: Wed, 25 Sep 2024 19:37:14 -0400 Subject: [PATCH 12/30] Repeatedly gets LIDAR points for docking bays until a correct image shape is found with a one color majority in each picture --- .../navigator_missions/docking.py | 47 +++++++++++++++++-- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index f2c0aa567..5917c647f 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -128,6 +128,10 @@ async def run(self, args): # retry calculation to make sure we really found the open side await self.move_to_correct_side() + # Temp goal color until we can get the actual color that we want to dock to + goal_color = "Red" + correct_dock_number = -1 + # The LIDAR to camera mapping is very unreliable, so we loop until it is correct while True: # get the dock object from the database @@ -175,9 +179,12 @@ async def run(self, args): break cv2.destroyAllWindows() # Close the image window before re-looping - # Temp goal color until we can get the actual color that we want to dock to - goal_color = "Red" - correct_dock_number = self.find_color(images, goal_color) + # If the images are correct, then break. We need to check if the height ranges from 170-180 and width ranges from 130-150 + if images[0].shape[0] in range(170, 181) and images[0].shape[1] in range(130, 151) and images[1].shape[0] in range(170, 181) and images[1].shape[1] in range(130, 151) and images[2].shape[0] in range(170, 181) and images[2].shape[1] in range(130, 151): + correct_dock_number = self.find_color(images, goal_color) + if correct_dock_number != -1: + break + rospy.logerr(f"Here is the correct dock number: {correct_dock_number}") # temporary code that just moves boat to center of cluster with whatever color was specified @@ -486,6 +493,9 @@ def find_color(self, images, goal_color): count = 0 + # set a tolerance value for if we find two colors in the same image + color_tolerance = 0.1 + for img in images: # Check if the image is empty before processing if img is None or img.size == 0: @@ -550,6 +560,12 @@ def find_color(self, images, goal_color): total_green = 0 total_blue = 0 num_pixels = 0 # Number of nongray pixels at center + + # Also get the number of pixels for each color + green_pixels = 0 + red_pixels = 0 + blue_pixels = 0 + for center_y in range(cropped_img.shape[0]): current_color = cropped_img[ center_y, @@ -569,6 +585,15 @@ def find_color(self, images, goal_color): total_green += current_color[1] total_blue += current_color[2] num_pixels += 1 + + # Count the number of pixels that are weighted towards R G or B + if current_color[0] > current_color[1] + current_color[2]: + red_pixels += 1 + elif current_color[1] > current_color[0] + current_color[2]: + green_pixels += 1 + elif current_color[2] > current_color[0] + current_color[1]: + blue_pixels += 1 + # Color at center is average of non gray pixels if num_pixels == 0: # Check if any colors found dock_color = (0,0,0) @@ -579,6 +604,22 @@ def find_color(self, images, goal_color): total_blue / num_pixels, ) + # Get the ratios of each color + red_ratio = red_pixels / num_pixels if num_pixels > 0 else 0 + green_ratio = green_pixels / num_pixels if num_pixels > 0 else 0 + blue_ratio = blue_pixels / num_pixels if num_pixels > 0 else 0 + + # Now check if we find two colors outside of the tolerance by checking if there is an outright majority of one color + if ( + abs(red_ratio - green_ratio) > color_tolerance + or abs(red_ratio - blue_ratio) > color_tolerance + or abs(green_ratio - blue_ratio) > color_tolerance + ): + rospy.logerr( + f"Error: Found two colors in image {count} with ratios: R: {red_ratio}, G: {green_ratio}, B: {blue_ratio}") + # We return -1 signaling that this failed + return -1 + # Max ratio allowed between main color and other 2 values color_ratio = 0.9 # Log the color (even after converting to RGB they still need to be BGR for this somehow) From 3957654bf0273e899d7e81d334fd27770d6f4233 Mon Sep 17 00:00:00 2001 From: willzoo Date: Wed, 25 Sep 2024 21:46:44 -0400 Subject: [PATCH 13/30] Now it autonomously finds the color of the dock, and moves to the dock with the matching color. However, the boat sits there for ~30 seconds trying to get a correct LIDAR to Image mapping. --- .../navigator_missions/docking.py | 64 +++++++++++-------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 5917c647f..d96a65337 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -165,22 +165,23 @@ async def run(self, args): # preferred height (x) for cropped image: 170-180 # preferred width (y) for cropped image: 130-150 + # OLD USER BASED METHOD OF FINDING DOCK COLOR # When 'e' key is pressed, the current set of images will be chosen and move forward # When another key is pressed, we try again - if images[0].size > 0: - cv2.imshow('Image 0 (press e if all images are correct) ', cv2.cvtColor(images[0], cv2.COLOR_BGR2RGB)) - if images[1].size > 0: - cv2.imshow('Image 1 (press e if all images are correct) ', cv2.cvtColor(images[1], cv2.COLOR_BGR2RGB)) - if images[2].size > 0: - cv2.imshow('Image 2 (press e if all images are correct) ', cv2.cvtColor(images[2], cv2.COLOR_BGR2RGB)) - key = cv2.waitKey(0) & 0xFF - if key == ord('e'): - cv2.destroyAllWindows() - break - cv2.destroyAllWindows() # Close the image window before re-looping + # if images[0].size > 0: + # cv2.imshow('Image 0 (press e if all images are correct) ', cv2.cvtColor(images[0], cv2.COLOR_BGR2RGB)) + # if images[1].size > 0: + # cv2.imshow('Image 1 (press e if all images are correct) ', cv2.cvtColor(images[1], cv2.COLOR_BGR2RGB)) + # if images[2].size > 0: + # cv2.imshow('Image 2 (press e if all images are correct) ', cv2.cvtColor(images[2], cv2.COLOR_BGR2RGB)) + # key = cv2.waitKey(0) & 0xFF + # if key == ord('e'): + # cv2.destroyAllWindows() + # break + # cv2.destroyAllWindows() # Close the image window before re-looping # If the images are correct, then break. We need to check if the height ranges from 170-180 and width ranges from 130-150 - if images[0].shape[0] in range(170, 181) and images[0].shape[1] in range(130, 151) and images[1].shape[0] in range(170, 181) and images[1].shape[1] in range(130, 151) and images[2].shape[0] in range(170, 181) and images[2].shape[1] in range(130, 151): + if images[0].shape[0] in range(90, 191) and images[0].shape[1] in range(101, 180) and images[1].shape[0] in range(90, 191) and images[1].shape[1] in range(101, 180) and images[2].shape[0] in range(90, 191) and images[2].shape[1] in range(101, 180): correct_dock_number = self.find_color(images, goal_color) if correct_dock_number != -1: break @@ -610,16 +611,23 @@ def find_color(self, images, goal_color): blue_ratio = blue_pixels / num_pixels if num_pixels > 0 else 0 # Now check if we find two colors outside of the tolerance by checking if there is an outright majority of one color - if ( - abs(red_ratio - green_ratio) > color_tolerance - or abs(red_ratio - blue_ratio) > color_tolerance - or abs(green_ratio - blue_ratio) > color_tolerance - ): - rospy.logerr( - f"Error: Found two colors in image {count} with ratios: R: {red_ratio}, G: {green_ratio}, B: {blue_ratio}") - # We return -1 signaling that this failed - return -1 - + if(count != 0): # PLEASE REMOVE THIS OUTER IF DURING ACTUAL TESTING, THIS IS TO SKIP THE YELLOW DOCK + if (not ( + (red_ratio - green_ratio > color_tolerance + and red_ratio - blue_ratio > color_tolerance) + or + (green_ratio - blue_ratio > color_tolerance + and green_ratio - red_ratio > color_tolerance) + or + (blue_ratio - green_ratio > color_tolerance + and blue_ratio - red_ratio > color_tolerance) + ) + ): + rospy.logerr( + f"Error: Found two colors in image {count} with ratios: R: {red_ratio}, G: {green_ratio}, B: {blue_ratio}") + # We return -1 signaling that this failed + return -1 + # Max ratio allowed between main color and other 2 values color_ratio = 0.9 # Log the color (even after converting to RGB they still need to be BGR for this somehow) @@ -627,9 +635,9 @@ def find_color(self, images, goal_color): dock_color[0] > color_ratio * (dock_color[1] + dock_color[2]) and goal_color == "Blue" ): - cv2.imshow('Blue Dock Detected', cropped_img) - cv2.waitKey(0) - cv2.destroyAllWindows() + # cv2.imshow('Blue Dock Detected', cropped_img) + # cv2.waitKey(0) + # cv2.destroyAllWindows() rospy.logerr("Detected color: Blue") return count elif ( @@ -642,9 +650,9 @@ def find_color(self, images, goal_color): dock_color[2] > color_ratio * (dock_color[0] + dock_color[1]) and goal_color == "Red" ): - cv2.imshow('Red Dock Detected', cropped_img) - cv2.waitKey(0) - cv2.destroyAllWindows() + # cv2.imshow('Red Dock Detected', cropped_img) + # cv2.waitKey(0) + # cv2.destroyAllWindows() rospy.logerr("Detected color: Red") return count else: From eade72007a65f51925a540653122729a74ee89cb Mon Sep 17 00:00:00 2001 From: D-G Singla Date: Tue, 8 Oct 2024 16:32:14 -0400 Subject: [PATCH 14/30] Added basic square detection after finding colors and docking. Still needs some improvement in the event that it cannot find exactly three squares. --- .../navigator_missions/docking.py | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index d96a65337..528bf70c5 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -202,6 +202,10 @@ async def run(self, args): await self.move.set_position(nextPt).go(blind=True, move_type="skid") await self.pcodar_save(SetBoolRequest(False)) + # Shoot rackquet ball projectile + if correct_dock_number != -1 and correct_dock_number is not None: + await self.shoot_projectile(images[correct_dock_number]) + await self.contour_pub.shutdown() await self.ogrid_sub.shutdown() await self.image_sub.shutdown() @@ -482,6 +486,51 @@ async def crop_images(self, clusters, centers): # self.contour_pub.publish(msg) return list + + async def shoot_projectile(self, img): + gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) + + # Apply Gaussian blur to the image + blurred = cv.GaussianBlur(gray, (5, 5), 0) + + # Use Canny edge detection + edges = cv.Canny(blurred, 50, 150) + + # Find contours in the edged image + contours, _ = cv.findContours(edges, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE) + + # Count to keep track of number of squares + square_count = 0 + + # Loop over the contours + for contour in contours: + # Approximate the contour to a polygon + epsilon = 0.02 * cv.arcLength(contour, True) + approx = cv.approxPolyDP(contour, epsilon, True) + + # If the approximated contour has 4 vertices, it's a square (or rectangle) + if len(approx) == 4: + x, y, w, h = cv.boundingRect(approx) + + # Calculate the aspect ratio + aspect_ratio = float(w) / h + + # Check if the aspect ratio is close to 1 (square) + if 0.95 <= aspect_ratio <= 1.05: + cv.drawContours(image, [approx], -1, (0, 255, 0), 2) + square_count += 1 + + # If three squares are not found (color and two holes) then bad + if square_count != 3: + rospy.logerr("Error: Incorrect number of squares detected") + return + + # Display the result + cv.imshow("Squares Detected", image) + cv.waitKey(0) + cv.destroyAllWindows() + + # ADD SHOOTING MECHANICS HERE def find_color(self, images, goal_color): # NOTE: An OpenCV window will open, close it to progress From cabac6fe462d76fa04f694b82452613d7b229a62 Mon Sep 17 00:00:00 2001 From: willzoo Date: Wed, 9 Oct 2024 17:50:49 -0400 Subject: [PATCH 15/30] Fixed errors in shoot projectile funciton (call location, and cv to cv2 rename) --- .../navigator_missions/docking.py | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 528bf70c5..deaeaf7c2 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -200,11 +200,11 @@ async def run(self, args): nextPt = boat_to_enu.transform_point(forward) await self.move.set_position(centers[correct_dock_number]).go(blind=True, move_type="skid") await self.move.set_position(nextPt).go(blind=True, move_type="skid") - await self.pcodar_save(SetBoolRequest(False)) - - # Shoot rackquet ball projectile + # Shoot racquet ball projectile + rospy.logerr("- BEFORE SHOOT PROJ -") if correct_dock_number != -1 and correct_dock_number is not None: await self.shoot_projectile(images[correct_dock_number]) + await self.pcodar_save(SetBoolRequest(False)) await self.contour_pub.shutdown() await self.ogrid_sub.shutdown() @@ -488,16 +488,17 @@ async def crop_images(self, clusters, centers): return list async def shoot_projectile(self, img): - gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) + rospy.logerr("- SHOOT PROJ REACHED -") + gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Apply Gaussian blur to the image - blurred = cv.GaussianBlur(gray, (5, 5), 0) + blurred = cv2.GaussianBlur(gray, (5, 5), 0) # Use Canny edge detection - edges = cv.Canny(blurred, 50, 150) + edges = cv2.Canny(blurred, 50, 150) # Find contours in the edged image - contours, _ = cv.findContours(edges, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE) + contours, _ = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) # Count to keep track of number of squares square_count = 0 @@ -505,19 +506,19 @@ async def shoot_projectile(self, img): # Loop over the contours for contour in contours: # Approximate the contour to a polygon - epsilon = 0.02 * cv.arcLength(contour, True) - approx = cv.approxPolyDP(contour, epsilon, True) + epsilon = 0.02 * cv2.arcLength(contour, True) + approx = cv2.approxPolyDP(contour, epsilon, True) # If the approximated contour has 4 vertices, it's a square (or rectangle) if len(approx) == 4: - x, y, w, h = cv.boundingRect(approx) + x, y, w, h = cv2.boundingRect(approx) # Calculate the aspect ratio aspect_ratio = float(w) / h # Check if the aspect ratio is close to 1 (square) if 0.95 <= aspect_ratio <= 1.05: - cv.drawContours(image, [approx], -1, (0, 255, 0), 2) + cv2.drawContours(img, [approx], -1, (0, 255, 0), 2) square_count += 1 # If three squares are not found (color and two holes) then bad @@ -526,9 +527,9 @@ async def shoot_projectile(self, img): return # Display the result - cv.imshow("Squares Detected", image) - cv.waitKey(0) - cv.destroyAllWindows() + cv2.imshow("Squares Detected", img) + cv2.waitKey(0) + cv2.destroyAllWindows() # ADD SHOOTING MECHANICS HERE From 03473126e7d92daeea1c683801d88701680298d3 Mon Sep 17 00:00:00 2001 From: anthonyliao Date: Fri, 11 Oct 2024 17:54:01 -0400 Subject: [PATCH 16/30] Added vision pipeline file and section for it to go in docking.py --- .../navigator_missions/docking.py | 11 +- NaviGator/navigator.rviz | 127 ++++++++++-------- .../navigator_vision/__init__.py | 1 + .../navigator_vision/dockdeliver_pipeline.py | 105 +++++++++++++++ .../nodes/dockdeliver_pipeline.py | 105 +++++++++++++++ 5 files changed, 290 insertions(+), 59 deletions(-) create mode 100644 NaviGator/perception/navigator_vision/navigator_vision/dockdeliver_pipeline.py create mode 100644 NaviGator/perception/navigator_vision/nodes/dockdeliver_pipeline.py diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index deaeaf7c2..5e501a0fb 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -17,6 +17,7 @@ from tf.transformations import quaternion_matrix from .navigator import NaviGatorMission +from navigator_vision import GripPipeline PANNEL_MAX = 0 PANNEL_MIN = 2 @@ -86,7 +87,8 @@ async def run(self, args): rospy.logerr("INFO DONE") await self.pcodar_save.wait_for_service() rospy.logerr("PCODAR DONE") - + + self.grip = GripPipeline() await self.change_wrench("autonomous") self.bridge = CvBridge() @@ -200,6 +202,13 @@ async def run(self, args): nextPt = boat_to_enu.transform_point(forward) await self.move.set_position(centers[correct_dock_number]).go(blind=True, move_type="skid") await self.move.set_position(nextPt).go(blind=True, move_type="skid") + + # Align with hole -> work in progress, see navigator_vision/dockdeliver_pipeline.py in navigator vision + #image = await self.image_sub.get_next_message() + #image = self.bridge.imgmsg_to_cv2(image) + #self.grip.process(image) + + # Shoot racquet ball projectile rospy.logerr("- BEFORE SHOOT PROJ -") if correct_dock_number != -1 and correct_dock_number is not None: diff --git a/NaviGator/navigator.rviz b/NaviGator/navigator.rviz index 401204deb..bd2713369 100644 --- a/NaviGator/navigator.rviz +++ b/NaviGator/navigator.rviz @@ -26,7 +26,6 @@ Panels: Name: Views Splitter Ratio: 0.5 - Class: rviz/Time - Experimental: false Name: Time SyncMode: 0 SyncSource: Lidar @@ -61,61 +60,71 @@ Visualization Manager: Enabled: true Links: All Links Enabled: true - Expand Joint Details: false - Expand Link Details: false - Expand Tree: false - Link Tree Style: Links in Alphabetic Order - velodyne_link: + BL_engine_link: Alpha: 1 Show Axes: false Show Trail: false Value: true - velodyne_post_arm_link: + BL_propeller_link: Alpha: 1 Show Axes: false Show Trail: false Value: true - velodyne_post_link: + BR_engine_link: Alpha: 1 Show Axes: false Show Trail: false Value: true - wamv/BL_engine_link: + BR_propeller_link: Alpha: 1 Show Axes: false Show Trail: false Value: true - wamv/BL_propeller_link: + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + FL_engine_link: Alpha: 1 Show Axes: false Show Trail: false Value: true - wamv/BR_engine_link: + FL_propeller_link: Alpha: 1 Show Axes: false Show Trail: false Value: true - wamv/BR_propeller_link: + FR_engine_link: Alpha: 1 Show Axes: false Show Trail: false Value: true - wamv/FL_engine_link: + FR_propeller_link: Alpha: 1 Show Axes: false Show Trail: false Value: true - wamv/FL_propeller_link: + Link Tree Style: Links in Alphabetic Order + velodyne: Alpha: 1 Show Axes: false Show Trail: false Value: true - wamv/FR_engine_link: + velodyne_post_arm_link: Alpha: 1 Show Axes: false Show Trail: false Value: true - wamv/FR_propeller_link: + velodyne_post_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wamv/ball_shooter_base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wamv/ball_shooter_launcher_link: Alpha: 1 Show Axes: false Show Trail: false @@ -167,24 +176,21 @@ Visualization Manager: Show Axes: false Show Trail: false Value: true - wamv/gps_wamv_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true wamv/hydrophones: Alpha: 1 Show Axes: false Show Trail: false + Value: true wamv/imu_wamv_link: Alpha: 1 Show Axes: false Show Trail: false Value: true - wamv/measurement: + wamv/ins_link: Alpha: 1 Show Axes: false Show Trail: false + Value: true Name: RobotModel Robot Description: robot_description TF Prefix: "" @@ -208,34 +214,40 @@ Visualization Manager: Value: false - Class: rviz/TF Enabled: true + Filter (blacklist): "" + Filter (whitelist): "" Frame Timeout: 15 Frames: All Enabled: false - enu: + BL_engine_link: Value: true - utm: + BL_propeller_link: Value: true - velodyne_link: + BR_engine_link: Value: true - velodyne_post_arm_link: + BR_propeller_link: Value: true - velodyne_post_link: + FL_engine_link: + Value: true + FL_propeller_link: Value: true - wamv/BL_engine_link: + FR_engine_link: Value: true - wamv/BL_propeller_link: + FR_propeller_link: Value: true - wamv/BR_engine_link: + enu: + Value: true + utm: Value: true - wamv/BR_propeller_link: + velodyne: Value: true - wamv/FL_engine_link: + velodyne_post_arm_link: Value: true - wamv/FL_propeller_link: + velodyne_post_link: Value: true - wamv/FR_engine_link: + wamv/ball_shooter_base_link: Value: true - wamv/FR_propeller_link: + wamv/ball_shooter_launcher_link: Value: true wamv/base_link: Value: true @@ -257,13 +269,11 @@ Visualization Manager: Value: true wamv/front_right_cam_post_link: Value: true - wamv/gps_wamv_link: - Value: true wamv/hydrophones: Value: true wamv/imu_wamv_link: Value: true - wamv/measurement: + wamv/ins_link: Value: true Marker Alpha: 1 Marker Scale: 1 @@ -276,21 +286,24 @@ Visualization Manager: utm: {} wamv/base_link: - velodyne_post_link: - velodyne_post_arm_link: - velodyne_link: - {} - wamv/BL_engine_link: - wamv/BL_propeller_link: + BL_engine_link: + BL_propeller_link: {} - wamv/BR_engine_link: - wamv/BR_propeller_link: + BR_engine_link: + BR_propeller_link: {} - wamv/FL_engine_link: - wamv/FL_propeller_link: + FL_engine_link: + FL_propeller_link: {} - wamv/FR_engine_link: - wamv/FR_propeller_link: + FR_engine_link: + FR_propeller_link: + {} + velodyne_post_link: + velodyne_post_arm_link: + velodyne: + {} + wamv/ball_shooter_base_link: + wamv/ball_shooter_launcher_link: {} wamv/dummy_link: {} @@ -304,13 +317,11 @@ Visualization Manager: wamv/front_right_cam_link: wamv/front_right_cam_link_optical: {} - wamv/gps_wamv_link: - {} wamv/hydrophones: {} wamv/imu_wamv_link: {} - wamv/measurement: + wamv/ins_link: {} Update Interval: 0 Value: true @@ -529,9 +540,9 @@ Visualization Manager: Value: false Field of View: 0.7853981852531433 Focal Point: - X: -8.08499813079834 - Y: -3.4566752910614014 - Z: 11.338399887084961 + X: -11.992816925048828 + Y: 2.1578445434570312 + Z: 17.758596420288086 Focal Shape Fixed Size: true Focal Shape Size: 0.05000000074505806 Invert Z Axis: false @@ -549,7 +560,7 @@ Window Geometry: Height: 948 Hide Left Dock: false Hide Right Dock: true - QMainWindow State: 000000ff00000000fd0000000400000000000001fe0000031afc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003b000001ab000000c700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0049006d0061006700650100000209000001b20000000000000000fb0000002200460072006f006e00740020004c006500660074002000430061006d00650072006101000001ec000001690000001600ffffff000000010000010f00000363fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d00000363000000a000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d00650100000000000007800000024400fffffffb0000000800540069006d006501000000000000045000000000000000000000057c0000031a00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + QMainWindow State: 000000ff00000000fd0000000400000000000001fe0000031afc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003b000001ab000000c700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0049006d0061006700650100000209000001b20000000000000000fb0000002200460072006f006e00740020004c006500660074002000430061006d00650072006101000001ec000001690000001600ffffff000000010000010f00000363fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d00000363000000a000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d00650100000000000007800000030700fffffffb0000000800540069006d006501000000000000045000000000000000000000057c0000031a00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 Selection: collapsed: false Time: @@ -559,5 +570,5 @@ Window Geometry: Views: collapsed: true Width: 1920 - X: 0 + X: 72 Y: 27 diff --git a/NaviGator/perception/navigator_vision/navigator_vision/__init__.py b/NaviGator/perception/navigator_vision/navigator_vision/__init__.py index 7496dabf3..4e70a368d 100644 --- a/NaviGator/perception/navigator_vision/navigator_vision/__init__.py +++ b/NaviGator/perception/navigator_vision/navigator_vision/__init__.py @@ -1,3 +1,4 @@ from .scan_the_code_classifier import ScanTheCodeClassifier from .vrx_color_classifier import VrxColorClassifier from .vrx_stc_color_classifier import VrxStcColorClassifier +from .dockdeliver_pipeline import GripPipeline diff --git a/NaviGator/perception/navigator_vision/navigator_vision/dockdeliver_pipeline.py b/NaviGator/perception/navigator_vision/navigator_vision/dockdeliver_pipeline.py new file mode 100644 index 000000000..97dccb6b1 --- /dev/null +++ b/NaviGator/perception/navigator_vision/navigator_vision/dockdeliver_pipeline.py @@ -0,0 +1,105 @@ +import cv2 +import numpy +import math +from enum import Enum + +class GripPipeline: + """ + An OpenCV pipeline generated by GRIP. + """ + + def __init__(self): + """initializes all values to presets or None if need to be set + """ + + self.__blur_type = BlurType.Box_Blur + self.__blur_radius = 26.126126126126124 + + self.blur_output = None + + self.__rgb_threshold_input = self.blur_output + self.__rgb_threshold_red = [0.0, 109.04040404040403] + self.__rgb_threshold_green = [64.20863309352518, 148.10606060606062] + self.__rgb_threshold_blue = [119.24460431654676, 255.0] + + self.rgb_threshold_output = None + + self.__find_contours_input = self.rgb_threshold_output + self.__find_contours_external_only = False + + self.find_contours_output = None + + + def process(self, source0): + """ + Runs the pipeline and sets all outputs to new values. + """ + # Step Blur0: + self.__blur_input = source0 + (self.blur_output) = self.__blur(self.__blur_input, self.__blur_type, self.__blur_radius) + + # Step RGB_Threshold0: + self.__rgb_threshold_input = self.blur_output + (self.rgb_threshold_output) = self.__rgb_threshold(self.__rgb_threshold_input, self.__rgb_threshold_red, self.__rgb_threshold_green, self.__rgb_threshold_blue) + + # Step Find_Contours0: + self.__find_contours_input = self.rgb_threshold_output + (self.find_contours_output) = self.__find_contours(self.__find_contours_input, self.__find_contours_external_only) + + + @staticmethod + def __blur(src, type, radius): + """Softens an image using one of several filters. + Args: + src: The source mat (numpy.ndarray). + type: The blurType to perform represented as an int. + radius: The radius for the blur as a float. + Returns: + A numpy.ndarray that has been blurred. + """ + if(type is BlurType.Box_Blur): + ksize = int(2 * round(radius) + 1) + return cv2.blur(src, (ksize, ksize)) + elif(type is BlurType.Gaussian_Blur): + ksize = int(6 * round(radius) + 1) + return cv2.GaussianBlur(src, (ksize, ksize), round(radius)) + elif(type is BlurType.Median_Filter): + ksize = int(2 * round(radius) + 1) + return cv2.medianBlur(src, ksize) + else: + return cv2.bilateralFilter(src, -1, round(radius), round(radius)) + + @staticmethod + def __rgb_threshold(input, red, green, blue): + """Segment an image based on color ranges. + Args: + input: A BGR numpy.ndarray. + red: A list of two numbers the are the min and max red. + green: A list of two numbers the are the min and max green. + blue: A list of two numbers the are the min and max blue. + Returns: + A black and white numpy.ndarray. + """ + out = cv2.cvtColor(input, cv2.COLOR_BGR2RGB) + return cv2.inRange(out, (red[0], green[0], blue[0]), (red[1], green[1], blue[1])) + + @staticmethod + def __find_contours(input, external_only): + """Sets the values of pixels in a binary image to their distance to the nearest black pixel. + Args: + input: A numpy.ndarray. + external_only: A boolean. If true only external contours are found. + Return: + A list of numpy.ndarray where each one represents a contour. + """ + if(external_only): + mode = cv2.RETR_EXTERNAL + else: + mode = cv2.RETR_LIST + method = cv2.CHAIN_APPROX_SIMPLE + im2, contours, hierarchy =cv2.findContours(input, mode=mode, method=method) + return contours + + +BlurType = Enum('BlurType', 'Box_Blur Gaussian_Blur Median_Filter Bilateral_Filter') + diff --git a/NaviGator/perception/navigator_vision/nodes/dockdeliver_pipeline.py b/NaviGator/perception/navigator_vision/nodes/dockdeliver_pipeline.py new file mode 100644 index 000000000..97dccb6b1 --- /dev/null +++ b/NaviGator/perception/navigator_vision/nodes/dockdeliver_pipeline.py @@ -0,0 +1,105 @@ +import cv2 +import numpy +import math +from enum import Enum + +class GripPipeline: + """ + An OpenCV pipeline generated by GRIP. + """ + + def __init__(self): + """initializes all values to presets or None if need to be set + """ + + self.__blur_type = BlurType.Box_Blur + self.__blur_radius = 26.126126126126124 + + self.blur_output = None + + self.__rgb_threshold_input = self.blur_output + self.__rgb_threshold_red = [0.0, 109.04040404040403] + self.__rgb_threshold_green = [64.20863309352518, 148.10606060606062] + self.__rgb_threshold_blue = [119.24460431654676, 255.0] + + self.rgb_threshold_output = None + + self.__find_contours_input = self.rgb_threshold_output + self.__find_contours_external_only = False + + self.find_contours_output = None + + + def process(self, source0): + """ + Runs the pipeline and sets all outputs to new values. + """ + # Step Blur0: + self.__blur_input = source0 + (self.blur_output) = self.__blur(self.__blur_input, self.__blur_type, self.__blur_radius) + + # Step RGB_Threshold0: + self.__rgb_threshold_input = self.blur_output + (self.rgb_threshold_output) = self.__rgb_threshold(self.__rgb_threshold_input, self.__rgb_threshold_red, self.__rgb_threshold_green, self.__rgb_threshold_blue) + + # Step Find_Contours0: + self.__find_contours_input = self.rgb_threshold_output + (self.find_contours_output) = self.__find_contours(self.__find_contours_input, self.__find_contours_external_only) + + + @staticmethod + def __blur(src, type, radius): + """Softens an image using one of several filters. + Args: + src: The source mat (numpy.ndarray). + type: The blurType to perform represented as an int. + radius: The radius for the blur as a float. + Returns: + A numpy.ndarray that has been blurred. + """ + if(type is BlurType.Box_Blur): + ksize = int(2 * round(radius) + 1) + return cv2.blur(src, (ksize, ksize)) + elif(type is BlurType.Gaussian_Blur): + ksize = int(6 * round(radius) + 1) + return cv2.GaussianBlur(src, (ksize, ksize), round(radius)) + elif(type is BlurType.Median_Filter): + ksize = int(2 * round(radius) + 1) + return cv2.medianBlur(src, ksize) + else: + return cv2.bilateralFilter(src, -1, round(radius), round(radius)) + + @staticmethod + def __rgb_threshold(input, red, green, blue): + """Segment an image based on color ranges. + Args: + input: A BGR numpy.ndarray. + red: A list of two numbers the are the min and max red. + green: A list of two numbers the are the min and max green. + blue: A list of two numbers the are the min and max blue. + Returns: + A black and white numpy.ndarray. + """ + out = cv2.cvtColor(input, cv2.COLOR_BGR2RGB) + return cv2.inRange(out, (red[0], green[0], blue[0]), (red[1], green[1], blue[1])) + + @staticmethod + def __find_contours(input, external_only): + """Sets the values of pixels in a binary image to their distance to the nearest black pixel. + Args: + input: A numpy.ndarray. + external_only: A boolean. If true only external contours are found. + Return: + A list of numpy.ndarray where each one represents a contour. + """ + if(external_only): + mode = cv2.RETR_EXTERNAL + else: + mode = cv2.RETR_LIST + method = cv2.CHAIN_APPROX_SIMPLE + im2, contours, hierarchy =cv2.findContours(input, mode=mode, method=method) + return contours + + +BlurType = Enum('BlurType', 'Box_Blur Gaussian_Blur Median_Filter Bilateral_Filter') + From 9cc6ac7bfac2b6d42f33c83823eec082034b8622 Mon Sep 17 00:00:00 2001 From: willzoo Date: Sun, 13 Oct 2024 22:17:25 -0400 Subject: [PATCH 17/30] Cherry pick first commit from 2024-task6-testworld --- .../worlds/scan_dock_fling_2024/default.world | 413 ++++++++++++++++++ ptk.txt | 11 - 2 files changed, 413 insertions(+), 11 deletions(-) create mode 100644 NaviGator/simulation/navigator_gazebo/worlds/scan_dock_fling_2024/default.world delete mode 100644 ptk.txt diff --git a/NaviGator/simulation/navigator_gazebo/worlds/scan_dock_fling_2024/default.world b/NaviGator/simulation/navigator_gazebo/worlds/scan_dock_fling_2024/default.world new file mode 100644 index 000000000..f11160ab5 --- /dev/null +++ b/NaviGator/simulation/navigator_gazebo/worlds/scan_dock_fling_2024/default.world @@ -0,0 +1,413 @@ + + + + + + + EARTH_WGS84 + ENU + -33.724223 + 150.679736 + 0.0 + 0.0 + + + + model://sun + + + + -478.101746 148.200836 13.203143 0.0 0.248344 2.936862 + orbit + + + + + + 0 0 0.2 0 0 0 + model://sydney_regatta + + + + post_0 + -535.916809 154.362869 0.675884 -0.17182 0.030464 -0.005286 + model://post + + + post_1 + -527.48999 153.854782 0.425844 -0.1365 0 0 + model://post + + + post_2 + -544.832825 156.671951 0.499025 -0.162625 0 0 + model://post + + + + -531.063721 147.668579 1.59471 -0.068142 0 -0.1 + model://antenna + + + + ground_station_0 + -540.796448 146.493744 1.671421 -0.00834 0.01824 1.301726 + model://ground_station + + + ground_station_1 + -537.622681 145.827896 1.681931 -0.00603 0.018667 1.301571 + model://ground_station + + + ground_station_2 + -534.550537 144.910400 1.720474 -0.004994 0.020798 1.301492 + model://ground_station + + + + blue_projectile + -545 60 0.03 0 0 0 + model://blue_projectile + + + true + + false + 30 + 1000 1000 + 50 50 + + PMS + 5.0 + 3 + 2.5 + 0.0 + 1.0 0.0 + 0.4 + 2.0 + 0.0 + + 0.0 + + + + + + true + 0.1 + 0.2 + 0.2 + + PMS + 5.0 + 3 + 2.5 + 0.0 + 1.0 0.0 + 0.4 + 2.0 + 0.0 + + 0.0 + + + + + 2.5 2.5 1 + model://ocean_waves/meshes/mesh.dae + + + + + + -1 + + + 0 0 -0.05 0 0 0 + + + + 2.5 2.5 1 + model://ocean_waves/meshes/mesh_below.dae + + + + + + -1 + + + + + + + + wamv + wamv/base_link + .5 .5 .33 + + + 240 + + 0.0 + 0 + 2 + 10 + + 10 + /vrx/debug/wind/speed + /vrx/debug/wind/direction + + + + + 12 + + + 0 + 0 + + +1 1 1 1 + + + + model://dock_2024 + -480 190 0 0 0 1.0 + + + model://robotx_light_buoy + -532 175 0.25 0 0 0 + + + + + true + blue_projectile::link + vrx/dock_2024_placard1_big_hole + 0.6 -0.27 1.33 0 0 0 + + + 0.5 0.5 0.5 + + + + + + true + blue_projectile::link + vrx/dock_2024_placard1_small_hole + -0.6 -0.27 1.33 0 0 0 + + + 0.25 0.5 0.25 + + + + + + true + blue_projectile::link + vrx/dock_2024_placard2_big_hole + 0.6 -0.27 1.33 0 0 0 + + + 0.5 0.5 0.5 + + + + + + true + blue_projectile::link + vrx/dock_2024_placard2_small_hole + -0.6 -0.27 1.33 0 0 0 + + + 0.25 0.5 0.25 + + + + + + true + blue_projectile::link + vrx/dock_2024_placard3_big_hole + 0.6 -0.27 1.33 0 0 0 + + + 0.5 0.5 0.5 + + + + + + true + blue_projectile::link + vrx/dock_2024_placard3_small_hole + -0.6 -0.27 1.33 0 0 0 + + + 0.25 0.5 0.25 + + + + + + + wamv + scan_dock_deliver + 3 + 3 + 300 + + + wamv_external_pivot_joint + + + wamv_external_riser + + + + vrx + scan_dock_deliver/color_sequence + yellow + blue + green + + 15 + 5 + + + bay1 + /vrx/dock_2024/bay_1/contain + /vrx/dock_2024/bay_1_external/contain + /vrx/dock_2024_placard1/symbol + 10.0 + True + red_square + + + bay2 + /vrx/dock_2024/bay_2/contain + /vrx/dock_2024/bay_2_external/contain + /vrx/dock_2024_placard2/symbol + 10.0 + False + blue_square + + + bay3 + /vrx/dock_2024/bay_3/contain + /vrx/dock_2024/bay_3_external/contain + /vrx/dock_2024_placard3/symbol + 10.0 + False + green_square + + + + + + + vrx/dock_2024_placard1_big_hole/contain + 5 + + + vrx/dock_2024_placard1_small_hole/contain + 10 + + + + vrx/dock_2024_placard2_big_hole/contain + 5 + + + vrx/dock_2024_placard2_small_hole/contain + 10 + + + + vrx/dock_2024_placard3_big_hole/contain + 5 + + + vrx/dock_2024_placard3_small_hole/contain + 10 + + + + + + wamv::wamv/base_link + vrx/dock_2024/bay_1 + 0 -4.5 -1.5 0 0 0 + + + 1.5 4 2 + + + + + wamv::wamv/base_link + vrx/dock_2024/bay_1_external + 0 -9.5 -1.5 0 0 0 + + + 5.5 1.5 2 + + + + + + wamv::wamv/base_link + vrx/dock_2024/bay_2 + 0 -4.5 -1.5 0 0 0 + + + 1.5 4 2 + + + + + wamv::wamv/base_link + vrx/dock_2024/bay_2_external + 0 -9.5 -1.5 0 0 0 + + + 5.5 1.5 2 + + + + + + wamv::wamv/base_link + vrx/dock_2024/bay_3 + 0 -4.5 -1.5 0 0 0 + + + 1.5 4 2 + + + + + wamv::wamv/base_link + vrx/dock_2024/bay_3_external + 0 -9.5 -1.5 0 0 0 + + + 5.5 1.5 2 + + + + + diff --git a/ptk.txt b/ptk.txt deleted file mode 100644 index 0b416f542..000000000 --- a/ptk.txt +++ /dev/null @@ -1,11 +0,0 @@ -806818 -806854 -810408 -813798 -819075 -822941 -833759 -833795 -840277 -846192 -846230 From 54d001a9075b0eabcc38ce23d3ccf86b5e390d02 Mon Sep 17 00:00:00 2001 From: Max Vu Laptop Date: Wed, 2 Oct 2024 14:13:09 -0400 Subject: [PATCH 18/30] scan dock fling world name change --- .../navigator_gazebo/worlds/scan_dock_fling_2024/default.world | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NaviGator/simulation/navigator_gazebo/worlds/scan_dock_fling_2024/default.world b/NaviGator/simulation/navigator_gazebo/worlds/scan_dock_fling_2024/default.world index f11160ab5..d4fbde58e 100644 --- a/NaviGator/simulation/navigator_gazebo/worlds/scan_dock_fling_2024/default.world +++ b/NaviGator/simulation/navigator_gazebo/worlds/scan_dock_fling_2024/default.world @@ -1,7 +1,7 @@ - + From af860aa514c72187612241817847b670ca26de0f Mon Sep 17 00:00:00 2001 From: Max Vu Laptop Date: Fri, 4 Oct 2024 15:28:29 -0400 Subject: [PATCH 19/30] pulled my files out of VRX submodule, now moved into navigator_gazebo --- .../models/dock_2024/model.config | 20 + .../models/dock_2024/model.sdf | 349 ++++++++++ .../models/dock_2024/model.sdf.erb | 215 +++++++ .../models/dock_2024_base/model.config | 20 + .../models/dock_2024_base/model.sdf | 142 ++++ .../materials/textures/Placard.png | Bin 0 -> 1637 bytes .../placard_2024/meshes/placard_2024.dae | 607 ++++++++++++++++++ .../models/placard_2024/model.config | 20 + .../models/placard_2024/model.sdf | 72 +++ .../models/symbol_square/model.config | 20 + .../models/symbol_square/model.sdf | 17 + .../src/placard_plugin_2024.cc | 260 ++++++++ 12 files changed, 1742 insertions(+) create mode 100644 NaviGator/simulation/navigator_gazebo/models/dock_2024/model.config create mode 100644 NaviGator/simulation/navigator_gazebo/models/dock_2024/model.sdf create mode 100644 NaviGator/simulation/navigator_gazebo/models/dock_2024/model.sdf.erb create mode 100644 NaviGator/simulation/navigator_gazebo/models/dock_2024_base/model.config create mode 100644 NaviGator/simulation/navigator_gazebo/models/dock_2024_base/model.sdf create mode 100755 NaviGator/simulation/navigator_gazebo/models/placard_2024/materials/textures/Placard.png create mode 100644 NaviGator/simulation/navigator_gazebo/models/placard_2024/meshes/placard_2024.dae create mode 100644 NaviGator/simulation/navigator_gazebo/models/placard_2024/model.config create mode 100644 NaviGator/simulation/navigator_gazebo/models/placard_2024/model.sdf create mode 100644 NaviGator/simulation/navigator_gazebo/models/symbol_square/model.config create mode 100644 NaviGator/simulation/navigator_gazebo/models/symbol_square/model.sdf create mode 100644 NaviGator/simulation/navigator_gazebo/src/placard_plugin_2024.cc diff --git a/NaviGator/simulation/navigator_gazebo/models/dock_2024/model.config b/NaviGator/simulation/navigator_gazebo/models/dock_2024/model.config new file mode 100644 index 000000000..2bf440cd0 --- /dev/null +++ b/NaviGator/simulation/navigator_gazebo/models/dock_2024/model.config @@ -0,0 +1,20 @@ + + + robotx_dock_2024 + 1.0 + model.sdf + + + Max Vu + m.vu@ufl.edu + + + + Carlos Agüero + caguero@openrobotics.org + + + + The dock used in RobotX 2024. + + diff --git a/NaviGator/simulation/navigator_gazebo/models/dock_2024/model.sdf b/NaviGator/simulation/navigator_gazebo/models/dock_2024/model.sdf new file mode 100644 index 000000000..0c354b8ed --- /dev/null +++ b/NaviGator/simulation/navigator_gazebo/models/dock_2024/model.sdf @@ -0,0 +1,349 @@ + + + + + true + + + + model://dock_2024_base + + + + + + 5.75 3 1.5 0 0 1.5707963267948966 + + true + 0 -0.2 0.25 0 0 3.14159 + model://placard_2024 + + + true + 0 0.07 0 0 0 0 + + + + + 0 0 0 1.571 0 0 + + + 1 1 0.001 + + + 1 + + + robotx_dock_2024::dock_2024_placard1::link_symbols::visual_square + + true + vrx/dock_2024_placard1 + shuffle + + + + + + + + + + 0 0 0 0 0 0 + placard::link + link_symbols + + + + + + + + + + + + 5.75 9 1.5 0 0 1.5707963267948966 + + true + 0 -0.2 0.25 0 0 3.14159 + model://placard_2024 + + + true + 0 0.07 0 0 0 0 + + + 0 0 0 1.571 0 0 + + + 1 1 0.001 + + + 1 + + + robotx_dock_2024::dock_2024_placard2::link_symbols::visual_square + + true + vrx/dock_2024_placard2 + shuffle + + + + + + + + + + 0 0 0 0 0 0 + placard::link + link_symbols + + + + + + + + + + + + 5.75 15 1.5 0 0 1.5707963267948966 + + true + 0 -0.2 0.25 0 0 3.14159 + model://placard_2024 + + + true + 0 0.07 0 0 0 0 + + 0 0 0 1.571 0 0 + + + 1 1 0.001 + + + 1 + + + robotx_dock_2024::dock_2024_placard3::link_symbols::visual_square + + + true + vrx/dock_2024_placard3 + shuffle + + + + + + + + + + 0 0 0 0 0 0 + placard::link + link_symbols + + + + + + + + + + + diff --git a/NaviGator/simulation/navigator_gazebo/models/dock_2024/model.sdf.erb b/NaviGator/simulation/navigator_gazebo/models/dock_2024/model.sdf.erb new file mode 100644 index 000000000..49b850bfe --- /dev/null +++ b/NaviGator/simulation/navigator_gazebo/models/dock_2024/model.sdf.erb @@ -0,0 +1,215 @@ + + + + + true + + + + model://dock_2024_base + + <% + # Constants + dock_x = 5.75 + dock_y = 3 + dock_z = 1.5 + dock_roll = 0 + dock_pitch = 0 + dock_yaw = Math::PI / 2.0 + circle_offset_x = -0.06 + circle_offset_y = 0 + circle_offset_z = 0.6 + circle_offset_roll = 0 + circle_offset_pitch = Math::PI / 2.0 + circle_offset_yaw = -Math::PI / 2.0 + cross_offset_x = -0.06 + cross_offset_y = 0 + cross_offset_z = 0.6 + cross_offset_roll = 0 + cross_offset_pitch = Math::PI / 2.0 + cross_offset_yaw = -Math::PI / 2.0 + triangle_offset_x = -0.06 + triangle_offset_y = -0.5 + triangle_offset_z = 0.2 + triangle_offset_roll = Math::PI / 2.0 + triangle_offset_pitch = 0 + triangle_offset_yaw = 0 + placard_offset_x = 0 + placard_offset_y = 6 + placard_offset_z = 0 + placard_offset_roll = 0 + placard_offset_pitch = 0 + placard_offset_yaw = 0 + + # Variables + placard_x = dock_x + placard_y = dock_y + placard_z = dock_z + placard_roll = dock_roll + placard_pitch = dock_pitch + placard_yaw = dock_yaw + + circle_x = dock_x + circle_offset_x + circle_y = dock_y + circle_offset_y + circle_z = dock_z + circle_offset_z + circle_roll = dock_roll + circle_offset_roll + circle_pitch = dock_pitch + circle_offset_pitch + circle_yaw = dock_yaw + circle_offset_yaw + + cross_x = dock_x + cross_offset_x + cross_y = dock_y + cross_offset_y + cross_z = dock_z + cross_offset_z + cross_roll = dock_roll + cross_offset_roll + cross_pitch = dock_pitch + cross_offset_pitch + cross_yaw = dock_yaw + cross_offset_yaw + + triangle_x = dock_x + triangle_offset_x + triangle_y = dock_y + triangle_offset_y + triangle_z = dock_z + triangle_offset_z + triangle_roll = dock_roll + triangle_offset_roll + triangle_pitch = dock_pitch + triangle_offset_pitch + triangle_yaw = dock_yaw + triangle_offset_yaw + %> + <% for i in 1..3 %> + + + <%=placard_x%> <%=placard_y%> <%=placard_z%> <%=placard_roll%> <%=placard_pitch%> <%=placard_yaw%> + + true + 0 -0.2 0.25 0 0 3.14159 + model://placard_2024 + + + true + 0 0.07 0 0 0 0 + + + + robotx_dock_2024::dock_2024_placard<%= i %>::link_symbols::visual_square + + true + vrx/dock_2024_placard<%= i %> + shuffle + + + + 0 0 0 1.571 0 0 + + + 1.1176 1.1176 0.001 + + + 1 + + + + + + + + + 0 0 0 0 0 0 + placard::link + link_symbols + + + + + + + + <% + placard_x += placard_offset_x + placard_y += placard_offset_y + placard_z += placard_offset_z + placard_roll += placard_offset_roll + placard_pitch += placard_offset_pitch + placard_yaw += placard_offset_yaw + + circle_x += placard_offset_x + circle_y += placard_offset_y + circle_z += placard_offset_z + circle_roll += placard_offset_roll + circle_pitch += placard_offset_pitch + circle_yaw += placard_offset_yaw + + cross_x += placard_offset_x + cross_y += placard_offset_y + cross_z += placard_offset_z + cross_roll += placard_offset_roll + cross_pitch += placard_offset_pitch + cross_yaw += placard_offset_yaw + + triangle_x += placard_offset_x + triangle_y += placard_offset_y + triangle_z += placard_offset_z + triangle_roll += placard_offset_roll + triangle_pitch += placard_offset_pitch + triangle_yaw += placard_offset_yaw + %> + <% end %> + + diff --git a/NaviGator/simulation/navigator_gazebo/models/dock_2024_base/model.config b/NaviGator/simulation/navigator_gazebo/models/dock_2024_base/model.config new file mode 100644 index 000000000..d8d58d747 --- /dev/null +++ b/NaviGator/simulation/navigator_gazebo/models/dock_2024_base/model.config @@ -0,0 +1,20 @@ + + + robotx_dock_2024_base + 1.0 + model.sdf + + + Max Vu + m.vu@ufl.edu + + + + Carlos Agüero + caguero@openrobotics.org + + + + The dock base used in RobotX 2024. + + diff --git a/NaviGator/simulation/navigator_gazebo/models/dock_2024_base/model.sdf b/NaviGator/simulation/navigator_gazebo/models/dock_2024_base/model.sdf new file mode 100644 index 000000000..bd7aa2e41 --- /dev/null +++ b/NaviGator/simulation/navigator_gazebo/models/dock_2024_base/model.sdf @@ -0,0 +1,142 @@ + + + + + + + false + + + + + true + + + + + dock_block_0_0 + 0 0 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_0_3 + 0 6 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_0_6 + 0 12 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_0_9 + 0 18 0.25 0 0 0 + model://dock_block_4x4 + + + + + dock_block_1_0 + 2 0 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_1_3 + 2 6 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_1_6 + 2 12 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_1_9 + 2 18 0.25 0 0 0 + model://dock_block_4x4 + + + + + dock_block_2_0 + 4 0 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_2_3 + 4 6 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_2_6 + 4 12 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_2_9 + 4 18 0.25 0 0 0 + model://dock_block_4x4 + + + + + dock_block_3_0 + 6 0 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_3_1 + 6 2 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_3_2 + 6 4 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_3_3 + 6 6 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_3_4 + 6 8 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_3_5 + 6 10 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_3_6 + 6 12 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_3_7 + 6 14 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_3_8 + 6 16 0.25 0 0 0 + model://dock_block_4x4 + + + dock_block_3_9 + 6 18 0.25 0 0 0 + model://dock_block_4x4 + + + + + + + + diff --git a/NaviGator/simulation/navigator_gazebo/models/placard_2024/materials/textures/Placard.png b/NaviGator/simulation/navigator_gazebo/models/placard_2024/materials/textures/Placard.png new file mode 100755 index 0000000000000000000000000000000000000000..8664df705134268b89fb23bd2163a0c0e852723b GIT binary patch literal 1637 zcmbVNJ#W)M7+5p7P+SN0$oq*ypYF-wV7huESCm6XifcxB^!TWv?0X)yHpE771rZ(_nDRC=25~CU zin4fqkYcjQgxY4EDDky#&tGV2M1AeL6Tl!{X5DCYCu7%k)>>p|lXz4+e@uwGl6p^I{oj>Ifn>eQl{QsBQ#Jb(v>Obq%N!2%+kFhG{!4@z`0_f|d!O z3(T4hA+kN>%&X<0Npl$u(R%$-X-q!(T33h^0nqRFjlOO0tOHEX^8mDfW$6;3=fgzc zfu7{YCk%C#lPpR_#1pk(#BIJMd`-GKjv-Df+9WUYBr^sEI0dEwiG%Q77G)b%K#yq}*gtdtvA9Si1bg=#un&~3A2 z+DM-EybfIi;TRgoLZDdSsbB{|=NB-iQ8@f7loAy3EXFcRQH(nbq)BIFEeKE}$puab zYt(&Bx@trbMf0xfVY>}=8(X$c!&<0gYa!Iz4BKAKbUkNb?5*5i=VYr;aI&Au{R^Q9 zLl2uet%X#t*)^)Si94@5wKilPtYO-ACibspk^F>k@Beu!h0rqZ@hsp}X4x+4cT`7c zHOi$}!}5!`#%`ChUZjpn2VqiFx37^xRz|gQIhvB0e~WBP+wU?-x{KUnSk6Py#~EAd z$SnS~oWP%)&++!|uK$~;ySV;y@%@kMWm-uWCmkkxCD4jsK+#mjqJZD^8om3e0Zrht zs}<9#pUQ`-BeO(OXR_bEdUOAw?A6UieW}&`@b$Ghrzi*ZK0EmGg?sY}KH2#4 + + + + + FBX COLLADA exporter + + + 2021-08-31T22:23:17Z + + 2021-08-31T22:23:17Z + + + + <unit meter="0.010000" name="centimeter"/> + <up_axis>Z_UP</up_axis> + </asset> + <library_images> + <image id="MapFBXASC032FBXASC0351-image" name="MapFBXASC032FBXASC0351"> + <init_from>Placard.png</init_from> + </image> + </library_images> + <library_materials> + <material id="Placard" name="Placard"> + <instance_effect url="#Placard-fx"/> + </material> + </library_materials> + <library_effects> + <effect id="Placard-fx" name="Placard"> + <profile_COMMON> + <technique sid="standard"> + <phong> + <emission> + <color sid="emission">0.000000 0.000000 0.000000 1.000000</color> + </emission> + <ambient> + <color sid="ambient">0.588000 0.588000 0.588000 1.000000</color> + </ambient> + <diffuse> + <texture texture="MapFBXASC032FBXASC0351-image" texcoord="CHANNEL0"> + <extra> + <technique profile="MAYA"> + <wrapU sid="wrapU0">TRUE</wrapU> + <wrapV sid="wrapV0">TRUE</wrapV> + <blend_mode>ADD</blend_mode> + </technique> + </extra> + </texture> + </diffuse> + <specular> + <color sid="specular">0.000000 0.000000 0.000000 1.000000</color> + </specular> + <shininess> + <float sid="shininess">2.000000</float> + </shininess> + <reflective> + <color sid="reflective">0.000000 0.000000 0.000000 1.000000</color> + </reflective> + <reflectivity> + <float sid="reflectivity">1.000000</float> + </reflectivity> + <transparent opaque="RGB_ZERO"> + <color sid="transparent">1.000000 1.000000 1.000000 1.000000</color> + </transparent> + <transparency> + <float sid="transparency">0.000000</float> + </transparency> + </phong> + </technique> + </profile_COMMON> + </effect> + </library_effects> + <library_geometries> + <geometry id="Box001-lib" name="Box001Mesh"> + <mesh> + <source id="Box001-POSITION"> + <float_array id="Box001-POSITION-array" count="192"> +-100.000000 -25.000000 -150.000000 +-100.000000 25.000000 -150.000000 +100.000000 25.000000 -150.000000 +100.000000 -25.000000 -150.000000 +-100.000000 -25.000000 150.000000 +100.000000 -25.000000 150.000000 +100.000000 25.000000 150.000000 +-100.000000 25.000000 150.000000 +0.000000 0.000000 -150.000000 +0.000000 0.000000 -150.000000 +0.000000 0.000000 -150.000000 +0.000000 0.000000 -150.000000 +-84.680214 14.826656 132.722687 +-84.680214 14.826664 82.722687 +-34.680214 14.826664 82.722687 +-34.680214 14.826656 132.722687 +0.000000 0.000000 -150.000000 +0.000000 0.000000 -150.000000 +0.000000 0.000000 -150.000000 +0.000000 0.000000 -150.000000 +48.787140 14.826658 120.222687 +48.787140 14.826662 95.222687 +73.787140 14.826662 95.222687 +73.787140 14.826658 120.222687 +100.000000 -25.000000 66.811462 +100.000000 25.000000 66.811462 +-100.000000 25.000000 66.811462 +-100.000000 -25.000000 66.811462 +-19.386715 -25.000000 66.811462 +25.193655 -25.000000 66.811462 +18.392944 -25.000000 150.000000 +-20.149960 -25.000000 150.000000 +-20.406273 25.000000 150.000000 +20.272606 25.000000 150.000000 +18.256310 25.000000 66.811462 +13.001312 25.000000 -150.000000 +-25.653687 25.000000 66.811462 +-39.329834 25.000000 -150.000000 +27.587723 -25.000000 -150.000000 +-12.759123 -25.000000 -150.000000 +0.000000 0.000000 -150.000000 +-84.680206 -24.999998 132.722687 +-87.685837 -25.000000 135.728302 +0.000000 0.000000 -150.000000 +-31.674593 -25.000000 135.728302 +-34.680214 -24.999998 132.722687 +0.000000 0.000000 -150.000000 +73.787140 -24.999998 120.222687 +76.792763 -25.000000 123.228302 +0.000000 0.000000 -150.000000 +76.792763 -25.000000 92.217072 +73.787140 -24.999998 95.222687 +0.000000 0.000000 -150.000000 +-84.680206 -24.999998 82.722687 +-87.685837 -25.000000 79.717072 +0.000000 0.000000 -150.000000 +48.787140 -24.999998 120.222687 +45.781517 -25.000000 123.228302 +0.000000 0.000000 -150.000000 +45.781517 -25.000000 92.217072 +48.787140 -24.999998 95.222687 +0.000000 0.000000 -150.000000 +-34.680214 -24.999998 82.722687 +-31.674593 -25.000000 79.717072 +</float_array> + <technique_common> + <accessor source="#Box001-POSITION-array" count="64" stride="3"> + <param name="X" type="float"/> + <param name="Y" type="float"/> + <param name="Z" type="float"/> + </accessor> + </technique_common> + </source> + <source id="Box001-Normal0"> + <float_array id="Box001-Normal0-array" count="828"> +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +0.000000 -1.000000 -0.000000 +0.000000 -1.000000 -0.000000 +0.000000 -1.000000 -0.000000 +0.000000 -1.000000 -0.000000 +0.000000 -1.000000 -0.000000 +0.000000 -1.000000 -0.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +0.000000 -1.000000 -0.000000 +0.000000 -1.000000 -0.000000 +0.000000 -1.000000 -0.000000 +0.000000 -1.000000 -0.000000 +0.000000 -1.000000 -0.000000 +0.000000 -1.000000 -0.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000001 +0.000000 -1.000000 0.000001 +0.000000 -1.000000 0.000001 +0.000000 -1.000000 0.000001 +0.000000 -1.000000 0.000001 +0.000000 -1.000000 0.000001 +-0.000001 -1.000000 0.000000 +-0.000001 -1.000000 0.000000 +-0.000001 -1.000000 0.000000 +-0.000001 -1.000000 0.000000 +-0.000001 -1.000000 0.000000 +-0.000001 -1.000000 0.000000 +0.000000 -1.000000 -0.000001 +0.000000 -1.000000 -0.000001 +0.000000 -1.000000 -0.000001 +0.000000 -1.000000 -0.000001 +0.000000 -1.000000 -0.000001 +0.000000 -1.000000 -0.000001 +-0.000001 -1.000000 0.000000 +-0.000001 -1.000000 0.000000 +-0.000001 -1.000000 0.000000 +-0.000001 -1.000000 0.000000 +-0.000001 -1.000000 0.000000 +-0.000001 -1.000000 0.000000 +0.000001 -1.000000 0.000000 +0.000001 -1.000000 0.000000 +0.000001 -1.000000 0.000000 +0.000001 -1.000000 0.000000 +0.000001 -1.000000 0.000000 +0.000001 -1.000000 0.000000 +0.000000 -1.000000 -0.000001 +0.000000 -1.000000 -0.000001 +0.000000 -1.000000 -0.000001 +0.000000 -1.000000 -0.000001 +0.000000 -1.000000 -0.000001 +0.000000 -1.000000 -0.000001 +0.000000 -1.000000 0.000001 +0.000000 -1.000000 0.000001 +0.000000 -1.000000 0.000001 +0.000000 -1.000000 0.000001 +0.000000 -1.000000 0.000001 +0.000000 -1.000000 0.000001 +0.000001 -1.000000 0.000000 +0.000001 -1.000000 0.000000 +0.000001 -1.000000 0.000000 +0.000001 -1.000000 0.000000 +0.000001 -1.000000 0.000000 +0.000001 -1.000000 0.000000 +</float_array> + <technique_common> + <accessor source="#Box001-Normal0-array" count="276" stride="3"> + <param name="X" type="float"/> + <param name="Y" type="float"/> + <param name="Z" type="float"/> + </accessor> + </technique_common> + </source> + <source id="Box001-UV0"> + <float_array id="Box001-UV0-array" count="232"> +0.546320 0.682655 +0.546320 0.723931 +0.522597 0.723931 +0.570855 0.629042 +0.570855 0.666927 +0.547133 0.666805 +0.406890 0.833552 +0.406890 0.818839 +0.418944 0.809071 +0.352896 0.630064 +0.376618 0.630064 +0.376618 0.732930 +0.521810 0.719682 +0.521810 0.748467 +0.418944 0.748467 +0.519765 0.629042 +0.519765 0.652764 +0.416899 0.652764 +0.352896 0.732930 +0.409559 0.180505 +0.409559 0.156782 +0.621670 0.104854 +0.376618 0.772398 +0.602774 0.104854 +0.409559 0.130203 +0.352896 0.772398 +0.428455 0.130203 +0.601961 0.081132 +0.601961 0.104854 +0.578239 0.104854 +0.416899 0.629042 +0.578239 0.131434 +0.578239 0.107712 +0.377431 0.652764 +0.609930 0.107712 +0.621791 0.107712 +0.597663 0.126608 +0.377431 0.629042 +0.597663 0.107712 +0.409559 0.183362 +0.418944 0.713193 +0.428455 0.183362 +0.578239 0.155760 +0.590100 0.155760 +0.590100 0.167621 +0.590100 0.134292 +0.379475 0.748467 +0.590100 0.153187 +0.522597 0.689576 +0.547133 0.629042 +0.418944 0.844563 +0.521810 0.810207 +0.521810 0.844563 +0.392177 0.833552 +0.379475 0.844563 +0.392177 0.818839 +0.379475 0.805845 +0.386247 0.782090 +0.412821 0.782090 +0.379475 0.710704 +0.379475 0.691404 +0.379475 0.653577 +0.418944 0.653577 +0.418944 0.692360 +0.521810 0.653577 +0.578239 0.081132 +0.521810 0.694853 +0.570855 0.685213 +0.547133 0.686105 +0.570855 0.723931 +0.578239 0.167621 +0.547133 0.723931 +0.522597 0.670433 +0.418944 0.787920 +0.546320 0.657827 +0.522597 0.629042 +0.546320 0.629042 +0.428455 0.156782 +0.379475 0.787558 +0.428455 0.180505 +0.379475 0.749673 +0.418944 0.749673 +0.428455 0.153925 +0.412821 0.755516 +0.409559 0.153925 +0.386247 0.755516 +0.602774 0.081132 +0.621670 0.081132 +0.597135 0.107712 +0.597135 0.131434 +0.621791 0.126608 +0.609930 0.126608 +0.428455 0.195223 +0.409559 0.195223 +0.521810 0.791065 +0.521810 0.749673 +0.461106 0.187098 +0.461106 0.175237 +0.449245 0.187098 +0.449245 0.175237 +0.443314 0.135636 +0.467036 0.135636 +0.467036 0.111913 +0.443314 0.111913 +0.609524 0.107712 +0.609524 0.126608 +0.578239 0.153187 +0.578239 0.134292 +0.462532 0.188524 +0.462532 0.173811 +0.447819 0.188524 +0.447819 0.173811 +0.441888 0.137062 +0.468462 0.137062 +0.468462 0.110487 +0.441888 0.110487 +</float_array> + <technique_common> + <accessor source="#Box001-UV0-array" count="116" stride="2"> + <param name="S" type="float"/> + <param name="T" type="float"/> + </accessor> + </technique_common> + </source> + <vertices id="Box001-VERTEX"> + <input semantic="POSITION" source="#Box001-POSITION"/> + </vertices> + <triangles count="92" material="Placard"> + <input semantic="VERTEX" offset="0" source="#Box001-VERTEX"/> + <input semantic="NORMAL" offset="1" source="#Box001-Normal0"/> + <input semantic="TEXCOORD" offset="2" set="0" source="#Box001-UV0"/> + <p> 38 0 48 2 1 1 3 2 2 2 3 1 38 4 48 35 5 0 32 6 5 4 7 3 31 8 4 4 9 3 32 10 5 7 11 49 24 12 18 2 13 10 25 14 11 2 15 10 24 16 18 3 17 9 36 18 40 37 19 12 26 20 14 26 21 14 37 22 12 1 23 13 26 24 30 0 25 16 27 26 17 0 27 16 26 28 30 1 29 15 12 30 79 41 31 19 53 32 20 12 33 79 53 34 20 13 35 77 14 36 87 13 37 21 53 38 23 14 39 87 53 40 23 62 41 86 15 42 84 62 43 26 45 44 82 62 45 26 15 46 84 14 47 24 12 48 29 14 49 27 15 50 28 14 51 27 12 52 29 13 53 65 45 54 31 41 55 32 15 56 89 41 57 32 12 58 88 15 59 89 20 60 91 56 61 34 60 62 35 20 63 91 60 64 35 21 65 90 22 66 105 21 67 36 60 68 38 22 69 105 60 70 38 51 71 104 23 72 93 51 73 41 47 74 92 51 75 41 23 76 93 22 77 39 23 78 44 20 79 70 21 80 42 23 81 44 21 82 42 22 83 43 20 84 107 47 85 47 56 86 106 47 87 47 20 88 107 23 89 45 50 90 6 59 91 7 29 92 8 50 93 6 29 94 8 24 95 50 24 96 18 6 97 22 5 98 25 6 99 22 24 100 18 25 101 11 32 102 59 36 103 40 7 104 46 7 105 46 36 106 40 26 107 14 26 108 30 4 109 33 7 110 37 4 111 33 26 112 30 27 113 17 24 114 50 38 115 51 3 116 52 38 117 51 24 118 50 29 119 8 24 120 50 5 121 54 48 122 53 24 123 50 48 124 53 50 125 6 5 126 54 30 127 56 57 128 55 5 129 54 57 130 55 48 131 53 28 132 73 31 133 78 44 134 57 28 135 73 44 136 57 63 137 58 4 138 80 27 139 81 42 140 85 42 141 85 27 142 81 54 143 83 31 144 78 4 145 80 42 146 85 31 147 78 42 148 85 44 149 57 32 150 5 30 151 67 33 152 68 30 153 67 32 154 5 31 155 4 33 156 68 5 157 69 6 158 71 5 159 69 33 160 68 30 161 67 6 162 61 25 163 62 33 164 60 33 165 60 25 166 62 34 167 63 25 168 62 2 169 64 34 170 63 34 171 63 2 172 64 35 173 66 33 174 60 34 175 63 32 176 59 32 177 59 34 178 63 36 179 40 34 180 63 35 181 66 36 182 40 36 183 40 35 184 66 37 185 12 28 186 73 39 187 94 29 188 8 29 189 8 39 190 94 38 191 51 35 192 0 38 193 48 39 194 72 39 195 72 37 196 74 35 197 0 27 198 81 0 199 95 28 200 73 28 201 73 0 202 95 39 203 94 39 204 72 0 205 75 37 206 74 0 207 75 1 208 76 37 209 74 54 210 83 28 211 73 63 212 58 28 213 73 54 214 83 27 215 81 31 216 78 28 217 73 30 218 56 30 219 56 28 220 73 29 221 8 30 222 56 59 223 7 57 224 55 59 225 7 30 226 56 29 227 8 59 228 109 50 229 108 51 230 96 59 231 109 51 232 96 60 233 97 50 234 108 48 235 110 47 236 98 50 237 108 47 238 98 51 239 96 48 240 110 57 241 111 56 242 99 48 243 110 56 244 99 47 245 98 63 246 113 44 247 112 45 248 100 63 249 113 45 250 100 62 251 101 42 252 115 54 253 114 53 254 102 42 255 115 53 256 102 41 257 103 44 258 112 42 259 115 41 260 103 44 261 112 41 262 103 45 263 100 63 264 113 53 265 102 54 266 114 53 267 102 63 268 113 62 269 101 57 270 111 59 271 109 60 272 97 57 273 111 60 274 97 56 275 99</p> + </triangles> + </mesh> + </geometry> + </library_geometries> + <library_visual_scenes> + <visual_scene id="placard_2022" name="placard_2022"> + <node name="Box001" id="Box001" sid="Box001"> + <matrix sid="matrix">1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000</matrix> + <instance_geometry url="#Box001-lib"> + <bind_material> + <technique_common> + <instance_material symbol="Placard" target="#Placard"/> + </technique_common> + </bind_material> + </instance_geometry> + <extra> + <technique profile="FCOLLADA"> + <visibility>1.000000</visibility> + </technique> + </extra> + </node> + <extra> + <technique profile="MAX3D"> + <frame_rate>30.000000</frame_rate> + </technique> + <technique profile="FCOLLADA"> + <start_time>0.000000</start_time> + <end_time>3.333333</end_time> + </technique> + </extra> + </visual_scene> + </library_visual_scenes> + <scene> + <instance_visual_scene url="#placard_2022"/> + </scene> +</COLLADA> diff --git a/NaviGator/simulation/navigator_gazebo/models/placard_2024/model.config b/NaviGator/simulation/navigator_gazebo/models/placard_2024/model.config new file mode 100644 index 000000000..5ca0548f5 --- /dev/null +++ b/NaviGator/simulation/navigator_gazebo/models/placard_2024/model.config @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<model> + <name>placard_2022</name> + <version>1.0</version> + <sdf version="1.6">model.sdf</sdf> + + <author> + <name>Carlos Agüero</name> + <email>caguero@openrobotics.org</email> + </author> + + <author> + <name>Cole Biesemeyer</name> + <email>cole@openrobotics.org</email> + </author> + + <description> + A white placard with a symbol used in the RobotX competition. + </description> +</model> diff --git a/NaviGator/simulation/navigator_gazebo/models/placard_2024/model.sdf b/NaviGator/simulation/navigator_gazebo/models/placard_2024/model.sdf new file mode 100644 index 000000000..95411d3c7 --- /dev/null +++ b/NaviGator/simulation/navigator_gazebo/models/placard_2024/model.sdf @@ -0,0 +1,72 @@ +<?xml version="1.0" ?> +<sdf version="1.6"> + <model name="placard"> + <pose>0 0 1 0 0 0</pose> + <!-- The white placard --> + <link name="link"> + <collision name="collision_1"> + <pose>-0.9234 0.0 1.164 0.0 0.0 0.0</pose> + <geometry> + <box> + <size>0.153199 0.500 0.672</size> + </box> + </geometry> + </collision> + <collision name="collision_2"> + <pose>-0.596803 0.0 1.41357 -3.14159 -1.5708 0.0</pose> + <geometry> + <box> + <size>0.17285 0.5 0.5</size> + </box> + </geometry> + </collision> + <collision name="collision_3"> + <pose>0.326598 0.0 1.35111 0.0 0.0 0.0</pose> + <geometry> + <box> + <size>1.3468 0.500 0.29777</size> + </box> + </geometry> + </collision> + <collision name="collision_4"> + <pose>0.070527 0.0 1.07723 0.0 0.0 0.0</pose> + <geometry> + <box> + <size>0.834664 0.500 0.25</size> + </box> + </geometry> + </collision> + <collision name="collision_6"> + <pose>0.326598 0.0 0.890117 0.0 0.0 0.0</pose> + <geometry> + <box> + <size>1.3468 0.500 0.124233</size> + </box> + </geometry> + </collision> + <collision name="collision_5"> + <pose>0.868936 0.0 1.07723 1.5708 0.0 1.5708</pose> + <geometry> + <box> + <size>0.500 0.25 0.262128</size> + </box> + </geometry> + </collision> + <collision name="collision_7"> + <pose>0.0 0.0 -0.336 0.0 0.0 0.0</pose> + <geometry> + <box> + <size>2.000 0.500 2.328</size> + </box> + </geometry> + </collision> + <visual name="visual"> + <geometry> + <mesh> + <uri>file://placard_2024/meshes/placard_2024.dae</uri> + </mesh> + </geometry> + </visual> + </link> + </model> +</sdf> diff --git a/NaviGator/simulation/navigator_gazebo/models/symbol_square/model.config b/NaviGator/simulation/navigator_gazebo/models/symbol_square/model.config new file mode 100644 index 000000000..741ef5967 --- /dev/null +++ b/NaviGator/simulation/navigator_gazebo/models/symbol_square/model.config @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<model> + <name>symbol_rectangle</name> + <version>1.0</version> + <sdf version="1.6">model.sdf</sdf> + + <author> + <name>Max Vu</name> + <email>m.vu@ufl.edu</email> + </author> + <author> + <name>Carlos Agüero</name> + <email>caguero@openrobotics.org</email> + </author> + + <description> + A square symbol used in some elements of the RobotX competition. + edited for robotx 2024 + </description> +</model> diff --git a/NaviGator/simulation/navigator_gazebo/models/symbol_square/model.sdf b/NaviGator/simulation/navigator_gazebo/models/symbol_square/model.sdf new file mode 100644 index 000000000..560189836 --- /dev/null +++ b/NaviGator/simulation/navigator_gazebo/models/symbol_square/model.sdf @@ -0,0 +1,17 @@ +<?xml version="1.0" ?> +<sdf version="1.6"> + <model name="symbol_square"> + <static>true</static> + <pose>0 0 0 0 1.5708 0</pose> + <link name="link"> + <visual name="visual"> + <geometry> + <box> + <size>0.6096 0.6096 0.001</size> + </box> + </geometry> + <transparency>1</transparency> + </visual> + </link> + </model> +</sdf> diff --git a/NaviGator/simulation/navigator_gazebo/src/placard_plugin_2024.cc b/NaviGator/simulation/navigator_gazebo/src/placard_plugin_2024.cc new file mode 100644 index 000000000..1b4ab604f --- /dev/null +++ b/NaviGator/simulation/navigator_gazebo/src/placard_plugin_2024.cc @@ -0,0 +1,260 @@ +/* + * Copyright (C) 2019 Open Source Robotics Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include <gazebo/rendering/Scene.hh> + +#include "vrx_gazebo/placard_plugin.hh" + +// Static initialization. +std::map<std::string, std_msgs::ColorRGBA> PlacardPlugin::kColors = { + { "red", CreateColor(1.0, 0.0, 0.0, 1.0) }, + { "green", CreateColor(0.0, 1.0, 0.0, 1.0) }, + { "blue", CreateColor(0.0, 0.0, 1.0, 1.0) }, + // {"yellow", CreateColor(1.0, 1.0, 0.0, 1.0)}, +}; + +std::vector<std::string> PlacardPlugin::kShapes = { + // "circle", "cross", "triangle", "rectangle", + "square" +}; + +///////////////////////////////////////////////// +PlacardPlugin::PlacardPlugin() : gzNode(new gazebo::transport::Node()) +{ +} + +////////////////////////////////////////////////// +std_msgs::ColorRGBA PlacardPlugin::CreateColor(const double _r, const double _g, const double _b, const double _a) +{ + static std_msgs::ColorRGBA color; + color.r = _r; + color.g = _g; + color.b = _b; + color.a = _a; + return color; +} + +////////////////////////////////////////////////// +void PlacardPlugin::InitializeAllPatterns() +{ + for (auto const &colorPair : this->kColors) + for (auto const &shape : this->kShapes) + this->allPatterns.push_back({ colorPair.first, shape }); +} + +////////////////////////////////////////////////// +void PlacardPlugin::Load(gazebo::rendering::VisualPtr _parent, sdf::ElementPtr _sdf) +{ + GZ_ASSERT(_parent != nullptr, "Received NULL model pointer"); + + this->scene = _parent->GetScene(); + GZ_ASSERT(this->scene != nullptr, "NULL scene"); + + this->InitializeAllPatterns(); + + if (!this->ParseSDF(_sdf)) + return; + + // Quit if ros plugin was not loaded + if (!ros::isInitialized()) + { + ROS_ERROR("ROS was not initialized."); + return; + } + + if (this->shuffleEnabled) + { + this->nh = ros::NodeHandle(this->ns); + this->changeSymbolSub = this->nh.subscribe(this->rosShuffleTopic, 1, &PlacardPlugin::ChangeSymbol, this); + } + + this->nextUpdateTime = this->scene->SimTime(); + + this->updateConnection = gazebo::event::Events::ConnectPreRender(std::bind(&PlacardPlugin::Update, this)); + + this->gzNode->Init(); + this->symbolSub = gzNode->Subscribe(this->symbolSubTopic, &PlacardPlugin::ChangeSymbolTo, this, true); +} + +////////////////////////////////////////////////// +void PlacardPlugin::ChangeSymbolTo(gazebo::ConstDockPlacardPtr &_msg) +{ + std::lock_guard<std::mutex> lock(this->mutex); + this->shape = _msg->shape(); + this->color = _msg->color(); +} + +////////////////////////////////////////////////// +bool PlacardPlugin::ParseSDF(sdf::ElementPtr _sdf) +{ + // We initialize it with a random shape and color. + this->ChangeSymbol(std_msgs::Empty::ConstPtr()); + + // Parse the shape. + if (_sdf->HasElement("shape")) + { + std::string aShape = _sdf->GetElement("shape")->Get<std::string>(); + std::transform(aShape.begin(), aShape.end(), aShape.begin(), ::tolower); + // Sanity check: Make sure the shape is allowed. + if (std::find(this->kShapes.begin(), this->kShapes.end(), aShape) != this->kShapes.end()) + { + this->shape = aShape; + } + else + { + ROS_INFO_NAMED("PlacardPlugin", "incorrect [%s] <shape>, using random shape", aShape.c_str()); + } + } + + // Parse the color. We initialize it with a random color. + if (_sdf->HasElement("colors")) + { + } + else if (_sdf->HasElement("color")) + { + std::string aColor = _sdf->GetElement("color")->Get<std::string>(); + std::transform(aColor.begin(), aColor.end(), aColor.begin(), ::tolower); + // Sanity check: Make sure the color is allowed. + if (this->kColors.find(aColor) != this->kColors.end()) + { + this->color = aColor; + } + else + { + ROS_INFO_NAMED("PlacardPlugin", "incorrect [%s] <color>, using random color", aColor.c_str()); + } + } + + // Required: visuals. + if (!_sdf->HasElement("visuals")) + { + ROS_ERROR("<visuals> missing"); + return false; + } + + auto visualsElem = _sdf->GetElement("visuals"); + if (!visualsElem->HasElement("visual")) + { + ROS_ERROR("<visual> missing"); + return false; + } + + auto visualElem = visualsElem->GetElement("visual"); + while (visualElem) + { + std::string visualName = visualElem->Get<std::string>(); + this->visualNames.push_back(visualName); + visualElem = visualElem->GetNextElement(); + } + + // Optional: Is shuffle enabled? + if (_sdf->HasElement("shuffle")) + { + this->shuffleEnabled = _sdf->GetElement("shuffle")->Get<bool>(); + + // Required if shuffle enabled: ROS topic. + if (!_sdf->HasElement("ros_shuffle_topic")) + { + ROS_ERROR("<ros_shuffle_topic> missing"); + } + this->rosShuffleTopic = _sdf->GetElement("ros_shuffle_topic")->Get<std::string>(); + } + + // Required: namespace. + if (!_sdf->HasElement("robot_namespace")) + { + ROS_ERROR("<robot_namespace> missing"); + } + this->ns = _sdf->GetElement("robot_namespace")->Get<std::string>(); + if (!_sdf->HasElement("gz_symbol_topic")) + { + this->symbolSubTopic = "/" + this->ns + "/symbol"; + } + else + { + this->symbolSubTopic = _sdf->GetElement("gz_symbol_topic")->Get<std::string>(); + } + return true; +} + +////////////////////////////////////////////////// +void PlacardPlugin::Update() +{ + // Get the visuals if needed. + if (this->visuals.empty()) + { + for (auto visualName : this->visualNames) + { + auto visualPtr = this->scene->GetVisual(visualName); + if (visualPtr) + this->visuals.push_back(visualPtr); + else + ROS_ERROR("Unable to find [%s] visual", visualName.c_str()); + } + } + + // Only update the plugin at 1Hz. + if (this->scene->SimTime() < this->nextUpdateTime) + return; + + this->nextUpdateTime = this->nextUpdateTime + gazebo::common::Time(1.0); + + std::lock_guard<std::mutex> lock(this->mutex); + + // Update the visuals. + for (auto visual : this->visuals) + { + std_msgs::ColorRGBA color; + color.a = 0.0; + +#if GAZEBO_MAJOR_VERSION >= 8 + auto name = visual->Name(); +#else + auto name = visual->GetName(); +#endif + auto delim = name.rfind("/"); + auto shortName = name.substr(delim + 1); + if (shortName.find(this->shape) != std::string::npos) + { + color = this->kColors[this->color]; + } +#if GAZEBO_MAJOR_VERSION >= 8 + ignition::math::Color gazeboColor(color.r, color.g, color.b, color.a); +#else + gazebo::common::Color gazeboColor(color.r, color.g, color.b, color.a); +#endif + + visual->SetAmbient(gazeboColor); + visual->SetDiffuse(gazeboColor); + } +} + +////////////////////////////////////////////////// +void PlacardPlugin::ChangeSymbol(const std_msgs::Empty::ConstPtr &_msg) +{ + { + std::lock_guard<std::mutex> lock(this->mutex); + this->color = this->allPatterns[this->allPatternsIdx].at(0); + this->shape = this->allPatterns[this->allPatternsIdx].at(1); + this->allPatternsIdx = (this->allPatternsIdx + 1) % this->allPatterns.size(); + } + + ROS_INFO_NAMED("PlacardPlugin", "New symbol is %s %s", this->color.c_str(), this->shape.c_str()); +} + +// Register plugin with gazebo +GZ_REGISTER_VISUAL_PLUGIN(PlacardPlugin) From 5201f9a25c3ee49e2f660f8d0b7dc2c6bb78a8dc Mon Sep 17 00:00:00 2001 From: D-G Singla <dsingla340@gmail.com> Date: Tue, 22 Oct 2024 13:01:19 -0400 Subject: [PATCH 20/30] Andrew's rocking issue fix --- .../navigator_launch/launch/vrx/vrx_controller.launch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/NaviGator/mission_control/navigator_launch/launch/vrx/vrx_controller.launch b/NaviGator/mission_control/navigator_launch/launch/vrx/vrx_controller.launch index d81cc0026..604f7ab1c 100644 --- a/NaviGator/mission_control/navigator_launch/launch/vrx/vrx_controller.launch +++ b/NaviGator/mission_control/navigator_launch/launch/vrx/vrx_controller.launch @@ -2,12 +2,12 @@ <launch> <node name="mrac" pkg="navigator_controller" type="mrac_controller.py" output="screen"> <rosparam> - kp: [1500.0, 1500.0, 5600.0] - kd: [300.0, 200.0, 3000.0] + kp: [1000.0, 700, 5600.0] + kd: [200.0, 400, 3000.0] ki: [0.2, 0.2, 0.2] kg: [5.0, 5.0, 5.0, 5.0, 5.0] mass: 251.19 izz: 500.58 </rosparam> </node> -</launch> +</launch> \ No newline at end of file From b859516793ba8629b65bb0b0f6562f8202cb9204 Mon Sep 17 00:00:00 2001 From: willzoo <zhujwill@gmail.com> Date: Tue, 22 Oct 2024 13:09:28 -0400 Subject: [PATCH 21/30] Changed poi in config file to match position of dock in Max's world --- NaviGator/mission_control/navigator_launch/config/poi_sim.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NaviGator/mission_control/navigator_launch/config/poi_sim.yaml b/NaviGator/mission_control/navigator_launch/config/poi_sim.yaml index ed5e17fb9..e7f1812c5 100644 --- a/NaviGator/mission_control/navigator_launch/config/poi_sim.yaml +++ b/NaviGator/mission_control/navigator_launch/config/poi_sim.yaml @@ -2,7 +2,7 @@ global_frame: enu initial_pois: circle_totems: [26.09821319580078, 59.91523361206055, 0.0] - dock: [-27, 64, 0.0] + dock: [40, 15, 0.0] entrance_gate: [51.28, -48.69, 0.0] obstacle_course: [-32.803, -83.41, 0.0] ring_challenge: [61.271873474121094, 15.894840240478516, 0.0] From 8cdefa569be6d262335e865930c4745204e43f16 Mon Sep 17 00:00:00 2001 From: D-G Singla <dsingla340@gmail.com> Date: Wed, 23 Oct 2024 11:09:54 -0400 Subject: [PATCH 22/30] Increased offset of docking and takes a picture before shooting the ball (uses fresh image) --- .../navigator_missions/navigator_missions/docking.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 5e501a0fb..4dbdb9364 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -196,7 +196,8 @@ async def run(self, args): # calculate center of cluster and move towards it but at an offset distance left[0] = 0 forward = copy.deepcopy(centers[correct_dock_number]) - forward[0] = forward[0] - 5 + # This is what calculates how far from the dock the boat docks + forward[0] = forward[0] - 8 boat_to_enu = await self.tf_listener.get_transform("enu", "wamv/base_link") centers[correct_dock_number] = boat_to_enu.transform_point(left) nextPt = boat_to_enu.transform_point(forward) @@ -212,7 +213,7 @@ async def run(self, args): # Shoot racquet ball projectile rospy.logerr("- BEFORE SHOOT PROJ -") if correct_dock_number != -1 and correct_dock_number is not None: - await self.shoot_projectile(images[correct_dock_number]) + await self.shoot_projectile() await self.pcodar_save(SetBoolRequest(False)) await self.contour_pub.shutdown() @@ -496,7 +497,11 @@ async def crop_images(self, clusters, centers): return list - async def shoot_projectile(self, img): + async def shoot_projectile(self): + # Gets the image from the boat camera at this point in time + img = await self.image_sub.get_next_message() + img = self.bridge.imgmsg_to_cv2(img) + rospy.logerr("- SHOOT PROJ REACHED -") gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) From 050575e98604791135abf0c7daea43adec5a3c53 Mon Sep 17 00:00:00 2001 From: anthonyliao <anthonyliao@ufl.edu> Date: Wed, 23 Oct 2024 15:41:04 -0400 Subject: [PATCH 23/30] verified pipeline, just need to add to docking.py --- .../navigator_vision/dock1-green.png | Bin 0 -> 109680 bytes .../navigator_vision/dock1-red.png | Bin 0 -> 107626 bytes .../navigator_vision/dock2-blue.png | Bin 0 -> 108364 bytes .../navigator_vision/dockdeliver_pipeline.py | 105 ++++++++++++++---- .../navigator_vision/test_pipeline.py | 33 ++++++ 5 files changed, 117 insertions(+), 21 deletions(-) create mode 100644 NaviGator/perception/navigator_vision/navigator_vision/dock1-green.png create mode 100644 NaviGator/perception/navigator_vision/navigator_vision/dock1-red.png create mode 100644 NaviGator/perception/navigator_vision/navigator_vision/dock2-blue.png create mode 100644 NaviGator/perception/navigator_vision/navigator_vision/test_pipeline.py diff --git a/NaviGator/perception/navigator_vision/navigator_vision/dock1-green.png b/NaviGator/perception/navigator_vision/navigator_vision/dock1-green.png new file mode 100644 index 0000000000000000000000000000000000000000..d76d9be73b18ba100032d3cea97e5ca604a294b2 GIT binary patch literal 109680 zcmV(}K+wNZNk&F!tN{R5MM6+kP&iCntN{Qo{{c+^O~8_Er>f)*CXt-m^B*vX*st%1 z{!hU1(@nf6;VwoYeb_1h8*CO2z^cL%B;BP05qIWFWTtaio={ajT13p&1!-nIGd<HD ze2VD3#(|AFxfP%Xs>QXeJJxnS5ugFEm8z-;s4~)ZnS-=RGGS(v*@9JFlB~+C%-s5Q zsfW!%jM8AecT2NgrM0q|G)%+Br7E+s-nq=&y+O`+EQwoHrP^RtB|w0IvAAJbRhJlb zbE|J90X$hAB+v_tnrNayLZHchRaLpyTw?1tSQP()AaC-AY*aYpHi`Ge+nV|Jl04-u zxl6sI3aMP~Qk7Z6OA;VnJk8#bl)Rgq4iUQ!iD|UfAH>b5+7t1S<g<-yVBI4kRShm^ zUZre@n!E3+2hbxxtXs;*O&d>hS5>vvGBaCCH32yFJ%B!`s>(bLiSKXBPjs}#_jjYF z?NhD!OA)aFt7$uo<mH$y1rcb{j>C9;17}2t@#|=<(cQj5_{6TOuJeqr3^J{?-uu1? zh=`nUcU^IwVc9;JZPvAEjQb_8IE~`~biZ%2g!t)NNRA{qjwIJ#s(FqW5MgFd8mtVT zssb?ApSB{&s%<No9O-j4uTM6UMIN`sVqX3K?{GV=>+w2}6x()H6}FuJ$ZR?Q{W%y8 zn~hv9{ht8%L1`O^fJy+EnE?Rtz$XIAjerN@&U%cm`bM4D<78GRc5nat7yzhhqw;_~ z>ol>M#Xhq>>qI+_@lB)Jv-bF|9@r2$5xQv*5!i?gR>V%k(PJGR_Hl}10l+;@5&#_- z9l!=zkp~<(5dk3(u@ez-000gg0D#bu6_Ep<qU^xuh{zx!D=UIsJ9}n{635J2vFF+H z>%G|H2A7CW8E|SCF4+5aDfTh!-Z1mW#GTmVfO;bZ3b7|z(fnFspSUwo9VZHGdPPXQ z;9p)yzRI)akMnF}pI<Ad*k@kUX=d}sJZ1xS#fYq1Gs|p8du85OaZ9o)28O5Md2k#2 zjDL+^0RYT0i@j0fPJdw*r^da;jd9GZGeiW1kN_Bq1!P#c*k=12m-k*);Bz)MAOJ)L z0E}0Cd3Jn#_VK(j{xn`0uWkTfBQrB@A(D0A09FSZ8`?JvA`&2Myod;hNFdt)z<6^T zXXC{U{As)}&NnED01Pq=62kx>G5~<UFbn_y0ssQA5m*oaup)8^0F1M7zKlPO7sk1R z+smU50PsI&;9mfS0RRgC&H_LSYj|V<03ZOpKwu36N`i|PSO6aJE5GwQXC47(;BQb{ zK)sLvz%UFWUGxY+0Km#Hz!|gz5P+Ht!w{<k1^{3IodH<^5Eup!Q3Yf`PXLfg%4YyT z0EU18LJe(XBB}s@NN!{TLx89NA^;!&5CO38I{>f(0hbT}fW?X50azq(1pt7b0k{M# z{0Mvx00aOmEa2-Bi3NOR@d5bS7B+Cx1+wrS0iePqod}4Kc;w(R5qJ-PkO&9}b&v%< z+B*P<2mpwPL;ygVp6Fu;NJvD4qy!O3vhl&Vfe=YSlmq|-06;oQ-r*g$fT#i@ApsBp z5P?<%S}X9(4FsqZA|WCH0D)Z*5poX+00;nB$cbkRY^f-T2!VizP?L#>1X^Ry2f%<0 zAt90yL_`iqq}ul>Y%oMf8lemzB2Wu}h=7!Z>;Wc;2nm%!L<ENf(iQ;Hc?JMLgt7<; z5L_T>K>z><WT&PKAW$EbBme@XD@3TGMo1`kKvYRXL;^%UP=HIIX^Dtn3pPpt5Xjv& zCIJ8eBmp20fn$M81U1&q*Hs6Ewvhx$Nfm$8-7~X)Paq;Dfd8I1Q4tj%`;CwUNKT0B zZ$KUa1;#TU=NVB2ex>s&kN_$Vd@Fl_LwDLQvLz?*cAM-^xxT2{mIoDZrb(9k7VQ$! zBx=5JtZCac-MTV%l>r+^4__Zx(mhQmbd+4AZSqOFq-nM`ZL@Car%vW*(<V*QByE%S z@bPj^|KUS_mlH4W1vi{lfIa}Fl(v*FK&Bvwygduh(lS+1P!ykWqIh4Rs3<Bbii*mH zf}-L*Q&I8A)iv&*+^Bd2Wi3$F0%2_d1dk}H3{a64=+c#2X+hYIsG^FrJeIv<Er=Wd z6(`bi*72bLUOcuORY5O$Pz0)|s30mlps1+Jt_n~<#d})T0s^vn0|)}8;5{wx0_xql zfWSbcW%fb@<qwOOw0x*=(Hl2<(S8K->=g@2Tkciy6Pdk2EkG{>S$&&j7CMxUG6hue z{2(YN7AUt4L}2h`DQBURR>vxUB4-Z*Qc4T{cl=KOzh1T^J8;gas;-{u>f6H%SIo@J z%*@Qp%*@Qp%*>3JnVD&(x*DqLoXj-l%4B?tl@aP|h^0@&9hoh-@Dr4nSxQ5+#H);Q zmUm;D=?E?z@hKz4JZ4!HQDV+e^bT1i)>|xP#Kc6DSRbRs+{SW_SXU;c(Ne_n6j>29 zhFHom(-6$P5yw<jM5jy~vz?<*iFp~vQyj5AV%><DYm``TL(FO;oh@c+V~dq;8dVV* zQ|T#EJbfd?QW?F(%&Z-u664R9x@I{O@ewnYxx|beu|+AI8gV&CoTjpkBN$UGrFcTj z$4D`cE7(Sf`D?UTCAjbvT!w#O8Ddt4;t0~bN33nMaVgzx)E1abThL;LWAv7ZZP?bf zZQ0Z4yuUv%Z6JYA_ZD{>cXziXciD^C3U_yR_a&UVD+~?P2CL-%ZtK>z9eX65=aU{J z^`)mUD7$SNW82)8>EE*vwr#s@qtJFGUuv55o-qMlr0swIUy_{6tjfvmQfHLf$$K~6 zQF-r?_u|q56oPgSq7wDqd&gSLt6Sr#%Sm;$tvujl%N3G;sN4!(5w(K^?*+&UdUIg5 zIV4#}L3yvD2c#VAhK*!u13$S1Xw1XLK+y+OXaNa6@^GNMKQuGqY(UlUz;Q)&BC1wU z8yLHRFX#nKxMu+!vw=r$18sh!p=JZ}QqlxR3s4G<cU%W#E?|nwc4z@_P)J^?h!-3t z%i8TABmSt^Ol?43Nh?7vK+&*ZMQz{@dIh}!*$uowX#)vfRHkMFb^}WACkdzNKwC7y zsTB;A_o6>gy@CQzt8IIpTu)R&hXJ~4BM=X};27hdfv$R&EKxK%j%Gjp7m96L&zgPt zC7l7JN@R-eWxyE%GMe~00MPkwOaSKz0M}2lq<lV~ulzK%vZVdV_$==3?(Qz*Gu_YK zz4f{Gd+YA*?(VzK+PkZ(D($D=-`75e&evoAz=w!_5u1m##`#9P(L*nuNJR|pYd@UC z6KUj!Q+Qs+`p|Reh<XHxH10Cm5&iIyS4iTyzF(YI5$_RE8=>FJ`Zi7?jk`nQBu=h0 z5$n4(#~;o}<GhZT#92L#^<jKwEf0-TIA3I34u$i<St*=C>ad2xO5r3<PQ>eoDV)T~ z!^*3}_{>@oF^2nC9s2OrH<7|A{ELjdB4RD^-({?E>xU%Xi)$erQ8>9$NaKClh(yL` z);eM=FJteB^gGm{_t1;~4n26i;}03>7qPhikd@aFIP^#!)(WQ%Ya@kINFLUA-yRF; z!@4(;IE@{A3xK3Zl5ATdqH69QSy_$4%#7~~Ue`bI`mpr@YdsCaYM5C#T#ytI?xrf< zwrxAMz1g;Do|kpokK;UI)ebsbanj3(dD&O(_D5VSKV9Z0Ut#TDC*s-&F4eYip2xne z%N!HncmDrXvSi&^Yh~4j?&&#<4_+2Clf~#UgQx#S*7d~9ESH&?86G@ypr^a{-c@TY z;s5Ye#HBR0U>lcy5xRWu7AplEF-LGrQHr(1>9n)NN^=RuX``GIQ4geXnapi<L^*;M zY(bgzm|wA!5iQuprJo~Ki&f4xM#hLWMvAo@L5AYAF>Z>L#-%Z~;DP->8W&x`7Hp%$ z8bKLbta{9!;KBnfD6zg`JuqTzr;JPOwo!ryQmi!2jyUZuvC_COt%wm^Xu%RQOD!m) z1Rc>%I$Nv~|C|ebjE73R#G1?4qKpu2cMG;N5$Oo>LMh^mn4z3YV~jHqGe(LvSNy<S zBaL#}xU`HGYr9L(MxTiDn4%@th_R26VwG6iXu*YYE|egR5$m`mxQy+zAl()?o@`q? zwr#hq+RppKkI=Af<IBPD7$MtA*2sYwv~33Y`~QdaKKI!%Y1_8!ZKUgZzTY4#V9Pb< zsu^>Q7`l54wVmEddI`)ut8v#Tax+sHWqr>TiSILiE+F4e|Nl(^{7yZ7#x0n~ET(ZQ zggJnmjWcCNmc~2q7?>q6MW4Z2;mvS6Qg$1lBBrIII^n=nnU7Sd^6FD+O3W3TinTQE z%o5^knQC*xU^>BBu_<EvnBrKiRw}|NBhevk6}QR=colrIzB`{%=xS^_7J7>vW%^Jt zpDJ+?{gf8+sj&(SlsbJZFqWnng%;Hz)HvoDF@BomoSwY;7C1ru8Q97h*Ko7HHT;&m zf%|X4lk3U-dUSmn_xI4Z;t#@~lC>E!qM0DU5>lDK2*AJ)Q*PzY%xB;r0i!TlFYiA+ zqFSAFkazyqA961u0wr8&hz?_(nhtO^ZDL1?`QYF*h3H7P1P`^*lv_)?ITHW~Aoduu zf%Kdre7bNhR9S-(KFB-5Cez>%os%vcse)T+hX<kRfjM^b+^xYV&#h2ka3P?^JYdmP z&ah1}3MPk+t=nYbX$QEi%o(p$;=6JG#edj^4_rg6-d+HslR*J<ac@^yB0NpR9TWgI zZ78w6aRsD{X+XlRS7&V*d51vf-YOVYO(LVcQ@SIfI@P7B6Sfz+2`5V9gpnL@m{_Q9 zQISNFC>657C!QbSZ%K+>pwKD%U_2m?fw`=?tz8LUrF`(>>qW=-`@h`+`ZkHCy1JvK zX~U65kn5G1v&>V*E>u$jSc9j4u#?b-<e8e?@tH!4jbho`E{6<V-~x-~wcp71wg~%X zPMVIZ$j*Xs2vMetDV@3O*65;0;hqxSOZU1&J1giRAtg4_Pb4DUV<Yp9kZl9ave|P^ zAixrb!;9E&`>r(Y*keOmO$plGngn`^;@)Wl70VuhE&;*!H$8iYfK9U+HPV!+c^Y>~ zBpjz4+(HOat$Hd2JPL2ox{idKI+ub1QIHnnjw{t)5lNlwfv)s$u*<leB<Z57F`{!N zV9XM`D#1HSy^?8gq+5l!;dOy*V;uxMJO(XRYe_*t8djn8ezx1gTjEs&%QZn9)(Cko zPM^L`;!;3a&|+cA#>fIiEFTPHs*sD4Snh1+MbI-KZgV#zLgn120RpH2z$6{qD2<31 z0#NiB@Yr&o7IYQ2P31enpvfIeWKi=5fQm;4M%P*7!_%7HhuK1oJm~N{VOpd!3^U{g zeL{Ik!5#IqAH&9JJFHI)k%DJDh4*kgY#>LLL#)kf<V#A60TxTr0ublh_?U1wrF!n7 zEFsIyI;Uu>EJa7`W}7U>ZF#t`cTW*rRaSertv!{w9HhnM?^fSJ%K@-}m~C)E=>U8t zVnakVCm9#C=Na{Fk*LP@wz%Ue2@ud``V3tNdU&EG^W&fzp}2avrDcb!P7ez(Tme7y z1uDuB01rgrp^FP7kKtnqAcwhgTTFkCU;q%As3wdI0bb8FqTsTq69@_*Eih^TcMBbQ zTTkh6y22YnTD?1P2&yqa$TkT(G(lcU=*)qPXb?o0#8Ay?7bufw#M_>m5y}vY#IS>i zy>-H@1pPpAU72k|J8Sbo<Z!#7)SMc*=@W%Tl(e(5=3GK@rRg{(btOnQ{``DRvIq<J zvmR4E!&2!R7nRmsf>+;L!;%mlCBnNDyrE;6NAha)>hkdu%R_?bqiT6NfP!HbShO>V zxL)Pi^F#TWlVhMdf!&~A>Ba_8%_HUF$%c|`Ra&6CfDQ-;66%gt2ePC>rI{6xxNg-6 zlnhvCXTgyu^>$_HTXM+51tG!-pfH>pm8({LUIY}yMUY?Mu$zQ~p(Rk5jRxM&*#Psm zOy3MBQFF|QJ7ZCHxdp5sQw@cpEvn3QUbDbTMI}?cc9%#WAk9_+3WssHeW<lb;IulR z3k;K0memh#fHDC8T+F9IxaQ0qdoTI?K?y{L!a77D2ijy?b+QSSl86CDr$jibq>Vf! zt!_D}JAGUl${E_rRkV$a0iE$wAe=MQ&H*V;!FBDWYs17e8S>B(mgiLE!MMIFgeeq& zPj=>&w3MdlJq!>KvV|_%o!7ew*$p30asSX$a;ATK<r6^9b!g#@F$7%c(zynu#@IOR zAe4-o|L7iXI@RSS1Vvj)k-bY3UzZCza8w693%GCyCls%&vmtTa)Ko-I=!TJ?I2sv= zbN6{V$W1Z54Pb{0p2~tMYl;QbiStG#oVu^qM+py>IP|y18{a?RnKPLj5(-N?MON?6 zttNBGp9;-!IciukSOmZ>_!x?<7zvFu$1xumUfVA8LEkl;InaQ{YQ<<8FiBGeq@jSO zOfCX0XoSBke`#C;98&E=9xFu@11Dr|i_3)=z-3i;uJrw+WU8<k;!Yh@%5_81fQt_A zJKCm$yAd~BM@v8l6N!$%XzQ$}gGeW6gSGw5>Pz7OwJv(f!x5V|1XK~=coz&nBv;u9 zn%%WbV9f^fppTBW#*P@&l|)#bPETRqa!?(ZZ@XKvn&m#%UU-^mS{fy7CK=sfXe_k+ z^=75C`f7|stuSE1Mw9@7In%Q(RyQoBVHpmES*A!Bi<*=$kY=>Em((=HG^J=804}JO zjFC~Pt_SFzrQ+NPol%hCbP-1MUY7gBT}j4N3PLTV>#U@t6BLcI3rhhZ#-dtQT4En} z!7@;}-z2numlJSxpWr$$5jCRDzRCwp@K98Z$sq1-I0i^NmMAL#RTc(<0LBcctZL}k z=&;&-ieTIB*}$VLaIrl$A+0F`_(d4g5KDg6E_&a+w%|^l%JaC;f`=M=7y=aM>%{`H z2L`l`8UA0#V{T<h9Z6Y-^a>vAARY{*0FJu|gkn_H8@~bA9l2_$Jq$#7n)Q2|>(6t- zs~;^-6!V&?63<YF0j!ln3m{vMY~QD_-ZTtCEj?;H#>bmJgxhDvd3f2n&2jXe2qMvu zBZnl~^I@GVX-z@bNi7_T7BUGXmO%(&imdM1j@qVmc_3_chXO&!qwTXz+ee9Vmow#5 z7`dktuLuSv4Z+Zu>NzX~bX4Ro%<q#5Y2j4AC0wDu08U!pBN=sd&7Ijb>Kj`WF*gr4 zxu;Y&q0|rpdUrxuhLu1qI4(yL5fn&33}6HSz(E#ipwXlW2y?m++c$SAgOxq92;TKT zpVFoXV@x!!1lora-0`?O5E8<0wqF)q>EXmiP6YUI7_oQZvWcQcZ4XbEvSpUO!ef_2 zgHbFk#V!#jVb*tyJ5+8VO>wYW5@G^+U_7s_3Zx*NrtWOPTC&Z9di_qqvA!G=scImP zt**0&#Z6$~;QsPsLR;J1Qve1bx-s0;jg#%Sc<C&A$cMi?oi0Cbaqle6oApEG{eWRf zR3kzv+b-T)_dpf0+gRzxWBL@$G#=~u%_rIqH>t?bl6HjDT!|g`Yg=(O(!y(tn;S&X z6y>fFL5q@GUTvKg=`4iRoeb_Xh!E1Kgr|S~camkD(QwlCYxH(OG<a4H&BPH67NvUy z8J#A=kUH9hP+I`lJZ0kPN~@1rGy?d5BU^L~qNl=yZii_RnnIc(tXQonA2KxzLsvq~ zv2dD|`Dxlrm+0BSFe%IqPBR?AHe$~v%N6Oc8tqPx-dH-PSo)m<f<l^ypH0keVR$vy z_UoEbGC(+&P7qm16gAfCMDy}pj4J$8X95WHOI=*-g448EqF*f0Q8-9MZ?ub@2U!L8 z2@&U-f;9T#XdSd$E89MBAqH?|w0^W2mR_w{kK^I?59;=*x@kVn*Ei+K1D?r6>w>em zp844CZ@~;y9c|p~uo+u6x`I4>DXrtRC@7X#4NbQZmDXUkSep5$pWe#1a#PFtU_)GQ z(I}{jG7~ZIg6I;e63KGXA%G~9B3f1juSXlT(1bLlx*tu^<!4xhdk_c-rF(#2G=)^_ zy$t)iCo84v!12bSgqpfG2`Z+`z8s)eCwienKKV#9L6=?5p{|1373QqOA(8`PSVIDF zL}MmFHE%{onL`pq5;Eqt%B-c<99rtsTEz4j+1pf@(nEV3b5kf;UD!EDCjfA{b}j$` zC~8~Zx;#D<<`zM#>YWwTWo3BkRR9<PH)3rdP*UB(#CPN*(pV41`-zC<8(X}1u+~-M zAla_z$#~hJt~a8`m>%9ilypuU%yQ;SZ|~YX0OniYa01jv<Iou>Lm%tiEdx&{Iy(cm zz01M1L_gKjEuP_kbQnE@94;Pm?MQNvx;4-va)j~V36Gl}{o`#XJ#PI*E&Jei<?IjU z2EVQsesUM?^$K&t!^o7%wvh-u<@un)6MO5+;<cpihLV2Lep^F(d;5ttfS@ZmB(_~A z=Zwv)!l4{q9##w8w;_vKYJnxKwO2@cwh3L5pi8wi88xc$IER}Y0>qL4GN4GLniMI3 z)q)FMR!1bfe}uFM#dl$x1Zp+Xf{bbwVG&T~q}eg=MF2%B&>?MS%ke-?$244hY=K}7 z6OrDwbH9yzYMb)5p?12!0NNP?luxreLkn~k*;YEjnl@(YT-rCLnHu>zY3X&D9=vcy zQ@>P$$7C&Xr0~QPwK%zpS%6TrRXdCD5L@;lHWZ%C(rAC-%G#_F^aOMoiXBTIh5IC} zVguELUV>g<8-n(I5eF$Huy)o`0dKGXYNZx0e|=-t)Av`sJtc2Bj=_2;UtJbG(SDnd zlCl@NTXHvbv52d5fXDRNxkb_Bt_-|Uh<<`;zSHf?Uh_@x9<#>hMGC3usNoq)wMvQ~ z%fnmG@a#b5+~y~T&<&fzG3};f;8*~p8@dRqcBP(cN_dtC2kF!TI^o^$2)VPiedkl+ zp^^~-rUglL*m&Kzg1B8l_JNZ$mRcGS-Z7K;g7AMvI*1&ky)(p_?Hcf~cY{@3Mr%|v zlqFobbt}aNP>!pqc*Vb4xr#8+@{&=_Mw$a7(~Oa#NJ1pT!%+y3fg^w@-*q(tf)lt! zfCMf@6g5`?ib0?Rb~j;JLL_)PAg*qv*Da5OLkl$K^5mj-DrV^La38N-BMk^R$NQa@ zR5&?a>UK)s5`od`>f*eZRY3S8O3V}(c}$&Jq@8&fh{XqYLw-+*HkT%#Be3KCT41JW z0TGCHpm2{g9`*SRo*0|@w*ylS!fPu}a=kgTM?P3-BkL+5h^4}a9<<7zNw0Di9K8ge zj)lKsy3;pq^4@fuP~Lwnvt3tyXU}}+?Z2*bpS2U?R8I%zt^90BLFZy*RKrQ{3qCBz zjDxjDTn;~)^V^^F{lTv9!rAY=+4PmK`P>(|PdS=l;|eYe>%g1u$hmL7)$-+U<jjYR z>RXzSmoQk*mH-q&``viAbMtVeF{(O3@bx8KbsAL4atrYFnTj+IqxI6GbB`2_ureZ9 z1bjv=?kkn1j_ev6OM&#K;UYx}At5u#MBEF!47rU$iXcFsp&%xN4OuYLoa*Y{>6#)H zGoluEcTNYT;kRs4O$=$5jswIdxQ}pztQyqchhsTImX_WP3h)M2AH3$G^-Gj~i5~Z; zz;eYr(Yv@Gn_W<FOl}LW)v=chgpZN0^;!*zo{mq9r~$EeIv(#PM$^*f{`u0#cVF$K z)zi@aChjN^;c)>Pk-?7PTpXk&FhlPu;FEY!e7imCTHZLBlztee4&&<&j%zkM+4<my z`_bQj+BnbFNc4bJVn_+zhL><rLfA9sEL+snLww@}Pvq5eqAc^|Up@2vc<1J1l9m%f zdpc<kHQGX|^wvr0j!TJa=SH2DAg*tTFI}I>c+2_BfW>nGD+yZtw{e<foO&KnXY7HB zY-1R##7Hp!X$ixmW}Rguh;i!6f92=Gh|7#uPN51CZ6a3PK6R$vVr5)$O}7%P?w-EB z508>8<}dwB0+1FUdu@YsLtWbUgax4M35q^+oZelSa}{{IuUaWH)gOH4yp!m|!XJVB z986h+li=rrJIJV(WOUSjIR40h;krFy8ktOQngr7nkx+$lpyY@Flt~+;9f2V%G+Uso zB5c1jOjW?T(*$%46!y_ZGtAQt!N`YLiA8(0M<EG%9OQf<6$Qt_>h6YB^j|)&rf9+) zlpBJFPegQTnrU;l=iI!r%{CcjjRi5_gX{fabLvy9t}|ezK@ZXPAFVq_OU8*=%n<8K zhbCe|Yl_l=+fyYU8HZb{V`^4Q5e1B+5?J7OmW(4u)13-)Dcg;Y{^1n}=7I$eGOdNK zwdSIfRwnWheB;HXNBPfx3xH9F{LZHxsD31>G7Ghy;{CJU+qZ6l3?Pu|A;<geAFB4^ zUwj2aOK!_}9FK2LJ-p^g9_YwAa(G_{1-oo}S(rZhukUhL|5fIQv&C0>U&XduyXEY> zjWtw#q0$NElgqVmE3}3hx=GC>UH<&`wCNA-_D1XY^A6}-+IV@>A#)yc4yqzH3<<3h zTHcZ<rnyqR(uHv4O5avDn{!zh)jouY11=R(@YUFewl9`UFRGL!AT@&4<V?=HKM1Ok zE{49XV?L$tuF)#sk3c6ZI4)%n=ZwomFh1?O`!gs5F$O?jACrNM)tENM7TF+Rqk(Kp zNSJULHez(JK0~B4Jc9CdClel;<5qC-TtG+}Y5fa3!Zah`PM>Hm!=OaT%^r42EfGQ< zKs$7LvmCZ)!ADRLwsqGjor7{4qac0U_AU2n*~IShOj0_wI&34g7)H=KDJ-p@rct_; zwv+B_B3YWE_RwMsJhl{|p2CXiOp~g}$Q>TT!(oT1fPw2OB%gFYqB4W({IWopYYj?x z*uM~;+4xndj!_3uKv)9QnwMJQ3)dt|ALDQD_|U)ja@n)|WWW8Rd=4>kn9sjlK~y$` zd>XK7i-X5ChWR-D^Wd6vkf^Qu|2yx0T0jJn>?IN#GZK6#U!%YJP_ieX<r5-p3}dOF zh*E36$NzXRH;SQe@5A1%rYAq{@GUxoUwSP3(IN55UyOlE39*P_=sE!pZVY2U4-vAO z!?X}tcx?pFYlJh5m<|vjnnWr=^XbS9bU=k*-@@j(3aBZcfd<8dS*PV>wgsZl0Elx5 zEGot^FurwQm}wuy4QpV;Hd_K|FovCGRsvXPC`kb}Xn-k0ws{8IM2?RDB!uwM{_1_Z zb(lsWJ$n9_VvQ{a;8<Vfe7oTgl)!jdcfz{+KrKCDM^U2Wz9#e-3?s4)O$_9j#}s!T z<ao5ZyY<p}Rk6gP=diImA7qGY0^5l84g0D%0I)PUYadfxzNje4(ib;0SQ}4z37l87 z8Ew>S)HEL5)2qGX`1IrGfYTVT$c60Urw?0KT*`7Sv{vYI-8PZ{m306HwklOQ=+|CA z+7!6ri``lc+X+`j3LAMcub%fbUOwkZy?m};Vso?jXaDF_zxlIV)+F3(8q1dB!^!I# z|JnZQNIh5vhfr}jdHo<nbb_Hpn{;*td8XvD^P0op+Jo2i+q+vz>PUGw&3&)feyktd z<R5&PpMQ4aHnW$WcP)QCe2S+#PgsYaz^j8zO&w3@<-s-9B{(c(zlq*g&{3(*X>OUk zZ?EZ#zpL!A{g6*De<BaB{D5wsN{2VJRBDas0HIK+pj$H+88%?4<xPXsC;!72wvj7! zO7H)$tdmd{XRrjEh~aXrN~YeTuanMcR|i5k+fJ-%nxO~_7BEMq=ssyV{_afmo^=Oz zVxgu59Lj<bVPG*)9K>qaL?2pe(6&jZSy<asg66|rjzH`x2wS|6XdH+H;P=g|Bg-_6 z`fVLMJ7l?yo7g(KJp?sVqlEFsX7p4y=nxwC6*RsVTbqqJdyUKg0Im8eH%=A98Ll51 zP;qz0lkmpasKXd>k%lb9Ep1B~cOz`;nz*-hlsAn41kVlB3u0uOA^>zGOoVA7gczjr z(LBC3KldEnjuPMU6JSZMW#`@V+fL(icMXNIPXtw8cx(T<;IQBN^f7+%Bt%_8<msRS zwA{QX*aewLJ{4kYfxC2H9L2CeZ)ZqRUboHNTMK4l*FW@L9ZYC=)}?;^Muo*R{e=x; zz!b5({Pj?|jgg_8h4XOqXeJO#Ym6nx6-pR6)o=gf!}{X0kA*w>p7VwWp1k0h)4nk@ z-8|*vot~A;$!nJDL!yRcIU6C(aLJDCVrLjE{4u3vyyp-3^jkzX5_J~MInBhDusaR4 zgd&C!VFHQ&8F}XYR;!$<ZQtpUD5L~LX!HElQIqEr>Hf$X9?PLXus4Mc!n{^cQ^AE= zL`LfK=r#o=25Z1=07BqnC6~I&)}?`Kg~Lon=z^<dflxG1$3+yZ8<cb&=2VDZp9Cew ze4NZ_ca#pMBiC1Z=p;)59Jx=_?{JucH|-eFNuOpI{T9w?ZI~U_63*fF*r&;JNiEF@ zdcei#(CJotOSLdN78X490DbV#6SNgP88&W7KPw~_OFEpjJzGA)eZv~UqkZ2|y`U6; zFb)s>+5#|@O437UOlU^Ad7`H``?fu~GhmER`yDydh*?sHM}26|U-I;Et{8?e23)ov zi8hBi@_YY!<X@d7BC3+*^yzt;*f^R{ATu6n3j|lbSr<HreU#sDiVt7nMaJb5H?+(0 zk9P_yU1G|96tAdiq_{+xB*Cyp>Akj7$-Cir^Wccy<zH-ufT)9%352qP`ei=6#R-R2 zRh;^KIOEDH&&3t}F3H^xH9HcI@$pcIyZyJ>`|8adNPa51+Pd;xDN{glmV-?F5^)3V z(XC-)Tka^8PN6zWcZRpCu8KmGy%?ex7;0`NNi8TXBn}joezfEYB2;yJMp}`w$O4gA z@M(;?oN!^Y4?4A&ni_Er3sy99XQDScY#0sN4jXPTUD<&$iXq2}Xwym$s@VXsOt9Kc z46a^Ig>|vUJR`5)MocDa^8!eq<}mD4TDqh4eQ8dxzE4Wup1Ty%Gy#mOaf77+jkgR8 z46(5(G_4lXjBzHrw#>B^#%9R@0?t!#Yfc$^bjH{oLs<ZOfTjnYhj7M_^^ue&)C@%o z>kc?EMYN&N?r7&!fweN5VZifjakj0IEGwa=K~HdfTmEt!R=Lorlk}@Z*pGtO<@kBz zsXzUmm^5$VfDiZlcUQ-`WHM-)Rhny!SRG5Iw2I|s$^z5`k>oQrk>D9z`*7L2MeHu` zb!<;|y;D|L%USWezNI~27qBr`pll<n^QhHJGGi-WM&6(@Vp|HW$G5$<kCgeXsx-tO zu~$y~n_C~_{T<#|fUMY>B%^~v;rd5=Jrtr9k&hy3;AF$2<kZURbo7{V<fizPmzVew zi0$I}8yZD`5EiWT7v_*`tIrfU*>1PBCD-BjXHg;Ry>Jmw%0nrrWPoj?2@4H`IR(F^ zP@ketiO;0i5Lh;VvruLEG?_BhrHqcrKAotAE}-SIrkD^wi*OtU>JVwpsL2M#R+CbQ z7EO!2lwQuLmVj<BFM1kc>Dkw}#;4;WP-+5^c3Uuy*ECN--_XdKh1ap}wCVJEeGMWH zO?1?D+;77N<aL5$Dus=dlm}F8b7`ZlZ^7Pg*tk*~Y})22p#itnN7xCqGocPsPy_}} zp3=joDH1zn+;62!c?h#*5xW@0^{(xQ1G9-CrBpm`6N{Yc;q^l9@W-*=O(~UDyC(}h zw%y8~i#m#BIois~>3P8uK7JpUVpT_b?=0gPI%!&b(C5K5X_QToL{KDI@;02n-I*Mu z7$^{iRH)ZQjm$!hip-QoI|>}V<T%JEVoR{{+9BKS@R4`!)i@T804t;bIP++co)V;S z#V>k1mdgZ$3M*r(LIuWb@38Gi(|svwxyLO6DSIK!eHprz$mqkSQl^i9mmXWMa7@75 zX4HN#mydAy^>`v~(r?Q%zx^i9yw?T6Nf4%6BFlCgg`G)4#T~v_s~l}yvCAJ_r4Q6y zV#p~xJ!qT`qRhH$wB!xASsk1K%iB@F;hqX*hET0ThpZ7PmImlo&?ThWFc^T~F{O~H z!09nM;iLrDDWHmlP7rxVoN3O-`_3=)1!U<fi21O1M_8K^_B|DDxhQ8xb!pSB-}Ac6 z4uV5g_0pV82S$wiqD7*;r>L41y-MIfOSP<VNKzPtsZP*_*Yd7==1orkJVgxL)<O*V z`mJ0!?!<*^>7Wzzdu|VOr~=k6;PI@wn*fR^p}KM6r#s}}vcGjLp{&rJz%TASeFk;8 znYuJsk#dU*NMtW8cb^p{D(3FPx0FlA_~oll`QEDzghh4erkmz<a$B{mGJlAZq=lr$ zYXsw`rUS+!=@(2(duKS<<qU#Els)yn=+*Db`r0SWr!mkxWk`;MBvi#PPx((zJrhja zH6D14CLMt!B<{u&2m#{)f~)q9`aU>ierI5`dzU8?a5=Lxrt^Yy5-`u;#nU_aVE7{* z?Sr>r#34eID4blcB8x)|eORBp=H$P*Q)Vk%g4vg&>-5Sv2BzojB}3wCXo$Ph+!2NS zDb^LwTS}i6eOoo9*Bd{m-Uh(RYZ9gv9wogNGBzMFe0Q0s%9(Vb5AV;q1rFHCX;?gH zpb$IlAsC^s7EIXVhB*MK4h6@cWY}ndD7Zl37_rH2ECDUXOdF7p7HuGW(v-G#5G9td zf84WN-MFRh=hm)5V~KWrYjL1NUT7Yz!aeT6VNRxLs`NcNv50a!rR8gTDQI&{@3+o+ zE<7}rNRQYX<;r72VU@-55%#<pm-K*?!p4ocGy=i^gk|TJU=$res~(DBcB^FqHJVO| zxy<z*f4T^0+B`(%5Z}Dwgul2aMB6BrJv;^WFr4HirKWVqbtEwA@aNw+;_=%@=->M1 zMuY>*Gb~Baj9W}NQ{(PG-{D%bGogKg#XrY~Fw@O0*#R)=l9PTt4w{E#i4EJ>YUxSo zsZV=86;dO`EVMS7#GR^iI0#)V#~LDs3E1f@S7axzNR<TTUehPBeK%;Bu~V-mOR-5Q z=w_Q*QTZ7xQb_Jtfpv&)yi0)Cw$wr_e-)rvCfH0%^6Cr^pCeoQdy+*i{b8K0(}||j zQ;^L>^0*J%X9}F4jShGni}+hYBE2WC*Dsbn?Ay>qLwZ<9fwbEC(Q@_LW<mlrtt5Rt zj2WAq0DuNGAv!3;Fi}ZBHqfzC?I0vCr%PE_YScI;$#%zf*dQrvccU>13AEiVN^{{2 zJ5rQ>>v5i@YInK>R6j*JVlUfgyX8&HiK1^bQPLh5R{9ieP#vsym&d}|8XMKciEs;D zwdJ9gy68%H7&{g`NiB4Mpw4X4M$i@Er4D?;V-{26(dN!ADfX3%QNXiH@$`EvF!E3{ ztm0DxVCYtyCLYbhU8jGxFr}2}fz-KKZTr@;8swC2wn}1%S6+9b)b>jo3`rbr`^ZxL z273vGCyYpEeh?TM{5cnoi%D=<dgPg~fg`gj^oeHzaLAVuR4WkJ$YOx~HVg#8D2MZU zli74IaYfg$sw0fwdRp`8-qK{(;Ix=X7F)yXE@(3fRg(&(#&nfg@lzIVu<v9zjG8qg z8K@sOfT4_*=q{2A-tNQ_f5Z=aThDq{4pG%<b_%#Pe=7rAbd9Za1srT#ZJ5Lma<?<A zKHM;pygh~oX$a=GwZ(NK`ZyFUh?)NxU8H-{R(cM%hv+*DiE}e7bRV)@7gAXJN@Dnc z0LuVDfkeQBb8rFVL0M*)8mIvgpqvE*AesOHG_7<3!d8c?s3shWMt#pzIbUe$TspEf z%`rXBMF3mf7<)J|XdC)c^VFb<Fz?iY$^#mi?Tt=k!G-N%zymWS%<`1<XUhTurA|pB zDGaQh#_+KeEsMC5r$<{54FShsk)?{u^fYB>j6B`fG(&)PuXISzZiofdF4|q%0U9*Z zT>kEE-|FXjJ_*hPeVA8sxNlx|j9=dO)uk~5p@E=xDsfYs_##!=S;`C9p~Js%ztYLS z@vrQ>%*~{bAIf(2W7RC2%@jtz0}Wa<1oEaX4yy}ZXR%{@36}<JHMAlHRhJxK#}$fy z+!z+^=a&{inZxC8zh80tQ=Gs1q>rbMg|HMERIv1ja%bpFH;a||DaO%-$ojw%0~LU! zZLMy<9fXl;kO)Dc=-iGoz|sCL1XonqP<AHEX3DtAr{qJMa3-B*)a&$avQ-9O3IrP+ zsjra`24FCQX#KH}O-0Bk<J}PVLUggK>nid5v#3rNMT8FW1y)-q+#4eRmc~3C1OPH3 zQ!%rr(PP*I$V#p<an_kpyuijGlr{p<aDhX(4PitG11E?sXM%!Bb{g?avD>WiEX7%V zp1$Vv8Ls;+m9h|RlI|oQ=?k8m3Rn&YrV70g$FV|E+;JS+#R7Vj^t^TIqQe=tb4FW- z0LG+)z|#6gmI)J1yJ2F76Dow|c`;mP6BPA5oJ&%4JzPoA!ll`8m*=qGeGuSrS)?5z zuJ-RN41iijZOLPLdGG3{vNz#XBbCiZ`SoQ>{_0+?YA2`2U=2igN|+TCm_pJEj(ZDG zvTI|_)5h<jjHILyq)G}?m`n%Xe#DP7rwAElJ#(N{QIf|dsI`b!o`6ms9Dq_O51o%1 z#|t5e+72F1{=t*PQ&V^GDBwhr94s+B%OBb0)dTQlxotIb{ni?iAL<RphjMgy3`6d5 zoJ-S=VmUc19;|)Pzw)fN8!~o*+pCcW&q(fQCEHF$A#q7%keQ~009t8}QpY?buWhl2 zlUW89tuP~TDncReRzLoI5Y6+u75g@6Ij0-tzhyOx2ndjrTHlP4W=&gTUVs18)Hl2( z)R8~4tXp}Cf(*H!>oiM5xdaFxC;(ze15ML140f|k8#v(@Oc0VWM2W552T7O_N=;cn zFJt9S&Cn`r(E<U(j(Z|(oXbb^WP6X3mOVNFl*bhpy|>vI(%s@P+Ik8R{ih%`m?Ouv z1xc2OJ)jq$tZ^*iuqUlQc-bfcoD;)6nwCU)c3!m%ug*3^pm!uxP!bil#Fm}v2nUA^ z*aN6;#ZPg$6V)<kL7`i1(4fF=-H3bbUBoFL9JI0_51cOCQ13+!mu=!`D%nT&R(d&@ ze%l6bnpw@3mBo#s_0`S7OuiMel4o6mh|(o6ifU0Qyk^)o_@t$z8)f;LugIpLMqTQi zPq9n)7~Et#0hJuoC)a0ZE1yJPefX!mS%LiVlG4y5nQ?u|H~-18QfQNK@Lx$5N&$tF zx4;6iGt>a1u;RoY{MRMOs^zt2u51Qa-jY{h+uwUHDt*dNC4b-4>H)*9j%&6QWLy;* zqwX6&c~^v&I03f_6Kw+6ON(=^A{_iA2-f?Ouu(p*N7dOQJhG$%N?N+5HCEeBx-umr z-Zo-@E*k++RI7nmQ_%q`!vI}i2cf%Uq!3pzG|f1HV?c=rj~Ya24M_x4M+&Om9ro-y z0&;m){g#JzE4!8x!NarE`wba3DNMQ2Zz~=;P*XHTiv4paljBX&L6oKgF1Gt<9!i28 zjHO72H^svTYg@q*fRa)-iW+sdKt!1gVwx@xRz<rllsnr%)M^gum;8n}HwthiLY1dJ zUYk5d!wQ%*K_AWQJJ(zn!_mqo6_Nh%|Mu?t87KAXoyn*S+1KKw^Lx$qGAl1EP|5*l zj>$Lmbbh-3TL`&+mO>##Kv-aAPOG$`gHty<y7MK=G~3k~qWer;Jr18k;`rV}us8g% ziHj6OZR}I>qKuljr8JWGQAiV%f0Py|dbf7FrD?wsOjH^%dxt^+CiCE{S1CB)A_1#g zcB?th=VO;uNOJ)_*x)*Ocvvn;K?%WczVK8Z@$WMc42+7+M3ss#N{Jk$m~TO^iaPY} z+dHgs7u&~070Rpk96AA>FCw!?<4u_7bxE<hJI$_p;|v3+{jOz8#^6A!=BNREaQ>-# zDKWV1Z9>*Hnm8%P$t5nBDn%lKg)BPe(-C)!5a@+692*uRK<J(zM`=JzobCR*p;Y*- zMHJgubf%@ibKH07G3l8Ngar0XwI?MV^>${57USJfn?lpZUeivdxL%rNhSO$Bj0+l% zwwCHR?0I7AXju$T@0}SFUSjt;8$Y-cQAX8(Fg0V_1H+kC+lYf(!(`pX55l*FE5aTy zx)1IoOC@mRH{Pewk}hB~)$B1hP%9OI-IG1QP23h1egmXO+*oXO%L{$|Tyy7nL*m32 z{-*{k%NhU#4lxu&ZCG?&nn(sPLTM7B<!GBojS9)+JX`gKaI`ca`2`cT0_0&WOnQ^l zWu!cHVCbC(%}5pXuugEBT$hqk2BQ@jBTxzw9@<6;i{g*}9`4Z}x|hCSYriZ&|CL;l zXU*R|_S@PO2yec{ZH=ofx#+L~BE{<Z_J5eCMP-7%mY0$jB>QvnuF9OT9lQzN`R3&9 z-{z%Xe-mcjpLaxSd~Ut3f-<dC?qP1^Q&^<@nj}C13*y>SjFB163VR7mab7fpyeUZu zj;Xi*pCU_s`@uSmtHJ>YfUXgQ-Dm{kc;6~s(`rLwB_$-Ts0jk0K@cJI2Ff6Y6v^Ta z8(sq~-GtEyZz<J%+_Ydo#74G_CcdP|)>*9+$T15o6&`yrI%QCVthze&z**bs)N)2= z0*`R3a*9VZDXcD8Es1>~Pyz~t#u|XND71yNMdOZFdf9eq(Guf*K}grJdT0uLkfm`H z=;@Ds5IAs_QLiz7{PU*EZFYNcM>f&bpX(?uXJVUEUac<u_$6z%;K1=&|KD}59aq1c z&+gpU<@vuf?eN?#-?x~Xef#d;PwAsMd0Z;i1?PA9-M*pR!55Re$S<+TqUU5@SaU;= zUmkL7rL>7>p(_MUd=qIk#W3%79W6%fY+$DtqNCkIod<wn+nLw-lJi}%<OSE_h;r`R zfn&HDhny{^W9C({34GSd)7Y7570&o=l~x6y6o%}V*7PEfVc=^4#RJ=dfe{W8+E?y~ zEoOyE8PQmEP+tK7wKTn9gO-@n@+~pofchRcA;FfenFg^4wBx33q)&05Vu*GV#`Tdv z?$2<VpP4?xysmtL{7n7zfusTMsjRz)S9p;~Gl4ixSfG*sK-ai20oDMl3{4VXxI}i0 zAW@r6qX`TsD?Bs_TMmIrA!%oN6>X6vb69~pO44r$4uT^^v}Zs(y(#p58&UeNO`gV9 zGo&NUwl}b*<#m7_h!~tcY#R3>LeZGdt2(5Fa0}hn<_icxO1Repp4sxP3a15*d)L>` zoEGwmQoVPy%+3_A8QuHv$;i3;n%$8j&g312H4kF|+y{}2gupa#z$#}U3Z~880hVlb z@#4Oi7Ktg_>ypxZO6jey@;Re<)a`9vwaog!9zXGnZ-=|cTM=l%yx_NNI7>A<iOLQ^ z<$$j}@P^Vy%u54thrtc^kr6Em@B10v&y9^>q2>jL?{#k06~@UrlsdyqvTw{DTPHRA z&J|>%vp=k%111kzERqBDWpc3eXI$-W1jetQC3-XcL#f5BbuS3K2utTGX@_zKcdjOf z{p=No{_@?n8ZMHb<0yTZRTi;SXVP|i8)&>b!zs)wL;$92>$*;<)n+8LO0C5bjSNe= z!cqc5B?b{80b5ol2|Be3m@Q{OB9Jr#4MLbJ9bCWx%LnN;DWVCHq|-DzVo%#JDBL>b zsRly_4UwF-neb|cI4}SnZ@RRulWH##EY)m#m{Yu^Sn`e#qI*S~@Y{+e8g)gVp_)R! z=kDr&f(jJIyy(lR)9O;jc$c6dC~nOuE)L%S>@KJH;4Zbsb4Y|iO05}frc9Ga8#Z9v z4c7L~?nvC9q4^@gD6g*WQPwwksy<Vb_ZI9O8i1pVt2{bs=8CCaR?lLIPaa0t9jiFR z>SBwna}mt~vb@!3@V2k64l;#RLkl_kDu<L;;5peAs_74NJ9E6FGj=KM^eg#W{`Xge zL&-X(Bd64fA`Q%;Zc%q5<~i`QWdWpse4vL8Lz{Cu8L_I5@q|`n^{NhxQF(Q4lZEv! z7Utr*MY_zs3hU0t;HLRyc1Q2uCOl?HAS7B@OC0T-&KJv0GoyvpJ<MPuMRGZzi(@Bp zq`u4~aZ3+%j6NL+30VR<ZA!!wW{Ym<Ix!X7pmYnn&IRarPCD)q0uT-WGAL4j5q1>j z@4t`0O4GuGT7<>`(qPivDVJ-NO*Yh8<Oo85pswUVp@KGTl|a_S2tlDrm1c`z;_mHY z=K3H@>lQ`#>QUP`d-<)pLMdS(Ksw|BJ;bnS?!O6Fw6kboSt>EiAWk<L8Zg6(fb*IK z43r09x%jk#h~+d@Z&onL`4X1q6{>bnp@9=4);7=!iP*SyJ;TekE>u1(?xd#M=Ji0> zB4C7*ZvfAVIK^ZK_!w2^?WzCBMZ&!Uzw5JCtu=Y^)YB+31HNl=xn191ht+wY#CLsp zI9l~Rnv}Ro8Dg2nk4;75*WaQ*dZ`9LG_L6aquMfalYn8M2D78JvL;SYwdg?4t8`Fo zwKpKW_Dl`A`tFkk(o82qVl`Gphghr>=s=hqv1#4X7Ol%#GB86$x;hwe!7KWT29G)e z^al-F2)r>*S)}J9byn%u3r}P-X;Ujw9J8CkI(%QQ&^0CoMxyjfdX-yv5G^{{#V9f& zgivBpYQ(G(q$p!rMgdDBh)P$k_uovaYr+_}E?R|}C;<`-Lr@bsKoZamw}~7CUdORQ zCKL7`opg=ULUWh~2odhXC5Cnw7Grx;1(l6jyOr~;y)AgawXX>G6bA<g5muwEPQ<*f z2Ov=u9_n=xE_%9}Eyac1G;1h=%<-h_jU<JR>u}A%!xj)hc&`c^08xU@1$e`9CQwmA zi!K5<^ehC{ww52OQq6b<KyrQzjKxsoDzHA5$WP2NLiER<VA)%)L;!SFCBJH1n}0pA zhj6wL;cU1#GS1Za6CE)#zPV{oLuIgqARAQcgyTi$(#E&$VD6`@NLQ;F0Oo!G>KWPe z>UGF$*5HNGfJG_CVEZppYs!whJN^7)Zw?<dn+-0|q+-R}U@o-#%ZqGNim7u{7ixzX z2rU4<*mMXtQiN-57DyaLz`iLC;Gne#YdtitNocgGK{Hv<ymmSogC(*c>nd9;;}CiG z((}sWU+=v1^(qn`r5lu1?1}SSpNh8Bg%WXfX-?ZF0yqO80Kn5QP+cT_X`KpO6u?FU zZex_oq%swsBy=FE0do>1ok|20Ou${H$d=o<#99URmCmHubqKoUuqZZpQE9vl#K@W0 zSVNnhj<k?iht~?R4-e33xpporqGcM>;kSn8DGYW((&BV+9P3bqhes@q%y&wv8bo`) z(!_9wswM@;;=YBZ3JA}lHAqN!M@gVQy_VRrZMQS4K$gjwGf>puJ2Miv8&sOwyD5Ix z7n-f;^zL<@iZ`+1FbxShMe-Au7V9Y)In^67q+NqFB(V+_U+mwTLXC64#SHw1Ck;rb zfh-6$=`3XF^JHa&UcGIt!ZxQ=0y1icMXXVn=^9}bQIe1xh8Ep~2D*)qBQ-H&_N}p@ z@rc@(0!D6&6)S(z`7dU%pP|Ra6t+yLkwc*tf^vnO3K?EFB9i9osXGF$+J+Vrs!NVr z@U2?<-8XCIz4H>%A%Ix%qJ!vOEG;>&INov3661;!o$tAn)0K(1p<4!)29^p>qXn(X z(kN#Vrwk(RpQ?HBcWof$9wqW@vgwQshqR%PfC&wI5wijZMiD(DL`|<InLY*#c1(#Q zLIgw=P$X6i%Anv4-(+d2C1SL`xsFl|N)M%LJOHx*sCSU1mRGIsSrSfUp?Hc;W58&1 z%^9{9y{-U4K)t`xBNQWOvIq?P7M7-sP`ND>B)V@X)pMl@>%jvWECmb5Q#ul`Lz3mi z%Lj_mIK0mCPK%Q4IT%g`cx~^g1iDUpF=+~LYC6hZpN*4F(NAfM-?spg^1DZ*@di=9 zbqQX-YMZ)`UBl}X?P1D0zYPf(UTPs6Q_NF!#*UGW^~QHQkkXm}_<KhDJ($@{WJV)q z53@wqYjtzjR%DoEXboMvjGc@qUgo6XEIeYSiA3rCbhy%jOl<{AGlC26uZ>P>h(N(B zwe*U*D4dce40CRwhP@_(KCCadNDEES(K_@kAOAGhg>UZ6+YS|OiEN`aEr-{=gOO{Y zZr2n3!N#tOKb&Wm>sqA&%CUuXND**V4+B+hR!c@LE08Hb>*?HFAHL%8s9x?P7j4O* z<ra!I+lh4`0CCQ6Y$U|hkq>Bv97jw<69h<#Fo$V{4Al%-+gRzp>C)0sEE%AbBb@Q{ zJ5z$fsj5<!#(RJ@5-deuOzi>kRQgusg`*jkPKH+?oe!*y*Ct2wEK33UnAR9OYBaAU z=a?3%wh{2nY~N4&n}#OKxr{K4<pE*m-o6iLGt?SHQ684Q1LPf?L|`2TZ~?m8^Y$KE z1fMuHFxS%b6RS7A@O(A!r^VQ{krlF6Ixn+u|Ji7^UG%gkw=#Ap(>h*yQzX7437a** zwiApPe#_z*I-)2^hr}gjomCNH?9(+Sz_?vkzmLt<G=(9gf}tY@AGC()HeJapqsci4 z<|3sCvIk+3M9S^W-q;vVw4@3((fFLL=G1o819F@1H=qMk&%Ai+(hF0azMehn;&<Sg zYrjRg`kOQJ?{CG@W#8tfe|OO3O3gfYyrXz{#$=(V&RqyWX~jplU2&|s^Ahit5Ay9R zi0|(@#PE;>yl<e>s)?-zgwO?mRIbC5K5t@uW0sXeypBd6(?R)&TC|mbusc&4oDt_7 z#tj)kfL2ICTuOHbWt;XAVKZu_n<b*DKDJ9)q8)cn?JT6Gt+SjL;OUs;9vn*<YSRNf zP&@F1ONr(};&#SdY0N4h!|7x^?j7~v#F2QRE`gT@9e@eM?EwJ~$C;eo9Mml-xN^Dd zp}LL1Ds;|Eb|^wI@$eDDy&2wV<Uv>s!D^m}l6Q^)od$OER^kUf!}Z1IHOEc+6wGRb zH#~fLR-T-4iW!$@wfz)+Iqy1C=My$RVZ2Q!@woEKJ#lqp?HBdo#B;EHr>(4Z^6CA< z$A%y9$#Ap#>Y4ZnPw|SO03s?fb~9t#Ki2%u4aP|L*Q%&`Ee?ik$wSY&<LXBm$x#Zz zL4et;Cai1KZKI=I6$~@W+F^dRsIb=9vLZcRPmnoYWB-A@@mB}#a7NYIq_UP;`txpN z_rv%8n*aT%Hu8$A?)^2-`ybvre)R?a&tF`9&mZPHe-)zSN;1Jx7MIV(v%qDD2m)r$ zwn2je$fFPe5E~I^DbCM#)LInh_J9N=q@xLeu63BWVu?(vVYX%@6Qgpd>B{9m2^uAu zr8$TQRS24t*rrr1hQ!TYeOl?8B_dWTQ2l~xN0??8iEd&Uac!DlXVr`Zh0~<8qpk1| zghjTMc<HW?aJD}-v#Mq~mr^Tk>g`Y&*VWc$xenF#LkASY{MjWp2>KdCIN05!Iv&o& zFp45ydQ$^p(EvmNQ&P(A9G^Q`B7hHZ`q-B}JLy|9y?pYS&CJ`+XfppEO&|S-J?UBF z-dl!&U(O%!sUhN}?^okbG4xwgsoSHe^7OaS!|n0z_6*xOWt;cB|C_XhyY_|LV)su^ z?tlJo_%Ylm@$Ai;Pf@vyt)t`qTbHMI7IzfJW)*4oA2T-W+Q%FvGxrbe%KfG}t(vYm zbtXv|m9xfa0kd1vA3k;#VmkJ_iK<bxFIQoA*Cz}LAwV`uu;gnDth~#B<5kFQQ|r;P zVsX7DzhTS21NdjD%!YwnX`i9P7=6T-tNiEl@_7ASpI4vH%axS-Ku<J4p(!MkRt-!5 z08qIIK%l1#XBGSyRi4)rRfvH#GQv?iusH{2H9bgzR8H^)5G?|2$Wv&sEnXmF4G7pA zXJkrrCq;6YYM?<<gf6<-oq$p;o1&O-Gj7J;IBgk<4PlX|6ulfW!o|(F(DpqPdjLRy zcQ?*#aTwf!p<jK+{U@j%8$K)1SY6!c*A~JdfY_1iv3xqigFvZ{4#VTX6H52A^tzFD z-hmL+_MN2}zTYD$35lDaC-8NfUqH!W4XgO5&rm+EDcz?{#%(z^|Nn)@jC}4>{%X5V zJU^at0dF<&EtikgpZ0BIx6dq`-4gcyGfVeR1-vQt#{cgx`SNSWH+ClU9*UyN3#n=S zNMAD*U-a_+U7dSp+wifm&Fy&gTPMFZ#qO&s>tgrcj-k1cBHi>_fMIQg(eJ#drOqg> zyqluUuD)1c;zhORVj#;HHUu-XsuaWt0JLNI{m)O(v4$~r%X2>`{v#(7*Z9y#$qSM{ z5z6T>&_Qm;k&@(Lj={^ywH^1drQvam`2OP?*}{eKyt2;RsU*<n^XlsJd0ve^%5-tA zeWdA<i;2KV5`n;6M&i>^isdoW+3k~~C{F=Uwh=QlJAx85LpIPor{o!MXbX-cjKF&p zTWy&*)tJUGLo#KXLT6RmlySLrifdS2k3$1c-+w^R775X(YxR0_%NA--<NXQ+KZEE& z<5-)P#EuhQ?OAUYO7u<69nllsn;}Y?bwk&U#`@{AhxAlMBD*7iiXHgy{alC<QLQBR zn10%nkfPMRleQVK9amS5ED)|r_iJneO1f1EVx0gA1>ja47KVr@K^mkg3kph!7R0Z6 zXSUPlwe;d!w9jq%x{p%3|L^`|UiLiqy4UB1Hy#-E@Em{O_g{?L`46kT*WP{n%DGUR z%`fIDDdKj%@Ue<M>tV*&b+2;h?G66T7&|<QVJa<S3o|}ltE|-at4mB9IgL~+i~#A4 zS6`cI44ElYkx^a78{c!pvu<-)n`>vMo!O&OUfjj2v}UYd-FnKDJCx=+fA=2F+<%hy z+iMta<#0O2W6?K!5VZ83bWdg06YH`2%Z@CAUho_K#SC+s3;3Vj)_6UhAAO{kYv=QM zc{2I=J+D8)%XP0M%#mW+3}^=Np+PiSbtXNW<g{7EU}<7w*f0eGSs~NRG{7#CQvt&g zDEJUSi)o3l7{I7dFT%sZ_AZ+|wz4z_Bw{6v<6Q4P;(BG=L!hwcA*cLonrI_*%IUbr zIt=CWk38a3N>2-IvXNTx$dTr|cR#}T#lo&Cmb7aLU59MfETAd}wU3>`abuQ7g__nY zrphUVzR}~Qi_})<zOs1F5K6cbLU?mpu;X+Bu!<-i^eVSx6r|H=s38alPZL6+kTFCk zI7y1kf)bRFr!2zxIf5UEdFFt*!&V~gRR8CUNc`3Rww*dp#*njM#57H0IY`|rH=2$1 zf9~p=|K82dRXcRbH$O5TMA}LGMMCQ#qdV?dPn@9nLM1O&S#bZ@V=pS-*^73Hl^5}? zyr%V5@+b=4p00$me9IQ6HqJi%-oxuZow{3Nqn6{-i{9lwOM1FItVY9B>+*E{<n`Q6 zvAVAMyKk<{>1&kUF$986OJpOR7+~jOH;p_U-3f`Pl(=dv5+sq*lz~79Dk79cu^5s? zmQB!xN$EWSx#tnXD%&pOFyOc}<<KlMt}l7LN60Zwhtr!jIt-e{;&oPMiO^Y#3R|?B zJ93I)A8VSz73*teopo5g6U;hB{=yOFy-Qv0UFPA==_4WXOfgatinb9Hmv+wD$tGce zx>6|#gPs~w(nU`%mA!esB$v|>1+1#Wyuh#lLJ$^TZJt1rZMec%AHD2!rIUiv0Y@03 zng^mjTBTA2L4pCWX=732gb0!@QQ^^6!=k4FPhk(9twv`Y^RskL^|>hb#6_kD7mdTi zq<Jf=7%{W<!Az@{Oi$=qqUu@SxzlJCg0_tPW2Ed{t#4!Ke%%-$V>)dJ9Kan>y_7n? z+?dT5y_>W&*X;E%#Dn?FEAXqRYcpM$PVw37q&v9pk@MGLNG>iuEZ%UgsL@pJrXn`` z^X+5Y85izaH?(flD{^u@)0~e>YECzpsy~!|+c&2Tv!|?vfd;}jNvDM}X^x{#_jK8e z??@q~Zg!w_*yiGbf{1-T1;S1ADGPzqn0F2XbZN~4o&bE~INIjg%cG4fbG;8>eYRU3 zhVQ(D*V}Kv{CjYxSpZ`X!RwZ%4N|BF0K!4Gfk7w^LeU;WCw;ivw>a%7XL!B{V_EoN zU2`4J<51gW!7<t*<kYVY>N-FH9iFB&ZGX9-I+Zq4PBRO!cN5NZ2hqy`+WRMV!v{B` zAjXd8{kLaFm_QVTFjLFo0|G3daHk{C48s~&Dqt|O7D6F<#ISGPpddr!DJBq{lt6j4 z2F13e@PZ7D7WD^D4pfHrt#IvsrQccZLvp|$JYrz!AgzQ#>0iodbyRceum3GaF#T=C z(>(J=p^gl5jTmxtdW~b*-l*+=eM1z6O!b;j8iFjq^xS6i+^w|AeQ(;Z-vgMcET7H) z{0u+~qBD)qX$2~8vPKU3#{Ba+-cAk5-?u76=iRV-1(A4o?dQiMg(-RV=(CPysQRMw zuYI9N^YOAS+Q;uXsHdj+C;qkat#lhd2YeMkUSW&Xl*PoZHkwWYhjKe%9da78oqz>+ zHPA8YkRUq@Hj6Zfu?~mi2xYa}1S@0*7cB@MO>P;n@Vl<ZLDZLfs5-5s&i4kxOwAe! zYpi&)Gd1!pT7IPy-^O!){wB}9BP4Rq^F)?b0U8(@g!kx-LQrM9Yz`I=cf7ln=L~6a zbc2bryZhk%p47cb;_$~i^Tw`0*R48WjfgN#k>gGbYx8I#TV}}OAh2@>LIFBFvS7Rq z<CzqIStDq%RC)CW_M!!-M6^;G83H0oI6#F&(o557+dbL_S*Xf6NFpu`s)AgoN_QY# z*=87~9)ALWng;VKuEQHZg}*ZE=N0XowHP<IDli3`XKMG%)o?LPt;(|GQMFmunSbLD zYJc0zIA?{+eVH4_r8D>0zB^l_RJ^G{+qgREX5lW|K9`9!SAFxu)bp`GR$$oyHO<F^ zz5oC5$m>@LG`^<DW$%|X)<|PmarA1Qo&EQypt0jmr222j)GzLy1CNE5awk*H&#xqs z#ovY&7uo2zL~g3{;%<27W4z@2zvq!X0Fhd_W_)51c3!ct+WU8QE<7F&v1I7PR;z`H z!k-3Mbb}4Uu@>1qsTeRaX@Dd`4s`EKr~wiNpioICpkPBCA@sfv`>>4J60uU73vz~s z+Lyn~@hyAiZ{PfxtH0Gx{c&dUn#1N52>pljzO)20%)1w;-@ylc`v2eL74IqWEr0qS z)0w`xGj9bB7|vVh3LzASZBJnt8eB=mFmU)Sed<r&!VBJUUFk==yxTvzLW$xFDe3pL zpEC|*T(_aD<3HY|BEpbw9ZNqRY45MlMFmQ8a40_(80A(B6T)<z8US!7&BLisx}PQu zv7>29)n(PjB+KOfEQ1}}vkah_j=MQ@ut237N&r+&k4=N%lAY9`GAJN4!s@Fsz?D+K z7H_q>-J0e4Q~ZN5Av&!hggk(Q1HdjO+N5zzupY4cIRa!0YUN6VmCIczH$kh2i%Mrc zx>pb3JWV#&ABE2bg}98k8bdS;vCWl%)29~w$Gb0izdZH0YoYxv_OG7X_uro2{ClMw zciV<;6VktTU>W?Zl*pel%L%phiOrzypH%D?nC)R$mlqkLRX+Q9(}DfhJc>FWqG_Lm zKJoUC3$uE3>+Hgv?~`w<m)|*_;yq>c>gLg_`>R*??mnA}M@zGM^r-=lu2}V_5a<wr zWpy+HtIr`L4iJ=NG62Y$AWX2$CdkDqq6xdl3DQ00UZH^MM#zHLD)jiJrK4J+G|@VW z;zl(!5|t?#dYt#}^MpBZ<lo-cYYvf9VIT+3rI1q{<-OP;Zfx9LgES8R&G*<NV<ZW+ zCKFR5#Oy9=orRI6c{Qb_GCOjjyFWXObJ>E0RRn{0SCMI!Cah!s^sn<V9Q3&dMD?AW zn;MySx#%7w4JDYCPN4{oVxhkvk84#wI;~|>X?3R2RuyZHM$*wX!l+rf2$$blh=?{| zDNIz`fb|~%QUFW6qzVVE?u7%P(0C>+_5wJppbF^&&^w(9*+7$vPzebHBXt-89l6XS z(nvS}<S}UWZAEp5ZRv!65j^@HG7bg~JMAm#bi^!+{l~7+QcyQW5DwTTdeObj%CsWg z(Y{UxQvISOYk-{(GwnPjxdyDrix#N|c|)N&SxK<2(r}jo>Wx3H@h<Z=8F58%rD3BS z6tkkVLWdTDMe)hyOPSz&e%USjs5~a4D+9TNdsY&OAS91|;*-4jGsmWe{xG*b%{O}X z%FlALw)N@Eym0uLFMAQ6?eM~-N36HM{rGy}DdnkYdlcFEvkZSslNtWQp7YdFw)0@R zEN(rw#4U0AJ#Q~h3mLSeyDqTV7;D=0o_3>Yiy@k@Bie#Uy&kYNO*-hncE^zz(InyR zUe#>0wu8pNLL?qPUDPnZmHteDMG;~G5+-p7%|7C%-@_!CWDnUPIDNFA{*f%nY?U5< zn6L8cQO9Td?OExWAiF{l7-$J?ZiLk8kWm>zG=peMpI^$rN*0SU4&szx#L~4EjS%A) zKl!H|=Ev9*NFJlA#!cPoKp=y|CwRy+6dZV!#his{;%f_%k~;oR-W6$Un%lS~F_EWu z!_$z9@GazF?|zpk)G{3ad36pDu<~%pc9PEbe&aHU9RY10JWUg=Sl@u58?XV)=>`x2 zNQ!g^;X<**K%f~4X{Iu9eCPvUia^BV5|TM9ZtA`NnDMI(GqDO@Y|$^*69_d}WvU}q z-1>BR(x>fVY>))o!Y%^EeTjxe{1XMvwuWWL+?dJSqUzy>7BF@=q&OQ-E+nA(<jLR3 zEn6E3XE65fXnniMqg2CD!w*bJZvRa=E|xpB7Xx2#O>#h6j*;i1+1#|SJ~n{L9{f+i zR6lXxFYsXzb5J#VEFRr<Jz=`^>U_d<aoOK&I_p33sZD3DG~m0s?CGz=GjFzU`|N?w zaPs0u9+$q7OG}^W<c0c~O<q_l-kAxb7q!Fx%unm!?LNjI;Hw@`q6B4euUeKgX)1u# zLU)TC1O~fFhNMjU*si2+aH>HWN}H%SWTHMC5+IDK9ujsf&t{{EAT<rminEY$)c4-= zRoTkZ@-Po%|9v^J{esnQr^W>Zl1l!oD;u2ON(rhFOM)Ut_|AJAb7r58TgE?4bZQ_- zC%Sp+SMS73`;zDP9^~|=N1UZNtjp0gbGh@&58WaLiFO#t@t6ID?`N^zL~3t?xykK# zOOOIw`$p$7N`iZ2VK}2a7OQ?n7_0R-!nfWD;InP(kL6^q?=7~H`Y<})<`86iMk%>v zjm3q4!WbJ=fTj9r6-uM6nKWOy<Dl2kY2&T;VWE`k%y|ZA+i0WtbPxgKcn%S&6%KIO zb_}w3iNb*fW`W&iT9*Zaod~2$*Xe?Pj29ksO6FCJ<_41%Xh}Kmt1wjcjpM<)*&~%E z_ZT!Ki5peaf|RZqnzf%Qd0EYwDp#Te56f`avGglsMeS%H{W4W1V@v?mx@1KLgd;An zK1VSjvRDz^@@1k6cIf)ktsKgNp|AP2{vlV3jm4E&$lH~@{6Ux%YO(;PYzfdKP4J*0 zr8L$eQg1$8g1_0)622SDpZmaX+PSUqrqe|_KJ&>7^YJs9yzsSnYQx*kyuk1{Ac%-6 zz>rRd1<GY6eE>|Cix$DeFlvRTFNJN(0Ng!RM+WUA;hc2RJkT;4QmoNdL!g*i&AgV% z<2>Dmqj11us@zuhhJy@fQc^61pxHm4nQsPC8-GF5`jM9`()F7NC=NLWf0ig9p@sGG z_L7>s9LL<>mv}pe-NRL1xxiMKQh#deWVq@$Pp`wsiO;VCX7;gv`cEFp4d3d1gQ$yx zd^x_80PXhRXpuD`Kje2F;#LW`Zl2#QN<>8lEsNPkx~d`)$POrYI<TlwAPnMOWO?J0 z!01^W9(SuFfDL67UTi~LDoFuK-{_ay%4AWe_~=7`RSZHAO%n!I4v#?2El{N#Iur<= z1vP{zBMjbZ=$JDA4t0$<?og&=HPhypY!dDdZcDY579(0QC&OuPZz|J2;f1iY9ur_S zmq<N^3)BuCGfsAbG4q;SlS1bUPF`%*ff2p|wp+zY0qi7H3zSprOm+xbU7$#%7@XTa z2aZgUsq`X6UYYPFMJ18a^Ey=n=nWS@{BkOl3OPQH<{1W-8j!*XK%kcfRz01dsFETr zA%qkq(giLXY-efci~+i3tTOx9gIYpN$*T_lxF!e8LATQpfr|$|As37ZPP^O*243VS zAb;Z0V$26k7vlZ{ikdCf4%)w-n@bv^3O@uH2&HxeNuFbf4`HG21-INNvRcO$IRM#Y z<I1i4#<{G&+?R4x{+vmGMUvGDLQeGXPT!WpkDvVoKlx`JNUe6_w+nGb)b26Iet1LU zQO|GKprij*i{sNroSzLqpB*1V=(!-QY8#B*9J2t{pW)0rYpMt{C>3Ne&ZQNh$*tVr zYC$WYam4+-mB7rMUR^zf&{zRF-EIX3m?C633C|J%cv#Go63z)MygC$st7>P9iw40H z1t5?Vk;JfpI9yP07@F*!fCO|576dSjfO4vdilearO*&w9qFzcEy7VaKNTEbLX~Pd= z+rfw;9qi;Jto@VTqcA+;x+>#)8L|sDf)HEIq@{%jY=pYKJ91HhOdgyU`NseyBWK1P zP6S(`{BpUl1bT^=%twc&Z3&<9?qsq8q_j6Gt9rl?g58}p0Hf*+x2%^D_@$7J$!y;n z9iBZ8t1L;DrUWTvo0fvpkxJ0rtA!vX1;9&2HZ2{BXg*valHv+LkVK0e=)uUe>{1Es zcDG`%+X4h?Ai^NiJ_zb~#jpS#mc<aFzsYoQP88r_NkS~6>sZ%!*v-7(w|G#G_mZo} z<{&>w!<LsZEx8j6l@HBC6f|2WY?6;XdEI+Kg^dE9$IvejYFfl<2Od)nSMLo4ZK2dR zKJyaqW+^s<ZeSZ6UgqgdTuYG@Mr}dLKae_Uas}(;!k0umk~}<!X6OzfVIzUA-Nt$$ z+%9@Y995bV%>@Y3kNNP<BOdQN-0@x``K3MqB3z_)yuuW{X-26Q@`zIB3cZ2{P{1NA zTSm#jXkC+9u(kedE0JwvYe2e<K?jscT!aaD%z#Xn(~v>L4quNbO!;Pl37&3uqm?Ch z#&KkwP{~p6?Oo#7<z3*J=La~Q5QqHv4#jIZQpzHE#3Aj6Lc{*Koqj^cNy@o7lq2~L zCNol*y9=RKZ&Kh?m<uWBKr4g|s@^pSr$h}(+hYcm_yy0SMiz>`c(5YyFDO+3lR4^R z`K<Cs`JIu<y0JCASR@oqFZ15d&5=>c<q|06O&fPK1+*j@K8j#?f}Smvrs@RUt3Y_T zHBO)e;KRql1yD%<EG%-`5Zk$+o&sSmI5-S3jka74&~{9lL(;{t6`Fv7Hqmt0$&%d_ zdN4i2MT0zN%FtmJLXLX9FE~nw9Z)zT&bD3crybC{cfx)yK6jx&v8-ec`}t*1Vm1o= zoeCyHY$a#li_Q0YLjMe*I<20kA}4ux|7*EdlpUn=)3WSki&BnISz_pOhfwsZ3@jRc zFnp$rQ^F~gIe^ZvS*0y#1y>1fJN@?L(0-!o0%=5T`>a7=K$FMtmg>rBg@urBQBURZ z?(WlHWG!b7r1v}=QTl>WOR-0?hcu)sZ>NsxqkX##vxNsqL!!iFz9tHi?bW+3&FTn1 zj6_7H4>GD^A&o<&$w1x<XELElJiT2q0IlP3AuPkh&?IZV9T2q2xPk9d7D&n%1`s>s z2*T``Dk7{i<jf6DJB45YHSgN@MS7ASm?7<>(Uccb2@n^04i4BE5)_GYuy`7>&rW3w zwU7-{>Sg6fEr<~jKML3!)>X1(_zTYL61so!UI!x0f?$-#?V?>W7(=R=lVxu?6??Xm z9+9M01<V0VgH=lkB0S`dDy2tQwADz^fh<%OB1<>A2`etqF0g|DiNrKpBhs-ZVA%w^ z(ExA|hX}hnF`<Tm91;ZsX}|;xrKL}WF%Dgh#H)>Co$opP=}Ni*!eE`C^|eDK1@Qpf zb|`|esTu0JroVEg8*9v B7SE>KG-Gr<Kak2Zec;QijE__Nfo%(!m-?<3#2ZAuye z48n9^u<#3856Mg+dSxnuHYNtMm4>azvtaR%PQ!;&Q8a^IttYdVhz2T#ef_NLFf#oq zJ-CA~);n6ry5Pi=h$jcvD6#v9Qt1)v>(`&g%aaubEtJEAg0_R1;J3lIJi<^O1JRpO z;_U9erK>v4B3&UM?+81g&6yS=@MDP|{ozL!KPDgmCs2*-_Ru5=uEY_NM`22kO18u6 zjF%DE*;$eRh*@Y(wWDCuRZ!QQZ^JhAI7!4*@}ofX^FtyfIyXDQi1qKtRw833T|WyK zsYsn`*mqSB6(IZips_9jA%Xss0<1f_mR7?StpvVu(jN&Kc93mNx^qF6I7F04_z;j3 z)@*ffe$@fZ`QL87<WzjYV3c@CmI<Og9v(QQXI>4y*B%l$O$y*%7<NplU_lWAs?ky; zB}*qpa}FJ_i^Pxwz`zo-%F!e3V`(}uTPi7+AqoUeO+#-PTbD3Mf)c75)S|jhHIq)N zd012vta6!_$wR~;dOcHU1|paVCq;AFUw+?_e{q{Fm!*Gp+ev=*9}X^}qZntDNI$F; z?WBQh3#(GV%BFx*E5M|1-vMT1Xu?3M@GAi_u=IHT@chL+kHZB(F^&}z**z+A(jR?b z*t?E-Y!Il+R;~rx3pWET6`3QM?_h;!53+vpIk2fJxAo82tN=BnMQLTU)n48_T==ig z)B5u%2n>Jrc_35X;dwa;%2LCOI}nS+I2k<3C3Ru2`08085yi7Kov}Q})72Cqc&_v{ z%JxmPl9H+*q)-A7d#W9I(tuFN0{C}bU00ue?HECdEwT(EF&#G13VsZsmMcTwR+mAk z(ACpDkefj7h>SD);nDb>;d_qnc_>miz;1&CsWjB|2Nr2kO+$?savl><PQbK%W1nEe z7L#-PSR$-eg}u<ca(Tr@P#78>N)1d1ja4KYHC$%dauLXQh7zEzk4$ZFyGLO%!H$2b zia;nEio0bc5kf9-b$|Yz;Gioc@8qOd#U=8f2|LOe1gR!f*vSg6|E`X#HDQx!zMk_s zR7Thf-n3~*cPix(0NrX1Es1UQD2T~9?MO&~M!wDAfX}+WK=<NiPO|_AJZ_lE!nD&k zO@?Jd!^vfT_5m-*x3SA>#I^!mJf;n9FGjY{Wv)LJr)PNONlF99u!l=hLpB5mK2T!D zexJ<X&9msu5TznblpgQ?Z<oCP^Y`sj|NMmh_+mGtDtVA0EfZ_Hg{L(L^12XUGf)g; zS$lD9TosW*y`+Jt>`V~!GvCV3cg~JkY#{F1Z-^+~(8E5YN=sBP)(^2iPyZ)#{Vc@! zF)GFSm;S@&5hEyB<>2Y0)U>yS`6~KU>|`w#zP3Scv{j9;ph)YtV_~mf@(y+bv_>(k z=9mEXR5X-C#EKx74X<*^5Lu19-PluVCdN~yt~o93J)HkH=l@0r=Kp<9(&&6te<+7f z2h1M(q@lN*^rV!Il}v-sm2~;CI*GnLKy)iXgy(XuGc#s}*Hq>Y2Pn=J;Pj$~DYT+s z2EqT^H`C)>!X<#T{LsM;pUxWmdZKCGAw&bIGoeT@YHQR9*ot5zKQpM5I_zz^Ln(5< z%vQek3`51tQ{7D-xP8tbg$t7Vc%jP8pM$NOF^6C6w~(}Rwn%%Xo}RFSlnBUG_o-64 zNU;P!RnejF09wY%z+wx68WTq_GR-ta2%nXEw~!%ax2L?th;$9Ylk}KB`@l_zqosBT zW|(b%C61QH!deOzH4$lNn9oX){nDCLDrKiIk^;K|yZP8Ywn_o=fpv$e(60a3-DF6| z`NdByrEw`-^^qe_`Qjf~ZF08FQ~%=&Ke_%?FUlvl5y3|C8_!Ub1S&QO)OhJ$prU3e zj$3x1yj9tg-aQv3O5iDNTXvSMRrtG+Z)8iQfd}?OA+eX+Fx2*#{$V`y5BycS9VRO3 z=PF_<5G#7d^M#bBhtd!L;A>871Sr~Vc=>t&O0+Z4(#bPC4Nd9O+we+@9`r!LBp(49 z#ZpNk5KIfWl!g~OW_93q0vW5GOglr1=d>v}gk|~gl!VdLhc50^WJQWG2sBMnZb?DW zi0ef^w0JhSu3*kQRLDSeN+69^LUuN=WOxU~!2t?IU)};&!~oGUriu<0p3;lz+=OHK zq+n0KMmqF~Z>};nIW=aV*jJ1)$1e6DpI`>US=JVz#zzaV<Qjy+z(?_mCjLIR>0-*M zO+YG*eI8y25zq#lAxp57bBvzE>3S_LAoh2qO~9f^gpmr#8#e`@h+!TJQUEj@nk21K zIoo~kS$UmSdP0*zU|&Rg-%A7aHYSJq!bf|tg&^NmDMX+D86dxpw+S#pdf|CYp+NYD zn0c?F%*ys00tKikY7+`|7J1?S{efEmBPw5h_N*uLe=okAZ@vGZz20c7hoPH;=uQ9Q z##|{M$x0?elpMLx##7nMzEV3@xIUKl&Zl_$MfM`SqSkEZYjz<e8}19TGHysLp)|&H zqu!tpD3B=ShbK7XK9)_DX~gbVyndgd0D6Ifbwjp-?%9edgd8Cv+;0tX-ByOTB1>Ms zRUU@0YEuJ;0%(I7T?qAu>2OF7ND<~yI)m`6z}PMO8GUqsjFw|E3vD=oKmx$`9teFW zKCseEr8)x=hg5UGXtn~{Fm(NMa%)p+KWEsmwxY#;3ff8%Zo!tN+W?{6Pz>C5g;=08 z;SYB7cm!t&ac*p1@P|HbZp0;+Rr$LHyeX%APDj=^J<AW#kg=^h!&MC~3TD|T#~7go z!tc!HWou61BSAJJDT5w6<xurbiJ<_wA~&@8`~<%SPNgK<C@`}n7xsqSV@i^nVC4m6 zao&S<0Q9%RO0(}EZ~zPd)B=eT3|O@w=3xlZLr=mJK(v(|@H!lm3OW@hyiArY)@P;7 z&_yyd3#<yP{z?MRwihq?%MbNHXxM`A(<JY3pna2om7T$<3p`7Yc3H?lDIuS^*RKim z{9D^L4hLrh@G|%zHJO4V%$RS5QU3`N@hfs~1e)(0#6(N`KbvZ((`U=HByKh+QKWc5 ze~_QesoQ;M2gxxZ;gGfm%Kz>UAZyH^7Jxjk6AD<5xO$V*4%&lEu<S48PH-l?k&BY$ zG-wM5av_<7(u{27SCB?f{*{*b=`Dx&{<92MddzcC7CbY+!V+rSQ)5e5fCG;bWMP&@ zr^F21n-aC{pm`cHhoM`wm4KciLqAynh6PxrbQZV(n=&d<SebTA-LbpWW-cHy(u{N4 zeg=Em+LqQfpD|PwbK<m{V>yLIvw+q$YS=Q|nttb_Lf95epYV<lJmevxQo%3yDd!os z&7$7QGet{oU3=cLxQ7ger6pPH^ej5$V-2v>Ws~ouA!BkNKL)UYdIA6<kpv_1O}d3b zqV0ongMoxWy=wQrzQpm5F99Rpf1S8aS&c^ft=W#u)eaV<feQ;whg#naWvDwcZvjjb zlU_Or2~+@CprAb#L+_V5tl@x@gkyj~tP=uelGwxqpOrJk64{9fqX90p0Tjib{D@!u zU=DE~iz6Gk;w!*uOo}Wz*y7-qE;;8F#ax|r@|n(*hNCeB=+^_9t<TGbrSzvHbOpql z2PEd8_q9dr8q0cvoI~|wVAzt9^cqfT4g&?1RI!IcF>u5?Ys{_jG$uA`yh4uwWfX$0 z0PTyCrBdVV?VATiDx~-T;BU395-gy=gro*(rt%N6XT4w{g{`Ta1c}7<H+@4(eE;c? z(k=?fIrsoG6n*L1u<wv9R!6i*4Jd`Bli*y4QVk)c`=RG3pprQm+tXqY7#*9P5&f;% zELtRrBvX=%h{9YU;C_{b2l_B|xx>~ge=SxqB>1{*M_l;afkIbzQ9`QhY2S$O+rk^w zh#?+Y`stE^H@oS}l*$5{;S7*aM2c1hxbu(?tOj`tV#8ha<^mPlfY0WhD{x`<P9mJf zW@GT-JnJFED8*t$Uuuk`gxI%<I=k7Gl6)oG3Tzn%tWB^;O{rW1vP4XI!KcX846x-~ zsN<gQ-6)O>h75qVWSY0r5(;jWXfJJmBy0doB6s62!=G<3E`>Bx=Hm077~ir$-Iq>o zFSz@Im+|0h3l@PYI}u~r?3MP3nW%Bz+G~cM>b>rN#2z>rHUOwBh!EmyI|0liXiq*K z<O*UfflPUcigBN)=S~RggzLgfF<kLlqiY!Uu8Ieml>8NV&6n>L!$ucGszI}*1oW!z z&NpkkHt5O-znQeQN4bY{<_nv=Fr1Rkn^fgcUr;)xoj!0_lpVGJw*a>T=|L$+SPEZM zYF?2<d#jjbm0L{n@ns?@B-{8s4{o4*91VbWbaAbJ{1*meF48dYydO9u`9yez(!R1f zq09>lhYV>XEoE=yiYq{?Qv+47ia(Q~1mTQq8}kKAMp(pBt#?#EI5(UUQt592$bMN7 z<9a)eAh+ZjIs<Ai+1cw*nnA%d*sSEy=xzed9i(87(Q7C%+RLs}0rnU;uy}io+U}?- zTCWEQY#mWYew$hVP*OT7wTc8|;0EQ*i~*exO@=p}w2;nSb5>hgQz;LTRz~v9i4+q! zRN1GN;Vq47Je<W9ACQVrra@wn1T`VKjQsHM8xX4|FwrOd;3=njdP*3Nxov8-%i@;4 zPi<Zh{Nz!t$`zD5vnUhXR|ZnF^$Zs>Gi}tf1f<&@*_<J)y$&PT9ICCRc4Jp~T9O%# zy(Zl{UgVLnZG$aN2=?}C(tZ~MtC7g>_?s<s6G<pAf@A}!H#39^!>GA2oUYQ3`Hijl z)jlrScyM9or}UWg7``?y&6OkQc77d35}u?Xcqo8ySi~5hjV`~Hr`qt$Yx{pvFcuI1 zsM|T1ysz`sknO*HRm46wtf~gmeSs(t)civXnlzt>64ZIB27Ir(w5%W<fYgB{r@<0e zzLk?p$f3Xd(Z*CrCAn5E5hK6}z`^$4$5<X%4457RntqU)^@?oJvytg%H5s)<<I8;S ztne`k^oYaXeCjssaDdpTau#lrVF`VhA~X;PGm{7H0~nDGkuwFULM5hVbM#R8zM3Z6 zy6uwM8{y!^Ps0-y2*K7RuFPbY?1Y8(#DI}c$fdb$Z}!^$yfl@#N`w)>tgl@O_owYb z(om5Tet5<azVwwNeeeiGm1;!0eSj2<P$2CLC4IS(t!Z_>kilV0hgZ`zRnkg@F3xLd z`Bt^jtW=3O+KOuhm=MoA7Be1=lNjK10H1hT4MZi4u`ZRe?+mfmnrWK#mK(TzJt8hg zXKIRi3T9I}NrE^{!ebI^D(4T1K`GIPqsB32aF_cy_I_+<U1IITPEi+JIzM{SzNGGi zI8*AzyX~7`+b?yD2t3u8L9fRsp|cO9MKZ-Dw#QB%NMdCf)P)xJp898<(EUryO#(|A zmAZp=QepA%$3AMM)u-EbKqU1VrQj+cBi%%n1WFk6A5`*aPbg1OG}8{0=g!d>xG85r zAkipn^cqp<keyzT{9P_dcJwZ(j|23}Oz1L$kIS`-;}->h;VPvim@yiQpfho7>MEd^ z?9JZi4Rlgq1b$|MTS=5mypbd&dIe^%3>i$n%)P7E&OsU7E<;S)i(GN4>*V-%Z=Z*d z!+!a5LBm1+GpjhIH0WJ3LP+k*)t*?Go5`fpbMn!WHGovv8kq<}PHco%Y=ScjOs?J` zr56iWX_MJK<Lf?of!)N<{o}_DJ<|Cva8K`>CwfRf$^qNqFD?KD0>Sx~7jk|oeSR#C z7$@;Fsf=9qLJJ5a`MWCiRp1|47D%jNz928zlI*(iF1FE|eBIO0fLUBLVOX(m6Fd26 z4i;ZH(s=Bp`|}boW<pwc&c;JX&Yd)WaSfg>u6gg=ZIA$ueNzk^$UB<E_+OF%_kfcc z9kFvq&E9$!xaAu*g%>{xfFTuc8<sucFtBK;Uykww8wj`Cmdje{1#MX+7kM$fL#y{r zyvjY0LmB~yy1N~&B@jYdSowLV2Rq|8POtL;1eK8HNB{6xnQ_f|!@_}$DRNwW<!?85 zZF}Na1lqafK(j7KF%eP9bKc-LERA3&o4jB@$_H)t5pknc#vc9^p?rp+kmNREG#cIk zX$cNv!It=o<k=2H!5VhMIplL*u-icgQLArab|;Y~hcaipJ?Sfgtym}njF|E|8Qzr( zc*9SunTxbUrqx^KJ@QJ~3=AyLCW|5t2ppR%AA{vm0oST;kI(xVgJARod@LZhkVOc^ z0QUj_si#T6retq|+}rEdb*;BZFj*T1pMo&N>oC~_;sh`WF*GTcqRaM&kMZH-ds7e5 zF~~mKZv?3xbh27@Kt&5%Uq_%-^!HA8se{Xu2vRupef{yAd~WNPlOh6jH&u7+48DyS zjba3_oO8RJg&^!4=kc$8J2fh`aY8mrRe~}T29SL<-^vN!tU_}^$(}sfNZ|;&73u0z zr$oy+4K}@=KEZAsy+R?@<gcHx<cN#dHK8S-#^*)nL1IYE-ed5At?A$Kz(v9G68-tq z;t>7C!`0`bQuTBId+BpL^160QoUA=(1`bz-%hPcPuNSCaUz2KuAz7-`cqncww&tg| z1)~V)YqPtun?GqFH(DczMImvcxemeJ4t({fwhk0CWh`po>6r_=Gqd<uL~wLY!{_aP zu4pr$roqTSLA{dZx8_7Q6LFj5aQM@%X|)i&C9%x?;|^ILJVbqhuK}1=Im7l0-AEbf z4z4x0&XMg51!%t=l&%PFoM%h4D26k)xO&1ub~on<T%3!ctGqqsfg6q2FpRzC1}{rM zzWfo_b^lH*9xWIPC~Pz7QU2jI7pJvu{X0xu63Rfi*D-TX^#{`~Qbg2o1^^1E4~f?e zba}l7GyrwFW`4&;vY!7I2DI8b5r=B3+m~0%ViLyycNc(R*ntxOJxm2mrwBnXMw19x z>x^pdop}i%5KXW|US=VAMXCg7@-hkOS{r<d*D<)YB9Uw$4V&tkZXV+1>dUP6yEza4 zl`s9pv8~*zB5VMZzjx}8eEO$&DNf;`0-`qZs(;{CU~lxDW2|2{5I(Z~d4t(`!Poyr zJ#BlFCKj{rlR?>!iPg(-Fz}`Kw)bASi(HT_2@8Vy79}#>aii6ihH5HD60;O}3ji}U z#Ta~GXHJ(>CEpAWU<grz$T&$-q)%Q+CJTx}UOIyKG57t08?mPBIzW@o@NJIz&L?`q zFRv?xk&;T=i{bX^6ou{E<E>>FVl#&fQ%0LpO}!}FZPU^#i=EpQpN?~7hUj%t&Tuip z!dL<5dbcz`N^n%Q+ie9T9jXB~@trbz<4R79j5{RsBG<1lZM6V_W65UpPK3GA)^u1y z4tPzfyL7`KNM4b-Sj+o()b;EX`-`tg?>tgZ(5_?0Psyt9=2t?T!48gr0<Hy?z%c3@ zxVczuk-|b{_ll9dB$yWyzame>&v`}X%)fED8Wv0wQl0Ga?BhP2nYX1X@8s2P$2wEr zIYT)!UAHS;S4K?zxCh+giy+j=UOxu4C_l^9c)}YCTS?KrZdwS)C;-k%yakCzZmfXp ziz{~6ulwJ&b~#oi{0<IQSTZ4>-~?tE93t#SdM{C&0w5+N&w<kedq5B0yY-k}0ze3a z5I`UrOUPh$a_{Q`3bG*c^VN5(jdJ6**a_hRffQ^J%P@|-ziTWmJWU$1m^0YRJbkf_ zYF+dXnV~Mcjd(Ry#94uuEs}iBP!eG06Nk#SM2N`A_K1XB&lP3MvXT-*XBr^oQm<uJ zzk{O=aTv#W{PX)1(%HjYIvk8-51r|Sv4UH9FKZRcBT@m3w9FUa5xqSWP7y<9Ar4WT zyB12gl_{%>c66m?o|l1?AhWnvC8uI<aYatcy-Wl<p;+6?V_Iw~sA?GyMo^P#zzGDD zI)^mR{i%TPI-H8Zz4^p+uPH%Jx{0G<PVv~%LWI``nUF@e3aJ7-;0Er6nm~_7R%eC- zdcX_>_AbM%`nWCxM`cv^A>PN`wljTVHg(H|g>%09IY2HT$q`{|f|O3}TZRzJ(6mIx zv)zGD-^sc;g%oLo0E90gC-n)n$}V{@-%8qMCyaMZfG~%J>tZ=m$7Cc$@KPw?POZvJ z=8ZWvrOlbY=@!vi228xQMG|IzcsHLo;r)~PcCPkIg{P#a&c>Cz03=?5U`9dKbLjnu z+R<_Q=#P(HqzEd9IbWwTOC4t}cYV^Ql#6ZCQ^bzKAz1BXLl@rhskka~$1(I(j*^HU zJ&<_J(2rE!RXWJSzy}=#mVz`xno*_-z)Rmt38%BLiH{!40dg%M25F^~hw4c`scj-D zMM7m0l&ER~8VKR?XvP9gGu78dr{t3QQvpGOKoE`S33`O(=V$m;c*GC=dKVAbn{+rI zK=>TJo*6ZEfm4{`LICcI&W3&PyIBzuC^dPW??!d88%>{X7uOOs9x}9XT{+4dT6bqB z%~H!Tgb)=R;jo+=5IB&ci<yE#T^g`cM)HmwNM2Nvo~lG&lsoYTOb@xUNYAv^bFqhp zbt^+&E41kyNz?XV=ich^4CEkw*CnDq=Mqr#ZZn7OMvfHwDCR0eLZfU#SCJ%3=1~|P z(k-x{jF<}Zx>cu}M>Fa!8G&FMMCCB@M=^Y_C{;m9NvfVAPANE`@_ZFjyD}7>FkMT9 zAWKpX3!Hvu+}JCInUQgcqkUAU1IwwIeaJUlje|KoIC>|KKr0w(m;fvTbGb0AlF*{K z9mM<IoMKqS(pHRP2dtg9u@ukB9sXMsW0S)&B4HJqFBMBl7ohs(;=*)yIf^$7Bu>+r z11kPY;1SPT#V&9WrUe)zF*JlAeDceg+Z^Tb%qCRjfZ2oR&P?>3xdNxfPTx0llGl&T z-m2*&uO6+c%U536IN5Jhc^I6<mz%h7XhTmC0^A-VfwSjOC^u#J*)XvzWpZ^6G1t5? zF5J;>ADjY0fYHi8-G<yWH{p<i$pXN>kOIfk3DW}xK`_Avup>ljr{2y7Ygs}VO-tva z(OsBfVBEqD9i_ssvkUE78zdpwE`JJ$iF7x0%^((8HlG4iqKV@nMM-I4bp|XGD?L-9 zP^l7c{!Wj$8+Ge`TxHMOWwX<22G+ifP^}OCYMetd%!bFVKQIV|S(p{u?0}Nvx=B)E z*oH3d_^DuPaIii0sK0q+{xl$=!*>LvssNGEsyI`la}I$XH~S3USs|n-&)Pn;Z;Eua z>CJhCBsA1r2g$bAy_16cbJqq&+e&tEeeRIRxM9>eRXtJ=m+7w@`uIFC3`Qx@m{Rlc zsPMM7X%rgDk&qNnUhf6zd_Enp5T1nujT%S56ygq$*p6-uWxCB22{f)CD~+T<PS=G{ zSfvK9&hM&?&P*|1oH4DrJs`E2;RYMNPmSpn8NLqilp1Ily@I}wFm%Hh`aami2KGys zhP6^0qh4+g+Mjh*u)WBg4)hm{9|cmpY>W9NhQxo|V&me5<W__WIlJr|xw|r4{5~8L z+iqB>4uI6=1C1xe83mEBgfN=iD*N45x-vrv@vhJedZrT{Pu?#7H2|FC#bZwL;<1#a z=zDRyT-a!)b;tJEp|P*Egu7IlXAqEb7Sp>c>*@aWJh05z+?S2w`{;+ez?_F{%jQSC z%_0P#lL6kyVVy2q&d4Z|F5rw3J;VqhjeAaL1haXmZep;4YfaL<k)cVVhW;m=l*eH3 zqLOQ)Ix@|eOfwg{Ow$@$x5jZateyW6hM)b-a~UOZg2IQr2wJ9i%5@4*Py(2%F7eiq ze?p{J2cD4uTI^-U0~`zARv=*jk_+>hJ4#DZ!h3<>Y^VCelRlt#|E<2sXfhyV7#w@H zCkYOo(935&iN|NUa{lo-OHxQ;Pd5A$GMw)t*iTf_gH(|s?&x$V!&ex78p(d!nf4aG zX~)ty6wJuM!#;300D<Vtp@1B;1Zj}P)A``T#aGT=5#(l02?Q9C@<MJRHCG5lsS3hm z6@_`K3eh!F=Y-0;2^cTIgJVZ&F!=%VXn99a0Jvj>Iq7)>)+E(HIi{$Am=GH!5xFCw zr#+HGBk5}LP;L6o95@NPy}3B?N!HTUVR;QLXMzJCsR%U_^dNKpZW@dxzi8T|KgvJ8 z`@ZaZhgmLFWBP|xY-LJXG*`5IQ*Q8`cZDn_Ql)*Vx2JYOj=GcH`OR*2tomfNnzbVc zI^_C9h_AD#r^pXH6@2Ka;=@lvAK<d>gAeoh<1al<mlBRa)u_Z1-L@+I?F~lW{ciIW z2P!JeLru`uOB6Jpg`k`C8t!kVCIM|PiG<IUk{g(-st>-E$TbQ{7ihWs2#-ipXhs;L zD&+;h4uTO0qyU6T38n^acn9aP)@Uc0@Kg*G_v(NnghF;Ril&XaF`-0_oE0b_DFMGf zdd8v<me_})l=u*F+A{XQIx$+3(%a7|pA29NnSjeN<aL<9+v&GhUInJRKCf8FULO<j z@HcD=@N`!`d_@AmXj?>8UzmZmV<<LpZrHUtr1$%se=7}B2tk-&P|BeW+WJ60c`M5X zm~Z^uwDyUOUEUHSF@yqTg~?j`wApVZU=OHzV0oEY_Ff+Nr+hu<_fipY;JN{=i0yZ{ zQ;$NumMBkgCuQulL9dX~e5u)t7y8_DGkb9m)uJ4E^i~k^+e$lwAS8?;T8<J^aUJOv zEICuGIwevhPWKq{0Ncl+jB+Ckbk1lC=%F%;LG=g9cLf*7h9MdtA!>w>Vu*ws<m_4g zW5;va&gS6Fi9^xcsO><VS4KC}2qP61?b{KzPZ-je{b5Yvg79Zb;Se|guxXA!GW@Y3 zqT#R+4tk&E540nV^@znksQqha@{M9-?{e%sp*%Og=CdFEAYZ>VXJkHIHHZGRqv&zm zKlX!r{>8`KXMafg|40A$xDWaEi=8qH(2wWYqu6M=w7>TOoxXyZ6}E3Fv<j)T&#cIY zKgR8=x7T~qKhMqYWB4i$di#*l-7D%eT^lWcW9iq()+O}bQ+l=qJx_GL@aS*eKVY)l z<AwUcpFeo9J^=r7K>(?z1xW(HhD5?t1Aio^JyIE3nlz4<nYTYMROKt_xtx%p_#xks zAw`(_)uie2<}h7=4N<)AcL8uIl~ABumr3AmEK>?mq?`a%4Fxi0!7GFiC;)?@{a+Cb z)Kmu?A;mh73~G%g9pDN%<ANocHpw1f&}P7zCya~Z-EY%yR_Vd|0dXj$=gl^ViI+p} z&fF_=_rOyIg;NT90~c=^lt$Q=1P_=plX5)HXZrv>A@(f$5?d>D<=eD$dbonVy#l&| zJz`RwerWOF>vlH*jl9#isdZhu(wdund1#WGBW<5-%n`@s#g~HzzQ@%4hni<QjxF3? zWv;-^jh)Ort89gu7=Y6lB=G}jBFPUdqPQ!cUbh2zv%dPc@~s)pv}`lx@UgZWO1Y*% zW4(L3)y<tdPz41#Q>2qt9rSTp(%>o5w{9~nKQrQKVP0HcoDBj#pWV4?Aw@o2tOhK& zd;}3Q6yvHO??7ImVqIW`4bjo&lEr0Pt*wSp8I~FrLe(NlHp4kNG5Qy`XTP5iIcVkU z_|)6EaKSk`^@zWnBLo5bA5Y07nHE>jAFv-{pa4BU!oPSY5q=mGMgb_+im-V6r*k;u zML%e_(Yktl^9zotZOO6+GoQ$I_6KnM|5t^XcmJZQoXI)O4`BIP&<BiwPQ@G>a&Er+ zDaYQLb>d?42lYwmSXayw*W=}MiitYS0Y@*yxgvIC!%!Ey?=z)UVn-BXHebv~2j=E| z)Pcqq02XmBNI;m9M<b4a4HWnzJf%e6%@l+YGZn2qEEFBL&r{(K{SKihk)?PHgM@>? z*BB7sVs;8prmvL{yaRWW9~zXONh1LP!K!+-0IT5+IivVAb=atqPAHjmoyCBO5j<>m zu8k`VlL(;Dif~v}QT7h63<%M+!{MX(r;+Ji3FCm%*;5OhJ153U&*;6AzmU}(?E2+P zF($+?MS`#9J-2PVXzFyO5?SW%;wS_c_PkCk7{f3v#h7vP5c7d6XBUACBOCC<UUxq2 ztLLvQ%L@t74>mu#R9<2%9uN6)ph6xS+^fC8Q675IM$o=<ytSNq4(MpEr4EN$_PqzJ zgP)|#`E6Zx`ZpqXe7k#w#8*R3pz*S8rzcZ|u1He=<Rd8xf?};jYy~|X3=523GeG1R zzw|Tjpwb8eSR2prR!=yBF;#MxZQqDaU*C|S#I(bVU@4@^F*UI|O%$xy8OI#S!%Y!O zlMz;sBv(v1K~mW-Pj%2-c4oKpDR2%LjrBg04K_qECzitgtstFDvZVIC!Pgh&kKTD7 z0g0H_!)hyD-yD7dw`XngrXT$C#k|)~>B^VTs^O0p=j0!J$fy606zUV+JfvxMR)+T} zJHO*Y1w3Ah&$i2aRLb=SUP#Xb@9puuyxUVj<8$1L&v1dxQphMwEC9V-NWZuKk=^~O zO>dkbKN5hXFhGQ&F$@9#BEbQE<Q0n%THAxq>D1;66>8;0qlHU9+&dv5S~eEQp2T*s zB4TJQ(ai$Brr53oO5}`#g{fEuXUN(GF?C#nK&3nhLVHKbV^H49TpPe`vFMP4YPF|< zLew{zzW(Y<RM}#fG5t`d`?D|QRA=4krF(DZ3Q^8daA{`3w!sj;ioXhPh}Ahe7oEu$ zKNgta1NKhG;sxXYiCJEpD}wwMo>|D$bkjKE`9nFUod@8mzj?r5;--#!oW0yUXPG+t zVDsb4<V6}GIxxCnQhMp*|KPSKA~s5qrrIOS;APs9)aZLb3S?y@d9#nZU!X71A6rrv z*F(W;p`wR$4<j+fphes4Q6$B?lTHO?^nef!MF$ElP1;G=DkESYUD@J+iy26;r;T7d z{2~XBlyl{CVq|Q`h5-GVpV`OhiojDVc7|1l5-PXeS~p%n&Z;`B6m3eXvpYAtr8TCF z*!Jhtpcc*x@Q0~8z6wuiOwBbTP7<@NLH2v=^+4FZPyT_A9nz|*_n-6spr1A3_vri{ z#kORlh8Yl&DDugf*=VUA{BxT!45*L0OyejOsF1ywas4UreFSBV?_}V|3(jLJ#AA9N zU&S+cN-2T%D{>Mq4q$}%uzTmw&IGB~A1Aq{K60z|(G8#0=>(c!AuM6TsZuE5GmjPx zVeRW*LbqA9bFx@_P-K|&$**iG0c~-|zKxl?gwA6rb8|ocKGKKy`J0&L6u(*)oPe8F z_pwPxaCm|O)my_5c&SFRcHwj32gv0iej5`q+us+%D5KN}yw%#+rg+aTLZR3x0!r%Q zA{GtZG<14+-k;5p((UPTTltIHrijt@wEY43RNE;9J5bKaTV$IsF;6ys;v>k1Y#qGz zQu6|pF;Nhda7Y1)*0LyI%FHGDLHmi<!aY%@x{q}^J8B@vFlb{DF{z~yn$#~d{x9wR zTa(_f0IYZJu$e`U1#sk5Xyj1y{$s_3gji$2Ki-3$ba^&KQK~7elOA<>43_>d0MZa} z(n47d!zT_^CqxANplK8d{PaKUW%Ku_=Ql3x(YS<QN|82tSiZPDeqs7<a3wavMONm1 zB@$1b8=^XtjcA;(9{QzP3`CS>hf*8Fs7~xlXXx&k=-K01T$H-@kJ_elo3S<&tFO$R z|D@gPS<XAJvU_jWtZTN{?7Z_MQ``!s?1VTa$B!-@k)w>+#mRbO46qC>p^cziKC&JP zzN3+13aCa%l?*|aIl@9v{cwxYsw7ms?|=C)P#GWa{U;Ee?EU~A{(rchh)DGFgm75L zplX}K7iANBMz|oqCo*5$-2)UNOUMI5Jn(|NHK=Mv<?f--_s&@mhP7g5NXGUpN6%0` zv_~$3-c)$%IBpq$tBEWrYB(m?D1&wZ_&F~FeKO?opZmLT9ifFwW56U-CTnwrxZPs8 zqfX;HGbH+G<AY2WJ%))Q&8R1uMK3G9_Bkt}mTAA`K(8Q&iph0dNICk-A5A^->f@KD z2TwB3z3iKZ7OW<^ZkjGRnp58#y+9TtMU)yAIf(A(Sl*~nkJe|$Oze!Z;vL%fxJ4;7 zErVPN9>Tf9c8~=kf@8N|3*TDSXVzKuhNTjncv`}47{f)8^e8(l4~RxexzHhL1m&xT z*mn&kPCApN7S_Ttro<_Ak4(G3_vg+3TGfx5+0mskF+a^6#T*zT-Y2PWq_VZ<T=t4> zY*{tUzu}_U=xbp64Jl2V_IzbyUe&1@Xm>Lht-E$e&=J#dNNvo~(Lh#F9ZH3!RqLwl zSFCJr`z&ANRXg8m`_}f~boKUaxBvBL-TnYW+h66i%8uL-9kCNauWRU9ojs*&@CZ{O z)kLjoi&meTK1RGWr^M{31_G^d28z?-o>m*_iY2WpYHJ$54JPG^5}x#SOAC|3fpuZZ zLJ_?k(B|_?vT_q6y{Ks{(eNnMFX!hJ`n5a0jOWgU>v+ezow**r;p@zrQ#Q@iXk&DF z-zmeWo7ZMO%h%Pu+P?OSZ2yzS?=+>YQ@3=Q)zMGw=&?B^O9ZnSkVJfpLCCkpJQtfN zuXP20Fn^o>PpaTHs7O<|1U`oPao{IYz<26ij_hSCfUXAUH^7D~e0>+Y^$1cC%0mWS z;`Fg)E{|-|K7#RO`?3UgAS8Fv4|$h3HiKO!*w46}`q~NN;Y2@ipKsdde#(-eE!7rC zp9_SafBTlDx=E=SPte8t{v~~;unHE%Y->si6w?ihn#7=l5Q|a(eT2&=+10Z8ovjO| zzN2H|Oj^}qk`&+rnpyfKjG@{lO3op~!HKgPr7YnPA|NRN8rN*+^m!zQ{kFMI5zyK+ z#b7(hyMZ6_|GW!6k0;6;CF2q@uwLrPwtteIi5sQf#Wb0r2kbwQS-r{V2ACr=`=Zk5 zMd^4uF7SftaRFh_(k>6RtcMorH>PgL*P6#-PdSd}wtfiaVz1@C;Fx(yEcL0nzP44X zv9YxS1GUv^=uo0mdQ)6X!APr-prh&3kwbhpLk<;YvKw?tWitM?AjN=UURP&qdZdaL z#&lJ5n%lI+5T#%Liz+F{6s^JVeIiI{msQTbz1Acv4`zMPb0;_WVCQgMHEcM`CdBB0 z-xI43b^Gz`dl!wx#gr??ym5UD+3GX8+9lI^uRQxAUO8RqQ=pcJ0C*j@Nf<;}Q33Fd z3VbJU(iH&sr7$YYU>Y>c1NcSY%Z4w6|C9oV6;;JeTf-Eql2F9=VAYQ%!w0%l#sumf zDH^F&p<lSEsbcc{==>=oqGZz%amoHML<o8r{MbMKI^a@Ww~TZ)-to@8x0r5xi=_>F zA9T9$kq_QYAyYypCZ&eCoo)D3{iO17T>(OfPAIW7-K3;$ETsp({VcnR+oK*c%?&dQ zr@{v8qG6Pnx~^^U7KDt|L@inl9Eu7bR*RseK`HH{rvT9L>U1)n(@A$#pca7FMA9Db zs+R!J_UU#mEFy$e0G<fn)JlZPREmr_EM`M~v~u^B55yHUIehEOSxVgY&(g2kyy_QE zf6|CLL#n5%mH2IvCto!otT^fw^yD#*Wp6OTmAuKR$X}fko2#`7(%9S>ZQLW8C;981 zijHl#2Z>Lw82i;}>}xf3YQDE>hUvO00-&qZYDOnfIi~l7RcD(BeY<*c;x?Og#X3ux zC&%={qHd$~&i`--HDjbqA04lPevXo(Ht3jvemOo?*62jBEtJEn_tw61nvcx(h+apY zau01kL|2cG<!*iboZ8`AO!3ZOW9tv?RTE$t-DEYY)uu%h*g6snz%5_+<s1G^!=DxZ zT||QqaetAL`dQU1gf1<>JY@#fByz?JJ+`DxW$HfOR7{mwPiGmK(5fCtnKBbiHZyRX zmOvO<7%<RilegoaJK5!xw;aE1nTkKYsg6JBZ5^L@hPRLIcINeoW1bm(YDS#~BWcGO zeQ^q{riZ-w#6%lJ8K59@bV^KO>Tzn-8itNY=b@f`PEnL#`EjPaCNp%5^_)mlZ>c0& zq9x%@0=9_Yb=_$Sf=2HTqYnGtGU4O!l!Xt}m&dUi6qW|P>RjWWFbl0vd$b1lX#ZtF zbc&rIzexE4NzT;ZwzwxWM07XS-LJp(d)3Cv*_*Yie#!ot9@_V0e)P%a%U6xdW@1Je zngY-=UF*P?p~s}1JX6SPhkj3E$CP=%bQo1Ko-r_S7hm{G)p%@9Un{Q+FfL81J4;1E zPiZFF1Zf7yflMVeX3mxG4~u^Ba^}3nF>ZCsDJxFyTYtU0G*?<7K@gugeO@`)FNu>p z_Nl}jX>OLl5&3G~_i+96qXfLrRJVF1&JJ~&)~E+>op4JIyUd44s}pr=Ykz2l`mQpG z9kPs<Pt4b@QiXx4^*RvukfA_w7f{TGy70_>7S2+iM8K)Rxh@|F;lC|`f`0}+q@oq= zQss&Qnx1qION`eoa*0J~-27H8!$q1Bc8S;0q(ob1EgP@6o96Wy<&LG&qtunSYzxdy z*l#9%$x=7dqsrXNA6H&hnO^!eH^Xq~*JzZgBnziz`qa!mwNIZqI~|gMo-_z8iWiN% ztmmJfe#(9_b;gnzslf<9Xrpv%#A7A|k+AebPy%CEoq@z;P(g~4MTvT@!pLDmidbos z2S8dHrMPP9CIovW0^z_<>w|H~J9Q<uIZq0WyldU_>eJC=FL4kH+gw1=JACZ%Ipadg zlj>hexvaJxd1b2vf~<(!q~xSp$;sE;6BrM_jQD2l_+=buUR-EOn+%~g>7l0OPHYZw zV%1XVu6W?qO4DpP{xoTGT^e11n^BY9e%y6TY0PH@oh|T)=A&*nGH@2dVm;(v`50vU zT`^lJ-fkR?HCdp-&8hgs4Rv<5pB77iQZHpgl~da6B_<@2RU}_$y_znJl`>@5lYzOQ zW##Jp&SS8=G_-s!R4A!0d6dGJIclX4W<pXOG(s~-X$rs(!_@wxFH#K?Lf`?p`~+XA z?Iw#a8bCF`ih+w;!P#peq6DxBu-xgSNeLlncYTQD?Z!YhCmvsk&`!rFZQM3))32<W zw^j8zxAnp;$L?gYTlPU_*1To$s-^R1UiE8w`TzR^UWW_XLlAlnAp0L;OSp`#rrxXL zxAp9;p3mQLH*de2hGo#o*(O=y`4>t_!o|K3En$Gtt;rn-90WN6b0y$ujVVfhb+$#1 zMI<ncU@SE@$Z2|%YNV68_$V20G%J<Ubja~Gb~V)u3GBU-Zw$(O3DeM(z~_NWVuvvq z$WXZXaIiDkh)xTktDJPSIY|?;m;*OJhzGqvPdTA+`jX?v?LrdDWa{!JDC5|knMIch zpF&#|^yKQH!`jd<kRjpqurN_+8#ie#?_@UpDTtxybBx&*M+?$9Zl%k;xtT<wMzPWb zne9M!knTR2(U0wpycx%HaS4uP2CJrctg+Sf;K>WJQv~j3pi&EE)L#Ze3EBv)<Bx_j zDp5F{?6#LQMX)3@f0mEm07A+JY=j{(G1GJb@4gncHU$;|5{`sHu=j=VpLKZ#Ph24R zvB{Uf4wj(|*?0nBQovI{2xGz~NE=$Flm+q7QPtNqgP$8MlWiU{a@crMjDKD6*_~~9 zs{Idg-J%7XlPgQhENWPkj>^Iigev7tXFfyuD}?#yU8Iq1#r~lQ8&7@wp2r`1Ja3em z^5j|6fTH()N}5kyejF3llNG0(ycww*Fl}Zy%VdBE1+b{afR3=B*Hg5Od=rF-W@n`| z;;e0)PFQLzCQ+IKYAfL$2y~E>fPP_#Q(*r)hE|1=ToQ&7*Di%t3Zf-J+n_f+H^5sC zFV#6Vu|p&UPZt#$#e^XJ0QO|uJQKe9xSg-Rw-?<QT^S<Rh7Vf}jWd}n{foCQz*j?u zkG?EaF2LqKMO(k6Z0{fBz4-&g1ipFuz@??8hw?^VKHkFcY$IjLp%_YoF^x-AzML75 zv66zvoy@>acStk?ib8QL;3%Nq765A}m5E@B(iu}6BvC0{o`{+fJW6w`AqOApuUAjX zdYKT&u4-&X<A;$E-8~E(#0eb(PyuM;BBoku)=QwI1YwK-35CZ^R)5Fk4f-qwkhjD4 z1_fjaE8qn%DWH`K)J6hF07*hOb+dnQE=r47;hS&h<qD#Lk2cvJOzs8kX5p&QzP0`B zJ!M*ReS6Z&c%Y=NvzEOT@cf+$HPk}NsdMzq>i%<dFdUy%PwK6ic7%u>mtNkwHAY3O z_$n0S@h^wYe!$D;bK@kvsR<rRm5{s=mD1X5kg|SH2o&|7h9IL95F!|Nrg-}H!`e1I z7$e}i*>O~}z7uRC7+pe0=39?!hJgBpAQ+~y@D^U|LQv#+6piWZfQU=t1)f_Bd4W1Y zm%@xxCRLNd8d%f3%OjSI8ttmt^uU{Z=*5DAR`Y={ivhch8%;f~#-Z#MwX77UELnVW z!F)+wA0&#Sw>vkt(+8fIYwFDEjoOV>YRAIM?NvG)5ptIac}M_{JtaWcd66tmzBu+K z^?+KrZkoF5+fbh(+mK3h14Dw?Fzc-al^Of?E7-arZ(EAEZZ!%oZLBllS+3wnCbAlf zm69o5NqVHspvPb_P&K-N9z{3o6TUTklL!;O$ft?gQxt@n0Ky`ch~wYs@?z>`PjH2L zMY`xqP<EI{<a>eUs{}TdfhoXU_XFo>z;dueCd8!1fq_<P8cHzK%e)PU^aX`%G$H}O zc?1LU?n&)&4$8Y&?3ndnabg0B>1xkHCb$p)C`Ip;6R8SMol!I!Q1iiM8VzOU$`Dcz zE!;}<;a9P_o)Je6jITbP?MQsfo!7s%(`6^#vCq`s=01ORuh6r56~u$Dxg|{?=WXL_ zJn))bZ#YTDMXqXb2!0Bqb;Ij}ArZ9t{4fNin{%a@{~+jz7Tq-RDgpJKC#ln2-9_eA zB?pDYZYiIh8-#+y0!xc7z-u<Ov<A9Xh`(%8yUxv3t8?ErxMiy+(}(OhKW3Xv6*wCJ zZ5xM%R*(uI4#mvr_PRY0g{i)%hAWMY(gtR&w0RSTtaOM3z1iye(}k6~LaXyBV5P0n zI~=z3wSM`Lc9uopvLINm=i_`DINC2WlwaXRBASo=mC;&7z1k|Fj+CERpO_ua&G97> z&J;}2@&M{x!OFYEK{%p_#L-)7ua!SASB*#RhXOVmuzZw0JgaS7LlmfPW}*>{OIK?G ztL*A^#ewp_T{?qREAQ#@0Qem`rp{rCW^lylAol`xK-F5HdsYylmDO0`Hrk-n3LHNk z8{d7>)kvmR?eCuJXVQqel2M*3bBs8=DkG3nln+zKBlR4kbyd{V_K3if;Y@G*5HHmf z_U7WvGz^(NGpr4~r9=ZB5hsAeTc>o9>4Wt-rIvx9d${~ae!|&y&uh6{&LroCkRKXa z^EXb#xh3?bIevD^<7Sp`%*>1rGR&T6_UCv_??`W$%yRWOToQ+`uJiIbn*4xm=g%o? z&gDS%G3ea9`|otSG336X813%CDc74?{+i7@#$zXK2l#DN4}S_)TCbKpLGwr}*%%v_ z18kfRC9Oap^lV@5w;h<tX;%a+Arhj2C={XWk^oCRc-(g}0Q75s+$kP!uU`a$)DmIZ zVwdMUC}!OcG*%icLjun2ICqUVec5pZi;$-<Iyz{pb8`T#JW)_h^Nu*3=9I6&lH@W1 z$cp4#Tw*of8)8XjW5-qNXLIe;rO^>LCbHKXV&hDFMJQahvvIyk6IE7imRKE)6_+gg zg9Ldg8Xos{J`J!1hzyK!*dQ_qTmb$ZVHCy;1yXGETtd2^>Dh-sxCuXTd4LxHO<+yT z(lG$c&iB=YImlY&l9;w&u~oPLABzyfnHs`~pY?=SH3B9^*I2{iZY|%{N@YyMr)OnT zow|I99K2qXBxCVvPlnhf5x%z5-TiPl(~o~~a|~;kS(|J%6loV;%~{GE-WVY!r6!yZ zy)$m;B+7XAbhmppZY6F4ZK+Pr^1!7($AQ$rWN&GjUG@S)yLPf&y?&KvSDl+b_2aU> zUSHLrt-fJXY3ZXQKRNnDFO9X|>HWH6bnj$mJyB$;nl&7c+?sxl1=k9o{I@cE-Iy&O z(I!6;4qaAP8m&X=hg9-5Uk!+`tX6_NqmW-}mTOiyP6EMzL);iUjrk0YW_R~RKdoN! zX&bl{Oo{~vp@m80GiA6Et-=(w+2d#tk6|%f>|Vt5f|WnD3Q$-@CTYq>Otymc3)9Jl z#JcQY6SWLuuJL$EvUvzDoWc3ySd!GOc3~`;O@$N`LF6+O^+t~=o5daErnbb$!V*?J zE-aB<UsJc033LrPUk%RKaA|US5C78)NFX%GjxCU*30MGgCAI;efl>qM8@XZFjb*@e zAvOi_Z6xv4mpcL?(8h!iovKyj&n5*9E3ZdH$k;*JDTk1jvE8b>KGIrFFmpj2<t=?x z5Zx-bCj*WYK-{>@!nsSF5gHKzSzKj?i*s$DV|lkMF%S$DsUcl9=<QPF7);)>=dcjX z51vBe#p{j!QQmn^h1CkIG2@=k`NDC$7TwFIj%D9+BGY|bTYA^c1s(fVcY{UZr};{G zUpkwMmfBhPux1}V%eUB)@BW6#gO4rdFY-LV_@=Two*H@0BU{4$itLg+<h)fEKItuv zEj|CK1pcE6Vi1y`4BX<uhJZOj9%a!%w+pM80a{C``TAg$G9;`p3I|0%8Fm(rMi$y3 z+*v6kDY2U68qZG!94X?a*<$MPL^27<89pdXXv{v@koubB(20uqCTd|?n<o|QmV~$` zc<(pedbG^uF-th^S3|;4-cEWwPp|f-x>vsC<omp>x1Q}IDET65!ZGDDD=+5CqEJoM zPDqHesWN4fhE!gwJx3^$S>L#CNXZZQ8*h*czpK5kXuM40uB$UPMDKQ9z3_V_IApEy z`E!x^a_|*X2d)BH6QT_b049n`d21j6G#Km*AqCkPmr-^hBdO#TRamDuRReGL@q;c` z<~#4cdqdK=x(hR8e}b%wtc7Tni{BYH7-t+cr5lx6$ZJ#C>$wp~)5^v(Q<K(GQz|FG zZMkzD)59s{X+|^MmKmXyoKX_hn~X}l&}r~$7hh=m1mVjJy`uOnRu^GM-|h@v8al=w zxHm@+las5BQ&$<Mjg(OwW@mL8x&@+2AS9tOfY#m4$UR1zqG@vfpkC&EgT|Jc<JFA! zNr}j^VXF|}qgCBhcF)lu<9?D`@%QI`$FAqc=AoKccYH<rP4Zp#I&~`$HaZsU<H<rk z5kb9tQj{1`BDn*Y)d2z^j1)aApgE^~27$ERp*n3W{clxQ@NPwBJqf{3V;ouuQk?K0 z<4ib3ak)`2!2x7Q(VU@ms`Ci_N3T@2l9Fd+KVmaoDHdCuvpbp2*7lMc88H%aV61%b zC1-nLq1!WqDM+DN7jC|hNM|awGLTu;YNi!ly1|uw!yby!Ju%Jo_qtft+j>VMWQr%< zrqzU?E(I|=5WJ~E+;2B?lmBiWKK&erd@uQgKiu=;^XUVxv&B|K|3mt2Lz|7jxVw47 z_VJ%@HT%dLwL5ob(=?dt43_RcEfgv-&8D3YoSL&u${3Wf)afhDXqWGP-%**hmogY4 zr>H`TDXOz;y<%nGtB;Z1LfU}^HJ(0U+U){<5B&mUJDOB!nk1x{bW-Hr|9=8Z@)6e_ z+?rk!yA+#-2ofV9^Es|%f<*9I35N-Th6$}JV!SrZiw|)i&FwoTOhaECNLGz)a;zm$ zt8b>TWLEt^Wf=z{kV<Yt?>1`-hsb)8Ni1CfQ)2bN!MMRaFX$Y`nb&<qL*BBkDvj08 zh~RF9PkS3MMDxe-17q*B%V{L8!YUfVEc`N|FuzZ#L!${kXScaR$8^@`Y$&l1Rbg7w zZK_w=VrZ#N?a-e>b&5>;?yFU|)sd_19fNiVqKOtVTI9ee8~yIb&)&Hlx#+Kri2n6i z;z&gh6=0yv!{^{2-kV|9U;NII?3{xVl5uGU+M$61TF*bHirkcNsw8eV6k<i!LK`^n z(Le^X{9^fha(_U?@`%Z59{Cklkl-9?CW%MNA|EBCemr~n66smY-_s6oHzr`?;jW4r zfW6TPJyHh?zv=eD|A?{LsIZ%vnKaFT6?Lc0O-5_|Foakl!YY!FO01s;1?|EYca{K5 zYJs&Y!{GfIeBbZ?3|o~h4?b$I{BZy8Vh96s?C-rB?mIU;-?NNoAMo<grCzf9lpEJZ z%M3{GKjyV2XC7Z%SDMvca>N)NXB5MS%=%Er5!I{@H!62?z4M*_{PuIiqxsKi|D{~B z!i~4?iPzR6T5i>@?o|`Er=g{sGZgNSwCOf5jkmx+L4o*`CQ?FXe(tzZ_OStmP@U|m z>*W;DZ4^DSb~*syKLI~;=Ua;d($heOWFW$csp};7=7Or{302e8Hel_Zf{n<IOaWcN z_Q#(OYuh+$DR$NJXLED8t{Z`G$4K?LsTXQ_x(Pe4r$qtf+ih}Wg+|X&pK_=F%~!s{ z*~7($)H5>OGB-Mt4vPKq2WQ{wahKp|+nRZ|$IJ4%hMd?!7z2!y7*<O$$COQC(I%Dd zp`z|s9W9OP{Nh>Sj;Wyl0&tu~=r$GV{0wsgIbk0=Imzm}c@PX4IB(Iq43R>pDXJSl zo9VCI2FIFa*csRc5^5fDu!__;pvg^BSk{mo2ScbA<OQ#M&!;ZyPikz9$KMNCM30{( zi)y3TqSu|Lvd!x5@&X91E290O(Uzm*y?NFRto_gTjM(-1Gi^3SA3JPsPfhOPzHrTT zcy0gV(~*t?=Z^Nhb_XM`eY#U+U%z2mOl{4BDMRbw!tJ89-W<Me{xPxV&u8B37h{TW z<?wN3cU-UczItemz*12iiRtX1sCVk^&6ZTy{I8Fz^;^i=Jji_9d0k$}F9(~=xpv6S zf*F!Wnf`r^{vRO}x}gvEe6;iZ|G(GY^?Af@qJ7YH3Su-&yK6!r^OO>|^+%3CiDAzC zFtRUUZbM~-G#r<l`IsY7fL2eLc%`z3jVL7GQo=3mIff95XfqIw+Z#To5Ng;Fg8&0< z7r|Bm%*OfVAP9x1a!~_H0Rbqa{6m<`?~pS!j2NvVsHB{k0+jEwAUI~l1vK010KkMc zYKhqjT5I`kh}Dq*MpV+EL81`@<#?uI>?j=?a-1y2J*OH%WzooCNRj<2rB>?O=z8s& zp99d`)XsR%MZ>al6x!xyh<$D_?3#=5I<^bhqW`K@SW$*p`80XnJOs<T_mq&DNkgDj zZ79nC!Msgg{pJeN$`SJSj;S37Z8CeH4iT!xH3B~7<IZY_@AleVYIBEmvUA(qta)PJ z(8W!EIXx20)J9EZm_@^yfWWP(<P!erNoLKdY=MBNTE>h^5F^RJCKc^bm0rs2L}uP! z(8V)yTVksKK&5A6?AG~P6x9&o9gi+;Fc8~(_YGP+*gR`kZ5Ri(#Ya<GX<vmqd4LaG z_t<0m&;4^AVQc?cHAZ3;6;rzNX7*W@{z_U&jk}C{*nkx+z36)A+ogZh)BDW#+yG|i zZ@u?0;!HfargQ)4S@k;nZIEfTagb=rWOm}@P>kO3_TR%q>cJ+11J}O%-9GT1@!{7` z$^-G98(Nd?1S3_us$l-6&0Xu<hJ-3k)RKJLmnU!ceDdL5p1jkmC&_@{iM5(EO4O0d zafTd}ODX86&Ba90qF#_Fb+s$h@>x<DT;+pmwY3_mA$@zJwOeNWgP>-HwKxwing5P= z&j;pmCPz8%IF<QwZXW*WOspxJDiLb0-HQl@qALIzIUWlp-nx3OYb^_-WFj~?Us9#7 z6^Ee$D5!o`@DK<<Yx_3z#22XyS3?RE*B2wrrj8o|J&j6BaZ+3RgKmgY(SPh(UeBD^ zp91djTGDKQCYpM}Fo$xYwxYx^W6>H6VN+keH*odZT;Gz16hxPt`21kye&ZrucY~4p zk0;(PfEqZKNN!@fOkTtdIW}$vklDTA1=l>AsM||DmO{r|nmNKB3!FQcoN3FDq|uC7 zH&RB;Jqo8oxZBul6SH4c38!6Agjv+`U{jcDcS&Wc#v~Y+pqV<9lGFY;-u*eZ4GCUI zx2eF3#R$<YeSo%W=32~><iOZxT+I-ALv?@fhViY=HdU7`()_hs1`Dn1TA1AGwxtai zDIz4d_iC=cq-L|78*as?qJ6Kwl+S(KW#9dAUcUAO_g&SDm0vho2dXy6<}ZU23PT;0 ztSHvzN3Rc?+x=~{QoCxWNu8%}pMNhid>T3&7<=ngS7C^<s8;D~TKDR?W;TjXj$*@2 zil>bn%0d#8INdOhedpKJNNZpBoOizu-ktkqPa8_qM|1DmYoF_2)3fENNCSmzu3gv^ zHwnXTR$K4$T;8|qa$S1UCTtsbm80xg!<XOz7yu!8!Z5!)=h(=dW4bx+E0=t;JTFJ$ zXB#B$*tr@wgn}_iH6>ZCc*!iWJzB#hlsbHO**Rba)v`KnC9u$(gQ9^cB1g=Z`vxn! zUwcWjLh`B5-QR-_(Gb%-oC5wQnnVjglz^e0cW*r0i|Tm8D5kOka^<Aw077{3`D0kE zG=M_cF=0ysc9MWgunK;rGx0)G4=@BaYq2<+M<Bp3O#w&<>_Chs-8;pqv5ROwY%|0& zorWPB(;R`i(MKicB29kpcODknGF+;!!Xx8xEq*YfB6}z${l&HXe9Df6K%2QY)rSxF zvfXDk65}(J;wWU^MzpAyfo5ywP{LRtX;#Z7$YzcMZFt`;RptQ-j{`i2a};eSfXq~y zGx?mm4=NpV<lT%Vn~h=;{ll$dOnO7;^Py}kPeQ#dXlXqq%*u$OQe9(JG@=siJxVYy zfuI)`eNhnbP-zr93K~$aCC&Bnc4>y~?)=`@6u1n)P_=q&H>8oHp1upfDsOyRWhh2U z$ErZJI3hwWlNOb0M&)*mr39~w@PW<Z%DJxy!6{c5tL{1#uFA%<BX>y`7yJ#Te3nvk zqQr+e_mmnzqDF?gvDg1nXno10-RonXIb?tRx$Wqxt`e^`Vb+d|#OrT!_VXV7rbmox zkLOs;uTwb+Q;lk}c3u~<Xw54h*RWfNEV^&rzo(N6H~rw(r2uQUZhb|iv;#4TQfvWB zi+Y)=*O+T#<eF7zmOWSN2X;klC^fvTG)|afG{6;oELM;cX%vP8M|+DpZZCoi#TgVu zk>Ng7Z=MUaWbF_z&DCYW%8CsHOtS!x4N?seg)kwwX3E3~`a7S{1wy-DKv{y;`4vm| zdOlc)Q8s}Qv4UXc0PiSOO!4L7maZE8^ptjTjHSMoM%CQ`vw($Pu4~~_SS*JDS}O*@ zAfXwnBbIqvf*rp8ALl|my(30A%F|dJ-Q;-6urBE>k-qA5#n+C!vYt>mQZ++<iH9Kk z%Em*`Jmg`Y{+#v)tFx^#dYNR<YuBEZn@XX(9>dXDoiEU1cznr22k+!al*`Q3lgheR zuFyXU2GAIGs>x}(hc<_=7-c^8L_PeRX3ZLW*30FZmkY48s_v8;TGOjBfcdB2F>Ls; z3cW7tOnIoA`F&=$QH-IFFDK)d0;Db60HGv9tSCkpip+{Ia6(0xp3Q*Ha3RVxW3uO$ z;vw-3`52GbFt!dtO_Km1w^`cr*WPP<l!|!T-8=Sd1(e%}rg_oY-&2i|9sddEt)wwh zvvn<Q$Zzk~&#<a)5=PyjUD9$$_3hlc5!yDg%`wDd4bnqjUnt%(GXGKwH^eXgeLt3g z@8v?TZc6-quFH(dJ#_3;H53+Oi$fu^XsB#b*<exdjPG251nHOe^-zXv(|3-(wY*oy z-e(typNkqrBvRce!b1rDtc;-bwZTxWLff%7IB6A4=!dIr2cm$M96hz#WzjCH<Wih7 z%=<2^IHRVo(buI+Qwl9JQD4!LG0tSy+1zMc1{lmEYpKx&B~;tKf8qWUv9a3iUKIc> zl)Z!L2~#u}ssQ{@<O<`R>tGdZ13)XSku{SHV2bycTdp7v+=o4|MRkeNUhkK+tDc^= zUUIH2raK8wc}(@BL~Z7_V`Uz?4F`OSrXdc<7OM>nn7`bw^bhfK66%hzCX^PU1)~CM zB!Y@mU_xsSkV;_c`~)>q?FOw@-J>xRYKlUJfunar{%lP5cgKRDJ;y>(_{BR4Guvn4 zHO<8UGNGA>PRM0>F43XQZ!alGdp>~OFAuEY=N0UEb=~-el?~r~#xBEWuNP+^YLZS$ zEMk<@b~26?n`hP-kg&AL5u@QMjp~@{5E87Z)zs)lZ2<Kv{bOGGW89VA-Lmv<){Nn! zXmzSf?7EVy{7;IjrYS}m&820C);ZQbC;z_F&mFn_wP+23%KqN}KMx{_M0g-(QW}zT z)&dPvS#KJp)~bddD%tljVay(EsK?>$W5x2vk8~CNp*j|7CI9K~_<Zz^&#QNRxq8R@ z$P>)YoOL>xi8H*sp1`Jxgn?v9GxcMp#Dgasb><JrWDQHQVPc2;L%zZsuQCTjiMO?b z5@IDdIU5;LsfNpYTj!$27Oqi5Sho@NsHRJ2GMI*;Whf0BVH(+lun)dU%#;ZgQnE>G zl%~N<gKy=t=Ify^9y$@pAhg=HNMbZ4vAEpTzT-JR+MWDzlT%8$^AZnYngf}^J^q43 zN{&2`8fdhXO?>4MpX99z*pa5Z<$+c>4Y(+W`$hF-<`03bZ$5fO(--H+i9+byeNs!g zfzd%UpzDWKvQV)D-j0I`ji2ukt;p`W7MO8M?7TyH0xWy8Eg%a*DxwviHQX?@S%o*U zqvyYBtH=mhhz`2<pUmwgZpt*;JbWzF#-dW0I1|@lvHif+FOTQB+T9;g_G5>r`+;C@ zWlG_2*bJ?j@TQ7e!VJArFHWMZLDbAj54UZAj96lIC8Y>56GoVeAhX^pjzqT3Mpn{O z=<k3j)i6F+FyVga1Anf;ORp~7T(^1d{8eqeo1tp#$s23YUIpMkyjiytq(pX-qe}4p zyQT;FY8<)Z7D#PXdjIqnomm+KE*JIqWe3{Py4{@b@bc(wULO5vK7JJxZs{fJWnK1I zF{o<^h8|1<4AzzHFITEe&kdmm+Y)plL0==%jF~7%hdA`&2Uc^3Ugs?w&*>M<To^S~ zlZ3_Oj0BsXl>3lUf{CCQjfBXIAKzhHjZ+H8x=a>1U`Clar?UBwlY`zvO0t8<qu~Kt zF<M}N#Cd3a7P2TbU;^Nfam6r9J?s8qfn$e8=(UfJpZmrq!*71{(|qlvB-84qY7gz0 zef^p?N1`Ge2AbQFSl9M3cEqTx27mECvr(hIUJp0@qk9NYd1JWz_a<70f>iz}!>L`K z=_>iw`Vc1+?iD>bP@0yW6SbKZ<WP!rM6?I8K^Re(Y3rLV<)^&Rn@hCOn{GPcYuCs2 zX!l04S{tBf(x{f@HtwV2Wp=1{n(kb|=*EtM6;iK#MeV(6p-ptekhwu4#u?MoXt`SY zrW%PiYztpHvFKOXY)+dE$p`WJ)JdtRo*E1qwTlO~&)x2EXg!!($j$rn+45rm*_wPi z5&gITB_J5RSfP}A%Z|Br0@j|d)c2l7?m_&gf6?Y~WfQ;0#P=}!)_XK_gkPk>sIQG4 zu$C6yf#9#Fhg)=AHHKw0BTE-IG#>SLT-N%!KUQrQmRyIG3V^e3vz~n)>g)UT>iQjD z9y;^?=)`<L8T-t7wx2RpCVr~L?Tw<c0{^L9L6{!a@Xpj?TvTfO$%`jjuhyzM#B=oZ zYy3yoyUV9j2gY=#0Xyf)R)5rRWp*#KGB1@Y%-QHWR#0&(&y8Q6mwrS`FL#m$GX>60 zt}(w}f=bmd^^aJWD`9G8^r&4P|BhR(ZV&<WIwm#~c)=c)L*ujXUfD}bj5h#wNOq#J zT3zti2*+lhIWw1LL<TN}!E;~#__{YfGIxBGcfNJ%P`Mb38muX+qE&sjv2}#WI=iEq zHiQ7P(?UY2yS;PMo*D*H2<V0ohA={S8h2#_EJ>QX6Pq?K8r@yt0BZAy+WwGkFaT5d z#=D0pR(0Yea=K24wb`NJ2j*I(9CWj<evchP?&|2ZJ|uzwik^ncUyhNh_i)M3s_`-= z@&eQ|E#s7V29=F+_dJ<VRk){pAH`@z^!<6NzPtJ7SaCm1AEm|SMM_?8*0ydB#Q(o+ zYL0AgP*nh@t%ZYBFup$CK@K{Z_#cgigbdhhw0k}kA3oRU{?wjzL5Q_&vb1`nEmA&! z2&;G8HydpCHuAseYf+qpH3WpXrVeZoJT!O(gkLKv<~RN9m+Na@J$}bm58vtKalII{ zAGBYZ$l4*FJZCj0A3zz0FQ<=hphS-U4|3Vjl~iLF?@BNSuo4zzAeHK!yj16f7K?ZO zQiU3(QCH!%k(h~7)HRmMO)WRi3v&fmF4f}NjeBM2JQKuoHB@-6s&dnJ+}GWr++iC1 z*~670iDs3HATT8jEj~H4U8gixsZ2o}zy=w*5FByI^k<<dtj&y5&4d(*P93%Gh8<f% ztD7ep;BbG!0YoO5J+CSrORlkgd*_w6Z?}yBqQA}iTNSXi1-2m!f6rbQ)$0tm^x8X> z#%SKo(8*o|k*QRhM{q`E7`PFVk8C5^wQk7{)rwTo!!oTg=&D0j$t?$8bNG$N-)4TS z5=OjwrWv7x_NrwVshLvK^pH0A3wmCYfSIf{bwfql3}2Jq^b`w6Pt_|u$v(@zWb0?w z4n<OzC<$*nm#$NTpg!ZMUcCN#W%cCH&2#${?lB5Qk=n^|7l4OkvU{?5p3#VUT%+G< zlq;&`lmZ^{t)Uz>hEe%!^oCf@K!hX#WpB*wc;y4NMNPgDXZY26ND?zCIdfQFI%#)| zZ0n*Q9(mhWS0DMmp1%F7$2JXzF2S_bmP;F~z-J0vRK9as*<5Q?>Tbl%g*i9yIxD?) z(QZ-TPA*<}^_F_f;Pip|y3M*ecBi-N@W0=GFmHO>+*BAnqC|psSf*L^G^1bcnl<M= z$~44QD~{vUX^M9R;WH}5=9jKCI;$cQhG1JwPl+kP)2qUUFcn66s4PLL90{+RnZD3G z$w@S11`ydcIYW4aU#NTe%kddt_L37#xe%Zw4C!HHNCLAU6b2}w5WzNo7Jh#)>a#=x z<s>%8sf^PK1>uPn5gBPJSfO6EGSxYB-c5_l_YK5QRa`8N$LRO(^62emyKVop-~8ap zPvy-I>0kY#^hmV~zBHOHJVmpXthY<;ijc~$U9b?)n|a|)bLzpoCYnR@qcg2Jb0-y_ z=O$Hzk|L7)S<fa-$M2~23qn?+eg~t?lz&%L`Jq2uw&<+AR)w`;<F?PU7D4mLSybk) zZ97ZR_igT~-5Ji>$}uBmdN)T&Q_K6}vf0j#-;}D>Ixb+$E$WkJt2og0gy%W9xl(}u z)LnX^u))lxxDhzY_AR$5?STYPkj})Y7j+|$+R=@2u+crjqXdi!=Oum9Y;UP%>hkFN z;`-Y)6KHQ2wJ2$P<DOhS5aUc4#;K%m62!9>WN%{?lB!bIv1@&#|GK&6{~j;s*HTL5 zhBI-T$EY9vzM16xH75hHOI+75Q`pxB3MLp75@Q$TF~j-qDVQscae^yKvCNUpn{$`D z{GTqC5;O%vO?~eiHfDl2;M`vu$n)Bb&b8E3XKHp`H~;lU`ooO&;@A=wXQZLD+e3kz z!!n`$l{da3wVHR{XsmsQ*E9KumdDn!cU%_dszb<eWMe~|$%#>_(;eX$Ax9bpY>q%u zJ3+|$HvB^Tq{rWxSN)RT$nDL1Yv$)Co``bo&7rr%<p-bj;tviz3H^6@!AHgAH^t|L zd=Srg_~94igDcPapx~~(i|sDIQ&y|PXsCwEj2JD^V&^f)umroqrz0h;U6sf;Xv4;! z)pJk3Vt7+eO<Pf6i!2q_`Jv#D%89|Tdf7q+${p>E)ib7Vti!A0-3UQYvq7pcLJGe~ zN<7$q=dzsr@omskFVQ2-if!3OK><vw3NW*4=fpo&B}yrZUaFl{jduOdFytjBf>mS) zq|X7R`x{%*2JO!TgW;+xJU#yWYTfMVd$}-i$19i_y|+|EebJ9!`|TpK&%*2zlN!d^ zklh*ak}v7u5rG~Wgs?FwRgnaXBSUM3G{Tn>exSEMttNoV{I<1<GNc_r3X*Ub&cYkh zXx;cBTA8Nd`s4T}ox?<XxKT~L;wVzN75yPfKGb=O+YNqy{~+|lX8|O$mrJ;ukacWE zx0Y4=r?YeCjEll~cOi7yV$oE%C<AQ;X%~@|5U0YvaFehyJ`%gRhiYh(?{~g*e^gD7 z)tl0`Vreu^sF{e&y$|y-TTozk?yT=>qC)+m-omlT#DyQYRGt1@u9Nlm7=P3j!7Kz_ zN9<I&CV`tvX^x3IT7A-HHewKaN;qMm?dXBA8`&j=j=5HyoJHD9p)Q458H)FG-U0xk zs@cVsBpMh9!u)P8eH+f3Sf9r2Gx&7!cwYG4e9z(T6Y%g;@#5u`^2~hk@MPr~{>GIT zzi0CTKY0pXu)Mwd@a1O>PxONRWi|<zWY~~pGHqz4SUd9sHhrEnT+MX40QJ?PNLnIE z1jsri;gL|3RL+E>W(L+v<%zt%DG4F93RO)^V`tf&H>Q6~?^pv%;;LhIPw>H<<L2kl z4Mj8M``)fcbk#5|1)_S<K=3zWy0{5Zdh}~b1;(AHR~Fb8^2)#Y5&Dmkiij)~i7RLX zosWm>in?{$HFQT+e&D9d^@Z#Z%L;fPER{;~q1qR2u`3;YHQODH6VCyhFt9G}FHc<4 zLpJ{$w0er?G=&mJSY=e1nWQ2LfM)ZJV<swryQ!B&9?cK6iZNC20FFKJhFwuGR-L`y zwMHWth&c4GA5UUG`<4gi*V<p;|GxV6&xddQe6;;V9$#NKW$Lp_t47$^qZ#m4vmYT@ z!#UwE-(2FAYCp9moSB$$DnVnNma*|otH!Sl#cDCy*ZFe<nXeZAw8HVu?dBC&NDZ^O z6_iD;{9)gES={;(L&ICtDs3+&&Mr5rCNjd&CHI^5)-Z2*qtJ+>m(r@1W`~OkbL0gN zyq4DL`f`r(Dzs$O(50|Od9P!x0f~w3#w~(#+^s^Tw#wvhLkP(S98{828`)|WCGS_a zpZvbb%MZ6)GQJK5F=&ljQy_*ji->H~NwyIZAsZnEEHT}{co;akuH{}f4vLYWCuYZR zQB0NqeRuWa*C|}o5Fsj2Rk(u~U^USa<b;nzxr67TL$!HQZj`i_&*7-pc#cqOhE{u< z$`^|HeQ&(H;cZ>}=1Xx)=}&l3sFWjV*V_wO^BY;FvzS0l+$F*#m5SATu2|PU-Bd33 zclglzi}Wa+5REKm-`F5SsyVZm-H+!W?DUkz=i0A(KVh#wK6bnU4dsij`v2=iV_Q%T zFO{sUUy`22zNbufTdr0%G{1E6DBbK*L85c|6=8%_kva`kr!ErJHmZIJoHW4rVo24O zjR}(CuX`VBq_U*et~!K#?OEeMyw=cFb<0D^U(0jGu{0>mWRt}=W#8rb;QR9bSMT_I zVAs!(Xw8nKb$PX~@`7nvIdvqn<D2ScjWh$cD?^yB?BdFjt4%-q8CI=yiF$85a!0u9 za`cF~bdff9o9oPXRETSdQtS=g!%lYbt@JJX3iVYc>bQ**P$p%CB6<0Axn+}C)|(6r zRg^enjLJ+KRtiG^qGt}CT+dl<U&vU?c5S_<a_l;C&r(gvJNK|Ip~ro_>`h+Isz|Pa zyP_-ZHy0#V=f@_kJFIbq6=*%Z8_-jjG@3TG+%jcgIHotwlQ0fQT0<(J2#nD%s~MY9 zhTCZZ-J%UlAQ1^fblq6Psb)10YNqNoY`yZ@Z(W<dI-T$QYh>+HwOB=>@pKd3Fm~~f zb0M<$I;`_Xi&3h|l(4JMuO}(AF<pdP3tGL!yd+mb5dLx(sja;2gFUaFd_`a6<m_kI z!_Q(K)m#p^U}#kZo$VW=d~~%u@r$3^Jkz=`EheOuSGSd@&j4#>Ji2YS(m+9l4DC7* zYsh8`P?&4r2@uS$rvx9SvptfG^4p2Z2s_yhq*Bp9lmJQ^lPn~)%{f;@8T_ypb^qPx zMA1P?@D&$#@iBFP_!&O0zQ*t4|6YIdb}AIum}VdUkvV1lUNu&@Hn~cD`GQz+owW(z zj2N7JH2suzm^5TX#pq8vf9&JWABrlbmY%nuQY>uxb=u-w*+wXan!lV`_qX@kpJQ^v zUiQ<=RH@eo)Se95!FJ}LQ4!eV`Wb0%)n>$efUG;DnydhIlO8RpmZ7I26Y#YqW0%%T zeXZjqua{*l>*jh%>-SpOdet%GI%@Rm{Gl9agPZ)C&RQ%ZeeP?QZb_Md!dhyb?a_7_ z$BC!HrVV2P8c3X}#RelSw~ZJvL=Bv@Jt9b<(2L<vW)?e^GXOyfU^n{K2I=Y|L-!pu z3UD;El+3{&wfa~Yj^zs!i?Wgo1gRvA|A|C9tsVZpZJfPSh>p(r2d@8U<$BCCw3V9o zdD_(dp*Wq{eY&bsI}I0yR_u>Jz;fqS_23!J(b?yx(Yo26f&MOJxA8>0y7{L)^qpJ% z6IOYfyT!caDh0PxIIG108bZi#gsF4e0HP;)#Q<uBE1m72s4L~Of(uEk4x5)jZdv6m z$|X!h>9(7*5ifh^!|*IXpWmIUcWs#*nWSosFOI~2KY$kCx!ZD;zCy2>D+-6rMhrwK z1)g(hwH%I}gK7?>(u{07i5pfH52!Yosj6q{S4ZZOSVTS8r3o`y^M07sOpS_4+`p1I zg)RTUQj@uU_)A@7j>c0?X7ZJzEx&DvZJDU}!dRAW`Uj1uF3o6-skWh_*cBffzh%h1 zS;L17(^h*azN5`dPueW1Ht~vv=?giP2j|OcMi;eF=j$3<kY@-RuX3vmcI4k|nyk9X ze&?)Q;;x;|C$?NB+vYL@dznl6dRSmXI`SwJz))h!X^AihR%pu>P>$U#@RCUb74=xT zz%F5C07OBVFukX#m<@qtBt;-*JORt3dF!Ukg!A!<AxsDoY3BAO&u6syjZZJe;j0b3 z2{;*tliiZ*JG45_U#wrF(aj=jFN||X>PoN{-k07EVrACCK80G2tjU7tiMm3uRwZ*p zFb1m^j^)SJXr7<j=t}_}RBGDPr8fGu63mz(YL#>`FEUgTB-sbfKrfT71^4UGjx*bX z%tU&rM$!Glo4?%s7~W3`sj__f%{Nvn$4Zs#uu(<`kQ!SuZVE$4eHRhI42mvY=6&nt zWw5Xh&@cJheJeQ;<;d%Jh*{(KxL_(jP5F@)-L@vqr65!5gfof9JZzRd#Ksm7P;vt} zO?S<ei8c0Sg8Le*hoaZ68Ef0Cr5k*hlZ7j1bpij1D)$VvJ=vTI_paI4ui~np>K_nZ zL;v+cZ>C*Z?-`P=!a^frDV`C)$^t_fn>U#_M_xE8{VX>PJaXZ11%tMsMYUi6Q9!Q0 z$O>HtViMZQZKPvLVPCth%{SEP&8eKz!<39#eBsGja~lN9p_>jt!&Mg1-X1jo$U(3Q zok*H(#*z&=BvZ5*tn}eX;4KA_Fw!2bH_#ZzspZ~E`<g<`rjRHuk_%#MXCt`+L@zGU zy6@&RGuEBUED5RsY#W!6Gvu(ksAtX$(Ux}uoey=rj42d37kR3tgq0p;P)|>0p2W<0 zQxwa0t&?B!t4y1@hbq~rf3&qK<V-HEmM{R;L>6otmBylZKtrjZ?SvBI5}>s<SItov znM)Qzwyl(!>)N#UFu{!_wI<FW@Cc2yWaTy>e|Yovx?%yOEk7o=SKE!CR?>gmbJo_G z*O}o1ICyT|w>B}?_s-q62EHUfi$l+o>&(qh^jE@Ytx6f~I8p4>bgd6|6W2RO6PLcq zO>A-UDZRl32O)?xx0~7Re5R<i(zNl;c!{m^#r@;{{V@)aq0Zv|B^y?Ow)*|o;iouL z!VeyQjdJ)RPid9dIaH$f#qDgd?b~n6Yd9t<pw6BLwNPnlu(4>KSx-mhz`|TcfUuI} zVP_&;#P9k=fD<YM50ex5>g;r>QW2xZI#HkJ^>eKOAVmWf6e6kSkfL5sf!LxOe0m6~ z!3Mbk5iwC_SP>XdgMcBsI~~E@(5aJ>bTjVV39IP8JZ$Jby8uDvq?kQxu6!fPX^mT| zcsF{++H=(F&e4O4ozxXMDUBdg*smyehIk;bcX?^6i6WH95imY<#tMUB)-uV9XSIrp z&kqVkpx%s<k$(XcGFkGEp<-r-E@bU^$NbT&0eMB`Lfcm>N_2kX37fV9iQ%%AWL#Eq zewk1CrQGmEZAMr2{J};^B0rL@za_QaHuP#bC08&!&o}Z7v2`Io^k_3-LV)aJZ@tl5 z>!lb*olxaG7gz#c4eo&?AaaeSdURf!JQtNpQgD}x3P5SHlo4b|<7~WW)^OEgrM8uW zG%B^2TI82IRs*rQ?~*s})V==$m71Tzp+`2z(PM%E$r|HPWjSi7Bw>it88b}b?phdD zGmPr&%yIxC<56LJ;k?wVMz{W^zmP%Ui`y7JYmFYNg>?PFcp2)_{);L(12(NE8tu$p zJ=)go{YPpWNukR^X?DEP_lBDX9*KS{;Y%4lrBLH{E|d*>NC9`Q2#2O4X)1{uA)|2M zh`=(~W(KfPc6%_JP{dGZj~QHvpB{!?SFHpdG%Yf%CIxhcDSV_uVugvg?^>=^`i%^( zF$RgRpGSvA&74ZKS~oNnb5?pK_a#DY9u&nm&P45AkBv8^2oDE}(ah)kLU&(ocFh<k z=-SoA^6LzUslw~Sh|8j1Q*(6qk5oUjI%2F=!$+%qy4^?<Ez*n<Bok!SrLEFn&evDO zB%Ns%WxM&}+Q0)u;LCo+t3u^qu2!z6vLwMq*wV7zSP$m%&<ju6>2^36Z=Tfa{Dg1Y z2oSjL>f<a;*9ox{c@Fb5@{J_&*ZzCfp?~M(f#uY4R$-M1mw^a}SR~Ova^)>p^m(za zYhbFGLbD#<{<SM5o?p9VW6&r~(__lKYvqu+rYe`;sB!J!n#*4U+i)eSaV3_U5sRx$ znUO466VThRx%9fA(DPf?00^7q41Qou-IA$bPdxQS#-IG9@soGSdPY)4V69#YpjX>{ zjJKo2S^kA&YxQ&-9!y#!p@LL<L)dH)fcJrOijjt3CJ@kG8SKh*X>8VjHc_C#$YX>B z?oL41q)<k+!G?oz%50|8YLewK0fKfC&=eZ6xMYApbzh#bNJ_nz;+yVGZSDPydSg-L zWicHZn$9lPa}faXAtU-KS9)FyqIs}^i{9*4{!B!qHixxvkK*QO$$BJ_MYJmjqL(IE z6eWnl{l+w#$G(25OlZW3{Bm*thQ7V~M-E3$rcLp7?Spr@?8q*6anot_AIP0};d;C8 z_S+s^>W7jR-DgNJl||gW%n)vcbD42)GvbR}95|d<s7TfsPeV`YQB+Ehl3IS{*a2W; zmQYBIZYU)ad8?f5IxXIBVV%(7Ret00@K}rHzH)2EDO=#`I^D@^aoz<cNZ}mjg}(B0 zWka1Y+br!6oi}PY3wl+*y~pb_0e4k~2~Mr1^Cdvf-iMZ0u&6ds%K;)1p=g{~i;tB= z(jsvI)N~OB7f#%=h0FnmDyZ=(tH4r*7Hj+Cz9Y?(lc%b+CMZe8jZ1gg4!ehjX}4`? z%S;am0W6Mj(Lo4Jkygbo($==G20H`kjovckDwo&SR-MfXkBX!nrR8MN%?1%?%H@a* zB60#GLDS?Q=H!Nk40D8lARP=0sEM>;o^pYp=DK-PFS8Uvv^8251;Jci3SPugvN%1! zoERh@!d^*qN?N|MRO!FGpZ(&vh>qWCF46QBM?x5y+-}~dA6_5-5r|g@D+~dTnbaFE zYc^I9)J9h-vruSb`pWi%88$2(EI0QwUxr4Q6$rdNU$HE<vsveN4fCQxtADcJf)yv0 zR*|FAMqU)jjU*PiGJOIeGLT-n5FeNA+I#CONSl&>z@7910|Yp5hd-ZHIb=K4q*a%{ z+xM@r@rnqgN<#n-C3EgPH_X`7ks|sNegkvGT>EqlZRBpZB?r8eHmU`Q!vjy&@0W$b zQ?QuD0zv2$FRR&@k5-!&u5l{xRdMHROts?&14|`Yb`{ow>{-a62!&Fmm2~csI$Jcq z<l4@$WUI2-{xE*iUX8`H^cB&sXWY<Mold#;O7q4m$>B>+X>eO@z*x;EjZiC-hIAbQ zxzZ`2gV{p8Qx9%UFyMk)lEji#*{mwl@i=f1x>{}wC<{>n6cy4S+a^rHpc&)o4Y2}h z%wtAHsO=QlCSpdb5HFNzm?3eV*67!Oi7(P0jp#3>l~)K;cqnfH(priFl_h>`Q#BSl z+_-#8aUHc;k!<@vvHdwer+WB#Hj2eF{1gPm!I-XmO&E&UqcaQ3e3<3&TO@;u1A{}a z@!}Ro4hU%zlp5-iSvPAvb{q1U<SXu;vMM<j<|`<#5JW`4BvkPhnT;wX;KSROnA+mo z1APr{t337!zyc)?HQ_Zwm$=?cA6$rfJ86KuuSOwn%SOyo4C;NqVjYNDAf(DGtp<|D zbyi(w)6}|9k2dAEZjrzX5%6uJdE@o?UsK~zUGu4KyKkx~nK+YS6lY`{Ruxjb5^Bk| zdPNM11ZHtJO<~(xWNo8lP^03dD-mz!v5t>mNy}qa1&hLrVzCIZ+pO}+WO-_g3jx9E zQa!yL1TQW2K4dMYOygRma?ZRisdqj@!dRceCthgQ?g86cL|uisKn+*TDXx)@VaGC; zQ0NhrQLkEkhjyB6QFscl(-r}N$e1)lHh5Sa#{#PpBcuo_bkG3;vFUV-hSBYCtRUTt zos1Y$EtA;)e0a^9clrg&jn}Djs(TordSxOq93#c5rdcVMXj3<=>=8J!gzQL(Mgk-L zC>6x;sd&n?_nR^-Y53Mvz=F&qwHY8Itu|tcbfq)vM$HNSn$@V@m}U_a8P+&9zPMxd zZ3eGCmn~kHfa4MMZi60p<tkV5=n3C0QEsA~@nMGNfl_x3(OR1aPoYJdl6DNWgj$D& z7@{CS$6uz$?G0SyA)2MJ2r%+8dCza#yuG*(ZxrE@U<CP6B-V_(XRLao8p2%0DM7Ak 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 A!T<mO literal 0 HcmV?d00001 diff --git a/NaviGator/perception/navigator_vision/navigator_vision/dock1-red.png b/NaviGator/perception/navigator_vision/navigator_vision/dock1-red.png new file mode 100644 index 0000000000000000000000000000000000000000..e39596498ab79c6b5e68c244c8b55a510f91b69c GIT binary patch literal 107626 zcmV)2K+L~VNk&FuqyYd|MM6+kP&iCgqyYdg{lQECO+XI7Hg01;CTRi5{sT+4W%qbT z^nU`jA8$NpBf=OB`-AlyILjLVrHle>UkCu1XABoidLJ%NFsUkLCN#OpBH61ds(9lg zWbc|*5esWLHvr$Tu3jpgJ$_9x01p6oMUpZBiKy;_0oaRd8YCg|0;R(?B~oOtABTH# zmY#wGd+#i=OTH%BEYTjO$?*m$_Kt&$hz4kO-!@Jy)fEFU00P8IEgg4G{o`)ifFHo< zi6<Ux81Q7hB`HF48?T>SH2wvN`e7>*KrJ(VLC@k{c9bK+5q6iYv=xr9B{K6N8-VfP zPCjG1@N8iZAam7bW16k?8+kIiugUz_j@iO%0DEL+K@B(ng!HYpxkbb(-2i$fZnGTY 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%0D8r8g&1Ri~Y0M8GwPDA@dHz1^gmVlt79A8t~O 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 ay(Q<Ao&3fF-_`T$@abRRyXF7y8ejm82SJtq literal 0 HcmV?d00001 diff --git a/NaviGator/perception/navigator_vision/navigator_vision/dock2-blue.png b/NaviGator/perception/navigator_vision/navigator_vision/dock2-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..ced3c858d9f944f93dea12e7f6a2dc4911759a1e GIT binary patch literal 108364 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 literal 0 HcmV?d00001 diff --git a/NaviGator/perception/navigator_vision/navigator_vision/dockdeliver_pipeline.py b/NaviGator/perception/navigator_vision/navigator_vision/dockdeliver_pipeline.py index 97dccb6b1..23037b187 100644 --- a/NaviGator/perception/navigator_vision/navigator_vision/dockdeliver_pipeline.py +++ b/NaviGator/perception/navigator_vision/navigator_vision/dockdeliver_pipeline.py @@ -13,22 +13,36 @@ def __init__(self): """ self.__blur_type = BlurType.Box_Blur - self.__blur_radius = 26.126126126126124 - + self.__blur_radius = 6 self.blur_output = None - self.__rgb_threshold_input = self.blur_output - self.__rgb_threshold_red = [0.0, 109.04040404040403] - self.__rgb_threshold_green = [64.20863309352518, 148.10606060606062] - self.__rgb_threshold_blue = [119.24460431654676, 255.0] + self.__hsv_threshold_input = self.blur_output + self.__hsv_threshold_hue = [0.0, 180.0] + self.__hsv_threshold_saturation = [0.0, 160.55555555555554] + self.__hsv_threshold_value = [64.20863309352518, 255.0] - self.rgb_threshold_output = None + self.hsv_threshold_output = None - self.__find_contours_input = self.rgb_threshold_output + self.__find_contours_input = self.hsv_threshold_output self.__find_contours_external_only = False self.find_contours_output = None + self.__filter_contours_contours = self.find_contours_output + self.__filter_contours_min_area = 1000.0 + self.__filter_contours_min_perimeter = 0.0 + self.__filter_contours_min_width = 0.0 + self.__filter_contours_max_width = 1000.0 + self.__filter_contours_min_height = 0.0 + self.__filter_contours_max_height = 1000.0 + self.__filter_contours_solidity = [90.8273381294964, 100.0] + self.__filter_contours_max_vertices = 50.0 + self.__filter_contours_min_vertices = 0.0 + self.__filter_contours_min_ratio = 0.0 + self.__filter_contours_max_ratio = 2.0 + + self.filter_contours_output = None + def process(self, source0): """ @@ -38,14 +52,18 @@ def process(self, source0): self.__blur_input = source0 (self.blur_output) = self.__blur(self.__blur_input, self.__blur_type, self.__blur_radius) - # Step RGB_Threshold0: - self.__rgb_threshold_input = self.blur_output - (self.rgb_threshold_output) = self.__rgb_threshold(self.__rgb_threshold_input, self.__rgb_threshold_red, self.__rgb_threshold_green, self.__rgb_threshold_blue) + # Step HSV_Threshold0: + self.__hsv_threshold_input = self.blur_output + (self.hsv_threshold_output) = self.__hsv_threshold(self.__hsv_threshold_input, self.__hsv_threshold_hue, self.__hsv_threshold_saturation, self.__hsv_threshold_value) # Step Find_Contours0: - self.__find_contours_input = self.rgb_threshold_output + self.__find_contours_input = self.hsv_threshold_output (self.find_contours_output) = self.__find_contours(self.__find_contours_input, self.__find_contours_external_only) + # Step Filter_Contours0: + self.__filter_contours_contours = self.find_contours_output + (self.filter_contours_output) = self.__filter_contours(self.__filter_contours_contours, self.__filter_contours_min_area, self.__filter_contours_min_perimeter, self.__filter_contours_min_width, self.__filter_contours_max_width, self.__filter_contours_min_height, self.__filter_contours_max_height, self.__filter_contours_solidity, self.__filter_contours_max_vertices, self.__filter_contours_min_vertices, self.__filter_contours_min_ratio, self.__filter_contours_max_ratio) + @staticmethod def __blur(src, type, radius): @@ -70,18 +88,18 @@ def __blur(src, type, radius): return cv2.bilateralFilter(src, -1, round(radius), round(radius)) @staticmethod - def __rgb_threshold(input, red, green, blue): - """Segment an image based on color ranges. + def __hsv_threshold(input, hue, sat, val): + """Segment an image based on hue, saturation, and value ranges. Args: input: A BGR numpy.ndarray. - red: A list of two numbers the are the min and max red. - green: A list of two numbers the are the min and max green. - blue: A list of two numbers the are the min and max blue. + hue: A list of two numbers the are the min and max hue. + sat: A list of two numbers the are the min and max saturation. + lum: A list of two numbers the are the min and max value. Returns: A black and white numpy.ndarray. """ - out = cv2.cvtColor(input, cv2.COLOR_BGR2RGB) - return cv2.inRange(out, (red[0], green[0], blue[0]), (red[1], green[1], blue[1])) + out = cv2.cvtColor(input, cv2.COLOR_BGR2HSV) + return cv2.inRange(out, (hue[0], sat[0], val[0]), (hue[1], sat[1], val[1])) @staticmethod def __find_contours(input, external_only): @@ -97,9 +115,54 @@ def __find_contours(input, external_only): else: mode = cv2.RETR_LIST method = cv2.CHAIN_APPROX_SIMPLE - im2, contours, hierarchy =cv2.findContours(input, mode=mode, method=method) + contours, hierarchy =cv2.findContours(input, mode=mode, method=method) return contours + @staticmethod + def __filter_contours(input_contours, min_area, min_perimeter, min_width, max_width, + min_height, max_height, solidity, max_vertex_count, min_vertex_count, + min_ratio, max_ratio): + """Filters out contours that do not meet certain criteria. + Args: + input_contours: Contours as a list of numpy.ndarray. + min_area: The minimum area of a contour that will be kept. + min_perimeter: The minimum perimeter of a contour that will be kept. + min_width: Minimum width of a contour. + max_width: MaxWidth maximum width. + min_height: Minimum height. + max_height: Maximimum height. + solidity: The minimum and maximum solidity of a contour. + min_vertex_count: Minimum vertex Count of the contours. + max_vertex_count: Maximum vertex Count. + min_ratio: Minimum ratio of width to height. + max_ratio: Maximum ratio of width to height. + Returns: + Contours as a list of numpy.ndarray. + """ + output = [] + for contour in input_contours: + x,y,w,h = cv2.boundingRect(contour) + if (w < min_width or w > max_width): + continue + if (h < min_height or h > max_height): + continue + area = cv2.contourArea(contour) + if (area < min_area): + continue + if (cv2.arcLength(contour, True) < min_perimeter): + continue + hull = cv2.convexHull(contour) + solid = 100 * area / cv2.contourArea(hull) + if (solid < solidity[0] or solid > solidity[1]): + continue + if (len(contour) < min_vertex_count or len(contour) > max_vertex_count): + continue + ratio = (float)(w) / h + if (ratio < min_ratio or ratio > max_ratio): + continue + output.append(contour) + return output + BlurType = Enum('BlurType', 'Box_Blur Gaussian_Blur Median_Filter Bilateral_Filter') - + diff --git a/NaviGator/perception/navigator_vision/navigator_vision/test_pipeline.py b/NaviGator/perception/navigator_vision/navigator_vision/test_pipeline.py new file mode 100644 index 000000000..2dc256b24 --- /dev/null +++ b/NaviGator/perception/navigator_vision/navigator_vision/test_pipeline.py @@ -0,0 +1,33 @@ +from dockdeliver_pipeline import GripPipeline +import cv2 as cv +import numpy as np +import math + + +img_path = "dock2-blue.png" +image = cv.imread(img_path) + +pipeline = GripPipeline() + +pipeline.process(image) +img = pipeline.hsv_threshold_output +img2 = pipeline.blur_output +contours = pipeline.filter_contours_output + + +#print_image_values(img) +print(contours[0]) +centroid = np.mean(contours[0], axis=0) +print(centroid[0]) +print((centroid[0][0],centroid[0][1])) + +cv.imshow("blur", img2) +cv.imshow("threshold", img) +img3 = cv.drawContours(img2, contours, -1, (0,255,0), 3) +img3 = cv.circle(img3, ((math.ceil(centroid[0][0]),math.ceil(centroid[0][1]))), radius=2, color=(0, 0, 255), thickness=1) +cv.imshow("contours", img3) + + + +cv.waitKey(0) +cv.destroyAllWindows() \ No newline at end of file From d9077718d8fdfa4d773a4bb328b34bebd976a2bc Mon Sep 17 00:00:00 2001 From: willzoo <zhujwill@gmail.com> Date: Sun, 27 Oct 2024 22:51:08 -0400 Subject: [PATCH 24/30] Changed dock position and attempted to fix lidar cropping issue --- .../navigator_launch/config/poi_sim.yaml | 2 +- .../navigator_missions/docking.py | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/NaviGator/mission_control/navigator_launch/config/poi_sim.yaml b/NaviGator/mission_control/navigator_launch/config/poi_sim.yaml index e7f1812c5..1840f9108 100644 --- a/NaviGator/mission_control/navigator_launch/config/poi_sim.yaml +++ b/NaviGator/mission_control/navigator_launch/config/poi_sim.yaml @@ -2,7 +2,7 @@ global_frame: enu initial_pois: circle_totems: [26.09821319580078, 59.91523361206055, 0.0] - dock: [40, 15, 0.0] + dock: [28, 22, 0.0] entrance_gate: [51.28, -48.69, 0.0] obstacle_course: [-32.803, -83.41, 0.0] ring_challenge: [61.271873474121094, 15.894840240478516, 0.0] diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 4dbdb9364..ce3348be9 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -15,6 +15,8 @@ from sensor_msgs.msg import CameraInfo, Image from std_srvs.srv import SetBool, SetBoolRequest from tf.transformations import quaternion_matrix +import matplotlib.pyplot as plt, numpy as np +from mpl_toolkits.mplot3d import Axes3D from .navigator import NaviGatorMission from navigator_vision import GripPipeline @@ -114,6 +116,7 @@ async def run(self, args): pos = await self.poi.get("dock") rospy.logerr("HERE4") pos = pos[0] + await self.move.look_at(pos).go() # Face the dock await self.move.set_position(pos).look_at(pos).go() # Decrease cluster tolerance as we approach dock since lidar points are more dense @@ -295,12 +298,33 @@ def get_correct_side(self, dock): # separates the clusters using k means clustering def get_cluster_centers(self, data): + fig = plt.figure() + ax = fig.add_subplot(111, projection='3d') + ax.plot(data[:,0],data[:,1],data[:,2]) + plt.draw() + plt.pause(0.1) + input("<Hit Enter To Close>") + plt.close(fig) + # cut off all points below the mean z value mean = np.mean(data, axis=0)[2] data = data[data[:, 2] > mean] + + # Additionally, cut of points below lower quartile x value + xq1 = np.quantile(data[:, 0], 0.25) + data = data[data[:, 0] > xq1] centroids = [] + fig = plt.figure() + ax = fig.add_subplot(111, projection='3d') + ax.plot(data[:,0],data[:,1],data[:,2]) + plt.draw() + plt.pause(0.1) + input("<Hit Enter To Close>") + plt.close(fig) + + # Sample initial centroids random_indices = random.sample(range(data.shape[0]), 3) for i in random_indices: From 2ce1347f1caab21aacee77cb174236dec0e085f3 Mon Sep 17 00:00:00 2001 From: willzoo <zhujwill@gmail.com> Date: Tue, 29 Oct 2024 13:30:53 -0400 Subject: [PATCH 25/30] Commented out move to poi because its unreliable. Set the wamv pose to -501 x and 186 y before running docking mission from now on. --- .../navigator_missions/docking.py | 69 +++++++++++-------- 1 file changed, 42 insertions(+), 27 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index ce3348be9..c7efa8a04 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -116,8 +116,8 @@ async def run(self, args): pos = await self.poi.get("dock") rospy.logerr("HERE4") pos = pos[0] - await self.move.look_at(pos).go() # Face the dock - await self.move.set_position(pos).look_at(pos).go() + # await self.move.look_at(pos).yaw_right(20, unit="deg").go() # Face the dock + # await self.move.set_position(pos).look_at(pos).go() # Decrease cluster tolerance as we approach dock since lidar points are more dense # This helps scenario where stc buoy is really close to dock @@ -186,7 +186,7 @@ async def run(self, args): # cv2.destroyAllWindows() # Close the image window before re-looping # If the images are correct, then break. We need to check if the height ranges from 170-180 and width ranges from 130-150 - if images[0].shape[0] in range(90, 191) and images[0].shape[1] in range(101, 180) and images[1].shape[0] in range(90, 191) and images[1].shape[1] in range(101, 180) and images[2].shape[0] in range(90, 191) and images[2].shape[1] in range(101, 180): + if images[0].shape[0] in range(70, 171) and images[0].shape[1] in range(101, 180) and images[1].shape[0] in range(70, 171) and images[1].shape[1] in range(101, 180) and images[2].shape[0] in range(70, 171) and images[2].shape[1] in range(101, 180): correct_dock_number = self.find_color(images, goal_color) if correct_dock_number != -1: break @@ -208,9 +208,9 @@ async def run(self, args): await self.move.set_position(nextPt).go(blind=True, move_type="skid") # Align with hole -> work in progress, see navigator_vision/dockdeliver_pipeline.py in navigator vision - #image = await self.image_sub.get_next_message() - #image = self.bridge.imgmsg_to_cv2(image) - #self.grip.process(image) + image = await self.image_sub.get_next_message() + image = self.bridge.imgmsg_to_cv2(image) + self.grip.process(image) # Shoot racquet ball projectile @@ -298,13 +298,13 @@ def get_correct_side(self, dock): # separates the clusters using k means clustering def get_cluster_centers(self, data): - fig = plt.figure() - ax = fig.add_subplot(111, projection='3d') - ax.plot(data[:,0],data[:,1],data[:,2]) - plt.draw() - plt.pause(0.1) - input("<Hit Enter To Close>") - plt.close(fig) + # fig = plt.figure() + # ax = fig.add_subplot(111, projection='3d') + # ax.plot(data[:,0],data[:,1],data[:,2]) + # plt.draw() + # plt.pause(0.1) + # input("<Hit Enter To Close>") + # plt.close(fig) # cut off all points below the mean z value @@ -316,13 +316,13 @@ def get_cluster_centers(self, data): data = data[data[:, 0] > xq1] centroids = [] - fig = plt.figure() - ax = fig.add_subplot(111, projection='3d') - ax.plot(data[:,0],data[:,1],data[:,2]) - plt.draw() - plt.pause(0.1) - input("<Hit Enter To Close>") - plt.close(fig) + # fig = plt.figure() + # ax = fig.add_subplot(111, projection='3d') + # ax.plot(data[:,0],data[:,1],data[:,2]) + # plt.draw() + # plt.pause(0.1) + # input("<Hit Enter To Close>") + # plt.close(fig) # Sample initial centroids @@ -534,6 +534,8 @@ async def shoot_projectile(self): # Use Canny edge detection edges = cv2.Canny(blurred, 50, 150) + + rospy.logerr("- SHOOT PROJ 1 -") # Find contours in the edged image contours, _ = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) @@ -541,14 +543,21 @@ async def shoot_projectile(self): # Count to keep track of number of squares square_count = 0 + cv2.imshow("Squares Detected", img) + cv2.waitKey(0) + cv2.destroyAllWindows() + # Loop over the contours - for contour in contours: + for contour in contours: + rospy.logerr("- SHOOT PROJ LOOP -") + # Approximate the contour to a polygon epsilon = 0.02 * cv2.arcLength(contour, True) approx = cv2.approxPolyDP(contour, epsilon, True) # If the approximated contour has 4 vertices, it's a square (or rectangle) if len(approx) == 4: + rospy.logerr("- SHOOT PROJ HAS 4 VERTICES -") x, y, w, h = cv2.boundingRect(approx) # Calculate the aspect ratio @@ -556,19 +565,25 @@ async def shoot_projectile(self): # Check if the aspect ratio is close to 1 (square) if 0.95 <= aspect_ratio <= 1.05: - cv2.drawContours(img, [approx], -1, (0, 255, 0), 2) + rospy.logerr("- SHOOT PROJ IS A SQUARE -") + # cv2.drawContours(img, [approx], -1, (0, 255, 0), 2) square_count += 1 - - # If three squares are not found (color and two holes) then bad - if square_count != 3: - rospy.logerr("Error: Incorrect number of squares detected") - return + rospy.logerr(f"- SHOOT PROJ LOOP FINISHED -") + + rospy.logerr("- SHOOT PROJ CV2.IMSHOW BEFORE REACHED -") # Display the result cv2.imshow("Squares Detected", img) cv2.waitKey(0) cv2.destroyAllWindows() + # If three squares are not found (color and two holes) then bad + if square_count != 3: + rospy.logerr("Error: Incorrect number of squares detected") + return + + rospy.logerr("- SHOOT PROJ WINDOWS DESTROYED -") + # ADD SHOOTING MECHANICS HERE def find_color(self, images, goal_color): From 04c440a30180ca2a9c67df1a84ecc29cf4273e1e Mon Sep 17 00:00:00 2001 From: willzoo <zhujwill@gmail.com> Date: Fri, 1 Nov 2024 16:31:02 -0400 Subject: [PATCH 26/30] Added anthony's change and clarified comments for RobotX 2024 --- .../navigator_missions/docking.py | 166 +++++++----------- 1 file changed, 59 insertions(+), 107 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index c7efa8a04..87574a5a5 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -3,6 +3,7 @@ import random from typing import Optional +import math import cv2 import numpy as np import rospy @@ -116,8 +117,8 @@ async def run(self, args): pos = await self.poi.get("dock") rospy.logerr("HERE4") pos = pos[0] - # await self.move.look_at(pos).yaw_right(20, unit="deg").go() # Face the dock - # await self.move.set_position(pos).look_at(pos).go() + await self.move.look_at(pos).go() # Face the dock + await self.move.set_position(pos).look_at(pos).go() # Decrease cluster tolerance as we approach dock since lidar points are more dense # This helps scenario where stc buoy is really close to dock @@ -133,9 +134,9 @@ async def run(self, args): # retry calculation to make sure we really found the open side await self.move_to_correct_side() - # Temp goal color until we can get the actual color that we want to dock to - goal_color = "Red" - correct_dock_number = -1 + # TODO: IMPORTANT MESSAGE FROM WILLIAM - Change color to correct one when announced on each day. Correct strings are {"Blue", "Red", "Green"} + goal_color = "Green" + correct_dock_number = -1 # Correct dock number will be set to 0 1 or 2 after the CV code runs # The LIDAR to camera mapping is very unreliable, so we loop until it is correct while True: @@ -167,42 +168,28 @@ async def run(self, args): # crop the images to get bbox and find color images = await self.crop_images(clusters, centers) + # TODO: IMPORTANT MESSAGE FROM WILL - These are the preferred sizes in the sim, but the docks will be farther apart in real life, so adjust tolerances during practice # preferred height (x) for cropped image: 170-180 # preferred width (y) for cropped image: 130-150 - # OLD USER BASED METHOD OF FINDING DOCK COLOR - # When 'e' key is pressed, the current set of images will be chosen and move forward - # When another key is pressed, we try again - # if images[0].size > 0: - # cv2.imshow('Image 0 (press e if all images are correct) ', cv2.cvtColor(images[0], cv2.COLOR_BGR2RGB)) - # if images[1].size > 0: - # cv2.imshow('Image 1 (press e if all images are correct) ', cv2.cvtColor(images[1], cv2.COLOR_BGR2RGB)) - # if images[2].size > 0: - # cv2.imshow('Image 2 (press e if all images are correct) ', cv2.cvtColor(images[2], cv2.COLOR_BGR2RGB)) - # key = cv2.waitKey(0) & 0xFF - # if key == ord('e'): - # cv2.destroyAllWindows() - # break - # cv2.destroyAllWindows() # Close the image window before re-looping - - # If the images are correct, then break. We need to check if the height ranges from 170-180 and width ranges from 130-150 + # If the images are correct, then break. Check that the height and width are in reasonable ranges if images[0].shape[0] in range(70, 171) and images[0].shape[1] in range(101, 180) and images[1].shape[0] in range(70, 171) and images[1].shape[1] in range(101, 180) and images[2].shape[0] in range(70, 171) and images[2].shape[1] in range(101, 180): correct_dock_number = self.find_color(images, goal_color) if correct_dock_number != -1: break rospy.logerr(f"Here is the correct dock number: {correct_dock_number}") - + # temporary code that just moves boat to center of cluster with whatever color was specified - left = copy.deepcopy(centers[correct_dock_number]) + correct_dock = copy.deepcopy(centers[correct_dock_number]) # calculate center of cluster and move towards it but at an offset distance - left[0] = 0 + correct_dock[0] = 0 forward = copy.deepcopy(centers[correct_dock_number]) # This is what calculates how far from the dock the boat docks forward[0] = forward[0] - 8 boat_to_enu = await self.tf_listener.get_transform("enu", "wamv/base_link") - centers[correct_dock_number] = boat_to_enu.transform_point(left) + centers[correct_dock_number] = boat_to_enu.transform_point(correct_dock) nextPt = boat_to_enu.transform_point(forward) await self.move.set_position(centers[correct_dock_number]).go(blind=True, move_type="skid") await self.move.set_position(nextPt).go(blind=True, move_type="skid") @@ -212,11 +199,34 @@ async def run(self, args): image = self.bridge.imgmsg_to_cv2(image) self.grip.process(image) + img = self.grip.hsv_threshold_output + img2 = self.grip.blur_output + contours = self.grip.filter_contours_output + + #print_image_values(img) + print(contours[0]) + centroid = np.mean(contours[0], axis=0) + print(centroid[0]) + print((centroid[0][0],centroid[0][1])) + + cv2.imshow("blur", img2) + cv2.imshow("threshold", img) + img3 = cv2.drawContours(img2, contours, -1, (0,255,0), 3) + img3 = cv2.circle(img3, ((math.ceil(centroid[0][0]),math.ceil(centroid[0][1]))), radius=2, color=(0, 0, 255), thickness=1) + cv2.imshow("contours", img3) + + cv2.waitKey(0) + cv2.destroyAllWindows() # Shoot racquet ball projectile rospy.logerr("- BEFORE SHOOT PROJ -") - if correct_dock_number != -1 and correct_dock_number is not None: - await self.shoot_projectile() + if correct_dock_number != -1 and correct_dock_number is not None: + # a call to shoot_projectile() used to be here (shoot projectile did not actually shoot any projectiles before it was deleted) + for i in range(0, 4): + await self.reload_launcher() + await self.nh.sleep(2) + await self.fire_launcher() + await self.nh.sleep(2) await self.pcodar_save(SetBoolRequest(False)) await self.contour_pub.shutdown() @@ -241,8 +251,9 @@ async def move_to_correct_side(self): # looks the the LIDAR cluster database and finds the object with name "dock" dock, pos = await self.get_sorted_objects(name="dock", n=1) except Exception as _: - # retries if an exception occurs + # retries if an exception occurs (cannot find dock) await self.find_dock() + await self.move.yaw_right(20, unit="deg").go() # Likely the boat is not facing the right direction and cant see the dock, this line fixes that dock, pos = await self.get_sorted_objects(name="dock", n=1) # find the open side of the dock @@ -521,12 +532,12 @@ async def crop_images(self, clusters, centers): return list + # I don't think this function is needed anymore because anthony put his CV box detection code in main async def shoot_projectile(self): # Gets the image from the boat camera at this point in time img = await self.image_sub.get_next_message() img = self.bridge.imgmsg_to_cv2(img) - - rospy.logerr("- SHOOT PROJ REACHED -") + gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Apply Gaussian blur to the image @@ -534,9 +545,7 @@ async def shoot_projectile(self): # Use Canny edge detection edges = cv2.Canny(blurred, 50, 150) - - rospy.logerr("- SHOOT PROJ 1 -") - + # Find contours in the edged image contours, _ = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) @@ -549,7 +558,6 @@ async def shoot_projectile(self): # Loop over the contours for contour in contours: - rospy.logerr("- SHOOT PROJ LOOP -") # Approximate the contour to a polygon epsilon = 0.02 * cv2.arcLength(contour, True) @@ -557,7 +565,6 @@ async def shoot_projectile(self): # If the approximated contour has 4 vertices, it's a square (or rectangle) if len(approx) == 4: - rospy.logerr("- SHOOT PROJ HAS 4 VERTICES -") x, y, w, h = cv2.boundingRect(approx) # Calculate the aspect ratio @@ -568,10 +575,6 @@ async def shoot_projectile(self): rospy.logerr("- SHOOT PROJ IS A SQUARE -") # cv2.drawContours(img, [approx], -1, (0, 255, 0), 2) square_count += 1 - - rospy.logerr(f"- SHOOT PROJ LOOP FINISHED -") - - rospy.logerr("- SHOOT PROJ CV2.IMSHOW BEFORE REACHED -") # Display the result cv2.imshow("Squares Detected", img) cv2.waitKey(0) @@ -588,12 +591,9 @@ async def shoot_projectile(self): def find_color(self, images, goal_color): # NOTE: An OpenCV window will open, close it to progress - # Current iteration of find color works by looking through images, - # then cropping images to the gray backboard (crop_images() does not always crop), - # then it looks at a vertical line at the center of the image and averages the + # Current iteration of find color works by looking + # at a vertical line at the center of the image and averaging # non-gray values, returning Red Green Blue or Other. - # Function does not always work, because the source image is weirdly cropped - # or missing sometimes. count = 0 @@ -609,53 +609,6 @@ def find_color(self, images, goal_color): # Convert from BGR to RGB img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) - - - # This code was used to detect the gray dock board and mask everything else out - # But it is not very useful, because there is a gray building in the background - # # Split RGB channels - # R, G, B = cv2.split(img_rgb) - # # Thresholds for detecting gray - # diff_threshold = 20 # Maximum difference allowed between R, G, and B - # gray_lower = 80 # Lower bound for gray intensity - # gray_upper = 200 # Upper bound for gray intensity - - # # Create a mask to find the gray board - # mask = ( - # (abs(R - G) < diff_threshold) - # & (abs(R - B) < diff_threshold) - # & (abs(G - B) < diff_threshold) - # & (gray_lower <= R) - # & (gray_upper >= R) # Apply threshold for gray intensity - # & (gray_lower <= G) - # & (gray_upper >= G) - # & (gray_lower <= B) - # & (gray_upper >= B) - # ).astype( - # "uint8", - # ) * 255 # Convert the mask to a binary format (0 or 255) - - # dock_color = (0, 0, 0) # Default value for color of dock - - # # Find contours of gray regions (the gray board) - # contours, _ = cv2.findContours( - # mask, - # cv2.RETR_EXTERNAL, - # cv2.CHAIN_APPROX_SIMPLE, - # ) - # if contours: - # # Largest contour is gray board - # largest_contour = max(contours, key=cv2.contourArea) - # x, y, w, h = cv2.boundingRect(largest_contour) - - # # Uncomment to draw a rectangle around the detected gray board, show in openCV - # # cv2.rectangle(img_rgb, (x, y), (x + w, y + h), (0, 255, 0), 2) - # # cv2.imshow('Gray Board Detection', img_rgb) - - # # Crops Image around Gray Board - # cropped_img = img_rgb[y : y + h, x : x + w] - # cv2.imshow(f"{count}", cropped_img) - # Now we find the color of the dock using the vertical centerline # Iterate over the vertical centerline from top to bottom cropped_img = img @@ -714,22 +667,21 @@ def find_color(self, images, goal_color): blue_ratio = blue_pixels / num_pixels if num_pixels > 0 else 0 # Now check if we find two colors outside of the tolerance by checking if there is an outright majority of one color - if(count != 0): # PLEASE REMOVE THIS OUTER IF DURING ACTUAL TESTING, THIS IS TO SKIP THE YELLOW DOCK - if (not ( - (red_ratio - green_ratio > color_tolerance - and red_ratio - blue_ratio > color_tolerance) - or - (green_ratio - blue_ratio > color_tolerance - and green_ratio - red_ratio > color_tolerance) - or - (blue_ratio - green_ratio > color_tolerance - and blue_ratio - red_ratio > color_tolerance) - ) - ): - rospy.logerr( - f"Error: Found two colors in image {count} with ratios: R: {red_ratio}, G: {green_ratio}, B: {blue_ratio}") - # We return -1 signaling that this failed - return -1 + if (not ( + (red_ratio - green_ratio > color_tolerance + and red_ratio - blue_ratio > color_tolerance) + or + (green_ratio - blue_ratio > color_tolerance + and green_ratio - red_ratio > color_tolerance) + or + (blue_ratio - green_ratio > color_tolerance + and blue_ratio - red_ratio > color_tolerance) + ) + ): + rospy.logerr( + f"Error: Found two colors in image {count} with ratios: R: {red_ratio}, G: {green_ratio}, B: {blue_ratio}") + # We return -1 signaling that this failed + return -1 # Max ratio allowed between main color and other 2 values color_ratio = 0.9 From 37c961111a25c1eefcd4336cac8dd984ef4cc2fb Mon Sep 17 00:00:00 2001 From: willzoo <zhujwill@gmail.com> Date: Sun, 3 Nov 2024 11:24:46 -0500 Subject: [PATCH 27/30] Added some more clarifying comments --- .../navigator_missions/navigator_missions/docking.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 87574a5a5..68af33184 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -195,6 +195,7 @@ async def run(self, args): await self.move.set_position(nextPt).go(blind=True, move_type="skid") # Align with hole -> work in progress, see navigator_vision/dockdeliver_pipeline.py in navigator vision + # This part finds the holes in the docks for a future aligning algorithm that has not been implemented yet image = await self.image_sub.get_next_message() image = self.bridge.imgmsg_to_cv2(image) self.grip.process(image) @@ -221,7 +222,12 @@ async def run(self, args): # Shoot racquet ball projectile rospy.logerr("- BEFORE SHOOT PROJ -") if correct_dock_number != -1 and correct_dock_number is not None: - # a call to shoot_projectile() used to be here (shoot projectile did not actually shoot any projectiles before it was deleted) + # TODO: Aim the raqcetball launcher into the holes. The racquetball launcher is fixed, so the boat is what needs to be aimed. + # When you get to the practice course, this can theoretically be done with, for example, + # await self.move.forward(1.3).go() + # await self.move.left(0.3).go() + # Since the boat should be in the same place in the dock whenever it docks + for i in range(0, 4): await self.reload_launcher() await self.nh.sleep(2) From 436ac7568a97eecc92ad5ba3bc3fe758ed894621 Mon Sep 17 00:00:00 2001 From: andrew-aj <andrew.knee.j@gmail.com> Date: Thu, 7 Nov 2024 23:33:04 -0500 Subject: [PATCH 28/30] tuned docking --- .../navigator_missions/docking.py | 169 ++++++++++-------- .../navigator_missions/navigator.py | 17 +- 2 files changed, 113 insertions(+), 73 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 68af33184..12a4b1e36 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -1,9 +1,9 @@ #!/usr/bin/env python3 import copy +import math import random from typing import Optional -import math import cv2 import numpy as np import rospy @@ -13,14 +13,12 @@ from image_geometry import PinholeCameraModel from mil_tools import pose_to_numpy, rosmsg_to_numpy from nav_msgs.msg import OccupancyGrid +from navigator_vision import GripPipeline from sensor_msgs.msg import CameraInfo, Image from std_srvs.srv import SetBool, SetBoolRequest from tf.transformations import quaternion_matrix -import matplotlib.pyplot as plt, numpy as np -from mpl_toolkits.mplot3d import Axes3D from .navigator import NaviGatorMission -from navigator_vision import GripPipeline PANNEL_MAX = 0 PANNEL_MIN = 2 @@ -44,21 +42,27 @@ def __init__(self, *args, **kwargs): callback=self.ogrid_cb, ) + self.camera_topic = rospy.get_param( + "/classifier/image_topic", + "/camera/front/left/image_color", + ) + split = self.camera_topic.split("/") + self.camera_info_topic = "" + for i in range(1, len(split) - 1): + self.camera_info_topic += "/" + split[i] + rospy.logerr(self.camera_info_topic) + + self.camera_info_topic += "/camera_info" + # Service to save and restore the settings of PCODAR self.pcodar_save = self.nh.get_service_client("/pcodar/save", SetBool) - # self.image_sub = self.nh.subscribe( - # "/wamv/sensors/cameras/front_left_camera/image_raw", Image - # ) self.image_sub = self.nh.subscribe( - "/wamv/sensors/camera/front_left_cam/image_raw", + self.camera_topic, Image, ) self.cam_frame = None - # self.image_info_sub = self.nh.subscribe( - # "/wamv/sensors/cameras/front_left_camera/camera_info", CameraInfo - # ) self.image_info_sub = self.nh.subscribe( - "/wamv/sensors/camera/front_left_cam/camera_info", + self.camera_info_topic, CameraInfo, ) self.model = PinholeCameraModel() @@ -78,6 +82,7 @@ async def shutdown(cls): await cls.ogrid_sub.shutdown() await cls.image_sub.shutdown() await cls.image_info_sub.shutdown() + await cls.pcodar_save.shutdown() async def run(self, args): await self.contour_pub.setup() @@ -90,9 +95,10 @@ async def run(self, args): rospy.logerr("INFO DONE") await self.pcodar_save.wait_for_service() rospy.logerr("PCODAR DONE") - + self.grip = GripPipeline() await self.change_wrench("autonomous") + rospy.logerr("WRENCH SET") self.bridge = CvBridge() msg = await self.image_info_sub.get_next_message() @@ -117,7 +123,7 @@ async def run(self, args): pos = await self.poi.get("dock") rospy.logerr("HERE4") pos = pos[0] - await self.move.look_at(pos).go() # Face the dock + await self.move.look_at(pos).go() # Face the dock await self.move.set_position(pos).look_at(pos).go() # Decrease cluster tolerance as we approach dock since lidar points are more dense @@ -135,11 +141,13 @@ async def run(self, args): await self.move_to_correct_side() # TODO: IMPORTANT MESSAGE FROM WILLIAM - Change color to correct one when announced on each day. Correct strings are {"Blue", "Red", "Green"} - goal_color = "Green" - correct_dock_number = -1 # Correct dock number will be set to 0 1 or 2 after the CV code runs + goal_color = "Blue" + correct_dock_number = ( + 0 # Correct dock number will be set to 0 1 or 2 after the CV code runs + ) # The LIDAR to camera mapping is very unreliable, so we loop until it is correct - while True: + for _ in range(0, 10): # get the dock object from the database dock, pos = await self.get_sorted_objects(name="dock", n=1) @@ -167,19 +175,26 @@ async def run(self, args): # crop the images to get bbox and find color images = await self.crop_images(clusters, centers) - + # TODO: IMPORTANT MESSAGE FROM WILL - These are the preferred sizes in the sim, but the docks will be farther apart in real life, so adjust tolerances during practice # preferred height (x) for cropped image: 170-180 # preferred width (y) for cropped image: 130-150 # If the images are correct, then break. Check that the height and width are in reasonable ranges - if images[0].shape[0] in range(70, 171) and images[0].shape[1] in range(101, 180) and images[1].shape[0] in range(70, 171) and images[1].shape[1] in range(101, 180) and images[2].shape[0] in range(70, 171) and images[2].shape[1] in range(101, 180): + if ( + images[0].shape[0] in range(70, 171) + and images[0].shape[1] in range(101, 180) + and images[1].shape[0] in range(70, 171) + and images[1].shape[1] in range(101, 180) + and images[2].shape[0] in range(70, 171) + and images[2].shape[1] in range(101, 180) + ): correct_dock_number = self.find_color(images, goal_color) if correct_dock_number != -1: break rospy.logerr(f"Here is the correct dock number: {correct_dock_number}") - + # temporary code that just moves boat to center of cluster with whatever color was specified correct_dock = copy.deepcopy(centers[correct_dock_number]) @@ -187,59 +202,66 @@ async def run(self, args): correct_dock[0] = 0 forward = copy.deepcopy(centers[correct_dock_number]) # This is what calculates how far from the dock the boat docks - forward[0] = forward[0] - 8 + forward[0] = forward[0] - 3.25 boat_to_enu = await self.tf_listener.get_transform("enu", "wamv/base_link") - centers[correct_dock_number] = boat_to_enu.transform_point(correct_dock) + correct_center = boat_to_enu.transform_point(correct_dock) nextPt = boat_to_enu.transform_point(forward) - await self.move.set_position(centers[correct_dock_number]).go(blind=True, move_type="skid") - await self.move.set_position(nextPt).go(blind=True, move_type="skid") + await self.move.set_position(correct_center).go(blind=True, move_type="skid") + await self.move.set_position(nextPt).go( + blind=True, + move_type="skid", + speed_factor=[0.25, 0.25, 0.25], + ) # Align with hole -> work in progress, see navigator_vision/dockdeliver_pipeline.py in navigator vision # This part finds the holes in the docks for a future aligning algorithm that has not been implemented yet image = await self.image_sub.get_next_message() - image = self.bridge.imgmsg_to_cv2(image) + image = self.bridge.imgmsg_to_cv2(image) self.grip.process(image) img = self.grip.hsv_threshold_output img2 = self.grip.blur_output contours = self.grip.filter_contours_output - #print_image_values(img) + # print_image_values(img) print(contours[0]) centroid = np.mean(contours[0], axis=0) print(centroid[0]) - print((centroid[0][0],centroid[0][1])) + print((centroid[0][0], centroid[0][1])) cv2.imshow("blur", img2) cv2.imshow("threshold", img) - img3 = cv2.drawContours(img2, contours, -1, (0,255,0), 3) - img3 = cv2.circle(img3, ((math.ceil(centroid[0][0]),math.ceil(centroid[0][1]))), radius=2, color=(0, 0, 255), thickness=1) + img3 = cv2.drawContours(img2, contours, -1, (0, 255, 0), 3) + img3 = cv2.circle( + img3, + ((math.ceil(centroid[0][0]), math.ceil(centroid[0][1]))), + radius=2, + color=(0, 0, 255), + thickness=1, + ) cv2.imshow("contours", img3) - cv2.waitKey(0) + # cv2.waitKey(0) cv2.destroyAllWindows() - + # Shoot racquet ball projectile rospy.logerr("- BEFORE SHOOT PROJ -") - if correct_dock_number != -1 and correct_dock_number is not None: + if correct_dock_number != -1 and correct_dock_number is not None: # TODO: Aim the raqcetball launcher into the holes. The racquetball launcher is fixed, so the boat is what needs to be aimed. - # When you get to the practice course, this can theoretically be done with, for example, + # When you get to the practice course, this can theoretically be done with, for example, # await self.move.forward(1.3).go() # await self.move.left(0.3).go() # Since the boat should be in the same place in the dock whenever it docks + await self.start_launcher() + await self.nh.sleep(2) + for i in range(0, 4): - await self.reload_launcher() - await self.nh.sleep(2) await self.fire_launcher() await self.nh.sleep(2) - await self.pcodar_save(SetBoolRequest(False)) - await self.contour_pub.shutdown() - await self.ogrid_sub.shutdown() - await self.image_sub.shutdown() - await self.image_info_sub.shutdown() - await self.pcodar_save.shutdown() + await self.move.backward(10).go(blind=True) + await self.pcodar_save(SetBoolRequest(False)) def get_dock_data(self, dock): dock = dock[0] @@ -259,7 +281,10 @@ async def move_to_correct_side(self): except Exception as _: # retries if an exception occurs (cannot find dock) await self.find_dock() - await self.move.yaw_right(20, unit="deg").go() # Likely the boat is not facing the right direction and cant see the dock, this line fixes that + await self.move.yaw_right( + 20, + unit="deg", + ).go() # Likely the boat is not facing the right direction and can't see the dock, this line fixes that dock, pos = await self.get_sorted_objects(name="dock", n=1) # find the open side of the dock @@ -323,7 +348,6 @@ def get_cluster_centers(self, data): # input("<Hit Enter To Close>") # plt.close(fig) - # cut off all points below the mean z value mean = np.mean(data, axis=0)[2] data = data[data[:, 2] > mean] @@ -341,7 +365,6 @@ def get_cluster_centers(self, data): # input("<Hit Enter To Close>") # plt.close(fig) - # Sample initial centroids random_indices = random.sample(range(data.shape[0]), 3) for i in random_indices: @@ -456,7 +479,7 @@ def compute_sse(data, centroids, assigned_centroids): return np.asarray(means), cluster_members def crop_image(self, pts, transform, img): - rospy.logerr("The points for cropping before are", pts) + # rospy.logerr("The points for cropping before are", pts) pts = [self.model.project3dToPixel(transform.transform_point(a)) for a in pts] pts = np.array([[int(a[0]), int(a[1])] for a in pts], dtype=np.int32) pts = np.int32([pts]) @@ -485,16 +508,16 @@ def get_cluster_corners(self, cluster): async def crop_images(self, clusters, centers): image = await self.image_sub.get_next_message() - image = self.bridge.imgmsg_to_cv2(image) + image = self.bridge.imgmsg_to_cv2(image) # cv2.imshow("Initial image", image) Not needed boat_to_cam = await self.tf_listener.get_transform( self.cam_frame, "wamv/base_link", ) - rospy.logerr('Cluster 0: ', clusters[0]) - rospy.logerr('Cluster 1: ', clusters[1]) - rospy.logerr('Cluster 2: ', clusters[2]) - + rospy.logerr("Cluster 0: ", clusters[0]) + rospy.logerr("Cluster 1: ", clusters[1]) + rospy.logerr("Cluster 2: ", clusters[2]) + left = self.crop_image( self.get_cluster_corners(clusters[0]), boat_to_cam, @@ -516,8 +539,6 @@ async def crop_images(self, clusters, centers): rospy.logerr(f"Middle image shape: {middle.shape}") rospy.logerr(f"Right image shape: {right.shape}") - h_min = min(a.shape[0] for a in list) - counter = 0 # Skip resize, its broken # resized = [] # for im in list: @@ -527,7 +548,7 @@ async def crop_images(self, clusters, centers): # im, # (int(im.shape[1] * h_min / im.shape[0]), h_min), # interpolation=cv2.INTER_CUBIC, - # ) + # ) # ] # else: # print(f"Error: Image {counter} has size 0") @@ -537,12 +558,12 @@ async def crop_images(self, clusters, centers): # self.contour_pub.publish(msg) return list - + # I don't think this function is needed anymore because anthony put his CV box detection code in main async def shoot_projectile(self): # Gets the image from the boat camera at this point in time img = await self.image_sub.get_next_message() - img = self.bridge.imgmsg_to_cv2(img) + img = self.bridge.imgmsg_to_cv2(img) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) @@ -551,7 +572,7 @@ async def shoot_projectile(self): # Use Canny edge detection edges = cv2.Canny(blurred, 50, 150) - + # Find contours in the edged image contours, _ = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) @@ -563,7 +584,7 @@ async def shoot_projectile(self): cv2.destroyAllWindows() # Loop over the contours - for contour in contours: + for contour in contours: # Approximate the contour to a polygon epsilon = 0.02 * cv2.arcLength(contour, True) @@ -597,7 +618,7 @@ async def shoot_projectile(self): def find_color(self, images, goal_color): # NOTE: An OpenCV window will open, close it to progress - # Current iteration of find color works by looking + # Current iteration of find color works by looking # at a vertical line at the center of the image and averaging # non-gray values, returning Red Green Blue or Other. @@ -658,8 +679,8 @@ def find_color(self, images, goal_color): blue_pixels += 1 # Color at center is average of non gray pixels - if num_pixels == 0: # Check if any colors found - dock_color = (0,0,0) + if num_pixels == 0: # Check if any colors found + dock_color = (0, 0, 0) else: dock_color = ( total_red / num_pixels, @@ -673,22 +694,26 @@ def find_color(self, images, goal_color): blue_ratio = blue_pixels / num_pixels if num_pixels > 0 else 0 # Now check if we find two colors outside of the tolerance by checking if there is an outright majority of one color - if (not ( - (red_ratio - green_ratio > color_tolerance - and red_ratio - blue_ratio > color_tolerance) - or - (green_ratio - blue_ratio > color_tolerance - and green_ratio - red_ratio > color_tolerance) - or - (blue_ratio - green_ratio > color_tolerance - and blue_ratio - red_ratio > color_tolerance) + if not ( + ( + red_ratio - green_ratio > color_tolerance + and red_ratio - blue_ratio > color_tolerance + ) + or ( + green_ratio - blue_ratio > color_tolerance + and green_ratio - red_ratio > color_tolerance + ) + or ( + blue_ratio - green_ratio > color_tolerance + and blue_ratio - red_ratio > color_tolerance ) ): rospy.logerr( - f"Error: Found two colors in image {count} with ratios: R: {red_ratio}, G: {green_ratio}, B: {blue_ratio}") + f"Error: Found two colors in image {count} with ratios: R: {red_ratio}, G: {green_ratio}, B: {blue_ratio}", + ) # We return -1 signaling that this failed return -1 - + # Max ratio allowed between main color and other 2 values color_ratio = 0.9 # Log the color (even after converting to RGB they still need to be BGR for this somehow) @@ -729,6 +754,8 @@ def find_color(self, images, goal_color): count += 1 + return -1 + def get_ogrid_coords(self, arr): return self.intup(self.ogrid_cpm * (np.asarray(arr) - self.ogrid_origin))[:2] diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py b/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py index ddd89b055..10256c954 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py @@ -28,7 +28,7 @@ from roboteq_msgs.msg import Command from ros_alarms import TxAlarmListener from sensor_msgs.msg import CameraInfo, Image -from std_msgs.msg import Bool +from std_msgs.msg import Bool, Empty from std_srvs.srv import ( SetBool, SetBoolRequest, @@ -267,6 +267,12 @@ def enu_odom_set(odom): "Odom listener", ) + cls._ball_launcher_pub = cls.nh.advertise( + "/wamv/shooters/ball_shooter/fire", + Empty, + ) + await cls._ball_launcher_pub.setup() + if not cls.sim: await util.wrap_time_notice( cls._ecef_odom_sub.get_next_message(), @@ -534,11 +540,18 @@ async def reload_launcher(self): await self.set_valve("LAUNCHER_RELOAD_RETRACT", False) self.launcher_state = "inactive" + async def start_launcher(self): + await self.nh.sleep(0.5) + async def fire_launcher(self): if self.launcher_state != "inactive": raise Exception(f"Launcher is {self.launcher_state}") self.launcher_state = "firing" - await self.set_valve("LAUNCHER_FIRE", True) + if self.sim: + pass + # await self._ball_launcher_pub.publish(Empty()) + else: + await self.set_valve("LAUNCHER_FIRE", True) await self.nh.sleep(0.5) self.launcher_state = "inactive" From 778e9753f747e4cf7c8044c54969d748a018d8b6 Mon Sep 17 00:00:00 2001 From: andrew-aj <andrew.knee.j@gmail.com> Date: Fri, 8 Nov 2024 07:01:02 -0500 Subject: [PATCH 29/30] switched out ball launcher service --- .../navigator_missions/docking.py | 2 ++ .../navigator_missions/navigator.py | 33 +++++++++++-------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py index 12a4b1e36..5b0340c56 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/docking.py @@ -260,6 +260,8 @@ async def run(self, args): await self.fire_launcher() await self.nh.sleep(2) + await self.stop_launcher() + await self.move.backward(10).go(blind=True) await self.pcodar_save(SetBoolRequest(False)) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py b/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py index 10256c954..59ea23f97 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py @@ -28,8 +28,10 @@ from roboteq_msgs.msg import Command from ros_alarms import TxAlarmListener from sensor_msgs.msg import CameraInfo, Image -from std_msgs.msg import Bool, Empty +from std_msgs.msg import Bool +from std_srvs.srv import Empty as Emptysrv from std_srvs.srv import ( + EmptyRequest, SetBool, SetBoolRequest, SetBoolResponse, @@ -211,6 +213,16 @@ def enu_odom_set(odom): cls._grind_motor_pub.setup(), ) + cls._ball_spin_srv = cls.nh.get_service_client("/ball_launcher/spin", SetBool) + cls._ball_launch_srv = cls.nh.get_service_client( + "/ball_launcher/drop_ball", + Emptysrv, + ) + await asyncio.gather( + cls._ball_spin_srv.setup(), + cls._ball_launch_srv.setup(), + ) + try: cls._actuator_client = cls.nh.get_service_client( "/actuator_driver/actuate", @@ -267,12 +279,6 @@ def enu_odom_set(odom): "Odom listener", ) - cls._ball_launcher_pub = cls.nh.advertise( - "/wamv/shooters/ball_shooter/fire", - Empty, - ) - await cls._ball_launcher_pub.setup() - if not cls.sim: await util.wrap_time_notice( cls._ecef_odom_sub.get_next_message(), @@ -317,6 +323,8 @@ async def _shutdown_not_vrx(cls): cls.front_right_camera_info_sub.shutdown(), cls.yolo_objects.shutdown(), cls.stc_objects.shutdown(), + cls._ball_spin_srv.shutdown(), + cls._ball_launch_srv.shutdown(), ) @classmethod @@ -541,17 +549,16 @@ async def reload_launcher(self): self.launcher_state = "inactive" async def start_launcher(self): - await self.nh.sleep(0.5) + await self._ball_spin_srv(SetBoolRequest(data=True)) + + async def stop_launcher(self): + await self._ball_spin_srv(SetBoolRequest(data=False)) async def fire_launcher(self): if self.launcher_state != "inactive": raise Exception(f"Launcher is {self.launcher_state}") self.launcher_state = "firing" - if self.sim: - pass - # await self._ball_launcher_pub.publish(Empty()) - else: - await self.set_valve("LAUNCHER_FIRE", True) + await self._ball_launch_srv(EmptyRequest()) await self.nh.sleep(0.5) self.launcher_state = "inactive" From 5ccc8d4aa5c0cb355f211838c625e26bce99a0a0 Mon Sep 17 00:00:00 2001 From: andrew-aj <andrew.knee.j@gmail.com> Date: Fri, 8 Nov 2024 11:18:10 -0500 Subject: [PATCH 30/30] removed service shutdown --- .../navigator_missions/navigator_missions/navigator.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py b/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py index 808a3c948..5ceab9f60 100644 --- a/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py +++ b/NaviGator/mission_control/navigator_missions/navigator_missions/navigator.py @@ -329,8 +329,6 @@ async def _shutdown_not_vrx(cls): cls.front_right_camera_info_sub.shutdown(), cls.yolo_objects.shutdown(), cls.stc_objects.shutdown(), - cls._ball_spin_srv.shutdown(), - cls._ball_launch_srv.shutdown(), ) @classmethod