- Add _sky_detector.py: SkyResult NamedTuple; detect_sky() with dual HSV band masking (blue sky H∈[90,130]/S∈[40,255]/V∈[80,255] OR overcast S∈[0,50]/V∈[185,255]), cv2.bitwise_or combined mask; sky_fraction over configurable top scan_frac region; horizon_y = bottommost row where per-row sky fraction ≥ row_threshold (−1 when no sky detected) - Add sky_detect_node.py: subscribes /camera/color/image_raw (BEST_EFFORT), publishes Float32 /saltybot/sky_fraction and Int32 /saltybot/horizon_y per frame; scan_frac (default 0.60) and row_threshold (default 0.30) params - Register sky_detector console script in setup.py - 33/33 unit tests pass (no ROS2 required) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
53 lines
2.3 KiB
Python
53 lines
2.3 KiB
Python
from setuptools import setup
|
|
import os
|
|
from glob import glob
|
|
|
|
package_name = 'saltybot_bringup'
|
|
|
|
setup(
|
|
name=package_name,
|
|
version='0.1.0',
|
|
packages=[package_name],
|
|
data_files=[
|
|
('share/ament_index/resource_index/packages',
|
|
['resource/' + package_name]),
|
|
('share/' + package_name, ['package.xml']),
|
|
(os.path.join('share', package_name, 'launch'),
|
|
glob('launch/*.launch.py')),
|
|
(os.path.join('share', package_name, 'config'),
|
|
glob('config/*.yaml')),
|
|
(os.path.join('share', package_name, 'behavior_trees'),
|
|
glob('behavior_trees/*.xml')),
|
|
],
|
|
install_requires=['setuptools'],
|
|
zip_safe=True,
|
|
maintainer='sl-perception',
|
|
maintainer_email='sl-perception@saltylab.local',
|
|
description='SaltyBot sensor bringup and SLAM launch files',
|
|
license='MIT',
|
|
tests_require=['pytest'],
|
|
entry_points={
|
|
'console_scripts': [
|
|
'depth_confidence_filter = saltybot_bringup.depth_confidence_filter_node:main',
|
|
'camera_health_monitor = saltybot_bringup.camera_health_node:main',
|
|
'scan_height_filter = saltybot_bringup.scan_height_filter_node:main',
|
|
# LIDAR object clustering + RViz visualisation (Issue #239)
|
|
'lidar_clustering = saltybot_bringup.lidar_clustering_node:main',
|
|
# Floor surface type classifier (Issue #249)
|
|
'floor_classifier = saltybot_bringup.floor_classifier_node:main',
|
|
# Visual odometry drift detector (Issue #260)
|
|
'vo_drift_detector = saltybot_bringup.vo_drift_node:main',
|
|
# Depth image hole filler (Issue #268)
|
|
'depth_hole_fill = saltybot_bringup.depth_hole_fill_node:main',
|
|
# HSV color object segmenter (Issue #274)
|
|
'color_segmenter = saltybot_bringup.color_segment_node:main',
|
|
# Motion blur detector (Issue #286)
|
|
'blur_detector = saltybot_bringup.blur_detect_node:main',
|
|
# Terrain roughness estimator (Issue #296)
|
|
'terrain_roughness = saltybot_bringup.terrain_rough_node:main',
|
|
# Sky detector for outdoor navigation (Issue #307)
|
|
'sky_detector = saltybot_bringup.sky_detect_node:main',
|
|
],
|
|
},
|
|
)
|