Implement multi-sensor terrain classification using RealSense D435i depth and RPLIDAR A1M8: - saltybot_terrain_classification: New ROS2 package for terrain classification - TerrainClassifier: Rule-based classifier matching depth variance + reflectance to terrain type (smooth/carpet/grass/gravel) with hysteresis + confidence scoring - DepthExtractor: Extracts roughness from depth discontinuities and surface gradients - LidarExtractor: Extracts reflectance from RPLIDAR scan intensities - terrain_classification_node: 10Hz node fusing both sensors, publishes: - /saltybot/terrain_type (JSON with type, confidence, speed_scale) - /saltybot/terrain_type_string (human-readable type) - /saltybot/terrain_speed_scale (0.0-1.0 speed multiplier for smooth/carpet/grass/gravel) Speed scales: smooth=1.0, carpet=0.9, grass=0.75, gravel=0.6 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
30 lines
965 B
XML
30 lines
965 B
XML
<?xml version="1.0"?>
|
|
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
|
<package format="3">
|
|
<name>saltybot_terrain_classification</name>
|
|
<version>0.1.0</version>
|
|
<description>Terrain classification using RealSense depth and RPLIDAR (Issue #469)</description>
|
|
<maintainer email="seb@example.com">SaltyLab</maintainer>
|
|
<license>MIT</license>
|
|
|
|
<buildtool_depend>ament_python</buildtool_depend>
|
|
|
|
<depend>rclpy</depend>
|
|
<depend>std_msgs</depend>
|
|
<depend>geometry_msgs</depend>
|
|
<depend>sensor_msgs</depend>
|
|
<depend>message_filters</depend>
|
|
<depend>numpy</depend>
|
|
<depend>opencv-python</depend>
|
|
<depend>cv_bridge</depend>
|
|
|
|
<test_depend>ament_copyright</test_depend>
|
|
<test_depend>ament_flake8</test_depend>
|
|
<test_depend>ament_pep257</test_depend>
|
|
<test_depend>python3-pytest</test_depend>
|
|
|
|
<export>
|
|
<build_type>ament_python</build_type>
|
|
</export>
|
|
</package>
|