Slam과 내비게이션
구성
- 내비게이션과 구성요소
- Slam 실습 / 응용 / 이론
- 내비게이션 실습 / 응용 / 이론
- 로봇에서의 길찾기 -> 네가지가 추후 사용될 패키지, 메시지가 될 수 있음
A) 위치 : 로봇의 위치 계측/추정하는 기능
A-1) GPS (Global Positioning System)
- 제약조건 : 오차 / 날씨 / 실외
A-2) Indoor Positioning Sensor (IPS)
- Landmark
- 마크를 벽이나 물체에 부착 후 사용
- 로봇 상단에 장착 / 높은 정확도
- 인프라를 구축한 후에 사용 가능하다는 점에서 부족함
- Inddor GPS
- 특정 신호를 보내는 장비를 실내에 장착 후 위성처럼 사용
- Wifi SLAM
- Beacon
A-3) 추측항법 (dead reckoning)
- 양 바퀴 축의 회전 값을 이용
- 이동거리와 회전 값을 계산후 위치 측정
- 슬립 등으로 인해 오차 발생
- 필요 정보 : 양 바퀴 축의 엔코더 값 E, 바퀴가 거리 D, 바퀴 반지름 r
B) 센싱 : 벽, 물체 등의 장애물의 계측하는 기능
- 거리센서
- LRF, 초음파센서, 적외선 거리센서
- 비전센서
- 스테레오 카메라, 모노 카메라, 전 방향 옴니 카메라
- Depth Camera
C) 지도 : 길과 장애물 정보가 담긴 지도
- 로봇 구동 시 지도가 필요함
- 지도가 없으면 SLAM을 이용
D) 경로 : 목적지까지 최적 경로를 계산하고 주행하는 기능
- 내비게이션 (Navigation)
- 위치 추정 (Localization / Pose estimation)
- 경로 탐색/계획 (Path search and planning)
- Dynamic Window Approach
- A* 알고리즘
- Potential Field
- Particle Filter
- Graph
- 위치 + 센싱 -> 지도 : SLAM
- 위치 + 센싱 + 지도 -> 경로 : Naviation
-> ROS의 메시지
1. Slam
- Simultaneous Localization And Mapping / 동시적 위치 추정 및 지도 작성
- Gmapping
- OpenSLAM에 공개된 SLAM 의 한 종류
- ROS에서 패키지로 제공
- 하드웨어 제약 사항
- X, Y, Theta 속도 이동 명령을 받도록 되어 있음
- 주행기록계를 측정할 수 있게 되어있어야함
- 2차 평면 계측 가능 센서 / 공간측정 시 많은 데이터를 필터링 후 사용
- 직사각형 및 원형의 로봇
- SLAM 관련 노드들의 처리과정
1. sensor_node 구동
- Gmapping에 센서 raw data 전송
- 형식 : sensor_msg/LaserScan
2. teleop 노드 실행
- 로봇의 core 부분에 제어 값 전송 ex) velocity
- 형식 : geometry_msg/Twist
3. core에서 처리
- tf 데이터 Gmapping에 전송
4) scan과 tf 두개로 지도 생성
- 두개의 데이터가 Gmapping 패키지
5) map_server에 저장
- 위치 추정 (Localization)
A) 칼만 필터 (Kalman filter)
- 잡음이 포함되어 있는 선형 시스템에서 대상체의 상태를 추적하는 재귀 필터
B) 파티클 필터 (Particle Filter)
- 시행착오법을 기반으로한 시뮬레이션을 통하여 예측하는 기술
- 과정 : 초기화 -> 예측 -> 보정 -> 위치추정 -> 재추출
2. Navigation (차량 자동 항법 장치)
- Dynamic Window Approach (DWA)
- 위치 기반 영역을 속도 기반 영역으로 변환
- 장애물을 회피하며 목표점까지 최단시간으로 도달할 수 있는 속도를 선택하는 방법
- 사용 정보
- 병진속도, 회전속도, 가능 속도 영역, 허용 속도 영역, 다이나믹 윈도우 안의 속도 영역
DWA의 구동 방식을 그림으로 나타내었다.
'FOSCAR-(Autonomous Driving) > ROS 스터디' 카테고리의 다른 글
[2025 ROS 스터디] 홍동형 #4주차 - SLAM과 내비게이션 (0) | 2025.02.07 |
---|---|
[2025 ROS 스터디] 김예찬 #4주차 - SLAM과 내비게이션 (0) | 2025.02.04 |
[2025 ROS 스터디] 김예찬 #3주차 - ROS 메세지 통신 프로그래밍, roslaunch (0) | 2025.02.03 |
[2025 ROS 스터디] 이성빈 #4주차 - SLAM과 내비게이션 (0) | 2025.02.02 |
[2025 ROS 스터디] 신채영 #3주차 - ROS 메세지 통신 프로그래밍, roslaunch (0) | 2025.01.31 |