กลับไปหน้ารวมไฟล์
head-tracking-for-wireless-3d-first-person-vision-ec4fad.md

ชื่อโปรเจกต์: การติดตามการเคลื่อนไหวศีรษะสำหรับระบบ 3D First Person Vision ไร้สาย

เกี่ยวกับอะไร?

ในการควบคุมยานพาหนะระยะไกล วิดีโอฟีดแบ็กช่วยให้ผู้ควบคุมได้รับข้อมูลเชิงพื้นที่และสิ่งแวดล้อมแบบเรียลไทม์ การใช้ Stereoscopic video feedback สามารถปรับปรุงระบบกล้องเดี่ยวแบบมาตรฐานได้ โดยให้รายละเอียดเกี่ยวกับมาตราส่วน ความลึก และการเคลื่อนไหวในรูปแบบที่รวดเร็วและเข้าใจง่ายแก่ผู้ควบคุม ข้อมูลเสริมนี้มีความสำคัญอย่างยิ่งเมื่อปฏิบัติงานในสภาพแวดล้อมที่ไม่คุ้นเคยหรืออันตราย

ทำไมถึงทำโปรเจกต์นี้?

โปรเจกต์นี้จัดทำขึ้นสำหรับงานวิศวกรรมเมคคาทรอนิกส์ของมหาวิทยาลัย

ขอบเขตของการออกแบบคือการทดสอบผลกระทบต่อการควบคุมยานพาหนะเมื่อใช้ระบบ 3D visual telepresence เพื่อนำทางในสภาพแวดล้อม การออกแบบที่มีประสิทธิภาพจะช่วยเพิ่มการโต้ตอบ การควบคุม การนำทาง และการรับรู้เชิงพื้นที่ให้กับผู้ขับขี่ พร้อมทั้งลดผลกระทบเชิงลบจากอาการ motion sickness ให้เหลือน้อยที่สุด

มันทำงานอย่างไร?

ระบบ 3D first person vision ได้รับการพัฒนาขึ้น โดยจะจับภาพมุมมองแบบ stereoscopic ด้วยกล้องขนาดเล็กคู่หนึ่ง และแสดงภาพเหล่านั้นไปยังดวงตาที่เกี่ยวข้องของผู้ใช้ผ่าน head mounted display ตัว head mounted display จะจับค่าตำแหน่งและการหมุนของศีรษะของผู้ใช้พร้อมกัน โดยใช้ข้อมูลนี้เพื่อควบคุม pan-tilt unit ที่ติดตั้งกล้องไว้ ผลลัพธ์ที่ได้คือมุมมอง 3D ของสภาพแวดล้อมของยานพาหนะที่ควบคุมระยะไกลที่มี latency ต่ำที่สุด โดยที่ field of view สามารถปรับได้ด้วยกลไกโดยการหมุนศีรษะไปยังทิศทางที่ต้องการ (ดูวิดีโอแรกที่แนบมา)

Testing the Pan-Tilt unit - Arduino Uno, XBee wireless tx/rx and Oculus Rift DK2

โปรเจกต์นี้ประกอบด้วยโมดูลหลักสามส่วน:

  • การจับภาพวิดีโอและการสื่อสาร (สีน้ำเงิน)
  • การสื่อสารข้อมูล Headtracker (สีเขียว)
  • Pan-Tilt unit (PTU) พร้อม Controller (สีเหลือง)
การแยกส่วนโมดูลหลัก 3 ส่วน - ตามสี

Arduino Uno ทำหน้าที่เป็นแพลตฟอร์มระยะไกล (ติดตั้งบนยานพาหนะ) สำหรับควบคุม PTU ผ่าน Servo ดิจิทัลสองตัวที่ฝังอยู่ในเคสที่พิมพ์ด้วย 3D อย่างน้อยที่สุด การออกแบบนี้ต้องมีเอาต์พุตสัญญาณ Pulse Width Modulated อย่างน้อยสองช่อง, RS232 UART/USART Serial Controller และขา I/O เพิ่มเติมสำหรับเซ็นเซอร์/แอคทูเอเตอร์เพิ่มเติม (เช่น dynamic stability) เลือก Arduino เหนือ microcontroller ทั่วไปบนพื้นฐานของ:

  • ภาษา High level พร้อม pre-compiled libraries
  • On-board power regulator, bootloader, เป็นต้น
  • ความง่ายในการเชื่อมต่อกับอุปกรณ์ภายนอก เช่น อุปกรณ์ XBee wireless serial
  • ความเร็วในการประมวลผลและการควบคุมหน่วยความจำไม่สำคัญต่อการลด latency ให้เหลือน้อยที่สุด เมื่อรวมกับ video latency ที่มีอยู่มากแล้ว

ผลลัพธ์

มีการทดสอบสมมติฐานที่แตกต่างกันหลายประการที่เกี่ยวข้องกับ motion sickness, การควบคุม, การจดจำความทรงจำเชิง Cognitive และ depth perception จากการออกแบบต้นแบบ แต่เมื่อเน้นที่ประสิทธิภาพของฮาร์ดแวร์แล้ว Arduino Uno เป็นแพลตฟอร์มที่เรียบง่ายและเชื่อถือได้

