[졸업프로젝트 3탄, HW] turtlebot3로 SLAM, Navigation 구현 (2020 Summer)
Projects/Graduation Project

[졸업프로젝트 3탄, HW] turtlebot3로 SLAM, Navigation 구현 (2020 Summer)

해당 프로젝트는 졸업프로젝트에 적용차 시연되었습니다.(졸업 프로젝트의 HW 구현 반영)

해당 프로젝트 Notion:bit.ly/35rdfmb

졸업 프로젝트 대비, SLAM, Navigation 기술 구현을 끝내며, 전체적인 프로젝트의 진행상황을 공유해보려고 한다.

LiDAR 센서의 SLAM, Navigation 기술이란?

SLAM(Simultaneous localization and mapping): 임의 공간에서 이동하면서 주변을 탐색할 수 있는 로봇에 대해, 그 공간의 지도 및 현재 위치를 추정하는 문제입니다. 즉, LiDAR 센싱을 통해 자신이 있는 공간에 대해 하나의 지도를 만들 수 있습니다.

Navigation: 모터와 여러가지 부품을 이용해서 한곳에서 다른 곳으로 이동하는 기술이다. 주로 방향 설정과 더불어 장애물 회피 등의 기술 구현이 가능합니다.

즉, LiDAR 센서의 SLAM 기술을 통해 Map이 만들어지면, Navigation 기술로 이동하게 되는 흐름으로 작동된다.

이는 Linux 기반의 ROS에서 작동되는데,

image


ROS (Robot Operating System)은 말그대로 로봇 운영체제를 말한다. 로봇 응용프로그램을 개발할 때 필요한 디바이스 제어, 기능 구현, 패키징 및 다양한 도구를 제공한다. 말그대로 로봇 운영시 사용되는 개발 체제이다. Linux에서 이를 직접 돌려보고자 프로젝트 안의 프로젝트(?) 개념으로 실행하게 되었다.

본 프로젝트의 연결점

본 팀의 자율주행카트는 LiDAR 센서를 이용해 장애물/고객과의 거리를 조종합니다. 이 때, SLAM 기술과 Navigation 기술이 쓰입니다.

해당 이미지 출처: robotis

카메라를 사용한다고 해서 모든 장애물을 감지하고, 돌발상황을 예방할 수 없습니다.

따라서 본 팀은 LiDAR Navigation client 센서의 기술을 통해 를 둘러싼 주변 환경을 완벽하게 인지하려 합니다. 장애물을 감지하고 client와의 적정거리를 유지하게 됩니다. 이를 통해 고객을 졸졸 따라다닐 수 있는 자율주행 카트의 목적을 달성하게 됩니다. 이러한 기본적인 기능뿐만 아닌 센서의 LiDAR SLAM 기술을 통해 자율 주행 카트는 다양한 분야에서 의 확장 가능성을 가집니다.

SLAM 기술의 Mapping 을 통해 매장 장소의 map을 형성하여 해당 카트의 위치까지 완벽히 파악/ 매장 장소를 완벽히 이해하여 다른 환경에서도 간단히 Mapping만 돌리면 바로 적용이 가능해지는 우위에 있습니다.

이번 프로젝트에서 있었던 고난: linux구현의 어려움

  1. linux를 구현하기 위해 먼저 VM(가상머신)을 사용하였다. 하지만 ros의 특성상 가상머신을 싫어하는 특성으로 실패.
    여기서 말하는 ros 특성의 어려움
    와이파이를 통해 로봇과 시스템을 원격으로 연결해야 하는 상황이 있었다.
    와이파이를 통해 연결 중에 주소 오류로 계속 끊기는 현상이 발생하였다. 이를 찾기 위해 robotis 사이트에도 문의해보았지만 역시 가상머신의 문제라고 말해서 다른 방안을 찾게 되었다.
  2. 둘째로 맥북에서 듀얼 부팅을 시도해보았다.
    ROS는 작동되었지만, 듀얼부팅을 하면서 나타나는 시스템이 다운되는 현상이 계속 발생하면서 실패.
    마지막으로 집 구석에 쳐박혀있던 노트북을 linux로 바꿨다. 작동하기 위해 usb, 드라이브 굽기를 작동하여 리눅스로 간신히 성공.

결과적으로, SLAM, Navigation이 잘 구현되어 성공적으로 마무리할 수 있었다.

밑 이미지는 본 팀이 학문관 5층을 바탕으로 SLAM을 구현하고, Navigation 을 작동한 지도이다.

SLAM 기술로 학문관 5층의 지도를 그려보고, Navigation 기술로 직접 이동하는 기술 구현까지 완료할 수 있었다.

나머지는 수월하게 풀려서 참 다행이다. 처음으로 로봇을 조립해보고, 직접 작동하였다. 모터나 라즈베리파이, LiDAR의 특성을 한번에 파악할 수 있는 좋은 기회였다. 이 기술을 바탕으로 졸업프로젝트에 요긴하게 쓰일 예정이다.

구현 동영상

SLAM

Navigation

사용 코드

SLAM:emanual.robotis.com/docs/en/platform/turtlebot3/slam/#run-slam-nodes

Navigation:emanual.robotis.com/docs/en/platform/turtlebot3/navigation/#run-navigation-nodes