Two files added to saltybot_bringup: - _scan_height_filter.py: pure-Python helpers (no rclpy) — filter_scan_by_height() projects each LIDAR ray to world-frame height using pitch/roll from the IMU and filters ground/ceiling returns; pitch_roll_from_accel() uses convention-agnostic atan2 formula; AttitudeEstimator low-pass filters the accelerometer attitude. - scan_height_filter_node.py: subscribes /scan + /camera/imu, publishes /scan_filtered (LaserScan) for Nav2 at source rate (up to 20 Hz). setup.py: adds scan_height_filter entry point. 18/18 unit tests pass. 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%