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의 모든 요소가 포함되어 있음
Nav2의 핵심 구성 요소
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)
5) Lifecycle Manager
Nav2 노드들을 lifecycle 방식으로 관리(activate/deactivate)