본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2024 ROS 스터디] 유민아 #4주차 SLAM 과 NAVIGATION

반응형

로봇은 눈앞을 가린 인간과 같다. 우리처럼 시각 정보를 바로 3D 로 처리할 수 없지만 다양한 센서들을 부착하여 

위치를 파악하고 경로를 탐색할 수 있다. 

 

길 찾기 4요소 ( in 강의 )

 

1) 위치 : 

사용되는 센서들

  • 실외 -> GPS ( Global Positioning System ) ( 단, 오차가 m 단위로 나타남. 도심 안에서는 GPS 만으로 위치 추정 어려움)
  • 실내 -> Landmark, Indoor GPS, WiFi SLAM, Beacon

위치 추정 방법 : 대표적인 추측 항법 ( dead reckoning )

  •  바퀴의 엔코더 값 + 바퀴간 거리 + 바퀴 반지름 + IMU 센서 --> 처음 위치로부터 이동거리 방향을 예측, 다만 오차가 축적될 수 있음. 
  • 확장 칼만 필터 사용하여 오차값 보정 ( 자동차의 현재 위치를 확률적으로 나타냄 ) 
  • -> 확장 칼만 필터란 ? 기존 칼만 필터에서 비선형 계산식 추가된 것
  • 초깃값 설정 후, 현재 상태에 대한 상태와 공분산을 추청함(정해진 비선형 계산식을 이용하여) 
  • 센서를 통해 실제값을 입력받음
  • 상태 추정 값과 실제값을 대입하여 칼만 이득을 계산함 --> 다음 추정때 사용함 ( 인터넷에서 공부한 경우로는 다음과 같은 것 같다..)

2) 센싱 : 주변 환경 정보를 각종 센서를 통해 입력받기, 센서퓨징으로 정확한 환경 정보 구축 

  • 거리 정보 : LRF, 초음파 센서, 라이다 센서
  • 비전 센서 : 카메라

3) 지도 : SLAM, 로봇의 좌표 정보와 주변 환경 정보를 얹어서 지도 만들기  

- SLAM ( SImultaneous Localization And Mapping ) 동시적 위치 추정 및 지도 작성 --> '길찾기'

지구상의 외부 환경에 대한 지도는 거의 정확하게 구축이 완료되었음. 

건물 내부 혹은 특정 영역에 대한 구체적인 지도를 만들 필요가 있음. 

ROS에서 SLAM을 구현하기 위해 가장 압도적으로 쓰이는 패키지는 g-mapping 이다.

https://wiki.ros.org/gmapping 

 

gmapping - ROS Wiki

melodic noetic   Show EOL distros:  EOL distros:   electric fuerte groovy hydro indigo jade kinetic lunar diamondback: Only showing information from the released package extracted on Unknown. No API documentation available. Please see this page for in

wiki.ros.org

 

Gazebo 시뮬레이터를 이용하여, 터틀봇을 움직였고, 왼쪽은 실제 환경을 나타냈고 터틀봇은 움직이면서 라이다 정보값을 받는다.

오른쪽은 rviz를 켜고 g-mapping 패키지로 올바르게 지도가 형성되고 있는지 확인중이다. 다 완성한 지도는 확장 pgm 으로 저장된다.

다음 명령어를 따라 지도 추출

4) 경로 : Navigation pkg, 직접 로봇을 움직이지 않는 경우, 맵 상에서 출발지와 목적지를 확인하고 최단의 경로를 찾아가도록 주행

- 슬램을 통해 구축한 전체 지도를 global map 이라고 하여, 가장 큰 그림이 된다.

- 주어진 global map 위에는 장애물, 벽, 도로 등 다양한 환경이 존재한다.

- 자율주행을 하기 위해서 자동차의 위치( 라이다 센서의 위치로 변환 )를 global map 위에서 확인 가능해야 한다.

- global cost map 위에 여러가지 layer를 씌운후, navigation 패키지에서 global path 경로를 형성 -> cml vel 로 제어(geometry_msgs/Twist)

- local cost map 은 주행 도중에 센서 값으로 부터 형성하는 로봇 주변의 작은 지도이다. global cost map 과 global path-planner 제어값을 받는다.

 

 

그림 출처 : https://coding-robot.tistory.com/37

ROS 패키지들을 사용하여 자율주행 로봇을 구동하는 전체적인 큰 그림을 찾았다.

- 자동차의 위치 좌표는 주변 환경을 탐색할 때 주축이 되는 센서인 라이다 센서의 위치 좌표로 설정한다. (tf 변환 + amcl + odom)

https://www.ksrm.net/articles/xml/PPry/#idm526873640x

 

Development of a ROS-Based Autonomous Driving Robot for Underground Mines and Its Waypoint Navigation Experiments

ABSTRACT 1. 서 론2. 자율주행 로봇의 개발 방법  2.1 자율주행 로봇의 하드웨어 구성  2.2 ROS 시스템 구성  2.3 SLAM 기술을 활용한 2차원 지도 작성  2.4 AMCL 기법을 활용한 위치추정  2.5 모바일 로

www.ksrm.net

윗글에서는 자율주행 로봇 연구에 사용되는 핵심적인 ros 패키지와 알고리즘을 소개함.

 

반응형