6. V2V : 교차로 충돌 방지 시스템
이미지 참조 : 얼굴 인식 기반 보행자 안전 경고 시스템
✅ V2V (Vehicle-to-Vehicle
차량 간 통신을 의미하며, 도로 위의 차량들이 서로 위치, 속도, 방향, 제동 정보 등을 실시간으로 공유하여 충돌 예방, 교통 흐름 개선, 긴급 상황 대응 등을 가능하게 합니다.
⚪ V2V (Vehicle-to-Vehicle) 예시
● 앞차가 급정거 시, 뒷차에 자동 제동 신호 전송 → 추돌 사고 예방
● 고속도로 합류 시, 인접 차량에게 진입 차량의 속도/위치 정보 전송 → 안전한 합류 유도
● 차량 간 실시간 정체/사고 정보 공유 → 우회 경로 안내
● 차량이 곡선도로에서 상대 차량의 존재를 인식하고 사전 감속
● 눈, 비 등 악천후 시, 차량이 주행 안정 정보(타이어 미끄러짐 등)를 주변 차량과 공유
💡 예시를 통한 이해
📍 V2V 시나리오:
● 급정지 경고 시스템
앞차가 갑자기 제동할 경우, 해당 차량은 뒤따르는 차량에 "급정지" 신호를 V2V로 전송합니다. 뒷차는 이 정보를 받아 자동으로 제동하거나 운전자에게 경고를 줘서 추돌을 예방합니다..
●차선 변경 협조 시스템
차선 변경을 원하는 차량이 방향지시등과 함께 V2V 신호를 인근 차량에 전송합니다. 후방 차량은 이를 인식하고 속도를 줄이거나 차선 변경을 허용해 사고를 줄입니다.
●비상차량 접근 알림 시스템
구급차나 소방차가 접근할 경우, 해당 차량은 주변 차량에 V2V로 자신의 위치와 진행 방향을 공유하여, 일반 차량들이 신속하게 비켜 갈 수 있도록 합니다.
●교차로 충돌 방지 시스템
교차로에서 두 차량이 동시에 진입하려 할 때, 각 차량은 상대 차량의 이동 경로와 속도를 V2V로 파악하여 충돌 가능성을 판단하고, 위험 시 자동으로 정지하거나 경고를 보냅니다.
1️⃣ 교차로 충돌 방지 시스템 만들어 보기
* 2개의 차량이 교차로에 동시에 진입하려 할 때
2️⃣ 교차로 충돌 방지 시스템 파이썬 예제
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를 제어하려면, 아래 예제를 참고하고 연결 방법을 알아봅니다.
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 기반 교차로 충돌 방지 시스템이 정상적으로 작동하는지 확인해봅니다.
* 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)