3D시스템즈 20200123

홈 > 전자·ICT > 테크인사이트



Advertisement
매거진
잡지이미지
잡지이미지
잡지이미지
잡지이미지
잡지이미지
잡지이미지
  • 구독신청
  • 광고안내

element 20191202

유지로봇 2020.12

[Technical Report] 첨단 운전자 보조 시스템(ADAS)의 검증 위한 SystemC FMU

입력 : 2020.10.26 17:24

글자크게보기 글자작게 댓글달기 좋아요 즐겨찾기

페이스북 트위터 카카오스토리 블로그

[헬로티]

 

본고에서는 이기종 자동차 시스템의 기계 부품을 갖춘 전자 시스템(디지털 및 아날로그 장치 포함)의 시뮬레이션을 위한 통합 프레임워크를 설명한다. 수많은 전자 제어 장치(ECU)로 구성된 전자 시스템을 모델화 하여 메카트로닉 시스템의 기능을 시뮬레이션 한다.


최근에 개발된 기능 모형 인터페이스 표준 접근방식을 복잡한 가상물리 자동차 시스템의 모델 작성에 사용했다. 이 프레임워크는 가상 ECU에서 실행될 하드웨어(HW)와 소프트웨어(SW)를 포함한 실제 시스템을 시뮬레이션 한다.

 

이를 통해 기계 시스템이 연결되어 있는 상태에서 자동차 시스템의 소프트웨어와 하드웨어를 공동개발 할 수 있다. 하드웨어와 소프트웨어의 디버깅은 개발된 방법을 사용하여 이루어진다. 자동차 메카트로닉스 시스템의 개발 주기는 제안된 프레임워크를 이용해 크게 단축시킬 수 있다.

 

 

 

 

서론


자율주행(AD)에는 정교한 전자 시스템이 필요하다. 오늘날의 자동차 전장 시스템의 디자인에는 많은 시스템온칩(SoC)이 포함되어 있다[1, 2]. 버그나 고장 위험이 없도록 하기 위해서는 심층 검증이 필요하다. 첨단 운전자 보조 시스템(ADAS)의 안전성은 열, 기계 및 전기 부품을 포함한 시스템 전체의 검증 없이는 보장될 수 없다.


ADAS를 탑재한 자동차는 광범위한 데이터 처리 및 의사결정 기능을 갖추고 있다. 위험할 수 있는 상황을 운전자에게 경고해 피할 수 있도록 하거나, 위험 상황이 불가피할 경우에는 시스템온보드(SoB)가 자동차를 제어하여 예컨대 충격 지점으로부터 방향을 튼다. 본고에서는 소프트웨어와 하드웨어를 포함한 ADAS의 작동을 검증하기 위해 자동차 시스템 전체의 모델링을 채택한다.


가상 플랫폼(VP)이 실제 제품의 가상 프로토타입을 제작하고 SW 및 HW 시스템의 통합설계를 가능케 해주는 핵심 기술로 부상하고 있다. 가상 플랫폼을 통해 신속한 아키텍처 탐색, 소프트웨어의 조기 개발 및 효율적인 성능 분석을 수행할 수 있다[3-7]. 가상 플랫폼은 하드웨어 블록들과 이들의 인터커넥션을 나타내는 시뮬레이션 모델들의 앙상블이다.


가상 플랫폼은 대개 SystemC/TLM2와 같이 모델링 및 시뮬레이션에 맞춤화 된 고급 프로그래밍 언어를 통해 모델화 된다[1]. 하이브리드 자동차 시스템에서는 가상 플랫폼, 플랜트 시뮬레이터, 디지털 시뮬레이터, HW 에뮬레이터 및 기계 시뮬레이터를 포함하여 여러 도메인의 서로 다른 툴과 모델들(복합 시스템) 간에 시너지가 필요하다. 가상 플랫폼은 프로세서와 하드웨어 주변장치, 그리고 자동차 소프트웨어 스택을 실행하기 위한 컨트롤러를 포함한 ECU(즉, 가상 ECU 또는 VECU)를 모델화 한다[8-12].


