شبکه پیرامونی واقعیت مجازی

**شبکه پیرامونی واقعیت مجازی**  به اختصار **VRPN**، یک رابط مبتنی بر شبکه مستقل از دستگاه برای دسترسی به پیرامون‌های واقعیت مجازی در برنامه‌های واقعیت مجازی است. این رابط توسط راسل ام. تیلور دوم در دانشکده علوم کامپیوتر دانشگاه کارولینای شمالی در چپل هیل طراحی و پیاده‌سازی شد. زمانی که شبکه پیرامونی واقعیت مجازی بخشی از تجارت بود، توسط سِنسیکس (Sensics) نگهداری و پشتیبانی می‌شد. در حال حاضر توسط رلیاسولو (ReliaSolve) نگهداری می‌شود و با همکاری جامعه‌ای با بازدهی بالا از مشارکت کنندگان توسعه می‌یابد. توضیحات مفصل‌تر در vrpn.net و در VRPN-VRST ارائه شده است.

هدف شبکه پیرامونی واقعیت مجازی ارائه یک رابط یکسان برای دستگاه‌های ورودی مانند ردیاب‌های حرکت یا کنترل‌کننده‌های اهرمک است. علاوه بر این کاربردهای زیر را ارائه می‌دهد:
* برچسب زمانی داده‌ها
* دسترسی همزمان چندتایی به دستگاه‌های پیرامونی
* اتصال مجدد خودکار سرورهای ناموفق
* ذخیره‌سازی و پخش جلسات

سیستم شبکه پیرامونی واقعیت مجازی از رابط‌های برنامه‌نویسی برای برنامه‌های کاربر و همین‌طور درایورهای سخت‌افزاری و یک برنامه سرور که با دستگاه‌های سخت‌افزاری ارتباط برقرار می‌کند تشکیل شده است. رابط‌های کاربر به زبان سی++ نوشته شده‌اند ولی با سی#، پایتون و جاوا لفاف‌پیچی یا رَپ (به انگلیسی: wrap) شده‌اند. یک کاربرد معمول از شبکه پیرامونی واقعیت مجازی، کدگذاری و ارسال داده‌های ضبط حرکت 6DoF از طریق شبکه در لحظه است.

## ایجاد شبکه
یک کاربر شبکه پیرامونی واقعیت مجازی می‌تواند با یک سرور شبکه پیرامونی واقعیت مجازی (دستگاه ارائه‌دهندهٔ داده) به دو شیوه ارتباط برقرار کند: یا از طریق پروتکل کنترل انتقال (TCP) (قابل اعتماد ولی با بازدهی پایینتر)، یا از طریق پروتکل بسته دادهٔ کاربر (UDP) (غیرقابل اعتماد، اما با تأخیر کمتر و بازدهی بالاتر). غالباً وقتی تأخیر نداشتن مسئله‌ای مهم دارد، حالت «غیرقابل اعتماد» ترجیح داده می‌شود.

سری شروع اتصال «غیرقابل اعتماد» از هر دو پروتکل پروتکل کنترل انتقال (TCP) و پروتکل بسته دادهٔ کاربر (UDP) استفاده می‌کند. این سری اتصال به شرح زیر عمل می‌کند:
# کاربر یک سوکت پروتکل کنترل انتقال (TCP) برای گوش دادن با یک درگاه دلخواه باز می‌کند.
# کاربر شماره درگاه این سوکت را همراه با نام دستگاه خود در یک دیتاگرام پروتکل بسته دادهٔ کاربر (UDP) که به یک درگاه شناخته‌شدهٔ سرور شبکه پیرامونی واقعیت مجازی (درگاه پیش‌فرض ۳۸۸۳ است) هدایت می‌شود ارسال می‌کند.
# سرور یک اتصال پروتکل کنترل انتقال (TCP) را با کاربر به شماره درگاه ارسال شده در مرحله ۲ باز می‌کند.
# اگر اتصال پروتکل کنترل انتقال (TCP) برقرار شده باشد، هر دستگاه نسخه شبکه پیرامونی واقعیت مجازی پشتیبانی شده‌اش را به دیگری اعلام می‌کند.
# اگر نسخه‌ها سازگار نباشند، اتصال قطع می‌شود.
# در غیر این صورت، هر دستگاه شروع به گوش دادن به یک درگاه پروتکل بسته دادهٔ کاربر (UDP) جدید (متفاوت با درگاه‌های قبلاً استفاده شده) می‌کند و شماره درگاه را از طریق اتصال پروتکل کنترل انتقال (TCP) ایجاد شده قبلی به دستگاه دیگر ارسال می‌کند.
# از این به بعد، تمام داده‌ها از طریق دو درگاه پروتکل بسته دادهٔ کاربر (UDP) باز شده در مرحله ۶ ارسال می‌شوند.

