İçindekiler:

Araç Arka Görüş: 9 Adım (Resimlerle)
Araç Arka Görüş: 9 Adım (Resimlerle)

Video: Araç Arka Görüş: 9 Adım (Resimlerle)

Video: Araç Arka Görüş: 9 Adım (Resimlerle)
Video: Şerit Takip Sistemi Kaza Anı 🚘 Lane Tracking System Accident ⚡️🆘⚠️⛔️ 2024, Temmuz
Anonim
Image
Image

Neden Araç Arka Görüşü oluşturuyoruz?

Yedek çarpışma önemli bir sorun olmuştur, ABD Hastalık Kontrol Merkezi 2001-2003 yılları arasında 15 yaşın altındaki tahmini 7,475 çocuğun (yılda 2,492) otomobilde arkaya çarpma olayları nedeniyle tedavi edildiğini bildirmiştir. Yılda yaklaşık 300 ölüm, yedek çarpışmalardan kaynaklanmaktadır. 2018 yılına kadar Amerika Birleşik Devletleri'nde satılan tüm arabalar zorunlu bir yedek kamera gerektirecektir.

Sorunu nasıl çözeriz?

Bugün piyasadaki arabaların çoğunda hala yedek kamera yok, bu da bugün ABD'de satılan arabaların yaklaşık yarısını ve dünya genelinde yarısından fazlasını içeriyor. Plaka boşluğunu kullanarak arabanın arkasına bir kamera takarak bu sorunu çözebiliriz.

Walabot, araca en yakın hedefin mesafesini tespit edebilecek.

Intel RealSense R200 kamera, düşük ışık durumu da dahil olmak üzere, görülenler hakkında bize daha fazla ayrıntı verecektir.

Intel Joule geliştirici kiti, Walabot ile birlikte RealSense kameralarını çalıştıracak kadar güçlüdür. Raspberry Pi, gelecekte otomobilin işlevlerini iyileştirebilecek çok daha fazla özellik ekleyebileceğimiz bir RealSense 3D kamerayı çalıştıracak kadar güçlü değil. Normal bir USB kamera ile Pi ile aynı sürüm kullanılabilir, ancak gece için iyi olmaz.

Yedek Kamerayı görüntülemek için kullanılan Android telefon/tablet, ek bir ekran maliyetini azaltmak içindir. iOS sürümü istek üzerine oluşturulabilir.

Bu bileşenler sayesinde, kullanıcıya arabanın arkasını gösteren bir Arka Uç Görüşü oluşturabileceğiz.

Adım 1: İhtiyacınız Olan Donanımları Toplayın