ADAS VECU에는 다수의 센서가 탑재되어 있으며, 실제 상황을 보다 잘 인식할 수 있도록 센서 판독 기능이 결합되어 있다. 본고에서 제시하는 프레임워크는 자율주행 및 비 자율주행 VECU의 검증에 모두 사용된다. ADAS ECU 역할을 하는 VECU에는 그 위에서 실행되는 AUTOSAR SW[13]가 있다. VECU는 [그림 1]에서 보듯이, FMI(functional mock-up interface) 표준[14]을 통해 다양한 종류의 센서 및 액추에이터와 연결된다.

 

[그림 1] 다양한 FMU와 인터페이스 되는 가상 ECU

 

SystemC/TLM 가상 플랫폼은 Vista™ 툴[15]을 이용해 생성되며, MATLAB®[16]및 TASS®Prescan에 의해 생성된 센서/액츄에이터에 연결된다[17]. TASS는 차량의 물리적 환경에서 발생할 수 있는 위험상황 시나리오를 개발할 수 있는 기능을 제공한다.


이러한 시뮬레이션 시나리오 덕분에 엔지니어는 초기 설계 단계에서 실제 시스템 설계 문제에 더 많은 시간을 할애할 수 있다.


개발자는 제안된 프레임워크를 사용하여 VECU 상의 실제 코드를 검증하고, 많은 센서와 액추에이터를 다양한 시나리오에서 다루며, 그러한 시나리오에서 ADAS를 사용하는 데 따른 효과를 연구할 수 있다. 제시된 방법론은 VECU를 FMI를 사용하는 FMU(functional mock-up unit)로서 통합한다.


[1]의 작업은 가상 플랫폼을 FMU로서 생성하기 위한 접근방법을 제시한다. 가상 플랫폼은 FMU 공유 개체로 출하되며, 함께 제공되는 FMI 모델 설명 XML은 FMU 파일에 들어 있다. FMI 마스터는 VP DLL을 로드한다. 본고에서 제안하는 메커니즘은 FMU 래퍼의 생성에 좌우된다는 점에서 다르다. FMU 래퍼는 FMI 마스터가 IPC 메커니즘을 통해 가상 플랫폼과 함께 로드할 수 있다.

 

가상 플랫폼의 I/O 인터커넥트는 FMI 마스터에 의해 트리거 되는 FMI V.2.0 통합 시뮬레이션 API에 의해 제어된다. I/O 변경 사항은 SystemC/TLM 기반 가상 플랫폼의 특성과 호환되는 이벤트 기반 실행 메커니즘을 통해 전파된다. 이 메커니즘을 사용하면 [1]에 기술된 메커니즘에 비해 이식성이 높아지는데, 이는 FMU 부분을 변경하지 않고도 가상 플랫폼을 수정 및 컴파일 할 수 있기 때문이다. 본고의 나머지 부분은 다음과 같이 구성되어 있다. 제안된 FMU를 사용한 설계 방법론을 섹션 II에서 제시하며, 완전한 자동차 시스템에 대한 사례 연구를 섹션 III에서, 결론은 섹션 IV에서 제시한다.

 

개발된 방법론


SystemC 가상 플랫폼을 FMU로 래핑하기 위해 두 개의 래퍼(wrapper)를 사용한다. 그림 2에서 보듯이, 하나는 가상 플랫폼, 즉 내부 FMU 제어장치(IFC) 내부에 있고, 다른 하나는 외부, 즉 FMU 래퍼(EFW)에 있다. IFC는 EFW와 통신하고 가상 플랫폼을 다른 FMU(전기적 또는 기계적인)와 동기화 시키는 TLM SystemC 모델이다. IFC는 IPC 메커니즘을 통해 EFW와 연결된다. EFW는 XML과 DLL로 구성된다. 이는 다른 시뮬레이션 툴 내의 외부 FMI 마스터에 의해 파싱 및 로드 될 수 있다.


