wn42
코딩이랑 이것저것
wn42
전체 방문자
오늘
어제
  • 분류 전체보기 (113)
    • 프로그래머스 (23)
      • LV1 (11)
      • LV2 (1)
      • LV3 (3)
      • 연습 (8)
    • 딥러닝 공부 (0)
      • 머신러닝&딥러닝 이론 (0)
    • 임베디드 (17)
      • Adventure Design (1)
      • 센서기반모바일로봇 (5)
      • ROS (9)
      • Google Coral (2)
    • C++ (38)
      • C++ 기초 (34)
      • 자료구조 및 알고리즘 (4)
    • Python (14)
      • 기본 파이썬 문법 (6)
      • Python 기초 (8)
    • 빅데이터 (9)
      • 빅데이터 첫걸음 시작하기(국비지원) (5)
      • 빅데이터 공부 (4)
    • 알고리즘 공부 (2)
      • 기본 알고리즘 (2)
    • 전자공학 (10)
      • 반도체 공정 (3)
      • 무선데이터통신 (7)
      • 반도체공학 (0)
    • C# (0)
      • C# 기본 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 딥러닝
  • 데이터분석 인강
  • 상속
  • 조건문
  • 빅데이터
  • numpy
  • stl
  • 스택
  • 노드
  • 빅데이터 첫걸음 시작하기
  • K디지털크레딧
  • 데이터분석
  • ROS
  • 정렬
  • 스택/큐
  • Queue
  • Python
  • 반복문
  • c++
  • 인스턴스
  • 클래스
  • 프로그래머스
  • 변수
  • 패스트캠퍼스
  • google coral
  • 소멸자
  • 내일배움카드
  • 바이트디그리
  • 큐
  • 파이썬

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
wn42

코딩이랑 이것저것

SLAM & Navigation
임베디드/ROS

SLAM & Navigation

2022. 3. 17. 15:42

SLAM(Simultaneous Localization And Mapping)

  • 동시적 위치 추정 및 지도 작성

Navigation

  • 차량 자동 항법 장치

 

길 찾기에 필요한 요소

  • 위치: 로봇의 위치 계측 / 추정하는 기능
  • 센싱: 벽, 물체 등의 장애물의 계측하는 기능
  • 지도: 길과 장애물 정보가 담긴 지도
  • 경로: 목적지까지 최적 경로를 계산하고 주행하는 기능
  • 이 4가지가 ROS에서 사용하는 패키지나 메시지가 될 수 있음

 

위치

  • GPS(Global Positioning System)
    • 실외에서 사용하기에 적합
    • 상대적으로 위치의 오차가 커서 이를 고려해야 한다.
    • 날씨의 영향을 많이 받는다.
    • 고층 빌딩이 많은 곳에서 오차가 많이 발생한다.
  • IPS(Indoor Positioning Sensor)
    • GPS의 단점을 보완하기 위해 IPS를 개발하여 사용
    • Landmark(Color, IR Camera)
    • Indoor GPS
    • WiFi SLAM
    • Beacon
  • 추측항법(dead reckoning)
    • 양 바퀴 축의 회전 값 이용
    • 이동 거리와 회전 값을 계산하고 위치를 측정
    • 바닥 슬립, 기계적, 누적 오차가 발생
    • IMU 등의 관성 센서나, 여러 필터로 위치를 보상
    • 필요 정보: 양 바퀴 축의 엔코더 값 E (모터 축인 경우 기어비로 재계산), 바퀴 간 거리 D, 바퀴 반지름 r

 

센싱

  • 거리센서
    • LRF, 초음파센서, 적외선 거리센서(PSD) 등
  • 비전센서
    • 스테레오 카메라, 모노 카메라 등
  • Depth Camera
    • SwissRanger, Kinect-2 등

 

지도

  • 로봇이 길을 찾아가기 위해서는 지도가 필요하다.
  • SLAM에서는 로봇이 본인의 위치를 추정하고 동시에 지도도 만든다.

 

경로

  • 목적지까지 최적의 경로를 찾는 것이 필요
  • Dynamic Window Approach(DWA), A*, D*, Potential Field, Particle Filter 등을 이용한다.

 

위치 추정(Localization)

칼만 필터(Kalman Filter)

  • 잡음이 포함되어 있는 선형 시스템에서 대상체의 상태를 추적하는 재귀 필터
  • 베이즈 확률 기반
  • 예측(Prediction) - 모델을 상정하고 이 모델을 이용하여 이전 상태로부터 현재 시점의 상태를 예측
  • 보정(Update) - 앞 단계의 예측값과 외부 계측기로 얻은 실제 측정값 간의 오차를 이용하여 더욱 정확한 상태의 상태값을 추정

파티클 필터(Particle Filter)

  • 시행 착오(try-and-error) 법을 기반으로 한 시뮬레이션을 통하여 예측하는 기술
  • 대상 시스템에 확률 분포로 임의로 생성된 추정값을 파티클(입자) 형태로 나타낸다.
  • ① 초기화(initialization), ② 예측(prediction), ③ 보정(update), ④ 위치 추정(pose estimation), ⑤ 재추출(resampling)

 

네비게이션(Navigation)

Local Plan에서는 DWA(Dynamic Window Approach)를 주로 사용한다.

DWA(Dynamic Window Approach)

  • 로봇의 속도 탐색 영역(velocity search space)에서 로봇과 충돌 가능한 장애물을 회피하면서 목표점까지 빠르게 다다를 수 있는 속도를 선택하는 방법
  • 로봇이 현실적으로 움직일 수 있는 위치와 방향을 고려한다.

 

Gmapping

  • OpenSLAM에서 가장 대표적인 오픈소스 패키지
  • Rao-Blackwellized 파티클 필터, 파티클 수 감소, 그리드 맵 제공
  • 하드웨어 제약 사항
    • X, Y, theta 속도 이동 명령을 갖는 모바일 로봇의 경우 사용 가능
    • 주행기록계(Odometry)를 사용할 수 있어야 함
    • 2차 평면 계측 가능 센서 사용 (LRF, LiDAR 등)

 

  • 자유 영역(free area) - 흰색 : 로봇이 이동 가능한 영역
  • 점유 영역(occupied area) - 흑색 : 로봇이 이동 불가능한 영역
  • 미지 영역(unknown area) - 회색 : 확인되지 않은 영역

 

더 자세한 SLAM과 Navigation에 대한 자세한 이론은 센서기반모바일로봇 카테고리에서 다룰 예정이다.

 

출처

  • ROS 강의 Chapter11. SLAM과 네비게이션: https://www.youtube.com/watch?v=067HSmDvXdE&list=PLRG6WP3c31_VIFtFAxSke2NG_DumVZPgw&index=11
    '임베디드/ROS' 카테고리의 다른 글
    • 자율주행 로봇 프로젝트
    • ROS 모바일로봇
    • ROS 임베디드 시스템
    • ROS 프로그래밍 실습(이동, 회전)
    wn42
    wn42
    코딩이랑 이것저것 하는 블로그

    티스토리툴바