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
883 B
Python
28 lines
883 B
Python
from setuptools import setup
|
|
|
|
package_name = "saltybot_vesc_health"
|
|
|
|
setup(
|
|
name=package_name,
|
|
version="0.1.0",
|
|
packages=[package_name],
|
|
data_files=[
|
|
("share/ament_index/resource_index/packages", [f"resource/{package_name}"]),
|
|
(f"share/{package_name}", ["package.xml"]),
|
|
(f"share/{package_name}/launch", ["launch/vesc_health.launch.py"]),
|
|
(f"share/{package_name}/config", ["config/vesc_health_params.yaml"]),
|
|
],
|
|
install_requires=["setuptools", "python-can"],
|
|
zip_safe=True,
|
|
maintainer="sl-jetson",
|
|
maintainer_email="sl-jetson@saltylab.local",
|
|
description="VESC CAN health monitor with watchdog and auto-recovery",
|
|
license="MIT",
|
|
tests_require=["pytest"],
|
|
entry_points={
|
|
"console_scripts": [
|
|
"vesc_health_node = saltybot_vesc_health.health_monitor_node:main",
|
|
],
|
|
},
|
|
)
|