البنادق الحقيقية كمراقبين: كيفية إحضار أي شيء إلى الواقع الافتراضي

أنا كريستوفر أوهاغان ، مهندس برامج فيKainosSoftware وأنا أعمل في قسم الابتكار التطبيقي. التركيز على تقنيات غامرة. تدور هذه المدونة حول كيفية تحولنا مؤخرًا إلى بندقية تعمل بشكل كامل تقريبًا إلى وحدة تحكم الواقع الافتراضي وكيف تغلبنا على المشكلات التي جاءت معها.

لقد تم الاتصال بنا مؤخرًا من قبل عميل كندي يبحث عن المساعدة في بناء مطلق نار واقعي كجاذبي لممر الألعاب. هذا جزء من الاتجاه المتزايد الذي لاحظناه حيث يتم استخدام تقنية غامرة مثل VR للشركات الترفيهية في الموقع مثل غرف الهروب وقواطع الأسطوانة. على الرغم من أن المعدات والإعدادات يمكن أن تكون باهظة الثمن ، إلا أنها قابلة للتطبيق نظرًا للظروف العالية والبيئات الجديدة التي توفرها هذه الشركات. مثال رائع للترفيه في الموقع هو كرة الألوان الافتراضية التي نجحت شركات مثل "The Void" في تنفيذها.

كان التحدي الأساسي الذي يواجهنا في إطلاق النار الغامر الذي كنا نساعده هو بناء واستخدام سلاح ناري حقيقي ... أو على الأقل شيء بدا وشعر كأنه سلاح.

الحصول على المراقب المالي

في الأصل كنا نعتقد أن الحصول على وحدة تحكم سيكون صعباً لقد وصلنا إلى مورد مسدس هواء محلي ، Gear of War. متطلباتنا كانت:

  • بندقية متماثلة الهواء الناعمة التي بدت وشعرت وكانت مرجحة مثل بندقية حقيقية
  • البندقية التي ، عندما أطلقت ستنتج الارتداد واقعية
  • مشغل وسلامة سلكية حتى نتمكن من استخدامها لمدخلات محاكاة لدينا

لقد اعتقدنا أن هذا سوف يطلب الكثير ولكننا فوجئنا بحقيقة أن هذا الأمر يبدو عاديًا بالنسبة لهم. لقد فعلوا الكثير من الدعائم للتلفزيون والأفلام حتى أنهم تلقوا طلبات أغرب. استخدمنا بعد ذلك Vive tracker لتعقب البندقية في الواقع الافتراضي.

إعداد وحدة التحكم

هذا هو المكان الذي واجهنا فيه قضيتنا الرئيسية ، الاهتزازات: سبب المشكلة هو الارتداد الواقعي لبندقية. بما أن Vive Tracker يستخدم IMUs (وحدات الحركة بالقصور الذاتي) للتتبع بتردد عالي ، ونظام المنارة Vive للتتبع بتردد أقل نسبيًا وتصحيح الانجراف. تعمل IMU بقياس التسارع في كل محور ثم حساب الإزاحة من هذا القياس. عندما يتم تهتز أجهزة IMU بقوة ، كما هو الحال عند تركيبها على سلاح إطلاق نار واقعي ، فإنها غير قادرة على التعقب بدقة. كانت هذه مشكلة.

نظرًا لأننا لسنا خبراء في الاهتزاز ، فقد قمنا ببعض المحاولات لحل المشكلة ولكننا لم نحقق الكثير من التقدم. بعد ذلك قررنا إنشاء منشور reddit إلى r / Vive. كان رد فعل المجتمع مفيدًا ، حيث قام بتصحيح بعض الأشياء البسيطة التي فاتناها ، مثل أن يكون المقتفي بعيدًا عن الحد. لمفاجأتنا اتصلت HTC بنا بالمشروع الذي أبدى اهتمامًا بما كنا نحاول القيام به. كان لديهم نسخة تجريبية من البرامج الثابتة Vive Tracker والتي يمكن أن تساعد ، مرشح تمرير منخفض لـ IMU ، الذي قدموه لنا.

رسم بياني للمدخلات العادية مقابل المدخلات بعد استخدام مرشح تمرير منخفض

يمكن تكوين مرشح تمرير منخفض من خلال واجهة USB HID. تمكنا من إرسال تقارير "0xB3" ، التي ترسل معلومات أساسية حول الجهاز المستخدم بالإضافة إلى تكوين تمرير منخفض ، من MacBook إلى Tracker بالإعدادات الصحيحة لتخفيف الاهتزازات بشكل كاف. كانت الخطوة التالية هي إرسال تقرير الميزة ، الذي يسمح لنا بالاتصال بالتغييرات في الإعدادات وكذلك التحكم في أجهزة HID ، إلى Tracker من التوت بي لأننا نحتاج إلى شيء يمكن أن يتلاءم مع خرطوشة البندقية حتى لا يتمكن المستخدم من رؤية الأسلاك.

مرشح تمرير منخفض

هذه هي الخطوات اللازمة لإعداد Raspberry Pi لهذا النوع من المشاريع

  • تثبيت raspbian على التوت بي
  • تحديث إصدار pi من 'Node.js'
  • ثبِّت مكتبة "node-hid" في مشروعك ، للحصول على تعليمات محددة للقيام بذلك على الصفحة pi
  • أضف ملفًا في udev يسمى `60-HTC-Vive-perms.rules` مع وجود هذا السطر فيه
KERNEL == "hidraw *"، SUBSYSTEM == "hidraw"، ATTRS {idVendor} == "28de"، ATTRS {idProduct} == "2022"، TAG + = "uaccess"

المشكلة التي يمكن أن تكون لديك هي أن قيمة wIndex الخاطئة يتم استخدامها بواسطة node-hid ، في هذه الحالة يتم استخدام wIndex لتحديد الواجهة أو حيث يتم إرسال التقرير. إليك شيء للمساعدة في جذب انتباهك حول طلبات USB. لا تسمح لك "عقدة إخفاء" بتحديد الواجهة. لحسن الحظ عندما نظرت إلى الوراء على "show-devices.js" ، الذي يأتي مع مكتبة "node-hid" وينتج جميع أجهزة HID المتصلة ، كان له مسارات مختلفة لكل واجهة.

باستخدام show-devices.js ، الذي يأتي مع مكتبة إخفاء العقدة. يمكنك العثور على المسار المطلوب استخدامه في الكود في حالة ظهوره بطريقة مختلفة

إذا كانت لديك أي مشاكل أخرى في البرنامج النصي ، فإن "usbmon" يأتي مع Raspbian ويسمح لك بمشاهدة جميع طلبات USB التي يتم إجراؤها. إليك رابط مفيد لمساعدتك في فك تشفير هذه الطلبات. (يبدأ في الصفحة 15)

خاتمة

كان استخدام البندقية كوحدة تحكم VR أمرًا سهلاً. اهتزازات إطلاق النار قوية بما يكفي لتعطيل قدرة IMU على تتبع نفسها بدقة. باستخدام ميزة التصفية المنخفضة لتمرير Tracker ، بالإضافة إلى التوت على متن الطائرة ، تمكنا من التغلب على هذه المشكلة دون المساس بالتتبع أو القوة التي يهتز بها البندقية.

شكرا للقراءة
@ cohagan154