Add saltybot_depth_costmap — a Nav2 costmap2d plugin that converts D435i depth images directly into obstacle markings on both local and global costmaps. Pipeline: 1. Subscribe to /camera/depth/image_rect_raw (16UC1 mm) + camera_info 2. Back-project depth pixels to 3D using pinhole camera intrinsics 3. Transform points to costmap global_frame via TF2 4. Apply configurable height filter (min_height..max_height above ground) 5. Mark obstacle cells as LETHAL_OBSTACLE 6. Inflate neighbours within inflation_radius as INSCRIBED_INFLATED_OBSTACLE Parameters: min_height: 0.05 m — floor clearance (ignores ground returns) max_height: 0.80 m — ceiling cutoff (ignores lights/ceiling) obstacle_range: 3.5 m — max marking distance from camera clearing_range: 4.0 m — max distance processed at all inflation_radius: 0.10 m — in-layer inflation (works before inflation_layer) downsample_factor: 4 — process 1 of N rows+cols (~19k pts @ 640×480) Integration (#478): - Added depth_costmap_layer to local_costmap plugins list - Added depth_costmap_layer to global_costmap plugins list - Plugin registered via pluginlib (plugin.xml) Files: jetson/ros2_ws/src/saltybot_depth_costmap/ CMakeLists.txt, package.xml, plugin.xml include/saltybot_depth_costmap/depth_costmap_layer.hpp src/depth_costmap_layer.cpp jetson/ros2_ws/src/saltybot_bringup/config/nav2_params.yaml (updated) 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%