분류 전체보기
-
FFT 결과를 표시 프로그램 개선TSMaster 2024. 10. 23. 01:24
시작하기 전에 지난 실시간으로 FFT 하기 - 미니프로그램과 ai 블로그에서 나는 "claude.ai가 속도와 안전성이 개선된 코드를 만들어 주었다. 아직 해보지 못했다. 시간이 되면 해보고, 가치가 있다면 블로그로 작성하겠다."라고 하며 블로그를 맺었다. 오늘 잠깐 시간이 나서 해봤다. 개요claude.ai는 4개의 개선된 코드를 주었다. matplotlib 대신 PyQt를 사용하여 속도, 안정성에 개선이 있다. 주관적이겠지만 보기에도 더 좋다.1번에 buffer 기능을 더했다. 현재 FFT 결과와 함께 지난 FFT 결과들을 포함한 평균을 함께 표시한다.그래프를 커스텀 할 수 있다. 예를 들면 곡선의 색이나 굵기를 바꿀 수 있다. 축의 스케일을 로그 스케일로 할 수 도 있다.전송 받은 FFT 결과들을 ..
-
yaw_rate_ws를 FFT 하기 - 외부 프로그램으로 그래프 출력TSMaster 2024. 10. 22. 03:07
시작하기 전에앞에서 설명했던 내용들을 다시 짚어 본다. ESC (a.k.a. VDC) 제어기가 20msec 마다 전송하는 WHL_SPD11 메시지에 바퀴 속도 신호들이 있다. 이들 중 WHL_SPD_RR (Rear Right), WHL_SPD_RL (Rear Left)을 이용하여 실시간으로 요-레이트(yaw_rate_ws)를 계산하여 그래픽스 창에 표시하는 방법을 설명했다. CAN 신호들로 실시간 연산하기 - 미니프로그램으로 yaw_rate_ws 계산yaw_rate_ws가 매끄럽지 못하여 실시간으로 필터링한 신호 (yaw_rate_ws_filt)를 그래픽스 창에 표시하는 방법을 설명하였다. 칼만 필터를 이용했다. 칼만 필터의 코드는 claude.ai가 짰다.FFT (Fast Fourier Transfo..
-
yaw_rate_ws를 필터링 하기 (CAN 신호 실시간 연산)TSMaster 2024. 10. 20. 13:51
시작하기 전에CAN 신호들로 실시간 연산하기 (yaw_rate_ws) :: hsl's blog (tistory.com) 에서 CAN 버스의 뒷 바퀴 신호들 (WHL_SPD_RR, WHL_SPD_RL)에서 요-레이트(yaw_rate_ws)를 계산하고, 차량 센서가 측정하여 CAN 버스에 올린 요-레이트(YAW_RATE)와 그래픽 창에서 비교하는 방법을 설명하였다.결과를 보면, YAW_RATE는 매끈한데 비해 yaw_rate_ws는 거칠다. yaw_rate_ws에 실시간으로 필터를 적용할 수 있을까? 하는 의문이 들었다. 사실 나는 '필터는 신호와 노이즈가 섞인 데이터에서 노이즈를 제거한다'는 개념적인 이해를 갖고 있으나 연산 측면에서 필터를 어떻게 코드로 작성할 수 있는 지는 모른다. claude.ai에게..
-
UDS 진단 통신 (4 / t.b.d.) - ReadDTC 응답 해석을 위 미니프로그램TSMaster 2024. 10. 18. 17:10
시작하기 전에UDS 진단 통신을 위해 ‘Diagnostic Basic Config’ 화면에서 진단 서비스 요청/응답 메시지를 설정하는 방법과 ‘Diagnostic Console’ 화면에서 진단 서비스 실행 및 응답 메시지 해석 방법 설명( UDS 진단 통신 (3 / t.b.d.) - 진단 요청/ 응답 메시지 설정 :: hsl's blog)에 이어지는 설명이다.지난 설명에서 DiagnosticSessionControl을 예로 들었다. 이 진단 서비스 메시지는 요청과 응답 메시지 모두 각각 길이가 일정하다. 이번에는 ReadAllDTC 서비스의 요청/응답 메시지 설정 방법을 설명하며 길이가 고정되지 않은 메시지를 처리하는 방법을 설명한다. 개요ReadAllDTC 요청 메시지 설정.DiagnosticSessi..
-
UDS 진단 통신 (3 / t.b.d.) - 진단 요청/ 응답 메시지 설정TSMaster 2024. 10. 18. 00:00
시작하기 전에지난 2 회의 설명에서 ( UDS 진단 통신 (1 / t.b.d.) - Transport Protocol, UDS의 개요 :: hsl's blog, UDS 진단 통신 (2 / t.b.d.) - Transport Protocol 설정 :: hsl's blog ) 통신 프레임의 크기 제한을 초과하는 큰 데이터를 전송하기 위한 용도의 Transport Protocol(TP)과 TP의 파라미터들을 설정하는 방법을 설명하였다. 그래서 CAN의 메시지 크기 제약을 걱정하지 않고 통신을 할 수 있다는 것을 알았다. (이는 진단 통신, CAN 뿐 아니라 다른 통신에도 적용될 수 있다. 어느 통신이나 크기 제약이 있으니까. 그렇다고 모든 통신이 동일한 TP 표준을 사용하지는 않는다. 개념이 유사할 뿐이다.)..
-
UDS 진단 통신 (2 / t.b.d.) - Transport Protocol 설정TSMaster 2024. 10. 17. 17:48
시작하기 전에지난 블로그 ( UDS 진단 통신 (1 / t.b.d.) - Transport Protocol, UDS의 개요 :: hsl's blog)에서 TP (Transport Protocol)의 기초를 설명하였다. 실제로 TP를 구현하는 데는 몇 가지 설정이 필요하다. 그 설정 항목들을 설명한다. 개요Diagnostic 창의 Protocol (ISO TP) 탭에 설정 항목들을 설명한다. Transport LayerISO TP 탭에는 아래 그림에 빨간색 네모로 표시한 두 개의 설정 페이지가 있다. Transport Layer와 Diagnostic Layer이다. (Description은 미래 기능 추가를 위한 것인가 보다. 아무 내용이 없다.) Bus Type:CAN, CAN-FD, LIN, Ether..
-
UDS 진단 통신 (1 / t.b.d.) - Transport Protocol, UDS의 개요TSMaster 2024. 10. 14. 21:55
시작하기 전에TSMaster에는 UDS (Unified Diagnostic Services) 모듈이 있다. 이 모듈에는 미리 구현해둔 UDS 기능들이 있다. 이 기능들 이용하여 자동차 제어기와 진단 통신을 할 수 있다. 당연히 이 기능을 이용하여 제어기의 진단 통신 기능을 검증할 수 있다. 적당한 시험 케이스를 만들면 진단 통신에 사이버 보안 위험이 있는 지도 검증할 수 있다. Automatic Diagnostic (이하, 자동 진단) 기능을 이용하면, 진단 통신 기능 검증이나 사이버 보안 검증 시험을 자동화 할 수 있다. 시험 자동화는 매우 중요하다. 자동차 시스템 개발에는 많은 항목들이 있다. 그들 중 하나가 진단 통신이다. 소프트웨어 릴리즈 때마다 진단 통신 기능 검증은 반복된다. 반복되는 작업을 ..
-
현대차의 DTC(Diagnostic Trouble Code) 설명을 찾는 방법TSMaster 2024. 10. 13. 21:16
시작하기 전에베뉴 ESC (a.k.a VDC: Vehicle Dynamics Control)를 대상으로 진단 통신을 하며 TSMaster의 UDS 기능 활용법을 설명하는 블로그를 준비 중이다.UDS 서비스들 중에 Read DTC (Diagnostic Trouble Code) 라는 서비스가 있다. (UDS에 관해 구글링하면 많은 좋은 자료들을 쉽게 찾을 수 있다.) 기본 중에 기본인 UDS 서비스이다. 그래서 내 설명에도 등장한다. Read DTC 요청에 ESC는 DTC를 회신한다. 이 DTC가 무슨 의미인지 알면 전체 설명을 더 쉽게 이해할 것이라 생각한다. 그래서 인터넷에서 현대자동차 베뉴 ESC의 DTC와 DTC 설명을 검색했으나, 내 맘에 흡족한 자료를 찾지 못했다. 그래서 DTC와 DTC 설명 자..
-
제동 성능 지표 계산하기TSMaster 2024. 10. 5. 15:51
제동 성능 지표 계산하기¶정보¶제동 지표들 계산을 위해서는 "트레이스에 포함된 전체 제동 이벤트들에 대한 분석" 이하 셀만 실행하면 된다.그 이전 셀들은 계산 과정 도출 방법이다.revision¶2024-07-28:initial디셀 유니포머티를 계산하고 그래프로 출력함노트북을 현대자동차의 지인들에게 배포함2024-08-03: 평균 요-레이트, 요-레이트 변동폭을 계산을 추가함2024-10-04: 블로그 포스팅을 위해서 내용을 정리함개요¶전자 제어 제동 시스템 (EBS. Electronic Brake System)에는 10여 가지 제동 성능 평가 지표들이 있다. 그들 중 직진 제동의 성능 지표들로 Deceleration Uniformity (디셀 유니포머티), Average Yaw Rate (평균 요-레..
-
mat 파일을 데이터프레임으로 변환하고 feather 파일로 저장하기TSMaster 2024. 10. 4. 22:46
mat 파일을 pandas 데이터프레임으로 변환하여 feather 파일로 저장하기¶ revision¶2024-07-28:initialmat to dataframe to feather 변환을 구현함2024-07-29:TSMaster의 blf to mat 변환 시, 계산에 필요한 신호들만 선택하는 방법을 적용함WHL_SPD11(0x386), SAS11 (0x2b0), ESP12 (0x153)2024-10-04: 블로그 포스팅을 위해서 내용을 정리함 개요¶TSMaster는 CAN 데이터를 blf 포맷으로 저장한다. blf는 CAN 통신을 메시지 단위로 저장하기에 메시지 단위로 데이터를 처리할 경우 좋다. 반면에 메시지와 시그날 구성 정보(소위 CAN 데이터베이스)가 없고, 시그날 단위로 데이터 처리를 할 ..
-
CAN 데이터로 제동 성능 평가하기TSMaster 2024. 10. 4. 22:11
시작하기 전에자동차 성능은 꾸준히 향상되어 왔다. 대부분의 일이 그렇듯이 많은 사람들의 노력 덕분이다. 하지만 자동차사 별로 성능 향상의 정도는 같지 않은 것 같다. 행복한 가정은 모두 비슷한 방식으로 행복한데, 불행한 가정은 각자의 방식으로 불행하다고 한 톨스토이의 말을 맘대로 가져다 자동차 성능 개발에 붙이자면 성능 향상을 잘 이룬 회사들은 모두 비슷한 방식으로 개발을 하는데 그렇지 않은 회사들은 각자의 방식으로 개발을 하는 것 같다.(옆에서 봤더니) 잘 하는 회사들은 아래와 같이 하는 것 같다.주관 평가보다는 객관 평가를 한다. 담당자가 바뀌어도 일관된 성능 평가가 이뤄진다.객관 평가를 위한 성능 지표와 시험 방법이 있다. 그리고 목표 성능 지표를 지속적으로 높인다. 새로운 성능 지표와 시험 방법을..
-
CAN 신호들로 실시간 연산하기 (yaw_rate_ws)TSMaster 2024. 9. 29. 19:09
시작하기 전에CAN 버스를 측정하다 보면, 신호들을 이용하여 실시간으로 연산한 결과를 보고 싶은 경우가 종종 있다. mile per hour로 표시된 차속을 km per hour로 변환하는 것처럼 단순 사칙연산의 경우부터, 센서, 액추에이터와 통신하여 전에 없던 새 기능의 프로토타입을 개발하는 복잡한 경우까지 실시간 연산의 적용 사례는 다양하다. TSMaster는 실시간으로 측정되는 메시지와 신호를 대상으로 C나 Python으로 작성한 스크립트를 실행할 수 있다. 이를 미니프로그램이라고 부른다.이번 블로그에서는 CAN 버스에 있는 바퀴 속도 신호들에서 실시간으로 요-레이트를 계산하는 Python 코드를 작성하는 과정을 소개한다. 이를 통해서 TSMaster의 미니프로그램 기능과 사용법을 설명한다. 개요..
-
TSMaster로 차에서 CAN 트레이스 받기TSMaster 2024. 9. 29. 10:49
시작하기 전에이전 블로그( TSMaster로 차량 CAN 트레이스에서 바퀴 속도 보기 :: hsl's blog (tistory.com))에서는 이미 누군가가 만든 CAN 트레이스 파일을 읽고, 그 안에 포함되어 있는 바퀴 속도 신호를 TSMaster에서 그래프로 보는 방법을 설명하였다. 이 과정에서 CAN 데이터베이스, 버스, TSMaster의 트레이스 창과 그래픽스 창에 관하여 설명하였다.이번 블로그에서는 TSMaster와 CAN-to-USB 변환기로 차량 CAN 네트워크에서 데이터를 받아 트레이스 파일로 저장하는 방법을 설명한다. 개요TSMaster는 다양한 CAN-to-USB 변환기들을 지원한다. CAN-to-PCI 변환기들도 있다. 문맥에 따라 CAN 변환기, CAN-to-USB 변환기, CA..
-
TSMaster로 차량 CAN 트레이스에서 바퀴 속도 보기TSMaster 2024. 9. 27. 18:31
시작하기 전에TSMaster 사용법으로 블로그 시리즈를 작성하려고 한다. 그러려면 TSMaster를 소개해야 한다. TSMaster를 소개하기 전에 차량 CAN 통신을 설명해야 한다. 차량 CAN 통신을 설명하기 전에 차량 제어 시스템들을 설명해야 한다. 이렇게 생각하니 이야기를 어디서 어떻게 시작해야 할지 망막하다. 그래서 우선 TSMaster로 할 수 있는 것을 먼저 선보이기로 한다. 마치 수영을 배우려는 사람에게 수영 동작을 하나하나 구분하여 설명하기 전에 수영하는 모습을 보여주면, 배우려는 사람은 전체에 대해 어느 정도 개념을 잡은 상태로 각 부분의 상세를 더 쉽고 빠르게 이해할 수 있을 것처럼 되기를 바란다. 개요차에는 여러 제어 시스템들이 있다. 엔진 제어, 제동 제어 등. 이런 제어 시스템들..