[ROS2] Path Planning

TaerinLog·2025년 11월 19일

Path Planning

  • 로봇이 시작 지점 → 목표 지점까지 충돌 없이, 효율적이며 로봇 제약(속도·회전반경 등)을 만족하도록 경로(trajectory)를 계산하는 기술
  • ROS2에서는 전통적 “길찾기 알고리즘” + “실시간 제어 알고리즘”을 결합해서 구현됨

1. Global Path Planning (전역 경로 계획)

  • 이미 확보된 지도(map) 또는 SLAM으로 생성된 맵을 기반으로 전체 경로를 계획
  • 목적지까지의 대략적인 최적 경로를 계산하며, 장애물은 “정적 장애물(static obstacles)” 가정
  • 미로에서 최단 길을 찾는 것과 동일한 문제
  • 주요 알고리즘
    • A*: 대표적인 최단 경로 알고리즘
    • Dijkstra: 휴리스틱 없이 탐색 → 안정적이지만 느림
    • RRT, RRT*: 복잡한 공간에서 랜덤 탐색 기반
    • PRM: 넓은 공간에서 확률적 지도 구성
    • Theta: A보다 더 자연스럽고 부드러운 경로
    • Nav2 Smac Planner(Hybrid-A, 2D A) – ROS2 Nav2 기본 제공

특징

  • 전역적으로 최단·최적 경로를 찾음
  • 계산은 느리지만 한 번만 해도 충분
  • 출력: 경로 점 리스트(waypoints)

2. Local Path Planning (국소 경로 계획)

  • 로봇 주변의 실시간 감지 정보(LiDAR, Depth 카메라)를 기반으로 동적 장애물, 로봇의 속도·가속도 제약, 주행 가능한 공간(costmap)을 고려하여 현재 이동 가능한 실제 경로/속도를 생성하는 과정

  • 주요 알고리즘

    • DWA (Dynamic Window Approach)
    • 속도 공간에서 가능한 속도 조합을 탐색 → 실제 cmd_vel 계산
    • TEB (Timed Elastic Band)
    • 시간축을 포함한 경로 최적화 → 장애물 회피·협소한 공간에 매우 강함
    • MPC (Model Predictive Control)
    • 자율주행차·고급 로봇에서 사용되는 고급 모델 기반 제어

특징

  • 센서 기반 실시간 반응
  • 속도 명령(cmd_vel)을 직접 출력
  • 밀리초 단위로 반복 실행

ROS2에서 Path Planning = Nav2
ROS2의 공식 내비게이션 스택은 Navigation2(Nav2)이며, Path Planning의 모든 요소가 포함되어 있음

1) Planner Server (Global Planner)

  • A*, Smac Planner 등 사용
  • 맵 기반 전역 경로 생성

2) Controller Server (Local Planner)

  • DWB, TEB 등
  • 글로벌 경로를 따라 이동하면서 실시간 장애물 회피 + 속도 제어 수행
  • 최종적으로 cmd_vel을 퍼블리시

3) Behavior Tree (BT Navigator)

  • 로봇의 행동(Behavior) 과 결정 흐름(Decision Flow) 을 트리 구조로 정의하는 방식
  • ROS2 Navigation2(Nav2)에서는 BT Navigator가 경로 계획, 회피, 재탐색, 복구 행동(recovery) 등을 BT로 구성해 로봇의 전체 내비게이션 흐름을 조율

4) Costmap Server (Global + Local Costmap)

  • grid map 기반 비용 지도

5) Lifecycle Manager
Nav2 노드들을 lifecycle 방식으로 관리(activate/deactivate)

profile
taerin

0개의 댓글