FMU는 FMI V.2.0 통합 시뮬레이션 표준을 따르는 것으로 가정한다. 또한 FMU는 사전 컴파일 된 공유 라이브러리(윈도우에서는 *.DLL, 리눅스 시스템에서는 *.so)로서 제공되는 것으로 가정한다. 런타임 라이브러리 종속성은 가상 플랫폼이 실행 중인 동일 호스트에서 사용할 수 있는 것으로 가정한다. EFW는 입력 및 출력 핀을 몇 개든 가지도록 구성할 수 있다. 아날로그 포트는 실수로 표시되고, 디지털 핀은 정수로 표시된다. 각 핀마다 고유의 기준 값(V_reference)을 갖는다. EFW 구성은 XML 파일에서 설정할 수 있다. IFC는 EFW와 동일한 구성을 갖는다.


EFW XML은 아래 그림 2에서 보듯이, 각 핀에 대해 S_FMU_PORT 구조의 동적 배열을 갖는다. S_FMU_PORT 구조는 FMU_Container_Value를 정의하며, 이는 VP와 FMI 마스터 간에 송수신 될 값을 나타낸다. FMU_Container_Type은 데이터 유형(실수 또는 정수)을 나타낸다. V_reference는 XML 파일에 정의되어 있는 핀의 기준 값을 나타낸다. 핀 값이 마스터나 슬레이브의 어느 쪽에 의해서든 업데이트 되면 업데이트 된 값이 설정된다. XML 파일의 핀 방향으로부터 핀이 입력인지 출력인지 여부를 식별할 수 있다. C_socket은 아래 그림 3에서 보듯이, 핀에 매핑 된 가상 소켓을 나타낸다. V_reference의 기본 초기화 값은 -1이다. 초기화는 FMI 마스터가 FMU 초기화 API를 호출하기 시작하면 수행된다.

 

 


[그림 2] FMU 포트 구조의 동적 배열

 

FMI 마스터는 INTEGRR 값을 FMU로 전송하고 나면 fmi2SetInteger API를 호출한다. 그 다음에는 EFW가 입력 방향과 일치하는 기준 값을 갖는 모든 S_FMU_PORT 를 검색한다. EFW는 다른 FMU가 보내는 값으로 FMU_Container_Value를 설정한다. XML V_reference 가 존재하지 않을 경우, V_reference는 -1로 설정된다. 최종적으로, 이 값은 그림 4와 같이 해당되는 가상 소켓으로 전송된다.

 

 

 

 [그림 3] EFW 전송 시퀀스

 

반면에, IFC는 매퍼 서브 블록에 의한 핀 값의 송수신을 처리한다. EFW는 IPC 가상 소켓을 이용해 문자열을 전송한다. 이 문자열은 세미콜론으로 구분된 5개의 데이터 값(핀 값, 데이터 유형, 변수 참조, 업데이트된 플래그 및 방향)으로 구성된다. IFC 내부의 매퍼는 이 문자열을 파싱하여 그림 4와 같이 XML의 V_reference 와 일치하는 다용도 입출력(GPIO) TLM 핀에서 트랜잭션을 발행한다. 각 TLM 핀에는 고유의 V_reference가 있다.

 

 

[그림 4] IFC 수신 시퀀스

 

 

GPIO가 GPIO 핀에서 데이터 전송을 위해 트랜잭션을 발행할 경우 유사한 거동이 일어난다. 매퍼는 데이터 값을 해당 가상 소켓 상의 EFW로 전송한다. FMI 마스터는 FMU로부터 데이터를 읽고 나면 Fmi2getint API를 호출하고 저장된 값을 FMI 마스터로 돌려보낸다. FMI 마스터의 외부 툴과 가상 플랫폼 간에 교환된 데이터는 FMU 슬레이브로 래핑 되며, 그림 5에서 보는 바와 같다. 많은 VECU가 함께 통신하는 사례 연구(이 중의 하나인 ADAS VECU는 Matlab FMI 마스터에 연결된 FMU 역할을 한다)에 대해서는 다음 섹션에서 설명한다.

 

 

[그림 5] VECU 핀과 외부 툴의 FMI 마스터 간의 데이터 교환

 

사례 연구


CAN 버스에 연결된 네 개의 VECU로 구성된 자율주행 차량의 ADAS가 아래의 그림 6에서 보듯이, VP를 FMU로 사용하는 예를 보여주기 위한 사례 연구에 사용되었다. 대시보드 VECU는 패킷 생성 및 모니터링을 위해 CANoe®[18]를 사용하여 모델화 된다.


