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>
16 lines
668 B
XML
16 lines
668 B
XML
<library path="saltybot_depth_costmap">
|
|
<class
|
|
name="saltybot_depth_costmap::DepthCostmapLayer"
|
|
type="saltybot_depth_costmap::DepthCostmapLayer"
|
|
base_class_type="nav2_costmap_2d::Layer">
|
|
<description>
|
|
Nav2 costmap layer that converts RealSense D435i depth images into
|
|
obstacle markings. Back-projects depth pixels to 3D, transforms to the
|
|
costmap global frame via TF2, applies a configurable height filter
|
|
(min_height .. max_height), marks lethal obstacles, and inflates them
|
|
by inflation_radius within the layer. Integrates with existing Nav2
|
|
costmap config (Issue #478).
|
|
</description>
|
|
</class>
|
|
</library>
|