Skip to main content
🤝

이 가이드는 인류와 AI가 함께 만드는 지식입니다.

이 콘텐츠는 Human + AI Partnership 철학 아래 모든 사람이 로봇·AI를 배울 수 있도록 무료로 제공됩니다. 당신의 질문과 기여가 다음 학생의 미래를 바꿉니다.

ROS 2 Disaster Response Robotics Guide 2026

Search-and-rescue robots go where humans can't — collapsed buildings, mines, flooded tunnels. This guide covers the ROS 2 stack for disaster response: SLAM in degraded environments, victim detection, resilient teleoperation, and the multi-robot exploration proven in the DARPA Subterranean Challenge.

1. The SAR Robot Stack

sudo apt-get install -y   ros-humble-slam-toolbox   ros-humble-nav2-bringup   ros-humble-rmw-cyclonedds-cpp   # robust DDS for lossy links

# Layers:
#   1. Degraded-env SLAM  (LiDAR+thermal+IMU, no GPS)
#   2. Autonomous explore  (frontier-based coverage)
#   3. Victim detection     (thermal + CO2 + audio + vision)
#   4. Resilient comms       (mesh + store-and-forward)
#   5. Operator interface    (supervised autonomy)

2. SLAM in Degraded Environments

Smoke, dust, and darkness defeat cameras. Fuse LiDAR + IMU + thermal for robust odometry:

# LIO (LiDAR-inertial odometry) is the backbone in GPS-denied,
# visually-degraded spaces (the DARPA SubT winning approach).
ros2 launch lidar_slam lio.launch.py   lidar_topic:=/points   imu_topic:=/imu/data   # thermal + radar fuse in when dust blinds the LiDAR

# Config priorities:
#   - degeneracy detection (long featureless tunnels)
#   - loop closure across multi-level structures
#   - drift-bounded odometry when features vanish

3. Frontier-Based Autonomous Exploration

def choose_frontier(frontiers, robot_pose, comms_range):
    """Pick the next unknown-boundary to explore, balancing
    information gain, travel cost, and staying in comms."""
    best, best_score = None, -1e9
    for f in frontiers:
        gain = f.unknown_cells                 # new area revealed
        cost = path_length(robot_pose, f.centroid)
        comms = comms_penalty(f.centroid, comms_range)
        score = gain - 0.5 * cost - comms
        if score > best_score:
            best, best_score = f, score
    return best   # drop a comms 'breadcrumb' node if going out of range

4. Victim Detection (Multi-Modal)

No single sensor is reliable in rubble. Fuse thermal, CO2, audio, and vision:

def detect_victim(self, sensors):
    signals = {
        'thermal': body_temp_blob(sensors.thermal),   # 30-37C shape
        'co2':     sensors.co2 > BASELINE_CO2 + 200,   # exhaled CO2
        'audio':   detect_human_sound(sensors.mic),    # voice/tapping
        'visual':  self.person_model(sensors.rgb),
    }
    confidence = weighted_fusion(signals)
    if confidence > VICTIM_THRESHOLD:
        loc = tf_transform(sensors.point, 'sensor', 'map')
        self.report_victim(loc, confidence, signals)   # geotag + evidence

5. Resilient Communications

6. Supervised Autonomy & Teleop

# Sliding autonomy: robot handles low-level nav, operator sets intent
def command_cycle(self):
    if self.comms_ok():
        goal = self.operator_goal()          # human picks direction
    else:
        goal = self.autonomous_frontier()    # explore on its own
    self.nav.goToPose(goal)
    # On link loss the robot never freezes — it keeps mapping and
    # returns toward the last comms point if it can't proceed.

7. Traversing Rubble

8. Multi-Robot Coordination

# Partition exploration so robots don't cover the same ground
def assign_regions(robots, frontiers):
    # Auction: each robot bids its cost to reach each frontier
    assignment = {}
    for f in frontiers:
        bids = {r.id: path_length(r.pose, f.centroid) for r in robots}
        winner = min(bids, key=bids.get)
        assignment.setdefault(winner, []).append(f)
    return assignment   # merge each robot's submap into a shared map

9. Lessons from DARPA SubT

10. Deployment Realities

Key Takeaways

Disaster-response robotics is autonomy under the worst conditions: LiDAR-inertial SLAM when cameras are blind, frontier exploration that respects comms range, and multi-modal victim detection fusing thermal, CO2, audio, and vision. Communications is the true bottleneck — build mesh relays, breadcrumbs, and store-and-forward so autonomy survives total link loss. The DARPA SubT Challenge proved the recipe: heterogeneous teams, LIO odometry, and one human supervising many robots.