can-buscppkinematicsfault-toleranceembedded

[Multi-Protocol Sensor Acquisition] UDS 및 J1939 통합 후진 기어(Reverse) 감지 시스템 구현

2 min read

지난 4월 도입된 ‘인지 반응 분석 메커니즘(위험 이벤트 판정 로직)‘을 안정적으로 운용하기 위해서는 정밀한 거동 데이터가 필수적이나, 차량 후진 시 직진 및 회전 누적 거리가 오염되는 치명적인 문제점이 발견되었다. 이를 근본적으로 차단하기 위해 프로토콜의 파편화(UDS, J1939)에 구애받지 않고 차량의 기어 체결 상태를 명확히 판별할 수 있는 통합 센서 인터페이스를 구현하고 상태 천이 우선순위를 교정했다.

[C++ / CAN Interface] 통합 2-Tier 후진 기어 감지 Fallback 인터페이스

  • 서로 다른 CAN 프로토콜 환경에서도 일관된 기어 상태를 반환하도록 checkReverseState() 인터페이스를 구현했다.
  • UDS 및 J1939 설정 파일에 후진 기어 식별을 위한 신호 매핑 구문(current_gear, gear_selector, SPN 523/524)을 주입했다.
  • 신뢰도가 가장 높은 실제 체결 기어(current_gear)를 최우선으로 검사하고, 해당 신호 유실 시 운전자 조작 레버(gear_selector)를 차순위로 참조하는 2-Tier Fallback 로직을 적용하여 결측치 발생 시의 신뢰성을 확보했다.

[C++ / Kinematics] 주행 궤적 래치 강제 초기화 및 제어 흐름 수정

  • 후진 상태 진입 시 기존에 누적된 주행 궤적용 내부 버퍼(distQueue, angleQueue)를 즉시 초기화하여 연산 오염을 차단하도록 제어 흐름을 수정했다.
  • 열거형에 RotationType::REVERSE 상태를 명시적으로 추가하고, 오류 반환값 INVALID를 프로토콜 표준 규격에 부합하도록 255로 변경했다.
  • RotationAnalyzer::update() 호출 시 isReverse 플래그를 주입받도록 파라미터 시그니처를 변경했다.
  • 저속 주행을 정차(STOP)로 판정하는 속도 임계값 필터보다 상단에 후진 기어 판정 로직을 선행 배치하여, 상태 천이 평가 순서가 역전되는 현상을 근본적으로 해결했다.