Skip to content

Commit 5c174fb

Browse files
committed
organization
1 parent 54ac73e commit 5c174fb

File tree

1 file changed

+22
-21
lines changed

1 file changed

+22
-21
lines changed

behaviours/actionable_geofence/actionable_geofence/geofence_node.py

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -166,39 +166,40 @@ def publish_geofence_ok(self):
166166
self._geofence_status_pub.publish(self._geofence_msg)
167167

168168

169-
def _geopoint_poly_to_map(self, poly: list[GeoPoint]) -> list[tuple[float, float, float]]:
170-
if self._utm_frame is None:
171-
self._node.get_logger().error("Cannot transform geofence polygon to map frame because UTM frame is not set yet")
172-
return []
173-
174-
transformed_poly = []
175-
utm_to_map_transform = self._tf_buffer.lookup_transform(self._map_frame, self._utm_frame, Time())
176-
for point in poly:
177-
ps = convert_latlon_to_utm(point)
178-
try:
179-
transformed_ps = do_transform_point(ps, utm_to_map_transform)
180-
transformed_poly.append((transformed_ps.point.x, transformed_ps.point.y, point.altitude))
181-
except Exception as e:
182-
self._node.get_logger().error(f"Error transforming geofence polygon point to map frame: {e}")
183-
return []
184-
185-
return transformed_poly
186169

187170
def _publish_geofence_polygons(self):
188171
self._geofence_polygons_msg.header.stamp = self._node.get_clock().now().to_msg()
189172
self._geofence_polygons_msg.header.frame_id = self._map_frame
190173

174+
def geopoint_poly_to_map(poly: list[GeoPoint]) -> list[tuple[float, float, float]]:
175+
if self._utm_frame is None:
176+
self._node.get_logger().error("Cannot transform geofence polygon to map frame because UTM frame is not set yet")
177+
return []
178+
179+
transformed_poly = []
180+
utm_to_map_transform = self._tf_buffer.lookup_transform(self._map_frame, self._utm_frame, Time())
181+
for point in poly:
182+
ps = convert_latlon_to_utm(point)
183+
try:
184+
transformed_ps = do_transform_point(ps, utm_to_map_transform)
185+
transformed_poly.append((transformed_ps.point.x, transformed_ps.point.y, point.altitude))
186+
except Exception as e:
187+
self._node.get_logger().error(f"Error transforming geofence polygon point to map frame: {e}")
188+
return []
189+
190+
return transformed_poly
191+
192+
map_fences = [geopoint_poly_to_map(fence) for fence in self._fences]
193+
map_islands = [geopoint_poly_to_map(island) for island in self._islands]
194+
191195
def map_poly_to_polygon_msg(map_poly: list[tuple[float, float, float]]) -> Polygon:
192196
polygon_msg = Polygon()
193197
if len(map_poly) < 3:
194198
self._node.get_logger().error("Invalid polygon, must be a list of at least 3 GeoPoints transformed to map frame")
195199
return polygon_msg
196200
polygon_msg.points = [Point32(x=point[0], y=point[1], z=point[2]) for point in map_poly]
197201
return polygon_msg
198-
199-
map_fences = [self._geopoint_poly_to_map(fence) for fence in self._fences]
200-
map_islands = [self._geopoint_poly_to_map(island) for island in self._islands]
201-
202+
202203
self._geofence_polygons_msg.geofence = [map_poly_to_polygon_msg(fence) for fence in map_fences]
203204
self._geofence_polygons_msg.islands = [map_poly_to_polygon_msg(island) for island in map_islands]
204205

0 commit comments

Comments
 (0)