2010년 작업2011.01.28 12:09
목차
1. 위드로봇의 골칫거리 IMU
2. 그래, IMU 만들자! 팔자! <- 여길 보고 계십니다.
3. myIMU6-USB 제작 및 동작 테스트
4. 양산 및 이벤트

자, 그럼 어떻해야 위드로봇 IMU를 구매해서 편하게 쓰실 수 있을까요? INS을 만들어 시장에 내놓으면 되겠죠. 그런데 잠깐 조사해 보니... 와우. INS 시스템은 외산 일색인데 수 백만원을 웃도는 가격으로 판매가 되고 있습니다. 그리고 다른 장비들과 비슷하게 만들다면... 굳이 위드로봇이 또 만들 이유는 없죠. 융합 알고리즘을 패키징하는데 꽤 많은 노력을 들여야만 하고, 그렇게 되면 제품 단가가 올라갈텐데 비슷한 가격대라면 고객들은 아무래도 검증된 유명 회사의 제품을 구매하시겠죠.

단가를 떨어뜨리는 방법은 가능한 리스크를 줄여 위드로봇에서도 부담없이 만들어 판매할 수 있는 구조밖에는 없습니다. 차분히 앉아 현재 상황을 다시 되돌아보기로 했습니다.

2010년 5월까지 사용했던 INS 시스템 개념도


위 블록 다이어그램이 2010년 상반기까지 위드로봇 맴버들의 머리속에 있던 INS 시스템 개념도입니다. 고객들이 사용하고자 하는 embedded system이 있을 것이고, 이 시스템에서는 이미 기존의 GPS 신호를 수신하고 있겠죠. 위드로봇에서 만들 IMU를 이 시스템과 연결하고(아마도 i2c가 될 것입니다), 융합 알고리즘을 embedded system에서 동작시켜 보다 정확한 위치 정보를 얻는 구조입니다.

위 블록 다이어그램대로라면 다음 문제를 해결해야 합니다.
  1. IMU 를 기존 사용 중인 임베디드 시스템에 손쉽게 연결할 수 있는 디바이스 드라이버를 제공해야 한다. (-> WinCE, Linux, 기타 OS 등의 디바이스 드라이버를 몽창 다 만들어야 하나? 아님 WinCE 정도만 만들면 되나? 드라이버를 제공한다고 해도 분명 이런저런 사용법 문의에 대응해야 하는데 다들 바빠서 이를 지원할 의사를 가진 맴버가 없다)
  2. Fusion Algorithm을 사용자가 손쉽게 사용할 수 있도록 패키징을 해야 하며, OS 별로 제공해야 한다 (-> 이 또한 위드로봇 맴버들 중 아무도 하고 싶어하지 않은 작업입니다)
자, 그럼 비슷해 보일지 모르지만 아래와 같이 개념을 바꾸면 어떻게 될까요?

융합 칩을 만들어 융합 알고리즘은 이 칩에서 담당하고, 기존 시스템에서는 GPS 신호와 동일한 인터페이스로 사용 가능하게 만듭니다.



FusionChip 하드웨어를 만들어 융합 알고리즘을 여기다 넣어 고객에게 공급합니다. 고객 입장에서는 기존 GPS 인터페이와 동일하게 인코딩된 데이터를 UART를 통해 받기에 이게 이전 GPS 일반 데이터인지, IMU와 융합되어 개선된 데이터인지 구별할 필요가 없어지게 됩니다. 위드로봇에서는 개선된 GPS 신호를 편의상 GPS+ 신호라 부르기로 하였습니다. 이 구조면 기존 고객들 입장에서는 technical support를 요청할 일이 없어집니다. 기존 GPS 사용법과 동일하니까요. OS가 뭐든, 프로세서가 뭐든 상관없어집니다. 위드로봇 입장에서는 FusinChip만 잘 설계하여 제공하면 되는 셈입니다.

자, 위 구조라면 이제 맘 놓고 IMU를 판매할 수 있습니다. 이젠 안 만들 이유가 없네요. 여기까지 보신 분들이 '뭐야? 외부에 칩 하나 달아서 융합 알고리즘을 밖으로 빼내는 걸 생각하는데 그렇게 오래걸렸단 말이야?' 하실 것입니다. 그런데 콜롬부스 달걀처럼 듣고 나면 누구나 생각할 수 있는 아이디어지만 위 블록 다이어그램을 도출하는데 2년이 걸렸으며 2년간 여기저기 아디이어를 물으러 다녔지만 별 수확이 없었던 것이 사실입니다.

FusionChip은 회사에 여유가 있으면 ASIC을 하면 좋겠지만 당장은 RISK가 너무 크기에 적절한 one-chip micom을 이용하여 만들기로 하였습니다. 만만한 녀석들이 Cortex-M3 또는 M4 코어를 가지고 있는 녀석들이겠죠. 핵심은 FusionChip은 가능한 작게, 그리고 저렴하게 공급해야 하는데 이럴려면 코드를 쥐어짜서 다이어트를 해야죠. 문제는 꽤 차수가 높은 kalman filter는 쥐어짜는데 한계가 있기에 정 줄여야 하면 matrix 연산이 아닌 수식 자체를 다 풀어 헤치는 수 밖에 없습니다. 그런데... 이게 만만치 않은 작업입니다. 모여서 회의한 결과 한 달 이상이 소요될 것으로 파악되었습니다. 이 작업은 플랫폼 팀장님이 맡으셔서 하기로 했구요.

IMU도 설계에 착수합니다. 앞서 보여드린 uT 결과물(myIMU-DX)은 벌써 2년전에 제작한 모델인지라 그 사이에 성능 및 크기를 개선할 수 있는 여지가 많아졌습니다. 개발 시간이 추가로 들어가겠지만 이번에도 또 작게 만들어 보기로 합니다. 이름부터 정해야겠죠? 3축 가속도, 3축 자이로 센서가 들어간 IMU라는 것을 잘 표현하기 위해 myIMU6-USB로 정했습니다. 추후 지자기 센서까지 포함된 myIMU9-USB도 만들어 보겠다는 의지가 이름에 살짝 묻어있는 것이죠. USB 스텍도 잘 만들어 두었으니 이번에도 쓸 계획이구요.

그 사이에 IMU 회로도가 쓱삭쓱삭 나왔고, 아트워크가 끝났습니다. 크기는? 앞서 공개한 myARS-USB와 동일하게 만들기로 하였습니다. 핀도 똑같구요. 즉 소비자 입장에서는 동일한 인터페이스 보드로 myARS-USB와 myIMU6-USB를 사용하실 수 있는 것입니다.

순풍에 돛 단듯 쭉쭉 진행되던 myIMU6-USB는 역시나 역풍에 맞닥드리게 되는데요... 바로 칩 수급입니다. 이번에는 좀 큰맘 먹고 수량을 늘려 발주를 냈으나, 무려 28주라는 장납기를 받기에 이릅니다. 어떻할까요. 28주면 7달 뒤인데... 7달 뒤에 다시 먼지털고 프로젝트를 시작할까요?

또 이렇게 고민 보따리는 늘어만 갑니다만... 해결을 했습니다~

다음 이야기: 3. myIMU6-USB 제작 및 동작 테스트 (2월 초 포스팅 예정)

Posted by getcome