HMI 개발 동향
자동차에서 인포테인먼트(인포메이션+엔터테인먼트)를 위한 최초의 사용 사례 중 하나는 음악을 청취하기 위한 옵션이었다. 카 라디오는 1930년대에 개발되었음에도 불구하고 1970년대 중반까지 최고의 혁신 제품이었다.
과거에는 단순했던 이 컴포넌트가 현재엔 다양한 기능뿐만 아니라 32비트 프로세서, 그래픽 사용자 인터페이스를 갖춘 고성능 제어기기와 같은 하이엔드 제품으로 변화했다. 자동차 산업에서 이같은 급속한 발전은 시장에 새로운 혁신을 불러일으켰다. 그 사례들로는 지도 표시 기능을 갖춘 위성 내비게이션 시스템, 디지털 TV 수신, 차량 내의 이동전화 연결 등이 있다.
미래의 인포테인먼트 시스템은 더욱 발전할 것이고, 날로 늘어나는 기능들에 대한 효과적인 정보 전달 및 제어를 위해 HMI (human machine interface)의 중요성이 크게 높아질 전망이다. 이는 HMI가 운전자와 차량 간의 실질적 의사소통 역할을 하기 때문이다. 그래픽 사용자 인터페이스(graphical user interface), 음성 사용자 인터페이스(voice user interface) 등이 이에 속한다.
최근에는 풀 터치 스크린이나 디지털 인스트루먼트 패널, 음성 사용자 인터페이스 등이 적용되고 있고 시나리오의 복잡도 및 사용되는 그래픽 효과에 대한 요구치가 지속적으로 증대되고 있다. 따라서 HMI 개발에 대한 부담 또한 높아지고 있다. 예를 들어 하나의 HMI 프로젝트를 구성하는 시나리오의 상태(state)는 1,500개 정도이며 사용되는 위젯(widget)은 7,000여 개에 이른다.
HMI 분야에 대한 개발 범위가 늘어남에 따라 자동차 OEM의 비용 억제 부담도 가중되고 있다. 이 목표를 달성하기 위해서는 개발 시간, 인적 자원을 효과적으로 활용하고 유지해야 한다. 또한 이와 관련된 OEM의 주요 이슈 중에는 확장된 신뢰성 확보가 있다. 이러한 문제를 고려할 때 강력한 개발 및 관리용 툴이 갈수록 각광받게 될 것이다.
개발의 비효율성
현재 자동차 HMI 개발의 문제점은 아래 와 같이 다섯 가지로 정리할 수 있다.
첫째, HMI는 효과적인 개발을 위해 역할별로 나눠 진행된다. 가령 Interaction Designer, Graphics Designer, Translator, SW Developer 4개 분야로 나눠 개발된다고 가정해 보자. 각 분야는 나름의 방식으로 개발을 진행한다. 예를 들면 Interaction Designer는 MS Visio를 이용해 UML Statechart를 만들어 내고, Graphics Designer는 Adobe Photoshop를 이용해 View Layout을, Translator는 MS Excel를 이용해 다국어 DB를, SW Developer는 MS Word를 이용해 Software REQs를 만들어 낸다. 그리고 최종적으로 이 모든 정보를 통합해 최종 결과물(코드)을 만들낸다. 여기서 문제점은 각 분야에서 만들어진 중간 결과물에 대한 기능적인 연결점이 없어, 통합하는데 많은 시간과 노력이 든다는 것이다. 실례로 디자이너에 의해 만들어진 이미지를 실제 임베디드 보드에 올리기 위해서는 3일 이상의 시간이 걸린다.
둘째, HMI 분야는 개발초기 단계에 UML(Unified Modeling Language) 등을 이용해 시각적인 방법으로 정보 모델을 표현하게 된다. 이는 이런 식으로 모델링하게 되면 개발자들 간의 정보 전달이 명확해지기 때문이다. 그러나 UML을 이용해 HMI 모델을 만들었다 하더라도 이것을 실제 코드와 동기화 하는 일은 여간 어려운 일이 아니다. 결국 모델과 코드는 독립적으로 개발되게 된다. 이를 위해, UML 등의 모델링 언어를 지원하는 개발 도구의 경우 기본적으로 자동 코드 생성 기능을 지원하고 있다. 그러나 실제적으로 이렇게 생성된 코드를 바로 사용하기에는 상당한 무리가 있어 코드를 새로 작성하는 경우가 대부분이다. 결국은 모델과 코드가 독립적으로 개발되게 된다.
셋째, 국내 차량 업계는 HMI 개발을 수작업 프로그래밍(hand cording) 방식에 의존하고 있다. 이 방식의 단점은 요구 사항의 변화에 빠르게 대응하기 어렵다는 점이다. HMI는 고객의 요구 사항이 자주 바뀌는 분야이기 때문에, 기존 개발 방식으로는 한계가 있다. 실제로 대부분의 개발 업체에서는 약간의 요구 사항 변화에 대응하기 위해 전체를 수정하는 일이 비일비재하게 일어나고 있다. 상당히 비효율적이다.
넷째, 차량 인포테인먼트 HMI 분야는 코드가 재사용 되는 부분이 많다. 전체적인 테마, 화면 배치 등은 달라질 지라도, 시나리오는 동일하거나 조금씩 차이가 난다. 그러나 실제 개발에서는 타깃 플랫폼이 달라지면 기존 코드를 새로 개발하게 되는 경우가 대부분이다. 이는 매우 비효율적이다. 이를 해결하기 위해서는 크로스 플랫폼 개발 도구를 이용하면 된다. 하지만 크로스 플랫폼 개발 도구의 경우 툴 제공 업체의 완벽한 기술지원이 이뤄지지 않는다면 실제 적용이 어렵다.
다섯째, 음성 사용자 인터페이스 개발의 경우 먼저 개발된 그래픽 사용자 인터페이스에 맞게 별도로 음성 사용자 인터페이스를 개발해 통합하게 된다. 여기서 문제점은 그래픽 사용자 인터페이스 자체가 상당히 복잡하기 때문에 그 위에 음성 인터페이스를 맞추기 위해 상당한 노력과 시간이 필요하다는 것이다. 만약, 요구 사항의 변화라도 있게 되면 노력은 배가 된다.
모델 기반의 크로스 플랫폼
개발 도구 - EB GUIDE
기존의 개발 방식을 조금씩 바꿔가는 것만으로 위에서 언급한 문제점들을 극복하기는 사실상 어렵다. 가장 좋은 해결책은 강력한 개발 툴을 도입해 혁신을 꾀하는 것이다.
EB GUIDE는 그러한 도구 중에 하나다. 가령 이 툴을 활용하면 Interaction Designer, Graphics Designer, Translator, SW Developer가 모두 동일한 환경에서 작업하게 되기 때문에 통합에 대해 전혀 걱정할 필요가 없다. 또 모델 기반 도구인 만큼 요구 사항의 변화에 신속한 대응이 가능하며, 자동으로 생성된 코드는 수정 없이 바로 사용이 가능하다. 크로스 플랫폼이라는 특성상 코드의 재사용성이 뛰어나고, 그래픽 사용자 인터페이스와 음성 사용자 인터페이스가 하나의 툴에서 개발되기 때문에 통합에 대해 걱정할 필요가 없다.
EB GUIDE는 ElektroBit Graphical User Interface DEsign의 준말로, 독일의 세계적인 자동차 임베디드 소프트웨어 개발업체인 Elektrobit에서 공급하는 차량용 인포테인먼트 HMI를 위한 모델 기반 크로스 플랫폼(cross platform) 개발 도구다. 해외에서는 이미 많은 OEM들이 EB GUIDE를 활용해 HMI를 개발하고 있다. 대표적인 메이커로는 아우디, 다임러, GM, 혼다, 폭스바겐 등이 있다.
툴은 크게 상태 다이어그램 편집기(state diagram editor), 화면 편집기(view editor), 위젯 편집기(widget editor), 음성 다이얼로그 편집기(speech dialog editor) 등 4가지로 구성된다.
상태 다이어그램 편집기는 HMI 시나리오를 설계하기 위한 도구다. 기본적으로 UML 2.0 기반으로 돼 있으며, 부가적으로 유용한 기능들을 지원해(dynamic state, include state 등) 활용성을 높였다. 상태 다이어그램을 이용한 시나리오 설계는 그래픽 사용자 인터페이스뿐만이 아니라, 음성 사용자 인터페이스도 동일한 방식으로 하게 된다.
화면 편집기는 사용자에게 보여지는 정보 화면을 디자인하기 위한 도구다. 각종 이미지(2D & 3D), 텍스트, 버튼 등을 배치하거나, 애니메이션 등의 효과를 적용할 수 있다. 이미지의 경우에는 외부그래픽 전용 편집 도구에서 만들어진 이미지를 바로 EB GUIDE로 불러와 사용하게 된다. 가령 Adobe Photoshop에서 만들어진 2D 이미지를 불러오거나, 마찬가지로 Autodesk 3DS MAX에서 만들어진 3D 이미지를 바로 불러서 EB GUIDE에서 사용할 수 있다. 3D 이미지의 경우 지원되는 형식은 30여 가지이며, 대표적으로 Collada(.dae), 3DS Max(.3ds), LightWave(.lwo) 등이 있다. 불러온 이미지는 EB GUIDE에서 다양한 효과를 적용해 목적에 맞게 사용할 수 있다. 특히, 애니메이션 효과를 위해 상당히 직관적인 인터페이스를 갖춘 애니메이션 편집기(animation designer)가 제공되고 있다.
위젯 편집기는 화면 편집기에서 사용되는 버튼, 스크롤바 같은 위젯을 제작하기 위한 도구다. 예를 들면 터치 입력 버튼을 만들고자 한다면 Touch Pressed, Touch Released 등의 위젯 속성을 편집하면 된다. 여기서 만들어진 위젯은 화면 편집기에서 바로 사용되게 되며, 마찬가지로 화면 편집기에서 만들어진 각 화면은 상태 다이어그램에서 바로 사용되게 된다.
음성 다이얼로그 편집기는 상태 다이어그램에서 사용될 음성합성(Text-To-Speech, TTS)과 음성인식(Automatic Speech Recognition, ASR)에 대한 문장을 만들기 위한 도구다. 예를 들어 ASR을 구현할 경우 인식될 문장을 그대로 적어주면 된다 - “I want to enter navigation”. 사용되는 문법은 W3C SRGS(Speech Recognition Grammar Specification)을 따르고 있다. 또 더 복잡한 음성 명령 구현을 위해서 W3C SISR(Semantic Interpretation for Speech Recognition)을 따르고 있다. 여기서 만들어진 음성 다이얼로그는 마찬가지로 상태 다이어그램에서 바로 사용되게 된다.
마지막으로 위에서 언급한 4가지 편집기를 통해 만들어진 HMI 모델은 즉각적인 시뮬레이션을 통해 테스트가 가능하다. 여기서 주목해야 할 점은 시뮬레이션 기능을 실행하면 EB GUIDE는 디자인된 HMI 모델을 기반으로 코드를 생성하게 되는데, 이 코드는 실제 타깃 플랫폼에 올라가는 코드와 동일하다. 다시 말하면 시뮬레이션용 코드와 타깃 플랫폼용 코드가 동일하다. 또 크로스 플랫폼 개발 도구인 만큼 생성된 코드는 EB GUIDE가 지원하는 모든 플랫폼에 동일하게 올라가게 된다. 현재 지원되는 플랫폼은 WinCE, QNX, Linux, Android이며, 새로운 플랫폼에 대해서는 Elektrobit에서 기술지원을 해주고 있다.
이 외에도 SVN(Sebversion)의 지원으로 협업에 유리하며, 만들어진 HMI 모델의 모든 구성에 대한 문서 출력 등 여러 가지 유용한 기능들이 제공되고 있다.
갈수록 커져가는 자동차 HMI 개발에 대한 부담을 줄이기 위해서는 기존 개발 방식을 버리고 새로운 개발 방식을 도입할 필요가 있다. 이를 위해 가장 효과적인 방법은 강력한 개발 도구를 활용하는 것이다. Elektrobit의 막강한 기술 지원을 기반으로 하고 있는 EB GUIDE는 그 중 하나가 될 수 있다.
<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>