Iveco Group - 가상 차량 시뮬레이션을 활용한 전기차 소프트웨어 개발 가속화 사례
완전 가상 차량을 통한 더 빠르고 확장성이 뛰어난 EV 소프트웨어 테스트
자동차 업계에서 소프트웨어 개발은 전통적으로 더디게 발전해왔습니다. 코드를 한 줄이라도 검증하기 위해서는 엔지니어들에게 하드웨어, 테스트벤치, 실제 차량은 물론, 이를 작동하기 위한 기술자도 필요합니다. 이는 최신 소프트웨어 개발 속도에 대응하여 확장하기 어려운 느리고 리소스 집약적인 공정입니다. eDaily 전기 밴과 다양한 트럭 및 버스를 생산하는 이탈리아의 상용 차량 제조사 Iveco Group에 있어 이러한 격차를 해소하는 것은 최고의 기술 기업과 동일한 방식으로 소프트웨어를 개발할 수 있는 기회였습니다.
“기술 세계에서는 16살짜리 십 대도 침실에서 세상을 바꿀 수 있습니다. 기술을 활용할 수 있고 누구에게 물어볼 필요도 없기 때문이죠.” Iveco Group의 차량 제어 및 동역학 소프트웨어 개발 책임자 Alessio Canepa의 말입니다. “자동차 업계에서는 그와 정반대인 경우가 많습니다. 항상 누군가를 기다려야 하거든요.”
Canepa는 Iveco Group의 자체 차량 제어 소프트웨어인 eVECOP를 개발하는 팀을 이끌고 있습니다. 소프트웨어의 복잡성이 증가하면서 테스트 부담도 늘어났습니다. 팀이 기능을 추가할 수록, 변경 사항이 있을 때마다 다시 실행해야 하는 테스트도 증가했습니다. 실제 하드웨어에서 이러한 테스트를 수작업으로 진행하는 것은 불가능한 일이 되었습니다.
Iveco Group이 찾은 답은 MATLAB® 및 Simulink®에 구축된 가상 차량 시뮬레이터인 Virtualis였습니다. 이를 통해 Iveco Group은 하드웨어가 출시되기 전에 가상 배터리, 인버터, 충전 시스템을 비롯한 완전 가상 차량에 대해 실제 프로덕션 소프트웨어를 실행할 수 있게 되었습니다.
Virtualis의 eVECOP 확장
eVECOP 플랫폼은 Iveco Group 전기차 제어 시스템의 핵심으로 자리잡았고 경량 차량, 대형 트럭 및 버스 전반에서 상호 연결된 수십 개의 기능을 조정합니다. 이러한 기능에는 견인 제어 및 회생 제동부터 열 관리 및 전력 분배까지의 모든 기능이 포함되며, 이러한 모든 기능은 거의 전적으로 MATLAB 및 Simulink에 구축된 하나의 자체 소프트웨어 플랫폼을 통해 작동합니다.
이전에는 전체 통합 모델을 다시 구축하려면 변경 사항이 생길 때마다 약 20분이 소요되었습니다. 이제는 4~5분이면 모델 컴파일을 완료할 수 있습니다. 이러한 개선의 일부는 Simulink에서 액셀러레이터 모드로 전환한 것에서 비롯되었습니다.
eVECOP의 무결성과 확장성을 유지하기 위해서는 Canepa가 모듈식 아키텍처라고 부르는 아키텍처가 필요하며, 이 아키텍처에서 각 소프트웨어 기능은 경계가 명확하게 정의된 독립적인 모듈 내에 위치합니다. 소프트웨어 플랫폼 팀에는 우수한 아키텍트가 매우 중요하다고 Canepa는 말합니다. 아키텍처가 올바르게 완성되면 경험이 적은 엔지니어들도 전체 시스템에 대한 이해 없이도 개별 구성요소에 기여할 수 있습니다. 그 결과, 엔지니어들이 처음부터 시작할 필요 없이 새로운 차량 유형을 다룰 수 있도록 플랫폼을 확장할 수 있습니다.
Iveco Group은 동일한 원칙으로 Virtualis를 구축했습니다. 참조된 모델을 Simulink에서 사용하면 가상 차량 시뮬레이터가 각 소프트웨어 모듈을 개별적으로 유지합니다. 즉, 변경 사항이 발생하면 해당 모듈만 다시 컴파일하면 됩니다.
이전에는 전체 통합 모델을 다시 구축하려면 변경 사항이 생길 때마다 약 20분이 소요되었습니다. 이제는 4~5분이면 모델 컴파일을 완료할 수 있습니다. 이러한 개선의 일부는 Simulink에서 액셀러레이터 모드로 전환한 것에서 비롯되었습니다. 액셀러레이터 모드는 디버그 유연성을 약간 희생하는 대신 실행 속도를 크게 향상합니다. 더 큰 이점은 참조된 모델 자체에서 얻을 수 있습니다. 코드 생성 엔진은 변경 사항만 다시 컴파일하므로 대부분의 빌드는 대다수의 작업을 전체적으로 건너뛸 수 있습니다. 다양한 기능 전반에서 일정하게 점진적으로 업데이트를 수행하는 팀의 경우, 그 차이가 빠르게 누적됩니다.
속도는 시뮬레이션 시간에 더 중요한 요소입니다. Virtualis는 실시간보다 더 빠르게 실행되므로 팀은 클라우드에 여러 병렬 인스턴스를 생성하여 테스트를 동시에 실행할 수 있습니다. Canepa는 소프트웨어 기업의 운영 방식에서 영감을 얻었다고 말합니다.
“자체 Android® 앱을 설계하고 싶다면 에뮬레이터를 사용하면 됩니다. 혼자서도 자율적으로 처음부터 끝까지 테스트를 수행할 수 있습니다.” Canepa의 말입니다. “우리가 하고 있는 일의 많은 부분은 클라우드와 앱 분야에서 일어나고 있는 변화에서 비롯된 것입니다.”
Virtualis 이면의 핵심 인사이트는 환경이 100% 가상인 경우에만 이 빠른 테스트가 가능하다는 점입니다. 테스트의 1%라도 실제 하드웨어가 필요하다면 클라우드에서 실행하고, 병렬로 실행하고, 실시간보다 더 빠르게 실행하는 것이 불가능합니다. 이 기준이 Virtualis를 기존 플랫폼과 근본적으로 차별화하는 요소입니다.
한계 없는 테스트
완전 가상 환경이 제공하는 이점은 속도에서 그치지 않습니다. 일부 테스트는 실제 테스트벤치나 실제 차량에서 수행할 수 없습니다. 시속 100km로 달리는 자동차의 전기 구성요소나 배선을 테스트하는 것은 안전하지도, 합리적이지도 않습니다. Virtualis에서는 이러한 테스트가 일상적인 테스트입니다. “가상 플랫폼에서는 가능성이 무한합니다.” Canepa의 말입니다.
“가상 플랫폼에서는 가능성이 무한합니다.”
Virtualis는 현재 소프트웨어가 하드웨어에 도달하기 전에 소프트웨어 통합 문제의 약 70%를 발견할 수 있습니다. Canepa의 말에 따르면 정확하게 측정하는 것은 어려우며, 남은 격차는 고정된 한계가 아니라 팀이 아직 알지 못하는 부분을 반영하는 것이라고 합니다. Virtualis에서 통과된 항목이 실제 차량에서 실패하면 Iveco Group은 이를 가상 환경을 현실에 더 가깝게 반영하도록 업데이트해야 한다는 신호로 받아들입니다. 이 프로토콜을 통해 시간이 지남에 따라 격차가 줄어듭니다.
남은 격차는 우연히 발생하는 오류가 아니라 구조적 문제입니다. Virtualis는 레벨 1 가상화를 수행합니다. 즉, 기본 펌웨어나 전자는 시뮬레이션하지 않습니다. 이는 의도된 절충안입니다. 더 심층적으로 시뮬레이션하면 커버리지가 더 넓어지지만, 엔지니어가 시뮬레이션 실행 중에 중단하고, 모든 변수를 검사하고, 지정된 순간에 소프트웨어가 정확히 어떤 작업을 수행하고 있는지 파악하는 기능을 사용할 수 없게 됩니다.
“하드웨어 시스템에서 오류가 발생하면 사후에 로그를 살펴봅니다.” Canepa의 말입니다. “Virtualis에서는 세계를 멈출 수 있습니다.”
이러한 변화는 Iveco Group이 테스트 파이프라인을 생각하는 방식을 바꾸었습니다. 현재 Iveco Group은 특히 Virtualis가 도달하지 못하는 부분인 운영 체제, 저수준 드라이버, Iveco Group 외부에서 공급하는 실제 하드웨어(예: 소프트웨어가 통신하는 ECU를 제작하는 공급업체의 제품)에 대해 Hardware-in-the-Loop 테스트를 사용하고 있습니다. 이 계층 이상에 속하는 모든 항목은 더 이른 시점에 더 빠르고 적은 비용으로 해결할 수 있습니다.
신속한 소프트웨어 구축
Virtualis가 이 단계까지 오는 것은 간단하지 않았습니다. 이 정도 복잡성의 소프트웨어를 다루면서 짧은 구축 시간과 디버그 유연성을 유지하기 위해 MATLAB 및 Simulink 환경을 확장하려면 아키텍처 결정을 하나씩 해결해야 했으며, 그러한 결정의 정답은 하나만 있는 것이 아니었습니다. Iveco Group은 MathWorks 엔지니어들과 긴밀히 협력하여 가능한 한계를 탐색했습니다.
“우리가 구축한 것은 이미 완전히 다른 작업 방식입니다. 개발 시간을 더 많이 단축할수록 더 우수한 제품을 개발하는 데 더 많은 시간을 투자할 수 있습니다.”
“우리의 목표는 매우 짧은 기간 내에 최고 수준의 품질을 달성하는 것입니다. 이것이 우리가 직면해야 했던 가장 어려운 과제였습니다.” Canepa의 말입니다.
협업은 실행 효율성을 향상하고, 여러 엔지니어가 충돌 없이 업데이트를 동시에 커밋할 수 있도록 모델을 구조화하며, 자동으로 실행되는 종단간 지속적 통합 및 테스트 파이프라인을 구축하는 데 집중되었습니다. 개발자가 새 코드를 커밋하는 즉시 코드가 Virtualis에서 테스트를 트리거합니다. 엔지니어는 몇 시간 내에 결과를 받을 수 있습니다. 시스템에서 테스트가 누락될 가능성을 제공하지 않기 때문에 테스트를 실행해야 한다는 것을 기억할 필요가 없습니다.
Iveco Group는 절약된 시간을 제품에 재투자합니다. 이제 Iveco Group의 엔지니어들은 정형 검증 공정에 몇 주를 소비하는 대신, 차량 자체에서 반복하는 사이클을 더 많이 확보하게 되었으며, Canepa는 이를 소프트웨어 품질의 진정한 척도로 보고 있습니다.
Virtualis는 팀의 작업 방식에서 눈에 띄지 않는 부분도 바꾸었습니다. 전통적인 자동차 개발에서 하나의 함수를 작성하는 엔지니어는 해당 함수가 어디에 적용되는지, 차량에 어떤 영향을 주는지 전혀 알지 못할 수 있습니다. Virtualis는 모든 개발자에게 완전한 가상 차량 내부 환경을 제공하므로 변경의 영향을 즉시 컨텍스트에서 확인할 수 있습니다. 이러한 가시성은 업무에 대한 개발자들의 생각을 바꾸었습니다. 엔지니어는 새로운 기능을 프로토타이핑하고 전체 시스템에 미치는 영향을 테스트한 후, 시연할 때 해당 기능이 제대로 작동할 것임을 확신할 수 있습니다.
“올해는 인력의 역량을 강화하는 것이 무척 중요한 해입니다.” Canepa의 말입니다.
Canepa에게 있어, Virtualis는 구축 시간 단축이나 더 효율적인 테스트 파이프라인 이상의 의미를 갖습니다. 자동차 제조사는 준비 여부와 관계없이 소프트웨어 기업으로 변하고 있습니다. 신속하고, 반복적이며, 가상 환경을 우선시하는 기술 기업이 소프트웨어를 구축하고 테스트하는 방법을 따르는 기업만이 뒤처지지 않게 될 것입니다. Iveco Group은 그중 하나가 되고자 합니다.
“우리가 구축한 것은 이미 작업의 완전히 다른 방식입니다.” 그는 말합니다. “개발 시간을 더 많이 단축할수록 더 우수한 제품을 개발하는 데 더 많은 시간을 투자할 수 있습니다.”