Add saltybot_uwb_geofence ROS2 package — Jetson-side node that subscribes to /saltybot/pose/authoritative (UWB+IMU fused PoseWithCovarianceStamped), enforces configurable polygon speed-limit zones (YAML), and publishes speed-limited /cmd_vel_limited with smooth ramp transitions. Emergency boundary: if robot exits outer polygon, cmd_vel is zeroed and /saltybot/geofence_violation (Bool) is latched True, triggering the existing e-stop cascade. Publishes /saltybot/geofence/status (JSON). Pure-geometry helpers (zone_checker.py) have no ROS2 dependency; 35 unit tests pass (pytest). ESP32 UWB firmware untouched. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 lines
884 B
Python
28 lines
884 B
Python
from setuptools import setup, find_packages
|
|
|
|
setup(
|
|
name="saltybot_uwb_geofence",
|
|
version="0.1.0",
|
|
packages=find_packages(),
|
|
data_files=[
|
|
(
|
|
"share/ament_index/resource_index/packages",
|
|
["resource/saltybot_uwb_geofence"],
|
|
),
|
|
("share/saltybot_uwb_geofence", ["package.xml"]),
|
|
("share/saltybot_uwb_geofence/config", ["config/uwb_geofence_zones.yaml"]),
|
|
("share/saltybot_uwb_geofence/launch", ["launch/uwb_geofence.launch.py"]),
|
|
],
|
|
install_requires=["setuptools", "pyyaml"],
|
|
zip_safe=True,
|
|
author="SaltyLab UWB",
|
|
author_email="sl-uwb@saltylab.local",
|
|
description="UWB geofence speed limiter for SaltyBot (Issue #657)",
|
|
license="MIT",
|
|
entry_points={
|
|
"console_scripts": [
|
|
"uwb_geofence_node=saltybot_uwb_geofence.uwb_geofence_node:main",
|
|
],
|
|
},
|
|
)
|