ROS Navigation Stack 튜토리얼: 맵핑부터 경로 추적까지
로봇 운영 체제(ROS)는 로봇을 프로그램하는 데 필요한 여러 도구와 라이브러리를 제공합니다. 이 중 내비게이션 스택은 로봇이 환경을 탐색하고, 자율적으로 경로를 계획하며, 목표 지점으로 이동할 수 있도록 돕는 핵심적인 구성 요소입니다. 본 튜토리얼에서는 맵핑부터 경로 추적까지 ROS 내비게이션 스택을 사용하는 방법을 단계적으로 살펴보겠습니다.
1. ROS 설치 및 환경 설정
1.1 ROS 설치
ROS를 설치하는 과정은 운영 체제에 따라 다릅니다. 가장 일반적으로 많이 사용되는 Ubuntu를 기준으로 설명하겠습니다.
- 먼저 Ubuntu의 터미널을 열고 ROS 패키지를 설치하기 위한 리포지토리를 추가합니다.
- 다음으로, ROS의 배포판을 설치합니다. 예를 들어, ROS Noetic을 설치하려면 다음 명령어를 사용합니다.
-
sudo apt update sudo apt install ros-noetic-desktop-full - ROS 환경 변수를 설정합니다.
-
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc
1.2 ROS Workspace 만들기
ROS 패키지를 개발하기 위해서는 워크스페이스를 설정해야 합니다.
- 새로운 워크스페이스 디렉토리를 만듭니다.
-
mkdir -p ~/catkin_ws/src - 워크스페이스를 빌드합니다.
-
cd ~/catkin_ws catkin_make
2. ROS 내비게이션 스택 이해하기
2.1 내비게이션 스택 개요
ROS 내비게이션 스택은 다음과 같은 주요 구성요소로 이루어져 있습니다.
- 맵 생성 및 관리: 로봇이 자신의 주변 환경을 이해하고 인식할 수 있도록 지도 정보를 생성합니다.
- 위치 추정: 다양한 센서를 사용하여 로봇의 위치를 정확하게 파악합니다.
- 경로 계획: 목표 지점에 도달하기 위해 최적의 경로를 계산합니다.
- 우회: 장애물을 피하여 목표 지점으로 안전하게 이동하도록 합니다.
2.2 내비게이션 스택의 주요 패키지
내비게이션 스택은 여러 패키지로 구성되어 있습니다. 주요 패키지는 다음과 같습니다.
| 패키지 이름 | 설명 |
|---|---|
| gmapping | 라이다 센서 데이터를 기반으로 2D 맵을 생성하는 패키지입니다. |
| amcl | 로봇의 위치를 추정하기 위한 애드혹 모니터링 패키지입니다. |
| move_base | 로봇의 경로 계획 및 내비게이션을 처리하는 패키지입니다. |
3. 맵핑하기
3.1 Gmapping 패키지 설치와 설정
Gmapping은 로봇이 환경을 탐색하면서 맵을 생성하는 데 사용되는 패키지입니다.
- Gmapping 패키지를 설치합니다.
-
sudo apt install ros-noetic-gmapping - Gmapping을 사용할 수 있도록 launch 파일을 설정합니다.
3.2 맵핑 시작하기
로봇을 맵핑 모드로 설정하고 주변 환경을 탐색하여 지도를 생성합니다.
- 다음 명령어를 통해 Gmapping을 실행합니다.
-
roslaunch gmapping slam_gmapping.launch
4. 위치 추정: AMCL 사용하기
4.1 AMCL 패키지 이해하기
AMCL(Adaptive Monte Carlo Localization)은 로봇의 위치를 추정하는 데 사용되는 패키지입니다. 이전에 생성된 맵을 기반으로 로봇의 위치를 결정합니다.
4.2 AMCL 설치 및 설정
설치와 설정 과정은 간단합니다.
- AMCL 패키지를 설치합니다.
-
sudo apt install ros-noetic-amcl - AMCL을 실행하기 위한 launch 파일을 설정합니다.
4.3 위치 추정 시작하기
준비가 완료되면, AMCL을 실행하여 로봇의 위치를 추정합니다.
- 다음 명령어를 사용하여 AMCL을 실행합니다.
-
roslaunch amcl amcl.launch
5. 경로 계획하기
5.1 Move Base 패키지 이해하기
Move Base 패키지는 로봇의 경로 계획 및 내비게이션을 처리하는 데 핵심적인 역할을 합니다. 이를 통해 로봇은 장애물을 피하고 목표 지점으로 이동할 수 있습니다.
5.2 Move Base 설치 및 설정
Move Base 패키지를 설치하고 설정하는 과정은 다음과 같습니다.
- Move Base 패키지를 설치합니다.
-
sudo apt install ros-noetic-move-base - Move Base를 위한 launch 파일을 설정합니다.
5.3 경로 계획 시작하기
Move Base를 실행하여 경로 계획을 시작합니다.
- 다음 명령어로 Move Base를 실행합니다.
-
roslaunch movebase movebase.launch - 이제 RViz를 통해 경로 계획을 시각적으로 확인할 수 있습니다.
6. 실행 및 테스트
6.1 전체 시스템 실행하기
모든 패키지가 각각 실행되고 있을 경우, 로봇은 자신의 맵을 기반으로 경로를 계획하고 목표 지점으로 이동할 준비가 완료됩니다.
- RViz를 실행하여 맵과 로봇의 위치를 시각적으로 확인합니다.
- 목표 지점을 설정하고 로봇이 이를 향해 이동하는지 확인합니다.
6.2 문제 해결하기
실행 중 문제가 발생할 경우, 다음과 같은 점을 점검해야 합니다.
- 센서 데이터가 정상적으로 입력되고 있는지 확인합니다.
- 맵이 올바르게 생성되었는지 확인합니다.
- 로봇의 위치 추정이 정확한지 점검합니다.
결론
본 튜토리얼에서는 ROS 내비게이션 스택을 사용하여 로봇이 환경을 탐색하고 경로를 추적하는 방법에 대해 다루었습니다. 맵핑, 위치 추정, 경로 계획의 모든 과정은 성공적인 로봇 내비게이션을 위해 필수적입니다. 이 를 통해 기본적인 이해를 바탕으로 더 높은 목표를 설정하고 로봇 내비게이션에 대한 경험을 쌓아가기를 바랍니다.





