Skip to main content
Skip table of contents

GADC V2X Protocol


개요

V2X 시스템은 V2I와 V2V로 나뉘어 구동되며 경기 자율주행센터에서 제공하는 단말기를 기준으로 구성됨.

  • V2I

    • SPAT (신호현시 정보)

  • V2V

    • BSM (차량 주행 정보)

V2I 데이터

Signal Phase and Timing (신호 현시 정보)

신호 현시 정보는 차량과 중앙관제간 N:1 통신으로 진행되며 Request - Response 형태로 데이터를 주고 받는다.

통신은 TCP/IP 방식을 사용하며 다음과 같은 설정을 사용한다.

  • IP: localhost (127.0.0.1)

  • port: 5000

  • Little-Endian

Request Packet

  • STX는 해당 패킷의 시작을 알리는 데이터이며 1바이트로 2번 들어간다.

    • STX는 0x7E로 고정

  • Length는 전체 데이터중에서 STX만을 제외한 데이터 사이즈이다.

    • Request packet의 경우 0x1F (31)이 들어가게 된다.

  • Vehicle ID는 관제측에서 차량 구분을 위하여 사용하는 데이터이며 원하는 값을 넣으면 된다.

    • ex) 0x0001

  • OP Code는 경기 자율주행센터의 프로토콜에 따라 값이 결정된다.

    • 제어기 신호 및 상태정보 요청: 0x12

  • Intersection Link ID는 요청하고자 하는 신호등이 위치한 교차로 번호이다.

    • Link ID는 string 데이터 형태로 들어간다.

    • 교차로 번호 정보는 “경기자율주행센터_신호현시_현황정보.pdf” 첨부 파일을 참고할 것.

    • “0” 6개 (6 byte) + 교차로 ID (2 byte)

    • ex) “00000012” → 0x30 0x30 0x30 0x30 0x30 0x30 0x31 0x32

  • Traffic Light Link ID는 요청하고자 하는 신호등의 번호이다.

    • Link ID는 string 데이터 형태로 들어간다.

    • 신호등의 방향번호 체계는 다음과 같다.

    • 최종적으로 들어가는 데이터는 다음과 같다.

      • Intersection Link ID (2 byte) + “0” 9개 (9 byte) + 신호등 방향 번호 (1 byte)

      • ex) “120000000002” → 0x31 0x32 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x32

  • Current Time은 요청패킷을 보낼 때의 시간을 의미한다.

    • 포멧은 YY(연) MM(월) DD(일) hh(시) mm(분) ss(초) 이며 24h 기준 (0시 ~ 23시)으로 작성한다.

    • ex) 21 02 19 14 30 00 (21년 2월 19일 오후 2시 30분) → 0x15 0x02 0x13 0x0E 0x1E 0x00

  • LRC는 데이터 무결성 검증용 데이터이다.

    • Length에서부터 Current Time까지의 데이터 바이트들을 순차적으로 XOR 연산한다.
      (STX 2 byte와 LRC 1byte만 제외하는 형태)

Response Packet

  • STX는 해당 패킷의 시작을 알리는 데이터이며 1바이트로 2번 들어간다.

    • STX는 0x7E로 고정

  • Length는 전체 데이터중에서 STX만을 제외한 데이터 사이즈이다.

    • Request packet의 경우 0x1F (31)이 들어가게 된다.

  • Device ID는 관제 서버 ID가 들어가며 0x00 0x14로 고정됨

  • OP Code는 경기 자율주행센터의 프로토콜에 따라 값이 결정된다.

    • 제어기 신호 및 상태정보 응답: 0x13

  • Intersection Link ID는 요청하고자 하는 신호등이 위치한 교차로 번호이다. (Response Packet 참고)

    • 정상적인 데이터 출력시 해당 영역은 Request Packet과 동일한 값이다.

    • 만일 존재하지 않는 교차로 ID나 사용불가능한 ID가 요청할 시 Request Packet과 다른 값이다.

  • Traffic Light Link ID는 요청하고자 하는 신호등의 번호이다. (Response Packet 참고)

    • 정상적인 데이터 출력시 해당 영역은 Request Packet과 동일한 값이다.

    • 만일 존재하지 않는 교차로 ID나 존재하지 않는 신호등 ID, 사용불가능한 ID를 요청할 시 Request Packet과 다른 값이다.

  • Light State는 요청한 신호등의 현재 신호 상태이다.

    • 각 비트의 위치에 따른 데이터 의미가 다르며 해당 비트들이 1일 경우 True, 0일 경우 False이다.

  • Ped Time은 보행등 잔여시간이다.

  • A Ring / B Ring 은 신호제어기의 더블링 시퀀스 타임에 해당하는 A Ring time과 B Ring time이다.

    • 해당 데이터를 이용하여 청색등일 때에 남은 시간을 계산할 수 있으며 적색등과 황색등에서는 남은 시간을 계산할 수 없게 되어있다.

    • “교통신호제어기 표준규격서.pdf” 첨부파일의 19 ~ 24 참고

  • SC는 특수제어 상태 데이터이며 신호등이 정상적인 작동이 아닌 특수하게 제어되고 있는 상태에서 사용된다.

  • Error는 장치이상 상태 데이터이며 신호등 혹은 신호등과 연결된 인프라 단말기의 문제 상태 등에 관하여 사용된다.

  • LRC는 데이터 무결성 검증용 데이터이다.

    • Length에서부터 Current Time까지의 데이터 바이트들을 순차적으로 XOR 연산한다.
      (STX 2 byte와 LRC 1byte만 제외하는 형태)

교통신호제어기_표준규격서.pdf 경기자율주행센터_신호현시_현황정보.pdf

V2V 데이터

Basic Safety Message 송수신

Basic Safety Message는 차량과 차량간 N:N 통신으로 진행되며 Broadcast 형태로 데이터를 주고 받는다.

통신은 UDP 방식을 사용하며 다음과 같은 설정을 사용한다.

  • IP: localhost (127.0.0.1)

  • port: 5641

    • 만일 Ego vehicle이 2대 이상일 경우 5641을 기준으로 V2V 사용 체크를 할 때 마다 마지막 포트번호에 +1이 됨.

    • ex. Ego 2대 → 0번 Ego: 5641, 1번 Ego: 5642

  • Little-Endian

V2V 통신의 프로토콜은 첨부파일 “경기자율주행센터_V2X_03_WAVE interface.pdf” 파일을 참고한다

통신 시퀀스

초기 통신 (Handshake)

  • 초기 통신에서 PC는 무조건 한번은 단말기의 상태 확인 요청을 보내야 한다.

  • 장비는 상태 확인 요청을 보낸 소켓만 통신하며 다른 소켓은 무시한다.

  • 상태 확인 요청 패킷은 6페이지를 참고하며 상태 확인 응답 패킷은 7페이지를 참고한다.

  • 단말기의 BSM Packet 송수신 전용 채널 및 전송 파라메터 설정은 8페이지를 참고한다.

    • 채널은 기본 채널인 172를 권장한다.

BSM 통신

  • BSM 데이터는 시뮬레이터 내에서 2Hz 속도로 뿌려지고 있다.

  • 초기 통신이 완료된 경우 주변 NPC 차량들은 전부 BSM 데이터를 전송한다.

    • 수신된 BSM 데이터는 12 ~ 13 페이지를 참고한다.

  • BSM 데이터의 송신은 10 ~ 11 페이지를 참고한다.

경기자율주행센터_V2X_03_WAVE Interface.pdf

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.