Implements ROS2 cliff detector for SaltyBot with: - Subscribes to /saltybot/cliff_sensors (IR range array) - Threshold-based detection (default 0.5m) - Debouncing (3 consecutive frames) for robustness - Majority voting (min 2 sensors) for safety - Publishes Bool on /saltybot/cliff_detected - Emergency stop trigger on cliff/drop-off detection - Includes 15+ unit tests for detection logic Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
25 lines
871 B
Python
25 lines
871 B
Python
from setuptools import setup, find_packages
|
|
|
|
setup(
|
|
name='saltybot_cliff_detector',
|
|
version='0.1.0',
|
|
packages=find_packages(),
|
|
data_files=[
|
|
('share/ament_index/resource_index/packages', ['resource/saltybot_cliff_detector']),
|
|
('share/saltybot_cliff_detector', ['package.xml']),
|
|
('share/saltybot_cliff_detector/config', ['config/cliff_detector_config.yaml']),
|
|
('share/saltybot_cliff_detector/launch', ['launch/cliff_detector.launch.py']),
|
|
],
|
|
install_requires=['setuptools'],
|
|
zip_safe=True,
|
|
author='SaltyLab Controls',
|
|
author_email='sl-controls@saltylab.local',
|
|
description='Cliff and drop-off detection safety node for SaltyBot',
|
|
license='MIT',
|
|
entry_points={
|
|
'console_scripts': [
|
|
'cliff_detector_node=saltybot_cliff_detector.cliff_detector_node:main',
|
|
],
|
|
},
|
|
)
|