feat(perception): sky detector for outdoor navigation (Issue #307) #313

Merged
sl-jetson merged 1 commits from sl-perception/issue-307-sky-detect into main 2026-03-03 00:20:05 -05:00

1 Commits

Author SHA1 Message Date
e24c0b2e26 feat(perception): sky detector for outdoor navigation — Issue #307
- 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>
2026-03-02 21:39:28 -05:00