본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2025 ROS 스터디] 이영상 #4주차 - SLAM과 내비게이션

반응형

SLAM과 네비게이션

 

SLAM이 무엇일까?

Simultaneous Localiztion And Mapping -> 동시적 위치 추정 및 지도 작성

=> ‘길찾기라고 이해하자

(로봇이 주변 환경의 지도를 작성하면서 동시에 자신의 위치를 추정하는 알고리즘)

 

 

위의 4가지는 왜 중요할까?

-> 나중에 ros에서 사용할 패키지나 메시지가 될 수 있다

 

위치 : 로봇의 위치 계측 / 추정하는 기능

gps 사용하면 되는거 아니야? -> 실외에서만 가능하고 오차 날씨의 영향을 받는다

 

 

indoor positioning sensor (절대 위치)

1) landmark (color, IR camera) (색상이나 IR 카메라를 이용해 사전에 설정된 기준점을 감지하고, 이를 기반으로 실내 위치를 파악하는 방식. 정확도가 높다.)

 

2) indoor gps (위성 신호 대신 실내에서 활용 가능한 신호(: 초음파, UWB)를 사용해 위치를 계산하는 기술. GPS처럼 좌표를 제공하지만, 벽이나 장애물의 영향을 받을 수 있다.)

 

3) wifi slam (실내 와이파이를 사용해 신호를 이용해 위치 파악, 정밀도가 낮다)

 

4) beacon (와이파이 슬램과 비슷한 원리?)

 

 

그렇다면 우리는 무엇을 사용할까?

=> 추측 항법(dead reckoning)을 사용한다. (상대 위치. 로봇이 출발한 시점부터 어디)

양 바퀴 축의 회전 값을 이용

이동 거리와 회전값을 계산, 위치측정

- 바닥 슬립, 기계적, 누적 오차 발생

IMU 등의 관성 센서, 필터로 위치 보상

칼만 필터 시리즈 (누적 오차 보정)

 

 

이후 계산식에 넣으면 상대적 위치를 알 수 있다.

 

 

센싱 : , 물체 등의 장애물을 계측하는 기능

- 거리 센서 : LRF(Laser Range Finder), 초음파 센서, 적외선 거리 센서(PSD) 등을 이용해 장애물까지의 거리를 직접 측정하는 센서.

- 비전 센서 : 스테레오 카메라, 모노 카메라, 전방위 옴니 카메라 등을 사용해 영상 정보를 기반으로 장애물의 거리와 형태를 인식하는 센서.

- Depth camera : RGB 카메라와 함께 적외선 패턴을 이용해 깊이 정보를 측정하는 센서. 3D 공간 정보를 얻을 수 있어 물체의 형태와 거리 인식에 유용하지만, 강한 햇빛이나 반사율이 낮은 표면에서는 오차가 발생할 수 있다.

 

지도 : 길과 장애물 정보가 담긴 지도

 

경로 : 목적지까지 최적 경로를 계산하고 주행하는 기능

내비게이션

위치 추정

경로 탐색 / 계획

Dynamic window approach

A* 알고리즘

포텐셜 장

파티클 필터

그래프

 

 

Gmapping

: Rao-Blackwellized Particle Filter(RBPF) 를 사용하여 실시간으로 로봇의 위치를 추정

하면서 그리드 맵(Grid Map) 을 생성하는 방식)

SLAM 기법 중 한 종류, ROS에서 패키지로 제공

 

특징 : Rao-Blackwellized 파티클 필터, 파티클 수 감소, 그리드 맵

 

정리

1. Rao-Blackwellized Particle Filter (RBPF) 사용

입자(Particle) 개별적으로 지도 정보를 저장하면서 위치를 추정함.

 

각 입자는 다음과 같은 정보를 갖는다.

x, y : 로봇의 2D 평면상 위치

θ : 로봇의 방향(각도)

확률(weight) : 이 입자가 실제 위치일 가능성

 

2. 입자(Particle) 수 감소 기법 적용

Rao-Blackwellization 기법을 사용하여 불필요한 입자 수를 줄여 계산량을 줄이고 효율적인 SLAM을 가능하게 함.

 

3. 그리드 맵(Grid Map) 방식 사용

2D 평면 상에서 환경을 격자(grid) 형태로 표현하는 지도 작성 방식.

각 격자는 확률 값을 가지며, 로봇이 LIDAR 등의 센서를 사용해 해당 확률을 업데이트하면서 맵을 생성.

 

 

하드웨어 제약 사항

x, y, z 속도 이동 명령

주행 기록계(Odometry) 필요 (오도메트리는 로봇의 이동 거리 및 방향을 측정하는 센서)

