MarkTechPost آموزش گام‌به‌گامی منتشر کرده که موتور ریتارگتینگ IsaacTeleop — چارچوب انویدیا برای تبدیل داده‌های ردیابی دست و کنترلر حرکتی به فرمان ربات — را بدون هیچ هدست، بدون OpenXR و بدون شبیه‌ساز اجرا می‌کند. تمام ورودی‌ها به‌صورت مصنوعی در NumPy ساخته می‌شوند و کل خط روی CPU سادهٔ یک نوت‌بوک Colab کار می‌کند.

ساختار بسته و نسخهٔ مورد استفاده#

بسته با دستور pip install isaacteleop[retargeters-lite]==1.4.145 از PyPI نصب می‌شود. بخش retargeters-lite فقط SciPy اضافه می‌کند. بسته به سه لایه تقسیم می‌شود: ماژول‌های I/O دستگاه که OpenXR و CloudXR را می‌پوشانند، ماژول schema که انواع پیام FlatBuffer را نگه می‌دارد، و موتور ریتارگتینگ خالص پایتون که در این آموزش مورد استفاده قرار می‌گیرد.

سیستم تایپ و قرارداد داده#

هر گره در گراف ریتارگتینگ از یک قرارداد تایپ به نام TensorGroupType استفاده می‌کند: لیست مرتبِ اسلات‌های تایپ‌شده. دو تایپ اصلی ورودی:

  • HandInput: چهار آرایهٔ NumPy برای ۲۶ مفصل دست OpenXR (شامل WRIST، PALM، و پنج مفصل برای هر انگشت)
  • ControllerInput: چهارده اسلات برای پوز، دکمه‌ها و محورها

نوشتن آرایهٔ float64 در اسلاتی که float32 اعلام شده، در لحظهٔ نوشتن خطا می‌دهد. خواندن اسلاتی که هیچ‌کس ننوشته، به‌جای بازگرداندن دادهٔ کهنه، استثنا برمی‌گرداند. OptionalTensorGroup ورودی‌هایی را که ردیاب ممکن است ارسال نکند علامت‌گذاری می‌کند؛ یک نوشتن، وضعیت را از «غایب» به «حاضر» تغییر می‌دهد — همین مکانیزم به گره‌های downstream می‌فهماند که دستی از حجم ردیابی خارج شده.

مسیر کامل آموزش#

آموزش از تولید دادهٔ مصنوعی دست و کنترلر شروع می‌شود، ریتارگتر شخصی با پارامترهای قابل تنظیم زنده می‌نویسد، ریتارگرهای داخلی gripper و SE(3) را با آن هدایت می‌کند، گراف کاملی می‌سازد که در هر گام یک بردار عملیات تولید می‌کند، تبدیل چارچوب جهانی را اعمال می‌کند، ماشین حالت را متوقف و خاتمه می‌دهد، و در نهایت نگاشت کنترلر-به-دست-چندانگشتی و ماندگاری پارامترها بین ری‌استارت‌ها را پوشش می‌دهد.

خوانش تحریریه#

این آموزش یک نکتهٔ عملی مهم دارد: موتور ریتارگتینگ IsaacTeleop از نظر معماری به سخت‌افزار XR وابسته نیست. اگر کسی در حال ساخت ایجنت رباتیک است و می‌خواهد منطق تبدیل pose به action را قبل از اتصال هدست یا ربات واقعی تست کند، می‌تواند تمام گراف را با آرایه‌های NumPy دستی شبیه‌سازی کند. این برای دیباگ کردن و تنظیم پارامترها قبل از deploy ارزش دارد. اما این به‌معنای حذف نیاز به دادهٔ واقعی ردیابی نیست — صرفاً لایهٔ تبدیل را از لایهٔ ورودی جدا می‌کند. نسخهٔ ۱.۴.۱۴۵ عدد پایداری به نظر می‌رسد، ولی retargeters-lite فقط SciPy اضافه می‌کند؛ اگر به الگوریتم‌های ریتارگتینگ سنگین‌تر نیاز دارید، باید بخش‌های دیگر بسته را هم بررسی کنید.

منبع: MarkTechPost