نقاط قوت این رویکرد عبارتند از: زمان اتصال سریع و تشخیص سریع عدم موفقیت حین برقراری اتصال.

اما پروتکل شروع اتصال «غیرقابل اعتماد» به اصل طراحی پروتکل لایه بندی دقیق توجهی ندارد، زیرا بار شبکه پیرامونی واقعیت مجازی در سطح برنامه اطلاعاتی را در مورد سطوح پایین‌تر در پشته شبکه، یعنی نام دستگاه‌ها و شماره درگاه‌های پروتکل کنترل انتقال (TCP)/پروتکل بسته دادهٔ کاربر (UDP) نشت می‌دهد. به دلیل این انتخاب در طراحی، ممکن نیست دو دستگاه متصل شده از طریق برگردان نشانی شبکه (NAT) ارتباط برقرار کنند: روتر نه تنها باید اطلاعات لایه ۳ را در سربرگ بسته‌ها ترجمه کند، بلکه باید ارجاعات به آدرس‌های IP و شماره درگاه‌ها در بار شبکه پیرامونی واقعیت مجازی را نیز ترجمه کند.

برای کنار آمدن با این مشکل، شبکه پیرامونی واقعیت مجازی یک حالت دوم شروع اتصل اولیه «قابل اعتماد» منحصراً با پروتکل کنترل انتقال (TCP) ارائه می‌دهد که یک تعامل استاندارد پروتکل کنترل انتقال (TCP) سرور-کاربر است: سرور شبکه پیرامونی واقعیت مجازی به یک درگاه پروتکل کنترل انتقال (TCP) شناخته‌شده گوش می‌دهد و کاربر یک ارتباط را شروع می‌کند. در این حالت، تمام داده‌ها با همان اتصال پروتکل کنترل انتقال (TCP) ارسال می‌شوند و نیازی به یک ارتباط پروتکل بسته دادهٔ کاربر (UDP) نیست.

