2010년 작업2011.01.05 15:39

3축 가속도와 3축 자이로 센서를 조합한 후 각각의 센서 출력을 내주는 장치를 IMU(Inertial Measurement Unit)이라고 부릅니다. 보통 움직이는 물체의 관성량을 측정해서 물체의 이동 방향, 현재 포즈(pose), 현재 위치 등을 파악하는데 사용하죠. 항공기의 기체 자세를 파악하는데 많이 사용하였고, 최근에는 게임에 적극적으로 활용되고 있습니다.

위드로봇에서는 국토해양부 국책 과제 "u-Transportation 기반 기술 사업"에서 차량의 위치를 GPS가 있건/없건 정확하게 파악해야 하는 과업을 수행한 바 있습니다. 이 때 약 1년간 국내에서 입수가 가능한 모든 가속도, 자이로 센서를 수급하여 일일히 그 성능을 비교하며 IMU에 적합한 MEMS 센서들을 찾았습니다. 이렇게 만들어진 IMU와 GPS, OBD 신호를 융합하여 GPS 신호가 수신될 때는 좀 더 정밀한 위치를 알려주고, GPS가 수신되지 않는 경우에도 일정 시간 동안은 GPS 오차 범위 내에서 차량의 위치를 알려줄 수 있는 시스템을 제작하여 데모를 보였었죠. 이렇게 IMU를 제작한 때가 2007년 ~ 2008년 사이었습니다. 이 당시만해도 자이로 센서가 무척 비쌌으며(자이로 센서 한 축짜리가 개당 6만원이 넘었었습니다), 1축 자이로만 시장에 풀려있었기에 3축 자이로 센서를 구축하려면 물리적으로 조합을 잘 해야만 했습니다. 그래서인지 상용 제품은 제일 싼 제품이 50만원이 넘곤 했습니다. 과제에서는 차량마다 장착한다는 전제조건을 깔고 있어 10만원 안팎의 시스템이 만들어져야만 했고, 그러다 보니 위드로봇 입장에서는 직접 만들어야만 하는 이슈로 변질되었습니다. 원래 과제 제안서에는 IMU를 만드는 일은 거의 비중이 없는 일처럼 되어있었습니다만, 결국 일 년간 열심히 IMU를 만들어야만 했습니다.

uT 과제에서 만들어진 IMU 입니다. 1축 자이로 센서를 X-Y-Z 축으로 배치하기 위해 나름 이런저런 아이디어를 냈고, 고생 꽤나 했습니다.


약 10개월간의 고생 끝에 나름 작고 성능도 괜찮은 IMU가 만들어졌고, 국토해양부에서는 국가 R&D 전시회가 있을 때마다 이 성과물을 전시해 달라고 요청이 들어왔었습니다. 전시를 몇 번 한 적이 있었는데 그 때마다 IMU와 데모를 보시고들 다들 구매 의사를 밝혀왔었습니다. 아마도 외산 장비는 구매도 힘들고 technical support를 받기 힘들뿐더러 꽤나 괜찮게 동작하는 것으로 보이는 동영상 데모를 보니 '이거다' 싶어하시는 것 같았습니다.  하지만 매번 구매 의사에 죄송하다는 말로 거절할 수 밖에 없었습니다.

이런 곳에서 하루 종일 서 있다가 질문하시는 분들이 오시면 답을 하곤 했습니다. 몇 번 전시회를 나가서 어느 정도 편해질 때도 됐습니다만, 아직도 전시회에 나가는 일은 낯설고 힘든 작업입니다

다 만들어졌고, 잘 동작한다면 파는데 무슨 문제가 있냐고 물어보시지만...

엄밀히 말하면 IMU가 필요하신 분들은 IMU가 아닌 AHRS 또는 INS를 필요로 하는 것입니다. AHRS는 ARS(Attitude Reference System)에 Heading 정보가 추가된 형태로 Attitude Heading Reference System의 약자입니다. INS은 Internal Navigation System의 약자로 IMU 정보와 기타 절대값 위치 정보를 융합하여 움직이는 물체의 위치, 속도 등을 파악하는 시스템이구요. 통상적으로 INS = GPS + IMU 로 구성하곤 하죠. 문제는 위 수식의 "+" 에 있습니다. GPS 신호와 IMU를 말 그대로 자알~ 합쳐야 하는데 통상적으로 이러한 이기종간의 데이터를 융합하는데 많이 쓰이는 방식이 Kalman filter 입니다. 정리해 보면 IMU는 3축 가속도, 3축 각속도를 출력하는 센서 덩어리일 뿐이고, 실제 사용자들이 원하는 정보는 위치 또는 각도 정보이기에 IMU에 무엇가 - kalman filter 던 particle filter 건, 아니면 DCM 이건 - 조작을 취해야 한다는 것입니다. 같은 개념이지만 분야에 따라 차량 쪽에서는 dead reckoning(DR) 이라고 부르는 것이 일반적입니다.

