안녕하세요.
지난 번에 작성한 로봇은 어떻게 자기의 위치를 아는가? 포스팅에
많은 사람들이 관심을 가져주셨습니다. 감사합니다.
지난 포스팅에서는 간단히 자율주행이 무엇인지와 지도가 있을 때 로봇이 위치 추정을 어떻게 할까를 예를 들어서 설명을 했었습니다.
이번 포스팅에서는 지도를 작성하는 것, 즉 Mapping에 대해 소개하고자 합니다.
자율 주행에서의 Mapping은 무엇일까요?
자율주행에서의 Mapping은 특정 장소, 공간의 지도를 만드는 것이며,
로봇이 정확한 위치 추정을 하기 위해서는 정확한 지도가 필요합니다.
미지의 환경, 지도가 없었던 장소의 지도를 어떻게 정확한 지도를 만들 수 있을까요?
여기서 SLAM (Simultaneous localization and mapping)이라는 기술이 등장합니다.
SLAM이 나온지는 음… 꽤 오래됐을꺼에요.. 1999년?
SLAM은 그동안 많은 발전이 있었고, SLAM의 종류도 아주 다양합니다.
그 중 EKF-SLAM, EKF-filter는 NASA가 우주에 로켓을 쏘고, 달탐사하는 로봇을 개발했을 때에도 적용했다는 이야기를 수업에서 들은 것 같아요.. ㅋㅋ
아래는 최신 기술이에요!
<RTAB-MAP - Google 검색>, 위의 이미지는 RGB-D 카메라가 부착된 스마트폰으로 3차원 지도를 작성중입니다.
SLAM 이란
동시적 위치추정 및 지도작성은 로봇공학 등에서 사용하는 개념으로, 임의 공간에서 이동하면서 주변을 탐색할 수 있는 로봇에 대해, 그 공간의 지도 및 현재 위치를 추정하는 문제이다. - 위키백과
여기서 중요한 것은
임의의 공간에서 지도를 작성한다는 것은 위치 추정과 지도 작성을 동시에 한다는 것인데요.
왜 동시에 해야할까요?
하나하나 알아가봅시다.
먼저 아래와 같은 가정을 해보려고 합니다.
<ROS lidar - Google 검색>
- 로봇은 원점으로부터 자신이 이동한 거리, 자신의 위치를 정확히 알고 있다. (원점은 로봇이 동작 시작한 위치이다.)
- 로봇은 자신의 360도로 2차원 거리를 측정한다.
- 로봇이 작성할 지도는 동적 장애물이 없다. (ex - 사람들이 돌아다니지 않는다.)
위와 같은 가정이 있다면,
로봇은 사실 자신이 이동하다가 본 2차원 거리값을 저장하고 그리기만 하면 그대로 지도가 만들어지는 것입니다!!!
하지만 현실에서는 로봇은 지도를 작성할 때, 자신의 정확한 위치를 모릅니다.
왜냐하면, 센서들의 오차, 바퀴의 미끄러짐, 마찰 등 외부 변수 등의 오차가 있기 때문입니다. 또한 로봇이 이동할수록 로봇의 위치 오차는 점점 누적이 되죠.
그래서 로봇은 자신의 위치를 추정하면서 지도를 작성을 해야합니다.
좋은 예를 찾았는데요.
아래 그림을 보면 첫번째 지도는 벽 부분이 잘 안맞는것을 볼 수 있습니다.
두번째 지도는 좀 괜찮아보이죠?
두 지도의 차이는 위치추정, 위치 보정을 하면서 지도를 만들었는지입니다.
첫번째는 로봇 바퀴가 굴러가는 것만을 계산된 위치를 기반으로 지도를 그린것 입니다. 이럴 경우, 로봇의 위치 오차는 계속 누적이 되고 그에 따라 지도도 틀어지게 되는 것입니다.
두번째의 경우는 시간 t까지에 내가 보고 있는 것과 시간 t까지 만들어놓은 지도를 보면서 주기적으로 로봇의 위치가 틀어지는 것을 방지하고, 지도를 만든 것입니다.
<https://github.com/introlab/rtabmap/wiki/IROS-2014-Kinect-Challenge>
<https://github.com/introlab/rtabmap/wiki/IROS-2014-Kinect-Challenge>
오늘은 Mapping, SLAM에 대해 간단히 소개를 해드렸는데요.
즉, 로봇의 위치가 불확실하기 때문에,
지도를 만드는 것과 위치를 추정하는 것을 동시에 해야한다는게 오늘 하고싶은 말이였습니다.
그리고 동시에 하기 때문에 어려운 문제가 되는거고요.
사람도 무의식적으로 이렇게 지도를 만들거에요.
자세한 사항은 찾아서 공부하시면 됩니다!
다음에는 지도도 있고, 내가 지도 위에 어디있는지도 안다면
목적지까지 이동하는 것, Path planning에 대해 작성해볼까 합니다.
읽어주셔서 감사합니다.
This page is synchronized from the post: ‘쉽게 설명하는 자율 주행 기술, 지도를 작성해보자!’