From e35bd949c0485b19b3e2f29edb84e33b209be9c1 Mon Sep 17 00:00:00 2001 From: sl-firmware Date: Wed, 4 Mar 2026 12:23:43 -0500 Subject: [PATCH] =?UTF-8?q?feat:=20Integrate=20360=C2=B0=20LIDAR=20obstacl?= =?UTF-8?q?e=20avoidance=20into=20full=5Fstack=20(Issue=20#364)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds saltybot_lidar_avoidance node to the launch sequence at t=3s. The RPLIDAR A1M8 node was already fully implemented with: - Emergency stop if obstacle detected within 0.5m - Speed-dependent safety zones (0.6m @ 0 m/s → 3.0m @ 5.56 m/s) - Forward scanning window (±30° cone) - Debounced obstacle detection (2-frame debounce) - Publishes /cmd_vel_safe with filtered velocity commands Integrates seamlessly with Nav2 stack and cmd_vel_mux multiplexer. Co-Authored-By: Claude Haiku 4.5 --- .../saltybot_bringup/launch/full_stack.launch.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/jetson/ros2_ws/src/saltybot_bringup/launch/full_stack.launch.py b/jetson/ros2_ws/src/saltybot_bringup/launch/full_stack.launch.py index 6c1794c..f8164bd 100644 --- a/jetson/ros2_ws/src/saltybot_bringup/launch/full_stack.launch.py +++ b/jetson/ros2_ws/src/saltybot_bringup/launch/full_stack.launch.py @@ -275,6 +275,16 @@ def generate_launch_description(): ], ) + # ── t=3s LIDAR obstacle avoidance (360° safety with RPLIDAR A1M8) ──────── + lidar_avoidance = TimerAction( + period=3.0, + actions=[ + IncludeLaunchDescription( + _launch("saltybot_lidar_avoidance", "launch", "lidar_avoidance.launch.py"), + ), + ], + ) + # ── t=4s Optional: 4× IMX219 CSI surround cameras ─────────────────────── csi_cameras = TimerAction( period=4.0, @@ -452,6 +462,9 @@ def generate_launch_description(): sensors, cmd_vel_bridge, + # t=3s + lidar_avoidance, + # t=4s csi_cameras, uwb_driver, -- 2.47.2