로봇은 눈앞을 가린 인간과 같다. 우리처럼 시각 정보를 바로 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 이다.
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 제어값을 받는다.
ROS 패키지들을 사용하여 자율주행 로봇을 구동하는 전체적인 큰 그림을 찾았다.
- 자동차의 위치 좌표는 주변 환경을 탐색할 때 주축이 되는 센서인 라이다 센서의 위치 좌표로 설정한다. (tf 변환 + amcl + odom)
https://www.ksrm.net/articles/xml/PPry/#idm526873640x
윗글에서는 자율주행 로봇 연구에 사용되는 핵심적인 ros 패키지와 알고리즘을 소개함.
'FOSCAR-(Autonomous Driving) > ROS 스터디' 카테고리의 다른 글
[2024 ROS 스터디] 안선영 #4주차 - ROS 기본 프로그래밍 (0) | 2024.02.20 |
---|---|
[2024 ROS 스터디] 손희문 #4주차 - SLAM & Navigation (0) | 2024.02.20 |
[2024 ROS 스터디] 변수양 #4주차 - SLAM과 내비게이션 (0) | 2024.02.18 |
[2024 ROS 스터디] 이상혁 #4주차 - SLAM & Navigation (0) | 2024.02.18 |
[2024 ROS 스터디] 이강욱 #4주차 - SLAM & Navigation (1) | 2024.02.16 |