เกณฑ์เป้าหมายหลักสำหรับการออกแบบที่ประสบความสำเร็จคาดการณ์ไว้ดังนี้;

  • Field of view ที่กว้างพอ (มากกว่า 100 องศา)
  • Video resolution ที่เพียงพอ
  • การติดตามที่แม่นยำและตอบสนองได้ดี
  • High refresh rate
  • Low Latency

จากทั้งหมดนี้ ปัญหาหลักที่พบคือการลด video latency นั่นคือเวลาตั้งแต่การเคลื่อนไหวศีรษะไปจนถึงการได้รับภาพที่สอดคล้องกันที่ดวงตา กล้อง, การสื่อสารวิดีโอไร้สาย และวิธีการแสดงผลสร้าง latency ได้สูงสุดถึง 133 มิลลิวินาทีเมื่ออยู่นิ่ง โดยมีเวลาเพิ่มเติม 26 ms ที่เกิดจากการตอบสนองทางกลไกของการ head-tracking, serial comm's และการปรับ PTU ด้วยกลไก การประมวลผลข้อมูล/การสร้างสัญญาณ 26 ms นี้ไม่มีนัยสำคัญเมื่อเทียบกับ video latency

ในการจำลองโปรเจกต์นี้ มีปัญหาหลายประการเกี่ยวกับอุปกรณ์วิดีโอที่ฉันจะพิจารณาใหม่เพื่อเพิ่มคุณภาพของภาพในขณะที่ลด latency อย่างไรก็ตาม ในส่วนที่เกี่ยวข้องกับ Arduino ฉันจะพิจารณาใช้บอร์ดที่มีขนาดเล็กลง (เช่น Arduino Pro Mini) และ Servo motor ที่ทำงานได้เร็วกว่า เนื่องจากข้อจำกัดเพียงอย่างเดียวที่พบคืออัตราการปรับ PTU ไม่ใช่ความเร็วในการประมวลผลและความจุ I/O

ขอบคุณ, Arduino, ที่ตอบสนองความต้องการของฉันในโปรเจกต์ที่ถ้าไม่มีคุณแล้วคงเป็นเรื่องยาก

รายละเอียดทางเทคนิคเพิ่มเติม

การวางแนวเชิงพื้นที่ (Spatial Orientation)

โปรเจกต์ขั้นสูงนี้ช่วยให้สามารถมองเห็นภาพในมุมมองบุคคลที่หนึ่ง (First Person View - FPV) ได้อย่างสมจริง โดยการแปลงการเคลื่อนไหวศีรษะของนักบินไปยัง Camera gimbal บนยานพาหนะระยะไกล

  • IMU Interface: เซ็นเซอร์ MPU6050 หรือ BNO055 ถูกติดตั้งอยู่บนชุดหูฟังของนักบิน Arduino จะประมวลผลข้อมูล Yaw, Pitch และ Roll โดยใช้ Kalman หรือ Complementary filter เพื่อให้ได้การวางแนวที่เสถียรและปราศจากการเลื่อน (drift-free)
  • Wireless Link: ข้อมูลจะถูกส่งผ่าน NRF24L01 หรือ Bluetooth ไปยังหุ่นยนต์ที่รับสัญญาณ

การควบคุม Gimbal

Arduino ฝั่งรับจะตีความข้อมูลการวางแนวและขับเคลื่อน Servo Motor สองตัว (แกน X และ Y) ซึ่งช่วยให้กล้องสามารถติดตามการจ้องมองของนักบินได้แบบเรียลไทม์ ทำให้เกิดประสบการณ์ "เสมือนจริง" Low latency เป็นสิ่งสำคัญ ดังนั้นโค้ดจึงปรับโครงสร้าง serial packet ให้เหมาะสมเพื่อรักษา update frequency ให้สูง (เช่น 50Hz)

ข้อมูล Frontmatter ดั้งเดิม

title: "Head Tracking for Wireless 3D First Person Vision"
description: "A remote controlled vehicle with stereo cameras on a head-tracked pan-tilt unit and wireless 3D first person control via an Oculus Rift."
author: "twhi2525"
category: "Sensors & Environment"
tags:
  - "tracking"
  - "remote control"
views: 18978
likes: 18
price: 2450
difficulty: "Intermediate"
components:
  - "1x SparkFun XBee Explorer USB"
  - "1x Soldering iron (generic)"
  - "1x SparkFun XBee Shield"
  - "1x Xbee Pro S1"
  - "1x Corona DS238 MG Digital Servos"
  - "1x Arduino UNO"
  - "1x 3D Printer (generic)"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "1398f573c13749f88791df1bddaf137b13bd0a9a5ecabaa2ffe25a2a05a83e60"
encryptedPayload: "U2FsdGVkX18FtHccrZMY7h6zihL/R60LQHuuMSWT/La43ySJ5qt6GDMCaC8WDK3407vAGk2Z/4YYlDqdm1hczgzudBuRQPPMLdki5aDMIuw="
seoDescription: "Head Tracking for Wireless 3D First Person Vision using stereo cameras and Oculus Rift on a remote vehicle."
videoLinks:
  - "https://www.youtube.com/embed/Ww-3ExQUTkQ"
  - "https://www.youtube.com/embed/VQkfhJnaFEI"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/head-tracking-for-wireless-3d-first-person-vision-ec4fad_cover.jpg"
lang: "th"