- 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>
Description
SaltyLab self-balancing bot firmware (STM32F722)
Languages
Python
67.1%
C
11.4%
JavaScript
9.2%
OpenSCAD
7.8%
HTML
1.5%
Other
2.9%