2d 계측 센서 필요 : 2차 평면 계측 가능 센서 (LRF, LIDAR, Kinec, Xtion )

직사각형 및 원형의 로봇 (기본적으로 모바일 로봇만)

 

지도 작성 : Gmapping + TurtleBot3

 

2차원 점유 격자 지도 (OGM, Ocuupancy Grid Map)

흰색 (자유 영역, Free area) 로봇이 이동 가능한 공간

검은색 (점유 영역, Occupied area) 벽이나 장애물 등이 존재하여 이동 불가능한 공간

회색 (미지 영역, Unknown area) 센서가 아직 스캔하지 않은 공간

 

slam 관련 노드들의 처리 과정

sensor-node (LIDAR, Kinect 등의 센서가 로봇 주변의 거리 정보를 측정하여 Gmapping 노드에 전달)

turtledbot3_teleop (로봇 제어 노드로 사용자가 키보드로 로봇을 이동시킴. 이동 명령에는 병진속도, 회전속도 등이 포함되며, turtledbot3_core로 보냄)

turtledbot3_core (로봇 상태 노드로, 센서, 장애물 등의 상대위치를 알 수 있다)

slam_gmapping (1번의 센싱과 3번의 위치 정보를 갖고 입자 필터 기반으로 로봇의 위치를 추정하면서 점유 격자 지도 생성.)

map_server (slam_gmapping이 생성한 지도를 저장하고 관리)

 

 

위치 추정(localization)

SLAM 과정에서 로봇은 자신의 위치를 실시간으로 추정해야 함. 이를 위해 칼만 필터(KF)와 파티클 필터(PF) 가 사용됨.

 

칼만 필터 : 잡음이 포함되어 있는 선형 시스템에서 대상체의 상태를 추적하는 재귀 필터

파티클 필터 : 시행착오법을 기반으로한 시뮬레이션을 통해 예측하는 기술으로, 대상 시스템에 확률 분포로 임의로 생성된 추정값을 파티클 형태로 나타낸다.

 

위치 추적 과정

1) 초기화 (로봇의 초기 위치를 설정하고, 입자(Particle)를 무작위로 생성)

2) 예측 (로봇이 이동하면, 모든 입자들도 해당 이동량만큼 변화)

3) 보정 (센서(LIDAR )가 주변 환경을 측정하고, 현재 맵과 비교)

4) 위치 추정 (남아 있는 입자들의 평균을 계산하여 로봇의 위치를 추정)

5) 재추출 (확률이 높은 입자들을 기반으로 새로운 입자를 생성)

 

내비게이션

DWA(Dynamic Window Approach)

: 로봇의 속도 탐색 영역에서 로봇과 충돌 가능한 장애물을 회피하면서 목표점까지 빠르게 다다를 수 있는 속도를 선택하는 방법

-> 일반적으로 우리는 어디에서 어디로 이동시키려면 위치를 기반으로 x축으로 얼마 y축으로 얼마 이동을 생각하지만 DWA는 속도의 영역으로 생각한다.

 

핵심 개념

로봇은 이동하면서 병진 속도 v 와 회전 속도 ω 를 조절해야 함.

속도 공간(velocity search space) 내에서 가능한 속도를 탐색하고, 가장 적절한 속도를 선택함.

로봇과 충돌 가능성이 있는 장애물을 피하면서, 목표점까지 빠르게 도달할 수 있도록 최적의 속도를 계산함.

 

DWA에서는 속도 선택을 위한 3가지 영역

Vs (가능 속도 영역)

로봇이 기본적으로 낼 수 있는 속도 범위

물리적으로 설정된 최대/최소 속도를 따름

 

Va(허용 속도 영역)

로봇이 현재 상태에서 가속도를 고려했을 때 낼 수 있는 속도 범위

로봇이 순간적으로 최고 속도를 내는 것이 아니라, 현재 속도에서 일정 시간 동안 가속도를 고려하여 가능한 속도만 포함

 

Vr (다이나믹 윈도우 내 속도 영역)

장애물과 충돌하지 않으면서 목표로 갈 수 있는 속도

Va중에서 장애물과 충돌하지 않는 안전한 속도만 선택

실제로 로봇이 선택할 수 있는 최적의 속도 후보군

 

목적 함수 G(v,ω) 를 최대화하는 v,ω 값을 찾아 로봇이 이동할 최적의 속도를 결정.

 

dwa의 개념을 다시 말하자면, 얼마만큼 이동해서 얼마만큼 회전해가 아닌, 얼마만큼의 병진속도와 얼마만큼의 회전 속도로 이동하라는 방식임.

 

 

반응형