강좌 & 팁
안녕하세요. 여러분.
오랜 만에 다시 글을 적습니다. 아름다운 밤이예요.
저는 글을 적을 때마다 제 글이 이곳과 과연 어울리는 것인가 한번 생각을 하게 됩니다. ㅎ
그래도 열심히 적어볼랍니다.
저번에 적은 글에 이어서 도심을 달리는 무인자동차의 새로운 퍼셉션 시스템에 대한 구상을 계속
이어서 적어볼려고 합니다. 한 20일 동안 저도 심각하게 고민을 많이 해 봤거든요. 좀 구상이 진행이
되어 여기에 이야기를 해보려고 합니다.
저번에 말씀드린 바와 같이 무인자동차의 퍼셉션 연구는 다음과 같은 방향으로 흘러 왔습니다.
- 고속도로에서 퍼셉션
- 오프로드에서 퍼셉션
- 도심에서 퍼셉션
2005년 DARPA Grand Challenge에서 오프로드에서의 (모하비 사막) 퍼셉션이 제대로 실현될 수
있따는 것을 보여주었죠. 그리고 2007년 Urban Challenge에서 도심에서의 무인 드라이빙의 가능성을
어느정도 보여 주었었구요...
저는 현재 Urban Challenge에서 1등 먹은 CMU의 로봇 차량 Boss를 사용하여 퍼셉션을 연구하고 있잖아요.
그래서 Boss의 퍼셉션 기능들을 좀더 일반적인 도심 환경에서 사용할 수 있도록 확장하는 것을 하고 싶어
하구요... 그래서 열심히 Boss의 퍼셉션 능력을 공부해 나가고 있는 상황입니다.
헌데... 제가 막상 뚜껑을 열어보니... 이거 참 Boss를 일반적인 도심 환경에 끌고 나갔다간 딱 사고나기
쉽게 되어 있더군요. 뭐 이렇게 말하긴 보다 불가능하다 또는 그렇게 디자인 된 것이 아니다 라고 말해야
더 맞는 것이겠네요.
Boss의 월드 모델링은 다음과 같이 3가지로 볼 수 있습니다.
- Static Obstacle Map
- Dynamic Obstacle List
- Road Structure
스태틱 어브스타클 맵은 말 그대로 로봇 주변의 정적 장애물들의 지도가 되겠구요, 다이나믹 오브스타클 리스트는
무빙 오브젝트들의 리스트라고 보시면 되구요, 마지막으로 로드 스트럭처는 차가 다니는 길에 대한 정보를
추정하는 시스템이 되겠습니다.
원래 엔지니어링이라는 것은 그렇듯이 어떤 목적을 수행하기 위한 requirement 가 나오면 그것을 수행하기
위한 가장 효율적인 방법으로 구현하는 일련의 과정이듯이, Boss의 퍼셉션도 그런 맥락과 일치합니다.
어반 챌린지 대회를 우승하기 위한 목적으로 모든 것이 설계되었기 때문에 그리고 그 대회가 제한적인
도심환경을 전제로 하고 있기 때문에 현재의 Boss의 퍼셉션이 제한적일 수 밖에 없는 것이지요.
어찌 되었든 대회를 1등한 아주 우수하고 복잡한 시스템임에는 반박을 할 수 없습니다.
현재 일반적인 도심환경을 위한 것으로 위의 어떤 모듈 하나 완벽한 것이 없습니다. 그래서 저는
선택을 해야 만 합니다. 문제들이 너무 많아서 개인 박사 과정동안 뭐 2-3년 만에 풀 수 없기 때문이죠.
그것을 선택하기 위해서는 또 어느 정도 공부를 해야 하고 저의 선호도를 따져 봐야 했었지요.
다음은 제가 고민했떤 과정들을 간략하게 서술해 보겠습니다.
[1] Traffic Environment
일반적인 도심 환경이랑 ... 일단 교통 환경을 잘 이해해야 합니다. 인간들은 운전을 하면서 퍼셉션을 편하게
하기 위해서 많은 노력을 해 왔습니다. 도로를 만드는 것부터 그 위에 레인 마커 (차선), 그리고 교통 신호등
,교통 안내판들을 만들어 두었습니다. 그리고 차에는 브레이크 등과 깜박이 등이 드라이버의 의도를 알려주는
신호들이겠지요. 정리하면...
- 도로의 정보 (몇 차선인지, 트래픽의 방향, lane 의 두께, 차선 검출 등등 )
- 교통 신호등/안내판 인지
- 드라이버의 의도 파악의 일환 ( 브레이크 등/ 깜박이 인식)
2011 ICRA라는 컨퍼런스에서 구글카가 신호등 맵핑과 인식에 대한 논문을 발표하였습니다. 저자들이 원래
CMU 사람들이더군요. 첫째 저자는 아주 친하진 않지만 제 친구입니다. 과거에도 신호등 인식을 많이 해
왔지만 이번 것이 다른 점은 먼저 맵핑을 한다는 것입니다. 일단 신호등이 어디 있는지 정보를 맵에다가
정보를 넣어두고 나중에 검출을 한다는 아이디어 입니다. 신호등이 어디 있는줄 알고 자기의 현재위치를
알면 (이것은 localization이라고 하죠) 신호등의 어디 쯤 나오겠다 예상을 할 수 있겠쬬. 이를 통해서 150미터
앞에서 부터 검출을 시작할 수 있고 거의 99% 인식률을 낼 수 있다고 하였습니다. 신호등 인식은 너무나도
중요하고 기본적인 것이라서 구글카도 이전부터 개발을 했고 처음으로 공개적으로 논문을 퍼블리쉬한거
같습니다.
[2] Localization
자 다음으로 로봇 자신이 어디 있는지 정확하게 알아야 합니다. 현재 자신의 위치를 아는 것이 바로
localization 문제입니다. 보통은 카 내비케이션에서 사용하는 GPS 신호는 아주 저가의 것인데, 10미터
내의 오차율을 가지게 되지요. 헌데 무인자동차에서 사용하는 것은 좀더 정확한 INS (Inertial Navigation
System)을 사용합니다. 차 바퀴의 오도메트리와 IMU(Inertial Measurement Unit) 센서와 DGPS (좀더
정확한 GPS신호) 를 퓨전하여 현재의 위치를 추정해 주는 시스템이 되겠습니다. Applanix Corporation
이라는 회사의 제품을 많이들 사용합니다. 어쨋든 이런 정확한 GPS시스템을 사용하는 것이 기본인
듯 싶습니다. 그럼에도 그것만으로 부족하다는 것이 또 일반적인 판단들이구요. 왜냐하면 그런 시스템의
오차율이 1미터 정도 되기 때문입니다. 1미터 오차면 중아선을 침범 할 수 도 있겠지요. 그래서 그 외에
로컬라이제이션 알고리즘이 좀더 보완이 되어야 한다는게 정석이죠. 그래서 Localization 알고리즘이
필요합니다. 저는 다음과 같이 3가지 버젼으로 생각을 해 보았습니다.
low-level 버전 : 길에 있는 차선을 인식하여 차의 위치를 보정하는 방법입니다. 이것은 마치 차선을 보고
쭈욱 따라가는 라인 트레이서 라고 생각하실 수 있습니다. 실은 이런 방법을 사용했습니다. 우리 Boss는.
상당히 괜찮은 방법입니다. 특히 곧게 뻣은 길에서는 특히 그렇습니다.
medium-level 버전 : 이것은 차선만을 보는 것이 아니라 Lidar 센서의 intensity 이미지를 가지고 길에 대한
그림을 그려서 그것을 맵으로 사용하는 방법입니다. 그렇기 때문에 우선 로봇 차량을 가지고 길을 한번
다녀와야 합니다. 그래서 길에 대한 길 그림을 맵으로 만들어 두어야 합니다. 그리고 나서 다시 그 길을
갈때 자신의 위치를 추정해 낼 수 있는 시스템이지요. 위의 방법보다 보다 길위에 특징점들이 많은면
좀더 정확한 성능을 낼 수 있습니다.
high-level 버전 : 이 방법은 길 그림만을 그리는 것이 아니라 Velodyne sensor와 같은 3D lidar 센서로 도심의
환경을 측정하여 맵으로 만드는 방법입니다. 도심 아주 한 복판에는 빌딩들도 많고 특징점들이 많이
있기 때문에 좀더 정확한 로컬라이제이션이 될 수 있습니다. 헌데 주변에 빌딩이나 3차원으로 솟은
스트럭처들이 없으면 사용할 수 가 없게 되겠지요.
그래서 개인적으로 결론을 내리면 도심 한가운데서는 하이레벨 버전으로 된 맵을 가지고 로컬라이제이션
을 하고 좀더 suburban 한 곳으로 나오면 중간 레벨 버전으로 길 그림의 맵을 가지고 하고 고속도로와
같은 길에 나오면 로우 레벨 버젼으로 (물론 항상 GPS는 사용되는 것이구요. 퓨젼이 되죠) 사용하면 되지
않나 생각해 봅니다.
[3] 무빙 오브젝트 트랙킹 시스템
이것은 바로 핵심입니다. 퍼셉션의 핵심이죠. 그리고 도심환경은 너무나 다이나믹하고 무빙 오브젝트들이
많잖아요. 보행자, 오토바이, 저전거, 강아지, 버스, 트럭, 승용차, 유모차 등등...
현재의 Boss의 시스템은 차 (세단) 만을 트랙킹할 수 있기 때문에 당연히 확장되어야만 합니다. 저는 카메라를
사용해서 보행자와 자전거 트랙킹을 하는 것을 그동안 연구해 왔기 때문에 비젼과 퓨전을 하는 아이디어를
사용하여 이 트랙킹 시스템을 확장할 계획을 가지고 있습니다. 저번에 보여드렸던 자전거 트랙킹 동영상
있잖아요. 그거 가지고 이번에 ICRA 2011에서 Best Automation Final List 상을 받았더랬습니다! 예!
다음과 같은 센서들이 있습니다.
- Continental or Dephi or Bosch 의 Radar 센서
- SICK, IBEO, Velodyne 의 Lidar 센서
- Camera 센서
다음에는 각 센서들에 대해서 좀더 자세히 소개하는 글을 한번 써보는 것도 좋겠다는 생각이 드네요.
[4] 다양한 이벤트들
도심환경은 다양한 이벤트들이 많이 일어나지요. 제가 나름대로 정리해 본 것들입니다.
- 교통순경이 교통정리를 하는 상황
- 공사 중인 경우 (Construction Zone)
- 스쿨버스가 앞에 있는 상황
더 많은 구체적인 상황들이 있을 수 있겠네요. 이런 다양한 요소들 때문에 어반 무인 드라이빙은 정말로
챌린징한 일인거 같습니다.
결론적으로 저는 무빙 오브젝트 트랙킹 시스템에 집중을 해서 박사 연구를 해야 겠다는 생각이 많이 듭니다.
모든 것을 다 할 수 없고, 아마도 평생동안 풀어야 하는 문제들이니까요... 2-3년 안에 재미있게 풀 수 있는 그런
문제를 잡아야 겠고 그동안 해 왔던 것만 크게 달르지 않으면 좋으니까요, 다양한 센서를 사용해서 다양한
오브젝트들을 트랙킹하는 시스템을 만드는 일을 해야 겠다는 생각이 듭니다.
그동안 20일 동안 기다려 주셔서 감사하구요... 이제 어느정도 박사 연구 주제에 대한 고민과 서베이는 많이
줄이구요, 좀더 구체적인 일에 착수해야 겠습니다. 앞으로는 아마 Radar 센서와 Lidar (Laser) 센서에 대한
좀더 구체적인 소개글을 쓰도록 하겠습니다.
그럼 또 뵈여~