다양한 입력(페달/각도, 브레이크/각도, 변속 및 엔진 정지 등)과 출력(모니터 속도/RPM)이 대시보드를 통해 스티뮬레이트 및 관찰된다. 엔진 제어 VECU는 AUTOSAR 스택/애플리케이션을 실행하기 위해 Vista Architect®[15]를 사용하여 PowerPC 가상 플랫폼으로서 모델화 된다. 엔진 제어 VECU는 대시보드로부터 입력 조합을 읽어 명령/페달/브레이크 각도를 변속기 컨트롤러 VECU로 전송한다.


변속기 컨트롤러 VECU는 베어 메탈 애플리케이션을 실행하는 가상 SoC(ARM®CortexM3기반의)로 모델화 된다. 이것은 엔진 컨트롤러 VECU로부터 페달 각도를 판독해 RPM/속도를 계산한다. 제동 시스템은 메카트로닉 구성 요소를 갖춘 Simcenter Amesim®[19]을 이용해 모델화 되는데, 이는 슬레이브 FMU로서 익스포트 되며 호스트 머신에서 실행되는 Vista FMI 마스터에 연결된다. FMU 입력은 엔진 컨트롤 VECU 내부의 디지털-아날로그 컨버터(DAC) 모델로부터 오는 제동력이며, 출력은 차량의 4륜 캘리퍼(Calipers)에 가해지는 힘이다.

 

 

[그림 6] ADAS VECU에 의해 제어되는 비상 자동제동 장치 (사례 연구)


이 시나리오는 액터 정보 수신자(AIR) 센서가 도로 위를 지나가는 사람을 감지하는 것으로 시작되는데, 이는 PreScan®을 이용해 모델화된다.[17] AIR 센서는 비상 자동제동 장치(AEBS) 베어메탈 애플리케이션을 실행하는 가상 ADAS 제어 VECU에 연결되며, FMU로 래핑된다. ADAS VECU는 그림 7에서 보듯이 MathWorks의 MATLAB Simulink®[16]내부에 통합되어 있다. 아무런 물체도 감지되지 않을 경우, AIR 센서의 출력은 0이 된다. VECU의 아날로그-디지털 컨버터(ADC)는 AIR 센서에 연결된다.

 

 

[그림 7] FMU 연결로서 래핑되는 ADAS VECU

 

ADAS를 테스트 하기 위해 1만 개의 주행 시나리오 중 하나를 선택하게 된다. 시뮬레이트 된 차량은 시뮬레이트 된 도로에서 정상적으로 주행된다. 차 안의 AIR 센서는 차량 전방 20미터 거리에서 도로를 가로질러 달리는 사람을 감지해낸다. ADAS VECU는 이 센서 정보를 이용해 회피 조치를 취하지 않으면 사람과 충돌하게 된다고 판단한다. ADAS는 제동 시스템에게 차를 멈추라는 신호를 보낸다. VECU는 저마다 고유의 CAN ID를 갖고 있다. VECU 간의 통신은 그림 8과 같이 CAN 프레임에 의해 이루어진다.

 

 

[그림 8] 가상 CAN 버스 상의 CAN 프레임 데이터 흐름

 

 

ADAS VECU는 FMU로 래핑 되어 MATLAB Simulink로 임포트 된다. 이것은 변속기 컨트롤러 VECU로부터 속도/RPM CAN 패킷을 수신하여 PreScan에서 자동차 애니메이션을 제어한다. 사람이 차량 앞에 나타나면 센서가 물체를 감지하며, ADAS VECU는 CAN 패킷(ID =0x70)을 브레이크 각도가 포함된 데이터와 함께 자동 전송한다.

 

변속기 컨트롤러 VECU가 Simcenter Amesim의 기계식 브레이크 시스템에 제동력 값을 보내고, 자동차는 멈추게 된다. 자동차 속도의 자연감소 기울기는 도로 마찰에 의해 발생한다. AIR 센서가 20미터 거리에 있는 물체를 감지하면 ADAS 제어 VECU가 자동적으로 브레이크 신호 프레임을 보내며, 자동차 속도는 급격히 감소하여 14미터 거리에서 정지하게 된다. 이 시뮬레이션 시나리오는 아래 그림 10과 같다. 자동차 속도는 1초 동안에 시속 20킬로미터에서 시속 0킬로미터로 감소한다.

 

 

