6. V2V : 교차로 충돌 방지 시스템

그림1

이미지 참조 : 얼굴 인식 기반 보행자 안전 경고 시스템

✅ V2V (Vehicle-to-Vehicle

차량 간 통신을 의미하며, 도로 위의 차량들이 서로 위치, 속도, 방향, 제동 정보 등을 실시간으로 공유하여 충돌 예방, 교통 흐름 개선, 긴급 상황 대응 등을 가능하게 합니다.

⚪ V2V (Vehicle-to-Vehicle) 예시

● 앞차가 급정거 시, 뒷차에 자동 제동 신호 전송 → 추돌 사고 예방
● 고속도로 합류 시, 인접 차량에게 진입 차량의 속도/위치 정보 전송 → 안전한 합류 유도
● 차량 간 실시간 정체/사고 정보 공유 → 우회 경로 안내
● 차량이 곡선도로에서 상대 차량의 존재를 인식하고 사전 감속
● 눈, 비 등 악천후 시, 차량이 주행 안정 정보(타이어 미끄러짐 등)를 주변 차량과 공유

💡 예시를 통한 이해

📍 V2V 시나리오:
급정지 경고 시스템
앞차가 갑자기 제동할 경우, 해당 차량은 뒤따르는 차량에 "급정지" 신호를 V2V로 전송합니다. 뒷차는 이 정보를 받아 자동으로 제동하거나 운전자에게 경고를 줘서 추돌을 예방합니다..

차선 변경 협조 시스템
차선 변경을 원하는 차량이 방향지시등과 함께 V2V 신호를 인근 차량에 전송합니다. 후방 차량은 이를 인식하고 속도를 줄이거나 차선 변경을 허용해 사고를 줄입니다.

비상차량 접근 알림 시스템
구급차나 소방차가 접근할 경우, 해당 차량은 주변 차량에 V2V로 자신의 위치와 진행 방향을 공유하여, 일반 차량들이 신속하게 비켜 갈 수 있도록 합니다.

교차로 충돌 방지 시스템
교차로에서 두 차량이 동시에 진입하려 할 때, 각 차량은 상대 차량의 이동 경로와 속도를 V2V로 파악하여 충돌 가능성을 판단하고, 위험 시 자동으로 정지하거나 경고를 보냅니다.

1️⃣ 교차로 충돌 방지 시스템 만들어 보기

그림1

* 2개의 차량이 교차로에 동시에 진입하려 할 때


2️⃣ 교차로 충돌 방지 시스템 파이썬 예제

그림1

def after_step1(self):
self.car1_status.config(text="긴급정지", bg="#FF3333", fg="white")
self.car1_status.place(x=120, y=420)
self.car2_status.config(text="우선 진입", bg="#ED7D31", fg="white")
self.car2_status.place(x=520, y=420) # 속도값 및 색상 설정


#시뮬레이션 내용
#1.차량 1, 2가 서로 교차로 쪽으로 주행하며 이동 속도와 방향을 공유
#2.교차로 진입 시 차량 1을 긴급정지 하고 차량 2가 우선 진입
#3.차량2가 교차로 진입 후 차량 1이 교차로 진입

* 이 예제는 tkinter와 threading 등의 모듈을 사용합니다. 별도의 설치는 필요 없지만, 만약 tkinter 관련 오류가
발생한다면 Python 설치 시 tkinter가 포함되어 있는지 확인해주세요.


3️⃣ 2개의 주미 AI 연결 및 제어하기

시뮬레이션을 실제로 테스트하기 전에, V2V 통신은 차량 간 정보를 주고받아야 하므로 두 대 이상의 주미 AI가 필요합니다. 특히 한 대의 컴퓨터에서 여러 대의 주미 AI를 제어하려면, 아래 예제를 참고하고 연결 방법을 알아봅니다.

그림1

Q 버튼을 누르면 연결 된 1번 주미AI 가 전진하고
W 버튼을 누르면 연결 된 2번 주미가 전진 합니다.

# 1번 주미 연결
zumi1 = ZumiAI()
zumi1.connect("192.168.0.86")
# 이 부분에 연결하는 주미 AI의 IP를 입력합니다.


# 2번 주미 연결
zumi2 = ZumiAI()
zumi2.connect("192.168.0.87")
# 이 부분에 연결하는 주미 AI의 IP를 입력합니다.


zumi1.forward_dist_quick(20) #zumi1 = ZumiAI()
zumi2.forward_dist_quick(20) #zumi2 = ZumiAI()

* 이 예제는 keyboard모듈을 사용합니다. keyboard 모듈이 없다면 pip install keyboard를 사용하여 설치 해주세요


4️⃣ V2V 교차로 충돌 방지 시스템

🚘 교차로 충돌 방지 시스템
Intersection Collision Avoidance via V2V Communication = 교차로 상황 인지 + V2V 통신 + 차량 제어 시스템

🔧핵심 기술

1. 👁️‍🗨️ 실시간 차량 위치 및 속도 추적 시스템
Real-Time Vehicle Trajectory Monitoring
· 각 차량은 GPS 및 IMU 센서로 자신의 위치, 속도, 방향 데이터를 측정
· 주기적으로 주변 차량들과 해당 정보를 공유
· 고정밀 GNSS 및 DSRC / C-V2X 기반 통신 기술 사용

2. 📡 차량 간 V2V 통신 모듈
V2V Communication for Trajectory Sharing
· DSRC 또는 C-V2X 기술을 통해 교차로 진입 차량 간 데이터 송수신
· 주변 차량의 속도 및 방향 데이터를 수신하여 충돌 위험 예측
· 300m 이내 차량들과 지속적 데이터 교환

3. 🤖 충돌 위험 예측 AI
Collision Risk Assessment AI
· 양 차량의 속도·위치·경로를 바탕으로 시간-공간 상의 충돌 가능성을 계산
· 딥러닝 기반 예측 모델 활용 (예: LSTM 기반 경로 예측)
· 위험 판단 시, 긴급 제동 또는 경고 시스템 트리거

💡 예시를 통한 이해

📍 V2V 시나리오: 교차로 충돌 방지
1. 🚗🚙 두 차량이 서로 보이지 않는 교차로에 동시에 접근 ON
2. 차량 A와 차량 B는 각각 자신의 위치 및 속도를 V2V로 전송
3. AI가 두 차량의 이동 경로를 분석하여 충돌 가능성 판단
4. 충돌 위험이 높다고 판단되면
- 차량 A는 자동으로 '긴급 정지'
- 차량 B에는 “차량 접근 중”이라는 경고가 표시됨
5. 두 차량 모두 안전하게 정지하거나 속도를 조절하여 충돌 회피

5️⃣ V2V 기반 교차로 충돌 방지 시스템

이제 시뮬레이션 프로그램에 주미 AI를 연결하여, V2V 기반 교차로 충돌 방지 시스템이 정상적으로 작동하는지 확인해봅니다.

그림4

* 2대의 주미 AI는 약 60cm 이상의 거리를 둔 상태로 프로그램 예제를 실행 시켜 주세요


#연결 할 주미의 IP 를 작성해주세요
zumi_ip_1 = "192.168.0.86"
zumi_ip_2 = "192.168.0.87"

# 1,2번 주미 연결
zumi1 = ZumiAI()
zumi1.connect(zumi_ip_1)
zumi2 = ZumiAI()
zumi2.connect(zumi_ip_2)

# 긴급정지시 빨간 LED를 깜빡이고 소리를 냅니다.
self.canvas.itemconfig(self.car1, fill="red")
zumi1.led_control(10, 0, 0)
zumi1.play_sound(4)
zumi1.led_control(0, 0, 0)