สารบัญ:

วิสัยทัศน์ด้านท้ายรถ: 9 ขั้นตอน (พร้อมรูปภาพ)
วิสัยทัศน์ด้านท้ายรถ: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: วิสัยทัศน์ด้านท้ายรถ: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: วิสัยทัศน์ด้านท้ายรถ: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: การเขียนวิสัยทัศน์และผลงานที่ประสบผลสำเร็จ ตอนที่ 1 2024, กรกฎาคม
Anonim
Image
Image

ทำไมเราถึงสร้าง Vision Rear Vision ของยานพาหนะ?

ศูนย์ควบคุมโรคแห่งสหรัฐอเมริการายงานว่าระหว่างปี 2544-2546 เด็กประมาณ 7, 475 คน (2, 492 ต่อปี) ที่อายุต่ำกว่า 15 ปีได้รับการรักษาจากอุบัติเหตุรถกลับ การเสียชีวิตประมาณ 300 รายต่อปีเป็นผลมาจากการชนกันของข้อมูลสำรอง ภายในปี 2018 รถยนต์ทุกคันที่จำหน่ายในสหรัฐอเมริกาจะต้องใช้กล้องสำรองที่จำเป็น

เราจะแก้ปัญหาอย่างไร?

รถยนต์ส่วนใหญ่ในตลาดปัจจุบันยังไม่มีกล้องสำรอง ซึ่งรวมถึงรถยนต์ประมาณครึ่งหนึ่งที่จำหน่ายในสหรัฐอเมริกาในปัจจุบัน และมากกว่าครึ่งทั่วโลก เราสามารถแก้ปัญหานี้ได้โดยการติดตั้งกล้องที่ท้ายรถโดยใช้พื้นที่ป้ายทะเบียน

Walabot จะสามารถตรวจจับระยะทางของเป้าหมายที่ใกล้กับรถมากที่สุด

กล้อง Intel RealSense R200 จะให้รายละเอียดมากขึ้นเกี่ยวกับสิ่งที่มองเห็น รวมถึงสถานการณ์ในที่แสงน้อย

ชุดพัฒนา Intel Joule นั้นทรงพลังพอที่จะใช้งานกล้อง RealSense ร่วมกับ Walabot Raspberry Pi ไม่ทรงพลังพอที่จะใช้งานกล้อง RealSense 3D ซึ่งเราสามารถเพิ่มคุณสมบัติอีกมากมายในอนาคตที่สามารถปรับปรุงฟังก์ชันการทำงานของรถยนต์ได้ รุ่นเดียวกันสามารถใช้กับ Pi กับกล้อง USB ปกติได้ แต่จะไม่ดีสำหรับเวลากลางคืน

โทรศัพท์/แท็บเล็ต Android ที่ใช้แสดงกล้องสำรอง ซึ่งเป็นการลดต้นทุนของหน้าจอเพิ่มเติม สามารถสร้างเวอร์ชัน iOS ได้ตามคำขอ

ด้วยส่วนประกอบเหล่านี้ เราจะสามารถสร้าง Rear End Vision ที่แสดงให้ผู้ใช้เห็นด้านหลังของรถได้

ขั้นตอนที่ 1: รวบรวมฮาร์ดแวร์ที่คุณต้องการ

ติดตั้ง Ubuntu บน Joule และไลบรารีที่จำเป็นซึ่งจำเป็นต่อการเรียกใช้
ติดตั้ง Ubuntu บน Joule และไลบรารีที่จำเป็นซึ่งจำเป็นต่อการเรียกใช้
  1. Intel Joule
  2. Walabot Pro
  3. กล้อง Intel R200 RealSense
  4. โทรศัพท์/แท็บเล็ต Android ที่ใช้ 5.0 หรือสูงกว่า
  5. อะแดปเตอร์สำหรับเสียบปลั๊กและอะแดปเตอร์ AC 12VDC ของรถยนต์ (สำหรับการสาธิตเพื่อเพิ่มพลังให้กับ Joule รุ่นการผลิตจะมีกลไกพลังงานที่แตกต่างกัน)
  6. USB Hub สำหรับเชื่อมต่อกล้องกับ Walabot (USB3 สำหรับกล้องและ USB2 สำหรับ Walabot)
  7. DC เป็น AC Direct Plug-in Power Inverter
  8. เครื่องพิมพ์ 3D ทั่วไปเพื่อพิมพ์กรอบป้ายทะเบียนที่สร้างขึ้นเอง