[그림 9] (a) AIR 센서 거리(m)와 차량 속도(km/h) (b) ADAS VECU는 앞에 있는 사람을 감지하면 차를 멈춘다

 


또 다른 시나리오에서는 아래 그림 10과 같이 자동차 속도가 971밀리초 동안에 시속 90킬로미터에서 시속 40킬로미터로 감소한다. 이 경우, 고속 주행하다가 갑자기 보행자와 맞닥뜨리면서 차량과 사람이 부딪히게 된다. 많은 시나리오를 다양한 속도로 검증할 수 있다. 각 시나리오에 대한 AUTOSAR SW 분석을 그림 11과 같이 생성하고 검증할 수 있다.

 

 

[그림 10] 충돌은 자동차의 고속주행 결과로 발생하게 된다. AIR 센서 거리(m)와 자동차 속도(km/hr)

 

[그림 11] ADAS VECU에 대한 AUTOSAR SW 분석

 

 

결론


본고에서 보듯이, 대상 VECU의 가상 플랫폼과 FMI 표준을 사용함으로써 완전한 이기종 자동차 시스템의 시뮬레이션이 가능해지고 있다. 전기 시스템뿐만 아니라 기계 시스템도 제시된 방법론을 이용해 시뮬레이션 및 검증할 수 있다. 가상화를 효율적으로 사용함으로써 AUTOSAR SW를 기능 시뮬레이션에서 실행할 수 있다. 전기(디지털과 아날로그) 및 기계 서브시스템이 포함된 ADAS가 짧은 시간 내에 (고성능으로) 모델링 및 시뮬레이트 된다. 복합 시스템(SoS)의 이기종 부분 통합이 자동차 시스템 개발에 있어서 필수적이 되고 있다. 본고에서는 FMI 표준을 사용해 SoC 플랫폼 전체를 FMU로 모델화 한다.

 

FMI는 통합 프레임워크를 이용해 디지털, 아날로그 및 기계 부품을 시뮬레이트 할 수 있게 해준다. 실제 소프트웨어가 모델화 된 시스템에서 효율적으로 실행되므로 시스템 작동을 검증할 수 있다. ADAS는 개발된 가상 시스템에서 검증된다. 제시된 방법론을 통해 하드웨어로 소프트웨어를 디버깅하기가 보다 쉬워졌다.

 

/케롤레스 칼릴(Keroles Khalil), 마그디 A. 엘모르시(Magdy A. El-Moursy) / 멘토, 지멘스 비즈니스

이 기사는 의 요약글입니다. <기사 상세내용보기>를 클릭하시면 전체 기사를 보실 수 있습니다.

기사 상세내용보기

어드밴텍 2019.11.25
디지키 2020.12
이전글
[2020 해양수산 기술사업화대전] 한국해양과학기술원, 수중작업로봇을 위한 모듈형 공...
다음글
정부, 내년 상반기까지 자율주행차 데이터 국가표준안 만든다
FLIR
성안당_내인생의갑
주요 파트너 / 추천기업

(주)코닥트 케이블케리어

F&B Soultion co. 엔코더

(주)동화기업 오일쿨러/유압부품

트윈컴퍼니 Bolting최적솔루션

바움뉴텍 하모닉감속기

세원정밀전자 오토스위치

삼원액트(주) FA제어반배선기기

신한전자기기 크레인안전장치

티아이씨(주) 볼스크류

(주)이디에스 감속기

(주)맵스코 볼 스크류 / LM가이드

KEM 공작기계관련부품

토마스케이블 케이블

씨크코리아 센서

효성훼바 모터콘트롤러

나라삼양감속기 감속기

케이씨티앤에스 소재부품

마이클앤솔루션 튜브넘버링기

엔아이피 머신비전

플루크네트웍스 테스터기

엘리먼트14 전자부품

SEC e-beam

에스디상사 공구

오토빔 공장자동화

지브라 자동인식 산업

더블유케이티 절연제품

성안당 기술서적

댓글쓰기

0/500

등록
전체 댓글수 0

최신순 | 인기순

    댓글이 없습니다.