2. V2X (Vehicle-to-Everything) : 차량과 모든 것
이미지 참조 : V2X (Vehicle-to-Everything) 체계도
✅ V2X (Vehicle-to-Everything) 정의
V2X (Vehicle-to-Everything)는 ITS와 서로 밀접하게 연결이 되어 있는 개념 이며, 차량이 무선 통신을 통해 다른 차량, 도로 인프라, 보행자, 네트워크 등과 실시간으로 데이터를 주고받는 기술을 말합니다. 즉, "차량과 모든 것(Vehicle-to-Everything)" 간의 통신을 의미하며, V2X는 자율주행차와 스마트 교통 시스템(ITS)의 핵심 기술입니다.
🔵 V2X와 ITS의 관계
● V2X는 ITS의 핵심 기술 중 하나
V2X는 차량이 다른 차량, 인프라, 네트워크 등과 통신하여 데이터를 주고받는 기술이며, ITS에서 이런 통신 기술을 활용해 실시간 교통 제어, 안전 경고, 사고 예방 등을 구현함
● ITS는 시스템 전체, V2X는 통신 기술
ITS는 신호 제어, 교통 센서, 카메라, 교통정보센터 등 모든 시스템을 포괄하는 반면, V2X는 차량과 외부와의 연결 수단
● V2X는 ITS를 스마트하게 만드는 도구
V2X를 통해 차량이 실시간 교통 데이터를 ITS와 주고받으면, ITS는 더 정확하게 전체 교통을 조정 가능
🛠 V2X의 구성 요소 (종류별 설명)
1. V2V (Vehicle-to-Vehicle) 차량 간 통신 : 차량끼리 위치, 속도, 방향 공유 (예: 급정거 경고)
2. V2I (Vehicle-to-Infrastructure) 차량-인프라 통신 : 신호등, 도로 표지판, 교차로 센서 등과 통신
3. V2P (Vehicle-to-Pedestrian) 차량-보행자 통신 : 보행자 스마트폰이나 웨어러블과 위험 정보 교환
4. V2N (Vehicle-to-Network) 차량-네트워크 통신 : 클라우드, 인터넷, 5G망과 연동해 정보 수신
5. V2D (Vehicle-to-Device) 차량-기기 통신 : 운전자나 탑승자의 개인기기와 연동
6. V2G (Vehicle-to-Grid) 차량-전력망 통신 : 전기차와 전력망 간 충전 및 에너지 관리
🎯 V2X의 목적
ITS 란 도로, 차량, 교통 관련 인프라에 최신 정보통신기술을 접목하여
● 교통사고 예방 및 안전성 강화
● 자율주행차의 판단 능력 향상
● 교통 흐름 개선 및 혼잡 감소
● 스마트시티와 연계된 교통 시스템 구축
💡 예시를 통한 이해
📍 ITS 활용 시나리오:
교통센터에서 교차로 상황 모니터링
특정 구간에 교통량 과밀 발생 → 우회 경로 제공
📍 여기에 V2X가 적용되면:
V2I로 차량이 신호등/교통 인프라와 실시간 정보 교환
V2N을 통해 클라우드 기반 교통정보를 받음
V2V로 앞차의 급정지 정보를 공유받아 자동 감속
➡️ 결과적으로, ITS는 전체 교통 시스템을 조정하고,
V2X는 차량이 그 시스템에 참여하는 방법입니다..
🔶 V2X 핵심 기술
DSRC (Dedicated Short-Range Communications)
: Wi-Fi 기반의 단거리 전용 통신 방식.
C-V2X (Cellular V2X)
: LTE/5G 기반 통신으로 더 넓은 범위와 낮은 지연시간 제공
* V2X는 ITS의 핵심 구성 요소이며, ITS의 실시간성과 효율성을 실현하기 위한 필수 기술입니다.
V2X 없이는 미래형 ITS, 특히 자율주행 기반의 스마트 교통체계 구현이 어렵습니다.
🟦 [Python] V2N을 통한 교통 도로 정보 가져오기
V2X의 대표적인 예제인 도로 교통 정보를 가져와서, 맵에 저장하고 특정 구간에 과밀된 교통량을 피해 주행 도로를 권장하는 예제를 해보겠습니다.
* 실시간 교통 정보를 API로 받아 사용할 경우 데이터가 방대해질 수 있으므로, 이 예제에서는 미리 지정된 데이터만을 사용하여 실행합니다.
1️⃣ 🛰️ V2X: 지능형 교통 체계 지도
우선, 아래의 지도를 클릭하여 교통 상황을 알고 싶은 도로의 끝 점의 위도와 경도를 알아 봅니다.
* 드래그로 지도를 이동하고, 클릭하면 위도·경도를 확인합니다. 페이지 새로고침 시 좌표는 리셋됩니다.
2️⃣ 테헤란로 위도·경도 확인하기
위 지도에서 클릭하여 테헤란로 (강남역 ~ 삼성역)의 위도와 경도를 확인해보면,
대략 [37.497976, 127.027445]에서 [37.508939, 127.063065] 사이에 위치하고 있는 것을 알 수 있습니다.
※ 아래의 그림을 참조해주세요.
이미지 참조 : 테헤란로 위도와 경도
3️⃣ 코드 다운로드 및 위도·경도 입력하기
아래 버튼을 클릭하여 코드를 다운받아
traffic_data 부분에 내가 확인한 테헤란로의 위도와 경도를 입력 해줍니다.
traffic_data = [
{
"roadName": "테헤란로" ,
"speed": 8,
"coords": [[37.497976, 127.027445], [37.508939, 127.063065]]
},
코드의 해당 부분에 지표에서 찍었던 위도·경도를 입력 합니다.
★ 코드를 다운 받아 IDLE 에서 실행 해봅니다.
* 이 예제는 folium 모듈을 사용 합니다. 따라서 folium 모듈이 설치 되어 있지 않다면,
명령프롬포트(cmd) 에서 pip install folium 를 설치 한 뒤에 실행 해주세요
4️⃣ 생성 된 파일 확인하기
이미지 참조 : 생성된 html 파일을 인터넷 사이트 위로 드래그 합니다.
프로그램을 실행 시키면, 같은 장소에 sample_traffic_map.html 파일이 생성 되고
이 파일을 인터넷 사이트(크롬,파이어폭스 등)를 실행 시켜 파일을 사이트 위로 드래그 하면, 파일이 오픈 됩니다.
정상적으로 오픈 되었다면, 아래 그림 처럼 도로 교통 상황이 보여집니다.
이미지 참조 : 강남 지역의 도로 교통 상황
5️⃣ 시뮬레이터에 적용하기
이렇게 강남 지역의 map 과 도로 교통 상황을 확인 하였다면
이 정보를 자율주행 시뮬레이터에 적용하여 받아 옵니다.
예를 들어, 강남 지역 도로 명을 보면 가로 로는 도산대로, 학동로, 봉은사로, 테헤란로 가 있으며,
세로로는 왼쪽부터 강남대로,논현로,언주로,선릉로,삼성로,영동대로가 있습니다.
이미지 참조 : 강남지역 도로명
해당 맵에, 강남역,신사역 등을 추가하고, 도로를 선으로 표현하면, 아래 그림처럼 간략화 하여 표현 할 수 있습니다.
이미지 참조 : 강남지역 도로 간략화
6️⃣ 지역 표시하는 시뮬레이터
이미지 참조 : 강남지역 도로를 시뮬레이터에 적용
이전 시뮬레이터에 실제 도로 좌표를 반영하여, X/Y 위치에 따라 해당 도로명이 표시되고,
특정 위치에서는 역 이름도 함께 표시되는 시뮬레이터입니다.
x_names = {
0: "강남대로" , 1: "논현로", 2: "언주로",
3: "선릉로", 4: "삼성로", 5: "영동대로" }
y_names = {
0: "테헤란로", 1: "봉은사로", 2: "학동로", 3: "도산대로"}
special_locations = {
(5, 0): "삼성역", (5, 1): "봉은사역", (5, 3): "영동대교",
(0, 3): "신사역", (0, 0): "강남역"}
★ 완성 된 코드를 다운 받아 IDLE 에서 실행 해봅니다.
* 이 예제는 tkinter와 math 모듈을 사용합니다. 별도의 설치는 필요 없지만, 만약 tkinter 관련 오류가 발생한다면
Python 설치 시 tkinter가 포함되어 있는지 확인해주세요.
7️⃣ 코드 다운로드 및 실행하기
이미지 참조 : 교통 상황이 적용된 시뮬레이터