이 분이 Rudolf E Kalman입니다. 제어 분야에서 좀 잘 나가는 분들은 모두 이름 끝에 ~man 이 붙어있습니다. 소시적 제어공학을 열심히 공부할 때 영어 이름에 나도 man을 붙이면 논문이 잘 써질까해서 영문 이름의 개명을 심각히 고민하던 적이 있습니다. 지금요? 제어분야에서 멀어진지 오래됐습니다요.


노이즈 모델이 정규분포를 가지고 시스템이 선형 시스템이라면 kalman filter가 최적이라는 것이 수학적으로 증명되었기에 융합 알고리즘 동네에서는 한마디로 kalman filter가 대장 노릇을 하죠. non-linear 시스템일 경우 particle filter 기법들이 쓰이곤 합니다만, 이것도 extended kalman filter와 비교하면 수학적 완결성 측면에서는 비교가 안됩니다. kalman filter가 20년 전에도 대세였고, 아직도 대세입니다(Kalman filter가 왜 필터인지, Kalman 보다 앞서 더 훌륭한 논문이 있었음에도 불구하고 모든 영광을 Kalman이 가져가게 되었지는지 등의 뒷 이야기도 꽤 흥미진진합니다. 나중에 이 이야기 보따리를 풀어 놓도록 하죠). 또한 냅다 IMU의 출력값을 kalman filter에 넣는다고 잘 동작하는 것이 아닙니다. 적용 시스템에 알맞는 pre-processing이 꽤 필요하죠.

정리해 보면 위드로봇에서 만든 것은 센서 덩어리인 IMU인데 IMU를 구매하시겠다는 분들은 사실은 IMU가 아니라 INS 또는 AHRS를 필요로 한다는데 문제가 있는 것이죠. 물론 Kalman filter를 기반으로한 INS 알고리즘은 나름 훌륭히 만들어져 있으니 제공을 하려면 할 수는 있으나 이를 패키징하는 방법 및 기술 지원에 있어 여러가지로 복잡한 부분이 많다는 점이 문제입니다.

어쨌건 "IMU 하나 산다고 해서 지금 해결하려고 하는 움직이는 물체의 위치를 잘 파악하려는 작업이 해결될 것이라는 생각은 너무나도 순진한(조금 과격하게 표현하면 무식한) 생각"이라는 것입니다. 그런데 다들 동영상 보시고 위드로봇의 IMU를 이용하면 되겠구나 생각하셔서 구매하신다면 그건 말 그대로 "낚인 것" 이라는 것이죠.


이 와중에 지원팀 ioyoi 양이 사고를 하나 칩니다. 양산되어 수 백개씩 쌓여있는 IMU의 사진을 덜컥 찍어 홈페이지에 올린 후, "좀 있으면 팔꺼에요~"라고 올린 것입니다. 그 다음부터 문의 전화, 문의 메일 폭주~~.

이 사진이 문제의 사진입니다. IMU 200여개의 사진을 찍어 올리니 저가형 IMU를 찾던 분에게는 눈이 번쩍 떠지는 사진이었겠죠.



하지만 문의 전화 주신 분들과 잠깐 통화해 보면 역시나 IMU 만 제공해서는 고객들이 원하는 결과를 얻을 수 없음을 금방 알 수 있습니다. 결국 그 다음 솔루션(INS)까지 제공하지 않으면서 IMU를 판매하는 것은 '열심히 공부해서 한 번 잘 써봐~'하고 놀리는 것 밖에는 안됩니다.

위드로봇 내부에서 회의를 몇 번이나 열었습니다만 '융합 솔류션 내지 기타 다른 technical support 기획없이 IMU를 외부에 판매하는 것은 끝도 없을 문의에 일일이 대응해야 하는 대재앙을 불러올 것이다'라는 결론을 내리고 판매 불가 방침을 결정합니다.

이게 2008년도 결론이었습니다. 그리고 2009년, 2010년, 끊임없이 "IMU 안팔아요?" 문의는 계속됩니다. 한 두번이면 모르겠습니다만 지속적으로 문의가 들어오기에 고민을 안할 수가 없습니다. 만들어 놓고도 팔 수 없는 이 고통을 누가 알까요?

다음 이야기:  2. 그래, IMU 만들자! 팔자!
Posted by getcome