본문 바로가기
Embedded/Selly : Sejong Delivery

[젯슨나노 프로젝트]자율 주행 배달 로봇 Selly(9)_openVSLAM과 cartographer의 실패

by 다봄이 2020. 5. 12.

openVSLAM 오픈소스 for visual SLAM(카메라 기반)과 cartographer 구글 오픈소스 for SLAM(라이다 기반)이 모두 실패하면서 나의 지난 한 달 반이 사라져버렸다...ㅠㅠ

 

슬램이 자율주행에 핵심 기술인걸로 알고 있는데... 실외에서 잘 작동하지를 않는다는 것이 문제이다.

 

 

visual SLAM의 경우에는 비쥬얼 슬램 자체가 feature point를 잡아서 feature point 개수의 변화&거리 변화로 mapping을 하는 기술인 것 같은데(어떻게 mapping하는지는 정확히는 모르겠다. feature point를 이용하는 것만 알겠음.), 알다시피 feature point는 천장, 바닥, 벽면 같은 plane에서는 절대 detection 되지 않으니까...

 

 

참고로 openVSLAM에서 제공하는 데이터셋은 전부 실내(주로 복도, 통로)이다.

특히, 카메라를 360도 전방위 카메라를 사용해서 오른쪽 사진처럼 key frame(혹은 key point, feature point 등등으로 부르는 그거)도 많이 잡힘.

 

 

하지만 실외만 나갔다 하면

....?

사실 얘같은 경우는 맵이 이상하게 그려지긴 하지만 어느정도 위치 추정이 가능하긴 하다. 지나온 길 주변에 자동차, 조형물, 나무 그림자 등이 많아 특징을 적지 않게 추출할 수 있기 때문이다.

 

 

문제는 테스트 구간이다.

 

특히 selly를 시범 운행하기로 한 정문에서 센터까지의 도로가 너무 좋은 도로라서 segmentaion & object detection에는 무지 좋고 실제 driving에도 좋은데, visual SLAM에는 무지무지 안 좋다..

넓고 깨끗한 도로 = plane = feature가 추출 안 됨 = SLAM 못 함

 

아무튼, 테스트 구간에서 feature를 추출하지 못하는 관계로 기술 사용이 어려워졌다.(테스트 백이면 백 실패)

 


전의 포스팅에서처럼 실내에서 카토그래퍼는 제법 성공적이었다.(이 때 얼마나 기뻤는데ㅠㅠ)

따라서 비쥬얼 슬램이 테스트구간에서 실패함에 따라 카토그래퍼를 사용하려고 하였다.

 

문제는 우리 팀이 사용하는 라이다 센서가 최대 측정 범위가 11m로 상당히 짧은 센서라는 점이다. 실외로 나가니 공간이 너무 넓어 LaserScan으로 맵이 그려지지 않았다...

(귀찮아서 우리 팀원이 편집한거 가져와땋ㅎ)

 

 

라이다 센서 자체가 레이저를 쏴서 반사되는 시간으로 물체와의 거리를 구하는 센서이기 때문에, 반사되는 값이 없을만큼 넓고 트인 공간에서는 맵이 잘 그려지지 않는 것...

 

또 다른 문제도 발견하였는데, 바로 zed 카메라에서 가져오는 odometry 센서의 누적 오차이다.

넓은 공간(실내)으로 나와서 시작점을 정해두고 한 바퀴 돌아서 odometry path를 측정해보았더니, 누적 거리 오차가 점점 심해져서 시작점과 끝 점이 맞지 않는 문제가 있었다.

 

 

연구실은 물건이 많고 파티션이 벽처럼 세워져 있어 레이저 반사가 잘 되었고, 좁은 공간이라 거리 누적 오차가 심하지 않아 맵이 비교적 잘 그려진 것 같다.

하긴 실제 자율주행차에는 몇천만원이 훌쩍 넘는 라이다 센서가 들어가는데 우리가 사용하는 라이다는 10만원도 안 되는 거라 당연한 결과일지도 모르지만, 이 프로젝트를 진행하며 자율주행에 정말 얼마나 많은 센서가 들어가고, 센서 의존도가 얼마나 큰 지 매번 느끼는 것 같다..

 

 

두 기술 다 실패하고, 이제 GPS와 zed카메라의 odometry 데이터를 가지고 경로 설정과 내비게이션을 하는 방법을 연구하고 있다.(ㅠㅠ)

댓글