## دستگاه‌های مورد پشتیبانی
### ردیاب‌ها یا ترکرها (لیست بر اساس حروف الفبا)
* ردیاب سطح گسترده تردتک های‌بال-۳۰۰۰ (ردیاب یواِن‌سی سیلینگ یا UNC Ceiling سابق).
* سیستم ردیابی موقعیتی ضدتأخیر
* سیستم‌های ردیابی نوری اِی‌آرتی (ART) شامل فلای‌استیک ۲ و فلای‌استیک ۳ . کد دریافت‌کننده بخشی از توزیع منبع استاندارد است.
* دستگاه‌های آنالوگ مورد استفاده به عنوان ردیاب (مگلان، سیریل‌باکس با اهرمک‌های متصل، رادامِک اِس‌پی‌آی، ماوس و غیره).
* ردیاب اِی‌آرتولکیت از نوع شبکه پیرامونی واقعیت مجازی از دانشگاه لس آندس در دسترس است.
* اسنشن فلاک‌آف‌بردز (چه به صورتی که از طریق یک درگاه سریال اجرا می‌شود یا به صورتی که هر سنسور به درگاه سریال خودش متصل است). درایور (و سایر درایورهای ردیاب) ردیاب را در صورت چرخه برق، قطع سریال یا سایر مشکلات ریست می‌کند. استفاده از این درایور در نست آف بردز (Nest of Birds) مدار درایو فرستنده را می‌سوزاند.
* دستگاه‌های دکمه ای استفاده شده عنوان تله‌پورت‌کننده یا ردیاب (گلوبال هپتیکس جئواورب و غیره).
* شتاب سنج کراسبو آرجی‌اِی۳۰۰ یا RGA300 با استفاده از رابط سریال.
* دستگاه‌های گیم‌ترک.
* ایمرژن مایکروسکرایب.
* ماوس اینرسیایی و ماوس رویداد از دانشگاه باهاوس در وایمار.
* اینترسنس آی‌اس۶۰۰ و آی‌اس900 (با استفاده از رابط فسترک افزوده‌شده در هر معماری‌ای).
* ماوس سه بعدی لاجیتک
* مایکروسافت کینکت (دو سرور شبکه پیرامونی واقعیت مجازی مختلف موجود است)
* شرکت تحلیل حرکت (سرور شبکه پیرامونی واقعیت مجازی در سرور فروشنده تعبیه شده است)
* دستگاه ردیابی اینرسیایی موشن‌ند
* سیستم ردیابی نوری اِن‌دی‌آی پولاریس.
* دستگاه بازخورد نیرویی نووینت.
* اوپتی‌ترک موتیو (ابزارهای ردیابی نچرال‌پوینت اوپتی‌ترک سابق) (سرور شبکه پیرامونی واقعیت مجازی در سرور فروشنده ساخته شده است).
* ردیاب اُریجین سیستمز دایناسایت (با بازتابندهٔ منفعل). این درایور همچنین از ردیاب قدیمی در نمایشگر استریوی سی‌ریل دی‌فوردی (SeeReal D4D) پشتیبانی می‌کند.
* کیت توسعه هکری اُاِس‌وی‌آر (OSVR)
* سایر ردیاب‌های اینترسنس (با استفاده از کتابخانه بومی اینترسنس، حتی ردیاب‌های مبتنی بر USB)؛ در حال حاضر بحثی در رابطه با لیست ایمیل شبکه پیرامونی واقعیت مجازی در مورد اینکه آیا موقعیت و اطلاعات جهت‌گیری به‌طور مداوم هنگام استفاده از این رابط بازگردانده می‌شوند وجود دارد.
* سیستم ردیابی نوری پی‌اس‌تک (PS-Tech).
* سیستم ردیابی فیزاسپیس.
* پی‌اِن‌آی اسپیس‌پوینت.
* ردیاب پُلهمُس فسترک و ردیاب‌های ۳اسپیس (3Space) در چندین معماری، ردیاب لیبرتی و لیبرتی‌اچ‌اس حداقل تحت لینوکس. ردیاب پیتریات (Patriot) با استفاده از درایور Liberty پشتیبانی می‌شود. جی۴ پاورترک (G4 Powertrack).
* کنترل‌کننده بازی ریزر هایدرا.
* دستگاه بازخورد نیرویی PHANToM از سِنسِبِل تکنولاجیز (Sensable Technologies).
* ردیاب سنسیکس دی‌سایت (Sensics ).
* ردیاب سنسیکس زدسایت.
* دستگاه سریال پورت جی‌پی‌اس (Serial-port GPS).
* ویکن یا Vicon (سرور شبکه پیرامونی واقعیت مجازی در سرور فروشنده تعبیه شده است).
* ردیاب ویوپوینت آی.
* سیستم ردیابی مغناطیسی وینترکر سوم از ویرچوآل ریلیتیز یا Virtual Realities Ltd.
* ردیابی موقعیت دقیق PPT1.2 از وردویز (WorldViz).
* حسگر یُست لبز ۳اسپیس یا Yost Labs 3Space (و حسگرهای بی‌سیم ۳اسپیس یا 3Space).
* بستر سخت‌افزاری و نرم‌افزاری تعاملی دربرگیرنده زداسپیس یا zSpace (سرور شبکه پیرامونی واقعیت مجازی ساخته شده در سرور فروشنده).

