پردازش زنده یا دادههای ضبطشده: واقعاً چه چیزی به VPN نیاز دارد؟
تصمیم بگیرید کدام کار ربات باید از شبکه بگذرد: نتایج بهموقع، تلهمتری مشاهده یا یک مجموعه داده ضبطشده. سه شرط، سپس فرمانهای bag.
رباتی که یک اتاق دورتر از فایده میافتد، خیلی پیش از آنکه مشکل VPN داشته باشد، مشکل اتصال یا حجم کار دارد. رمزنگاری یک مسیر را محافظت میکند؛ پوشش رادیویی را گسترش نمیدهد و باعث نمیشود محاسبهای دور پایان یابد. تصمیمی که پیش روی شماست این است که کدام کار واقعاً باید از شبکه بگذرد، و این پاسخ معمولاً ترافیک بیشتری از آنچه مردم انتظار دارند حذف میکند. سه شرط آن را روشن میکند و توان عبوری یکی از آنها نیست.
سه چیدمان، یک پرسش درباره وابستگی
جدول چیدمانها را بر اساس آنچه به اتصال وابسته است جدا میکند، نه بر اساس اینکه کدام نرمافزار در نمودار دیده میشود.
| Arrangement | What depends on the link | What stays onboard |
|---|---|---|
| Live remote processing | The exchange and any timely result the workstation returns | Only what the remote step does not block |
| Onboard processing, remote observation | The declared telemetry or display stream | The processing loop itself |
| Local recording, later analysis | Transfer of one selected dataset | The entire run, including raw sensors |
هیچ ردیفی در آن جدول استدلال ایمنی نیست. کارکردهای کنترل و ایمنی هنوز به پاسخ واجد شرایط برای تأخیر، افت بسته و قطع اتصال نیاز دارند و هیچ نشانگر تونلی آن را فراهم نمیکند. جدول میگوید وابستگی کجا زندگی میکند، و این همان بخشی است که طراحی شبکه واقعاً میتواند تغییر دهد.
شرط یکم: آیا پاسخ باید بهموقع باشد؟
اگر نتیجهای دور یک کنترلکننده را تغذیه کند، شبکه درون حلقه کنترل قرار میگیرد و تأخیر، لرزش و قطعیهای آن به ویژگیهای کنترل تبدیل میشوند. اگر همان نتیجه فقط یک نمایشگر، یک داشبورد یا انسانی را که تماشا میکند تغذیه کند، همان تأخیر فقط ظاهری است.
کار حلقه بسته روی اتصال بیسیم ممکن است و بیشتر گزارشهای «VPN کند است» از همانجا میآید، زیرا تونل جزء دیدنی است در حالی که رادیو و مسیریابی علتاند. زمان رفت و برگشت پیام واقعی را اندازه بگیرید، نه ping خود تونل را، و سپس بپرسید آیا عدد در بودجه حلقه جا میشود. وقتی جا نمیشود، گام را به روی ربات منتقل کنید بهجای چانهزنی برای سطح خدمات سختگیرانهتر برای اتصالی که هیچکس در اتاق آن را کنترل نمیکند. عدد اندازهگیریشده را همراه با شرایطی که در آن گرفته شده ثبت کنید، چون گزارش بعدی بدون آنها خواهد رسید.
شرط دوم: چه نرخ، جهت و قطعی را میتوانید اعلام کنید؟
داده، نرخ، جهت و طولانیترین قطعیای را که برنامه تحمل میکند بنویسید. جریان دوربین به سمت بالا و کانال فرمان به سمت پایین به شکلهای متفاوتی از کار میافتند، و قطعیای که یک بازرسی ثابت تحمل میکند یک وظیفه متحرک را پایان میدهد.
هنگام مقایسه گزینهها، اتصال فیزیکی و تونل را جدا نگه دارید، چون رادیوی قویتر و بار کاری کمتر دو تعمیر متفاوتاند. انتقال بزرگی که سرانجام کامل میشود چیزی درباره رسیدن پیوسته یک نتیجه حساس به زمان ثابت نمیکند، و تونل سالم چیزی درباره رادیوی پشت آن ثابت نمیکند.
سپس تقاضا را کم کنید بهجای دفاع از آن. جریان مشاهده را کمنمونه کنید، خلاصهها یا دلتاها را بفرستید و داده خام حسگرها را روی ربات بگذارید، جایی که ذخیرهسازی ارزان است و انتقال نه. بار کوچکتر استدلال بهسود اتصال سریعتر را تضعیف میکند و اغلب نیاز به آن را برمیدارد.
شرط سوم: چه کسی باید آن را ببیند، و چه چیزی محلی میماند
مشاهده معمولاً نیاز بسیار کوچکتری از پردازش است. اگر انسانی باید دوربین را ببیند و بعداً باید یک گزارش وجود داشته باشد، این تلهمتری بهعلاوه ذخیرهسازی است؛ اگر مدلی باید اجرا شود، اول بپرسید آیا میتواند روی ربات اجرا شود و فقط نتیجهاش ارسال شود. انتقال گام سنگین به روی ربات وابستگی همگام را حذف میکند و انتقالی باقی میگذارد که میتوان دوباره امتحان کرد.
وجود دو مشارکتکننده ROS روی یک ربات بهخودیخود تونل را توجیه نمیکند. دسترسپذیری گره، مجوز برنامه و برنامه بازیابی محلی مسائل جداگانهای هستند، و یک VPN فقط به اولی پاسخ میدهد، آن هم فقط برای ترافیکی که از آن خواسته میشود مسیریابی کند.
ضبط یک مجموعه داده طراحی جداگانهای با فرمانهای خودش است
برای نمونهای وابسته به نسخه، آموزش ضبط در ROS 2 Jazzy ضبط موضوعهای انتخابشده، بررسی bag حاصل و پخش دوباره آن را پوشش میدهد. موضوعهای مشاهده تأییدشده را ضبط کنید، به اجرا نام بدهید و تعریفهای پیام و پیکربندی را کنار آن نگه دارید.
ros2 bag record -o run42 /scan /camera/image_raw
ros2 bag info run42
ros2 bag play run42
هر موضوعی را فقط به این دلیل که ابزار آسان میکند ضبط نکنید. فضای ذخیرهسازی پر میشود، داده دوربین و موقعیت حساسیت دارند، و bagی با موضوعهای بدون برچسب برای هر کسی که بار بعد بازش کند یک مسئله تحلیلی است. توزیع مستقرشده فرمانها را هم تعیین میکند: ابزارهای نوشتهشده برای bag نسخه ROS 1 به bag نسخه ROS 2 منتقل نمیشوند، پس مستندات را با نسخه نصبشده روی ربات هماهنگ کنید.
پخش دوباره را در محیط تحلیل یا شبیهسازی جداشده انجام دهید. پخش موضوعهای فرمان ضبطشده در محرکهای یک ربات زنده یک حادثه است و پیشگیری آن دامنه ROS جداگانه یا نبود هیچ سختافزاری در حلقه است.
تصمیم بگیرید وابستگی به کجا تعلق دارد و آن را بنویسید: VPN از تبادلی محافظت میکند که باید رخ دهد، پردازش روی ربات تبادلی را حذف میکند که هرگز لازم نبود همگام باشد، و مجموعه داده ضبطشده مصرفکننده زنده را با مصرفکنندهای دیرتر جایگزین میکند. سپس پیش از آنکه کسی طراحی را تمامشده اعلام کند، حالت قطعشده را عمداً آزمایش کنید، در حالی که کار محلی هنوز در جریان است.