ขั้นตอนที่ 2: ติดตั้ง Ubuntu บน Joule และไลบรารีที่จำเป็นซึ่งจำเป็นต่อการเรียกใช้

เนื่องจากเราตัดสินใจเลือกใช้เส้นทาง Linux ให้ทำตามคำแนะนำ https://developer.ubuntu.com/core/get-started/intel-joule เพื่อติดตั้ง Ubuntu บน Joule อูบุนตูให้ความยืดหยุ่นอย่างมากแก่เราในการรันระบบปฏิบัติการจริงบนชิปที่ใช้ IoT

ขั้นตอนที่ 3: สตรีมกล้อง RealSense

สตรีมกล้อง RealSense
สตรีมกล้อง RealSense
สตรีมกล้อง RealSense
สตรีมกล้อง RealSense

เนื่องจากเราใช้โทรศัพท์/แท็บเล็ต Android เพื่อประหยัดค่าใช้จ่ายในรายการวัสดุ และผู้ใช้สามารถเข้าถึงได้มากขึ้น เราจะใช้ไลบรารีการเคลื่อนไหวเพื่อโฮสต์กล้องที่คล้ายกับกล้องรักษาความปลอดภัย เมื่อติดตั้ง Ubuntu และเชื่อมต่อกับ wifi แล้ว เราสามารถเปิดเทอร์มินัลแล้วใช้คำสั่งต่อไปนี้ ก่อนอื่นเราเชื่อมต่อกล้องกับ Joule ผ่านพอร์ต USB3 จากนั้นทำตามขั้นตอนต่อไปนี้

NS. การติดตั้งการเคลื่อนไหวบน Ubuntu:

sudo apt-get updatessudo apt-get ติดตั้งการเคลื่อนไหว

NS. คัดลอกไฟล์กำหนดค่า:

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

ค. การกำหนดค่าไฟล์ สำหรับผู้ที่คุ้นเคยกับ Ubuntu สามารถติดตั้ง Sublime เพื่อให้แก้ไขข้อความได้ง่ายขึ้น ไม่เช่นนั้นเราจะแก้ไขภายในบรรทัดคำสั่งได้

sudo nano ~/.motion/motion.conf

NS. หลังจากเสียบกล้อง R200 เราสามารถเปลี่ยนบรรทัดต่อไปนี้ใน motion.conf

นี่คือการวางในโหมดพื้นหลัง:

# เริ่มในโหมด daemon (พื้นหลัง) และปล่อยเทอร์มินัล (ค่าเริ่มต้น: ปิด) daemon on

นี่คือการใช้มุมมองกล้องของ RealSense Camera

# Videodevice ที่จะใช้สำหรับการจับภาพ (ค่าเริ่มต้น /dev/video0) # สำหรับค่าเริ่มต้นของ FreeBSD คือ /dev/bktr0 videodevice /dev/video2

การเปลี่ยนความกว้างและความสูง 1280 x 720 ใช้งานได้ดีสำหรับฉัน แต่คุณสามารถลองใช้ขนาดต่างๆ เพื่อดูว่าอะไรเหมาะกับความต้องการของคุณ

# ความกว้างของภาพ (พิกเซล) ช่วงที่ถูกต้อง: ขึ้นอยู่กับกล้อง ค่าเริ่มต้น: 352 ความกว้าง 1280 # ความสูงของภาพ (พิกเซล) ช่วงที่ถูกต้อง: ขึ้นอยู่กับกล้อง ค่าเริ่มต้น: 288 ความสูง 720

ฉันตั้งค่านี้เป็น 30 ยิ่งคุณตั้งค่าตัวเลขมากเท่าไหร่ก็ยิ่งต้องใช้พลังในการคำนวณมากขึ้นเท่านั้น คุณสามารถลองเล่นเพื่อดูว่าเกณฑ์มาตรฐานสำหรับมันเป็นอย่างไร แต่ 30 ใช้งานได้ดีสำหรับฉัน