Ubuntu'yu Joule'ye ve Çalıştırmak için Gereken Gerekli Kitaplıklara Kurun
Ubuntu'yu Joule'ye ve Çalıştırmak için Gereken Gerekli Kitaplıklara Kurun
  1. Intel Joule
  2. Walabot Profesyoneli
  3. Intel R200 RealSense Kamera
  4. 5.0 veya sonraki sürümleri çalıştıran Android telefon/tablet
  5. Arabanın fiş çıkışı için adaptörü ve 12VDC AC Adaptörü (bu, Joule'ye güç vermek için demo içindir, üretim versiyonu farklı güç mekanizmaları içerecektir)
  6. Kamera ve Walabot'u bağlamak için USB Hub (Kamera için USB3 ve Walabot için USB2)
  7. DC'den AC'ye Doğrudan Plug-in Güç Çevirici
  8. Özel yapım plaka çerçevesini yazdırmak için genel 3D yazıcı

Adım 2: Ubuntu'yu Joule'ye ve Çalıştırmak için Gerekli Olan Gerekli Kitaplıklara yükleyin

Linux rotasını kullanmaya karar verdiğimizden, Ubuntu'yu Joule'ye kurmak için https://developer.ubuntu.com/core/get-started/intel-joule kılavuzunu izleyin. Ubuntu bize IoT tabanlı bir çip üzerinde gerçek bir işletim sistemini çalıştırma konusunda büyük esneklik sağlıyor.

3. Adım: RealSense Kamerayı yayınlayın

RealSense Kamerayı yayınlayın
RealSense Kamerayı yayınlayın
RealSense Kamerayı yayınlayın
RealSense Kamerayı yayınlayın

Malzeme listesindeki maliyetten tasarruf etmek için Android telefon/tablet kullandığımızdan, ayrıca kullanıcılar için daha erişilebilir olduğundan, kamerayı güvenlik kameralarına benzer şekilde barındırmak için hareket kitaplığını kullanacağız. Ubuntu kurulup wifi'ye bağlandıktan sonra terminali açıp aşağıdaki komutu kullanabiliriz. Önce USB3 portu üzerinden kamerayı Joule'ye bağlayıp aşağıdaki adımları yapıyoruz.

a. Ubuntu'da hareket yükleme:

sudo apt-get updatesudo apt-get yükleme hareketi

B. Yapılandırma dosyalarını kopyalayın:

mkdir.motion sudo cp /etc/motion/motion.conf ~/.motion/motion.conf

C. Dosyayı yapılandırmak, ubuntu'ya aşina olanlar daha kolay metin düzenleme yapmak için Sublime'ı yükleyebilir, aksi takdirde komut satırında düzenleyebiliriz.

sudo nano ~/.motion/motion.conf

NS. R200 kamerayı taktıktan sonra motion.conf'ta aşağıdaki satırları değiştirebiliriz.

Bu, onu arka plan moduna geçirmek içindir:

# Daemon (arka plan) modunda başlayın ve terminali serbest bırakın (varsayılan: kapalı) arka plan programı açık

Bu, RealSense Camera'nın kamera görünümünü kullanmak içindir.

# Yakalamak için kullanılacak video cihazı (varsayılan /dev/video0) # FreeBSD için varsayılan değer /dev/bktr0 video cihazı /dev/video2

Genişliği ve yüksekliği değiştirmek, 1280 x 720 benim için harika çalıştı, ancak ihtiyacınıza uygun olanı görmek için boyutlarla oynayabilirsiniz.

# Görüntü genişliği (piksel). Geçerli aralık: Kameraya bağlı, varsayılan: 352 genişlik 1280 # Görüntü yüksekliği (piksel). Geçerli aralık: Kameraya bağlı, varsayılan: 288 yükseklik 720

Bunu 30'a ayarladım, sayıyı ne kadar yüksek ayarlarsanız, o kadar fazla bilgi işlem gücü gerektirir. Bunun için kıyaslamanın ne olduğunu görmek için etrafta oynayabilirsiniz, ancak 30 benim için harika çalıştı.

# Saniyede yakalanacak maksimum kare sayısı. # Geçerli aralık: 2-100. Varsayılan: 100 (neredeyse sınır yok). çerçeve hızı 30

Her zaman arabanın arkasından yayın yaptığımız için özel bir bağlantı noktası ayarlayabiliriz, 5001 kullanırız

################################################# ########## # Canlı Akış Sunucusu #################################### ####################### # Mini-http sunucusu istekler için bu bağlantı noktasını dinler (varsayılan: 0 = devre dışı) stream_port 5001 # jpeg kalitesi (yüzde olarak) üretilen görüntüler (varsayılan: 50) stream_quality 50 # Hiçbir hareket algılanmadığında 1 fps'de çıkış kareleri ve hareket algılandığında stream_maxrate tarafından verilen # hıza yükseltin (varsayılan: kapalı) stream_motion off # Akış akışları için maksimum kare hızı (varsayılan: 1) stream_maxrate 60 # Akış bağlantılarını yalnızca localhost ile kısıtlayın (varsayılan: açık) stream_localhost kapalı

Daha sonra ifconfig'i çalıştırabilir ve ip adresini bulabilir ve terminalde çalıştırabilirsiniz, bağlantı noktası 5001 olacaktır.

hareket

Herhangi bir hata yoksa, ip kullanarak bilgisayarınızdan kamerayı kontrol etmek, varsa izin sorunları gibi hataları düzeltmek kolaydır.

Bu çalıştığında, bunu Ubuntu'daki başlangıç uygulamasına ekleyebiliriz.

Kamera için hareket başlatma

motion.conf kod bölümüne ekleniyor, orada daha fazla ayara göz atabilirsiniz.

4. Adım: Walabot'u Kurun

Walabot'u Kur
Walabot'u Kur
Walabot'u Kur
Walabot'u Kur
Walabot'u Kur
Walabot'u Kur
Walabot'u Kur
Walabot'u Kur

Kamera yerindeyken, yine de walabot'u kurmamız gerekiyor, bu, araçla arkadaki nesne arasındaki mesafeyi algılayarak nasıl yapmamız gerektiğine dair net bir görüş sağlıyor.

a, deb dosyasını https://www.walabot.com/WalabotInstaller/Latest/walabot-maker.deb adresinden indirin

Python projelerine aktarılabilmesi için Walabot API'sini yüklemek için https://api.walabot.com/_install.html#_linuxInstall adresindeki talimatları izleyin.

Web sitesinde Walabot API'sini kurduğu kısımda bir hata var https://walabot.com/api/_pythonapi.html#_installingwalabotapi yazdığı yerde

python -m pip “/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz”

O olmalı

python -m pip kurulumu "/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz"

B. Walabot Pro'yu USB 2 üzerinden bağlayın, usb3 çalışmasını alamadım ama usb2 linux'a bağlanırken iyi çalışıyor. Joule yalnızca bir USB3 bağlantı noktasına sahip olduğundan, burada Walabot Pro'yu barındırmak için ek bir USB2 bağlantı noktası bağlayın

C. Klasörde aşağıdaki komutu çalıştırarak https://github.com/Walabot-Projects/Walabot-Senso… gibi Walabot projesini test edin

python SensorTargets.py

Bu, Walabot'un doğru çalışıp çalışmadığını ve istediğiniz şeylerdeki mesafeyi nasıl ölçeceğinizi görmek için size iyi bir test sağlayacaktır. DistanceMeasure örneği ölçümde çok tutarlı değildi ve zPosCm son derece doğru görünüyor, bu yüzden demo için zPosCM'yi kullanmaya karar verdim.

NS. Yine de verileri görüntüleme cihazına aktarmamız gerekiyor, çünkü bunu malzeme maliyetini azaltmak için android üzerinde çalıştırıyoruz, soketleri kullanabiliriz. Python'da soket ve udp'yi kurmak için aşağıdaki kodu kullanıyoruz.

MYPORT = 5002 içe aktarma sys, soket içe aktarma süresi * s = socket(AF_INET, SOCK_DGRAM) s.bind(('', 0)) s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)

Aşağıdaki komut güncellemede veri yayınlayacaktır

s.sendto(str(targets[0].zPosCm), ('255.255.255.255', MYPORT))

e. Bu yapıldığında, Başlangıç Uygulamasında kurabiliriz.

F. Walabot şimdi kuruluyor ve UDP üzerinden veri aktarıyor, kod ek alanında tam python kodu görülebilir. Aşağıdaki ekran görüntüsü, alan olmadığında nasıl görünmesi gerektiğinin çıktısıdır. Kod, kod bölümüne eklenmiştir.

Adım 5: Joule'den Wifi Bağlantı Noktası Oluşturma

Joule'den Wifi Hotspot Oluşturma
Joule'den Wifi Hotspot Oluşturma

Android cihazın üzerinden veri aktarması için kendi wifi etkin noktamızı oluşturuyoruz. Başlangıçta aşağıdaki komutu kullanmak onu otomatik olarak kuracaktır. Bu, Ubuntu 16.04 veya üstü için kullanılıyor, çünkü bu kullanılıyor. Bunu bir sonraki adımda Android uygulaması aracılığıyla otomatik olarak bağlayacağız. Başlangıç Uygulamalarında bu komutu kullanın.

nmcli cihazı wifi erişim noktası con-name araç-arka görüş ssid araç-arka görüş bandı bg şifre güvenli sürüş

walabot'un python dosyasının içinde, özel erişim noktası üzerinden bağlanan cihazlara udp mesajı göndereceğimiz yeri de güncelleyeceğiz. Bu, hiçbir paketin kaybolmamasını sağlamak içindir.

out = os.popen('ip neigh').read().splitlines() i için, satır içi numaralandırma(out, start=1): ip = line.split(' ')[0] s.sendto(str (hedefler[0].zPosCm), (ip, MYPORT))

6. Adım: Android'i Görüntü Ekranı Olarak Oluşturma

Android'i Görüntü Ekranı Olarak Oluşturma
Android'i Görüntü Ekranı Olarak Oluşturma

Android uygulaması, cihazın görüntülenmesi için oluşturulmuştur, çünkü esas olarak malzeme faturasını azaltır, aksi takdirde ayrı bir ekran hem pahalı hem de kurulumu zor olabilir. Bu proje için Android telefon/tablet kullanabiliriz.

Android, daha önce yaptığımız 3 bölüme odaklanır,

  • IoT cihazı (Intel Joule) aracılığıyla oluşturulan kablosuz erişim noktasına bağlanın
  • Wifi üzerinden hareketle RealSense Kamerayı yayınlayın
  • udp aracılığıyla Walabot hedefinden mesafe ölçümü

Her şeyi ayarladıktan ve Android uygulamasını yükledikten sonra (burada açık kaynaklı), kameranın walabot ile birlikte çalıştığını görebileceksiniz.

7. Adım: Her Şeyi Test Etme

Image
Image
Her Şeyi Test Etmek
Her Şeyi Test Etmek
Her Şeyi Test Etmek
Her Şeyi Test Etmek

Şimdi her şeyi çalıştırdık, bağlı tüm bileşenlerin temel bir kurulumuna sahip olmalıyız. Joule panosunu başlattığımızda, hotspot otomatik olarak kurulmalı, onunla birlikte hareket ve walabot uygulaması başlayacak ve android uygulamamızı açtığımızda kameradan akış yapabilmeliyiz. Bu, IoT cihazının çalışması için klavye/fare ve monitöre artık ihtiyaç olmadığı anlamına gelir. Şu anda doğru kurulmamış kütüphaneler gibi herhangi bir sorun olursa, bir sonraki adıma geçmeden önce düzeltmeliyiz.

Kamerayı tutabilen kasanın 3D basılması çok önemlidir.

Donanımı kurarken, kamera için özel 3D baskılı kasamızı hazır tutmalıyız. Bu bir prototip olduğu için biraz gevşeyebilir, ancak özel plaka tutucusu oluşturduğumuzda tüm bileşenlerin tutucunun içinde olmasını bekliyoruz.

Adım 8: Gerçek Bir Arabada Test Etme

Image
Image
Gerçek Bir Arabada Test Etme
Gerçek Bir Arabada Test Etme
Gerçek Bir Arabada Test Etme
Gerçek Bir Arabada Test Etme

Artık her şeyi çalıştırdığımıza göre, gerçek bir araba üzerinde test edebileceğiz. Bu bir prototip olduğu için işler biraz zor olabilir, bazı bileşenler için koli bandı kullanıyoruz.

Joule IoT Kitini çalıştırmak için DC'den AC'ye Doğrudan Takılabilir Güç Çevirici kullandık, ardından bagaja uzun bir elektrik prizi çektik.

Ön kısım ve arka kısım olacak. Bu şu anda sadece bir prototip, sonraki sürüm çipleri plaka tutucunun içine entegre edecek.

Ve ön kısım için ya bir telefon tutucu kullanabiliriz ya da sadece koli bandı Android Tablet kullanabiliriz.

Adım 9: Dünyada Kullanın

Dünyada Kullan
Dünyada Kullan

Bu aracı kullanarak, arabayı diğer arabalara güvenli bir şekilde yedekleyebilir ve yayaları izleyebiliriz. Demo videosunu başlangıçta izleyebilirsiniz. Projenin amacı, daha güvenli sürüş uygulamalarını teşvik etmektir.

Projeyi https://github.com/Nyceane/vehicle-rear-vision adresinden inceleyebilirsiniz.

Önerilen: