이론
로봇이 길을 찾기 위해서는 위치/센싱/지도/경로 위 4가지의 요소가 필요하다.
이번 주차에서는 위의 요소를 활용하여 지도를 작성하고, 목적지까지의 최적 경로를 계산하고 주행하기까지의 과정에 대해 배워보았다.
1. 위치
로봇의 위치 추정 방식에는 절대 위치 추정 방식과 상대 위치 추정 방식으로 나뉜다.
절대 위치 추정 방식에는 Landmark, Indoor GPS, WiFi SLAM, Beacon 등의 센서를 사용한다. 이러한 방식은 절대 위치에 대해서 알 수 있지만 인프라 구축에 관한 어려움, 비용 문제 등이 존재한다.
상대 위치는 기준점으로부터의 상대적인 위치를 말하는 것으로, 추측 항법 방식으로 추정할 수 있다. 양 바퀴 축의 엔코더 값, 바퀴 간 거리, 바퀴 반지름 등을 통해서 이동거리와 회전 값등을 계산해 위치를 추정하게 된다.
2. 센싱
이는 거리센서, 비전센서, Depth Camera 등을 통해 벽이나 물체 등의 장애물을 측정하는 기능이다. 거리센서로는 LRF, 초음파센서, 적외선 거리센서 등이 있고 비전 센서로는 스테레오 카메라, 모노 카메라 등이 있다.
3. 지도
지도에는 길과 장애물에 대한 정보가 있다. 위치, 센싱 기능을 통해서 지도를 만드는 것이 SLAM이다. SLAM 이란 Simultaneous Location And Mapping의 약자로 로봇이 자기의 위치를 추정하면서 지도를 생성하는 기술이다.
SLAM에서 많이 사용하는 패키지로는 Gmapping과 Cartographer 등이 있다. Gmapping은 OpenSLAM에 공개된 슬램의 한 종류로, ROS에서 제공하는 패키지이다. 이 패키지는 3차원 정보를 얻어도 2차원 평면에 있는 값만 취해서 사용한다는 한계가 있다. 또한 직사각형 및 원형의 로봇에는 적용이 어렵다. Cartographer는 2차원 뿐만 아니라 3차원 맵도 얻을 수 있다. 따라서 필요에 따라 패키지를 선택하여 사용하면 된다.
위의 기술을 사용하여 작성한 지도는 아래의 사진과 같다.
위의 사진에서 흰색 부분은 로봇이 이동할 수 있는 자유영역, 흑색은 로봇이 이동할 수 없는 점유영역, 회색은 아직 확인되지 않은 미지 영역을 의미한다.
SLAM 관련 노드들의 처리 과정은 아래의 사진과 같이 나타낼 수 있다.
위의 형태를 갖추면 어떤 로봇이든지 지도 작성이 가능하게 된다. 로봇을 구동시켜서 얻은 센서의 위치 정보, roscore를 구동시켰을 때 실행되는 sensor_node를 통해 받은 데이터를 통해서 지도를 그리게 된다. 최종적으로 지도를 작성하기 위해 받은 매새지 저장 패키지를 실행하면 지도를 만들 수 있다. 어떤 로봇이든지 위의 형태를 갖추면 SLAM이 가능하다.
위치를 추정하기 위해서 자주 쓰이는 필터로는 칼만 필터와 파티클 필터가 있다.
칼만 필터는 많이 사용되는 필터로, 잡음이 포함되어 있는 선형 시스템에서 대상체의 상태를 추적하는 재귀 필터이다. 예측과 보정을 반복적으로 수행하며 현재 위치를 추정한다. 예측은 모델을 상정하고 그 모델을 이용해 이전 상태로부터 현재 시점의 상태를 예측하는 과정을, 보정은 예측값과 실제 측정 값 간의 오차를 이용하여 보정하는 과정을 말한다.
파티클 필터는 시행 착오법을 기반으로 한 시뮬레이션을 통해 예측하는 기술이다. 대상 시스템에 확률 분포로 임의로 생성된 추정값을 입자 형태로 나타낸다. 이는 초기화, 예측, 보정, 위치 추정, 재추출의 과정을 통해서 위치를 추정한다.
지도를 작성하는 단계에서는 로봇을 수동으로 조작한다.
4. 경로
목적지까지 최적 경로를 계산하고 주행하는 기능이다. 위치, 센싱을 통해 지도를 만들고(SLAM) 이 요소들을 통해서 원하는 곳까지의 경로를 만들어내는 것이 내비게이션이다. 원하는 위치를 지정하면 그 지점까지의 경로를 구해서 로봇이 움직이게 된다.
local plan에서는 주로 DWA를 사용한다. 이는 로봇과 충돌 가능한 장애뭄을 회피하면서 목적지까지 빠르게 도달할 수 있는 속도를 선택하는 알고리즘이다. 로봇의 현재 속도와 가속도 한계를 고려하여 가능한 모든 속도와 회전율의 조합을 계산하고, 로봇의 목적지까지의 거리, 장애물까지의 거리,이동 경로의 안전성 등을 고려하여 최적의 속도와 회전율을 선택하게 된다.
'FOSCAR-(Autonomous Driving) > ROS 스터디' 카테고리의 다른 글
[2025 ROS 스터디] 이영상 #4주차 - SLAM과 내비게이션 (0) | 2025.02.07 |
---|---|
[2025 ROS 스터디] 황희찬 #4주차 - SLAM과 내비게이션 (0) | 2025.02.07 |
[2025 ROS 스터디] 이승찬 #4주차 - SLAM & NAVIGATION (0) | 2025.02.07 |
[2025 ROS 스터디] 홍동형 #4주차 - SLAM과 내비게이션 (0) | 2025.02.07 |
[2025 ROS 스터디] 김예찬 #4주차 - SLAM과 내비게이션 (0) | 2025.02.04 |