# จำนวนเฟรมสูงสุดที่จะจับภาพต่อวินาที # ช่วงที่ถูกต้อง: 2-100 ค่าเริ่มต้น: 100 (แทบไม่มีขีดจำกัด) อัตราเฟรม 30

เนื่องจากเรามักจะสตรีมหลังรถ เราจึงสามารถตั้งค่าพอร์ตเฉพาะได้ เราใช้5001

####################################################### ########## เซิร์ฟเวอร์สตรีมสด ######################################## ######################### # เซิร์ฟเวอร์ mini-http ฟังพอร์ตนี้สำหรับคำขอ (ค่าเริ่มต้น: 0 = ปิดใช้งาน) stream_port 5001 # คุณภาพของ jpeg (เป็นเปอร์เซ็นต์) ภาพที่สร้าง (ค่าเริ่มต้น: 50) stream_quality 50 # เฟรมเอาต์พุตที่ 1 fps เมื่อตรวจไม่พบการเคลื่อนไหวและเพิ่มเป็น # อัตราที่กำหนดโดย stream_maxrate เมื่อตรวจพบการเคลื่อนไหว (ค่าเริ่มต้น: ปิด) stream_motion ปิด # อัตราเฟรมสูงสุดสำหรับสตรีมสตรีม (ค่าเริ่มต้น: 1) stream_maxrate 60 # จำกัด การเชื่อมต่อสตรีมไปยัง localhost เท่านั้น (ค่าเริ่มต้น: เปิด) stream_localhost ปิด

จากนั้นคุณสามารถเรียกใช้ ifconfig และหาที่อยู่ IP และเรียกใช้ในเทอร์มินัล พอร์ตจะเป็น 5001

การเคลื่อนไหว

หากไม่มีข้อผิดพลาด ง่ายต่อการตรวจสอบกล้องจากคอมพิวเตอร์ของคุณโดยใช้ IP แก้ไขข้อผิดพลาด เช่น ปัญหาการอนุญาต หากมี

เมื่อดำเนินการแล้ว เราสามารถเพิ่มสิ่งนี้ลงในแอปพลิเคชันเริ่มต้นใน Ubuntu ได้

การเริ่มต้นการเคลื่อนไหวสำหรับกล้อง

กำลังแนบ motion.conf ในส่วนโค้ด คุณสามารถตรวจสอบการตั้งค่าเพิ่มเติมได้ที่นั่น

ขั้นตอนที่ 4: ตั้งค่า Walabot

ตั้งค่า Walabot
ตั้งค่า Walabot
ตั้งค่า Walabot
ตั้งค่า Walabot
ตั้งค่า Walabot
ตั้งค่า Walabot
ตั้งค่า Walabot
ตั้งค่า Walabot

เมื่อติดกล้องแล้ว เรายังต้องตั้งค่า walabot ซึ่งสามารถตรวจจับระยะห่างระหว่างรถกับวัตถุที่อยู่ด้านหลังได้ ทำให้มองเห็นได้ชัดเจนว่าเราควรทำอย่างไร

a ดาวน์โหลดไฟล์ deb จาก

ทำตามคำแนะนำจาก https://api.walabot.com/_install.html#_linuxInstall เพื่อติดตั้ง Walabot API เพื่อให้สามารถนำเข้าโครงการ python ได้

มีข้อผิดพลาดในเว็บไซต์ในส่วนที่ติดตั้ง Walabot API https://walabot.com/api/_pythonapi.html#_installingwalabotapi ที่ระบุ

หลาม -m pip “/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz”

ที่ควรจะเป็น

python -m pip ติดตั้ง "/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz"

NS. เชื่อมต่อ Walabot Pro ผ่าน USB 2 ฉันไม่สามารถใช้งาน usb3 ได้ แต่ usb2 ทำงานได้ดีในการเชื่อมต่อกับ linux เนื่องจาก Joule มีพอร์ต USB3 เพียงพอร์ตเดียว ให้เชื่อมต่อพอร์ต USB2 เพิ่มเติมเพื่อรองรับ Walabot Pro ที่นี่

ค. ทดสอบโครงการ Walabot เช่น https://github.com/Walabot-Projects/Walabot-Senso… โดยเรียกใช้คำสั่งต่อไปนี้ในโฟลเดอร์