### سایر دستگاه‌ها (لیست بر اساس حروف الفبا)
* دستگاه‌های اسپیس‌موس پرو، اسپیس اکسپلورر و اسپیس‌نویگیتور و مسیریاب نوتبوک‌ها، دستگاه‌های اسپیس‌ترولر و اسپیس‌موس‌وایرلس (دکمه‌ها و آنالوگ دیفرانسیلی 6DOF)
* ردیاب دستکشی 5DT (دستگاهی آنالوگ با پنج مقدار برای انگشتان و پرتاب و گردش). همچنین، دستکش 5DT16 به همراه یک درایور برای تبدیل ۱۶ مقدار آنالوگ به فشار دکمه پشتیبانی می‌شود.
* کنترل‌کننده‌های دکمه‌ای/شماره‌گیر/لغزنده/اهرمکی سیریل‌باکس سیستم‌های B&G متصل به هر دستگاه با قابلیت سرور
* سیستم کنترل حرارتی بایوسایسنسز تولز.
* فایتراستیک از سی‌اچ پروداکتس CH Products
* اهرمک‌های با قابلیت دایرکت اینپوت (از جمله اهرمک‌های بازخورد نیرویی) در ویندوز (به نحوه کار مراجعه کنید). همچنین پک‌های رامبل با قابلیت دایرکت اینپوت در ویندوز.
* کیت درام دریم چیکی با USB.
* دستگاه‌های هولوگرامی هولوگرافیک اقلدیسی شامل میز هولوگرام، اتاق هولوگرام و دیوار هولوگرام
* فرانهوفر آی‌ام‌کا اِی‌دی‌باکس و موس مکعبی فیک‌اسپیس.
* گلوبال هپتیکس جئواورب (Global Haptics GeOrb) (دکمه‌ها و آنالوگ‌ها).
* درایوهای هایدون-کرک آی‌دی‌ای‌اِی، کنترل‌کننده‌های حرکت خطی.
* دستگاه‌های هیلکرست لبز (Hillcrest Labs) از نوع فری‌اسپیس.
* کنترل‌کننده‌های اهرمک شامل: کانتور شاتل‌اکسپرس و فوتابا اینترلینک الیت و گریفین پاورمیت و اکستریم ۳دی پرو از لاجیتک و سایتک اس‌تی۲۹۰ پرو (Saitek ST290 Pro) و سایدویندر پرسیژن ۲ مایکروسافت و سایدویندر مایکروسافت و ایکس باکس اس مایکروسافت (کنترل‌کننده خام روی هر O/S) و ایکس باکس ۳۶۰ مایکروسافت (کنترل‌کننده خام روی هر O/S) و افترگلو Ax1 یا Afterglow Ax1 برای ایکس باکس ۳۶۰ (کنترل‌کننده خام روی هر O/S)
* صفحه کلید در ویندوز
* کنترل‌کننده‌های حرکتی مگلان از لاجیتک و اسپیس‌بال 6DOF
* مراحل LUDL XY از طریق LibUSB.
* دستگاه‌های ماوس در لینوکس (هنگام ورود از کنسول) و ویندوز.
* کارت‌های A/D نشنال اینسترومنتز.
* وی ریموت نینتندو (همچنین به عنوان یک ردیاب عمل می‌کند).
* درایور سریال ان‌آرال ایمرژن‌باکس (پشتیبانی فقط از دکمه‌ها).
* اهرمک‌های دیگر در ویندوز.
* اهرمک‌های کامپیوتری که تحت لینوکس اجرا می‌شوند.
* ردیاب دوربین فیلم‌برداری رادامِک سریال پوزیشن اینترفیس (زوم/فوکوس بدون مقیاس، پایه حرکتی آزمایش نشده).
* رترولینک گیم‌کیوب.
* موس سریالی: دکمه‌های چند مدل از موس‌های سریالی که به یک درگاه سریال متصل هستند.
* دکمه SGI و جعبه‌های شماره‌گیری (در SGI یا ماشین‌های دیگر).
* توتالی نیت گجت (Totally Neat Gadget یا TNG) از مایندتل (MindTel) (دکمه‌ها و آنالوگ‌ها).
* کنترلر بازی ایکس باکس ۳۶۰.
* کنترلر دستی یوان‌سی یا UNC (یا هر دستگاهی با حداکثر ۵ دکمه؛ می‌تواند به درگاهی موازی در جعبه لینوکس یا ویندوز وصل شود. استفاده از آن منسوخ شده است، به جای آن از تی‌ان‌جی۳ یا TNG3 استفاده کنید).
* دستگاه آنالوگ/دکمه ای وندا.
* سرورهای صوتی Win32، بر اساس مایلز اس‌دی‌کا (منسوخ).
* دستگاه‌های ایکس‌کیز از مهندسی پی‌آی: رومیزی، حرفه‌ای، جاگ‌اندشاتل، اهرمک و پدال پا.
* عناصر موقعیت‌یابی خطی

## منابع

## پیوند به بیرون
* صفحه اصلی وی‌آرپی‌ان
* ویکی گیتهاب وی‌آرپی‌ان
* صفحه اصلی سنسیکس (Sensics)
* گروه علوم کامپیوتر در دانشگاه کارولینای شمالی
* صفحه اصلی راسل ام. تیلور دوم

رده:شبکه‌های رایانه‌ای