쉽게 설명하는 자율 주행 기술, 지도를 작성해보자!

in #kr-dev7 years ago (edited)

안녕하세요.

지난 번에 작성한 로봇은 어떻게 자기의 위치를 아는가? 포스팅에
많은 사람들이 관심을 가져주셨습니다. 감사합니다.

지난 포스팅에서는 간단히 자율주행이 무엇인지와 지도가 있을 때 로봇이 위치 추정을 어떻게 할까를 예를 들어서 설명을 했었습니다.

이번 포스팅에서는 지도를 작성하는 것, 즉 Mapping에 대해 소개하고자 합니다.

자율 주행에서의 Mapping은 무엇일까요?


자율주행에서의 Mapping은 특정 장소, 공간의 지도를 만드는 것이며,

로봇이 정확한 위치 추정을 하기 위해서는 정확한 지도가 필요합니다.

미지의 환경, 지도가 없었던 장소의 지도를 어떻게 정확한 지도를 만들 수 있을까요?

여기서 SLAM (Simultaneous localization and mapping)이라는 기술이 등장합니다.

SLAM이 나온지는 음... 꽤 오래됐을꺼에요.. 1999년?
SLAM은 그동안 많은 발전이 있었고, SLAM의 종류도 아주 다양합니다.

그 중 EKF-SLAM, EKF-filter는 NASA가 우주에 로켓을 쏘고, 달탐사하는 로봇을 개발했을 때에도 적용했다는 이야기를 수업에서 들은 것 같아요.. ㅋㅋ

아래는 최신 기술이에요!

SLAM RTAB-MAP에 대한 이미지 검색결과

<RTAB-MAP - Google 검색>, 위의 이미지는 RGB-D 카메라가 부착된 스마트폰으로 3차원 지도를 작성중입니다.

SLAM 이란

동시적 위치추정 및 지도작성로봇공학 등에서 사용하는 개념으로, 임의 공간에서 이동하면서 주변을 탐색할 수 있는 로봇에 대해, 그 공간의 지도 및 현재 위치를 추정하는 문제이다. - 위키백과
여기서 중요한 것은

임의의 공간에서 지도를 작성한다는 것은 위치 추정과 지도 작성을 동시에 한다는 것인데요.

왜 동시에 해야할까요?

하나하나 알아가봅시다.


먼저 아래와 같은 가정을 해보려고 합니다.

  • 관련 이미지
<ROS lidar - Google 검색>
  • 로봇은 원점으로부터 자신이 이동한 거리, 자신의 위치를 정확히 알고 있다. (원점은 로봇이 동작 시작한 위치이다.)
  • 로봇은 자신의 360도로 2차원 거리를 측정한다.
  • 로봇이 작성할 지도는 동적 장애물이 없다. (ex - 사람들이 돌아다니지 않는다.)
위와 같은 가정이 있다면,

로봇은 사실 자신이 이동하다가 본 2차원 거리값을 저장하고 그리기만 하면 그대로 지도가 만들어지는 것입니다!!!

 

하지만 현실에서는 로봇은 지도를 작성할 때, 자신의 정확한 위치를 모릅니다.

왜냐하면, 센서들의 오차, 바퀴의 미끄러짐, 마찰 등 외부 변수 등의 오차가 있기 때문입니다. 또한 로봇이 이동할수록 로봇의 위치 오차는 점점 누적이 되죠.

그래서 로봇은 자신의 위치를 추정하면서 지도를 작성을 해야합니다.


좋은 예를 찾았는데요.

아래 그림을 보면 첫번째 지도는 벽 부분이 잘 안맞는것을 볼 수 있습니다.

두번째 지도는 좀 괜찮아보이죠?

두 지도의 차이는 위치추정, 위치 보정을 하면서 지도를 만들었는지입니다.

첫번째는 로봇 바퀴가 굴러가는 것만을 계산된 위치를 기반으로 지도를 그린것 입니다. 이럴 경우, 로봇의 위치 오차는 계속 누적이 되고 그에 따라 지도도 틀어지게 되는 것입니다.

두번째의 경우는 시간 t까지에 내가 보고 있는 것과 시간 t까지 만들어놓은 지도를 보면서 주기적으로 로봇의 위치가 틀어지는 것을 방지하고, 지도를 만든 것입니다.

top_cloud_raw

<https://github.com/introlab/rtabmap/wiki/IROS-2014-Kinect-Challenge>

top_cloud

<https://github.com/introlab/rtabmap/wiki/IROS-2014-Kinect-Challenge>

 


오늘은 Mapping, SLAM에 대해 간단히 소개를 해드렸는데요.

즉, 로봇의 위치가 불확실하기 때문에,
지도를 만드는 것과 위치를 추정하는 것을 동시에 해야한다는게 오늘 하고싶은 말이였습니다.
그리고 동시에 하기 때문에 어려운 문제가 되는거고요.

사람도 무의식적으로 이렇게 지도를 만들거에요.

자세한 사항은 찾아서 공부하시면 됩니다!


다음에는 지도도 있고, 내가 지도 위에 어디있는지도 안다면

목적지까지 이동하는 것, Path planning에 대해 작성해볼까 합니다.

읽어주셔서 감사합니다.

Sort:  

스스로 홍보하는 프로젝트에서 나왔습니다.
오늘도 좋은글 잘 읽었습니다.
오늘도 화이팅입니다.!

제가 정말 관심있어 하는 글인데 이제야 발견 했네용. 좋은글 잘 보고 리스팀해서 또 봐야겠습니다. 감사합니다.

재밌게 봐주셔서 감사해요.
제 꿈도 로봇을 만드는거고
지금 로봇관련 개발하고있습니다.
로봇을 만드는걸로 돈버는 일이고
팔리는 로봇을 만들고 싶어요.

일 외에도 취미가 개발이고 저만의 로봇만드는 일이라서
앞으로도 꾸준히 작성해보고자 합니다.

또 최근에는
워낙 공개된 기술 그리고 수업들도 많아서
기존애 있는 것들을 잘 활용해서 나만의 로봇 만드는게
가능해졌다고 생각해여! ㅎㅎ

저만해도 로봇비스므리한걸 대학때 만져봤는데 이제는 초등학교부터 만진다니 정말 제 꿈의 로봇이 만들어지는 게 점점 가시화 되고있다는 생각입니다.
만화니 영화에서 보던 로봇이 생활에 들어오는 것이 머지 않았다고 생각되네요

네 ㅎㅎ 저도 그렇게 생각합니다!
읽어주셔서 감사합니다.

이벤트 당첨되셔서 보팅하고 갑니다^^

감사합니다 ㅎㅎ

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.031
BTC 60371.26
ETH 2609.98
USDT 1.00
SBD 2.54