หลาม SensorTargets.py

สิ่งนี้ควรให้การทดสอบที่ดีแก่คุณเพื่อดูว่า Walabot ทำงานอย่างถูกต้องหรือไม่ รวมถึงวิธีวัดระยะทางกับสิ่งที่คุณต้องการ ตัวอย่าง DistanceMeasure ไม่สอดคล้องกับการวัดมากเกินไป และ zPosCm ดูเหมือนจะแม่นยำอย่างยิ่ง ดังนั้นฉันจึงตัดสินใจใช้ zPosCM สำหรับการสาธิต

NS. เรายังคงต้องส่งข้อมูลไปยังอุปกรณ์แสดงผล เนื่องจากเรากำลังใช้งานสิ่งนี้บน Android เพื่อลดต้นทุนวัสดุ เราจึงสามารถใช้ซ็อกเก็ตได้ เราใช้รหัสต่อไปนี้เพื่อตั้งค่าซ็อกเก็ตและ udp ใน python

MYPORT = 5002 นำเข้า sys เวลาจากการนำเข้าซ็อกเก็ต * s = socket(AF_INET, SOCK_DGRAM) s.bind(('', 0)) s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)

คำสั่งต่อไปนี้จะออกอากาศข้อมูลในการอัปเดต

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

อี เมื่อเสร็จแล้วเราสามารถตั้งค่าได้ใน Startup Application

NS. ขณะนี้ Walabot ได้รับการตั้งค่าและถ่ายโอนข้อมูลผ่าน UDP โค้ดหลามแบบเต็มสามารถดูได้ในพื้นที่แนบโค้ด ภาพหน้าจอด้านล่างเป็นภาพพิมพ์ของสิ่งที่ควรปรากฏเมื่อไม่มีพื้นที่ รหัสที่แนบมาในส่วนรหัส

ขั้นตอนที่ 5: การสร้าง Wifi Hotspot จาก Joule

การสร้าง Wifi Hotspot จาก Joule
การสร้าง Wifi Hotspot จาก Joule

เรากำลังสร้างฮอตสปอต wifi ของเราเองสำหรับอุปกรณ์ Android เพื่อถ่ายโอนข้อมูล การใช้คำสั่งต่อไปนี้เมื่อเริ่มต้นจะเป็นการตั้งค่าโดยอัตโนมัติ ใช้สำหรับ Ubuntu 16.04 หรือใหม่กว่า เนื่องจากมีการใช้งานอยู่ เราจะเชื่อมต่อสิ่งนี้โดยอัตโนมัติผ่านแอพ Android ในขั้นตอนต่อไป ใช้คำสั่งนี้ที่ Startup Applications

อุปกรณ์ nmcli ฮอตสปอต wifi con-name vehicle-rear-vision ssid vehicle-rear-vision band bg รหัสผ่าน safedriving

ภายในไฟล์ python ของ walabot เราจะอัปเดตด้วย โดยเราจะส่งข้อความ udp ไปยังอุปกรณ์ที่เชื่อมต่อผ่านฮอตสปอตส่วนตัว เพื่อให้แน่ใจว่าไม่มีแพ็กเก็ตสูญหาย

out = os.popen('ip neigh').read().splitlines()for i, line in enumerate(out, start=1): ip = line.split(' ')[0] s.sendto(str) (เป้าหมาย[0].zPosCm), (ip, MYPORT))

ขั้นตอนที่ 6: สร้าง Android เป็นหน้าจอแสดงผล

การสร้าง Android เป็นหน้าจอแสดงผล
การสร้าง Android เป็นหน้าจอแสดงผล

แอพ Android สร้างขึ้นสำหรับการแสดงอุปกรณ์ ส่วนใหญ่เป็นเพราะลดค่าใช้จ่ายของวัสดุ มิฉะนั้นหน้าจอแยกต่างหากอาจมีทั้งราคาแพงและติดตั้งยาก สำหรับโครงการนี้ เราสามารถใช้โทรศัพท์/แท็บเล็ต Android

Android เน้นที่ 3 ส่วนที่เราทำก่อนหน้านี้

  • เชื่อมต่อกับ wifi hotspot ที่สร้างผ่านอุปกรณ์ IoT (Intel Joule)
  • สตรีมกล้อง RealSense ผ่านการเคลื่อนไหวผ่าน wifi
  • การวัดระยะทางจากเป้าหมาย Walabot ถึง udp

หลังจากตั้งค่าทุกอย่างและติดตั้งแอป Android (เปิดแหล่งที่มาที่นี่) คุณจะเห็นกล้องทำงานร่วมกับ walabot

ขั้นตอนที่ 7: ทดสอบทุกอย่าง

Image
Image
ทดสอบทุกอย่าง
ทดสอบทุกอย่าง
ทดสอบทุกอย่าง
ทดสอบทุกอย่าง

ตอนนี้เรามีทุกอย่างทำงานแล้ว เราควรจะมีการตั้งค่าพื้นฐานสำหรับส่วนประกอบทั้งหมดที่แนบมาด้วย เมื่อเราเริ่มบอร์ด Joule ฮอตสปอตควรได้รับการตั้งค่าโดยอัตโนมัติ แอปการเคลื่อนไหวและแอป walabot จะเริ่มทำงานพร้อมกัน และเมื่อเราเปิดแอป Android ของเรา เราจะสามารถสตรีมจากกล้องได้ ซึ่งหมายความว่าไม่จำเป็นต้องใช้แป้นพิมพ์/เมาส์และจอภาพสำหรับอุปกรณ์ IoT อีกต่อไป หากเกิดปัญหาขึ้นในขณะนี้ เช่น ห้องสมุดติดตั้งไม่ถูกต้อง เราควรแก้ไขก่อนที่จะดำเนินการในขั้นตอนต่อไป

การพิมพ์ 3D ตัวเคสที่สามารถถือกล้องได้นั้นสำคัญมาก

ในการสร้างฮาร์ดแวร์ เราควรเตรียมเคสที่พิมพ์ 3 มิติแบบกำหนดเองของเราให้พร้อมสำหรับกล้อง เนื่องจากนี่คือต้นแบบ มันอาจจะหลวมเล็กน้อย แต่เมื่อเราสร้างที่ยึดป้ายทะเบียนแบบกำหนดเอง เราคาดว่าส่วนประกอบทั้งหมดจะอยู่ภายในที่ยึด

ขั้นตอนที่ 8: ทดสอบรถยนต์จริง

Image
Image
ทดสอบรถจริง
ทดสอบรถจริง
ทดสอบรถจริง
ทดสอบรถจริง

ตอนนี้เราได้ทำทุกอย่างแล้ว เราจะสามารถทดสอบกับรถจริงได้ เนื่องจากนี่เป็นผลิตภัณฑ์ต้นแบบที่อาจหยาบเล็กน้อย เราจึงใช้เทปพันสายไฟสำหรับส่วนประกอบบางอย่าง

ในการเพิ่มพลังให้กับ Joule IoT Kit เราใช้อินเวอร์เตอร์ไฟฟ้ากระแสตรงเป็นไฟฟ้ากระแสสลับเป็นไฟฟ้ากระแสสลับ จากนั้นเพียงแค่เสียบปลั๊กไฟขนาดยาวไปที่ลำตัว

เราจะได้ส่วนหน้าและส่วนหลัง นี่เป็นเพียงต้นแบบในขณะนี้ เวอร์ชันถัดไปจะรวมชิปไว้ในที่ยึดป้ายทะเบียน

และสำหรับส่วนหน้านั้น เราสามารถใช้ที่วางโทรศัพท์หรือเพียงแค่เทปพันท่อ Android Tablet ก็ได้

ขั้นตอนที่ 9: ใช้มันในโลก

ใช้ในโลก
ใช้ในโลก

การใช้เครื่องมือนี้ช่วยให้เราสามารถสำรองรถกับรถคันอื่นได้อย่างปลอดภัยและสามารถตรวจสอบคนเดินถนนได้ คุณสามารถดูวิดีโอสาธิตได้ที่จุดเริ่มต้น เป้าหมายของโครงการคือการส่งเสริมให้มีการขับขี่ที่ปลอดภัยยิ่งขึ้น

สามารถตรวจสอบโครงการได้จาก

แนะนำ: