مفهوم
هل سبق لك أن تعرضت لمثل هذا الشيء حتى أنك بعد مغادرة المنزل لا تتذكر ما إذا كنت قد أوقفت المكواة؟ عند مناقشة حالة أخرى من هذا القبيل مع صديق ، ظهرت فكرة هزلية تصنع روبوتًا للفحص البصري عن بُعد للأعمال المنزلية. وبشكل عام أردت صنع روبوت "جاسوس" يتم التحكم فيه بواسطة كاميرا من هاتف ذكي على ركبتي. لقد ابتكرنا هذه الفكرة لفترة طويلة ، لكننا وضعنا أيدينا عليها الآن فقط. وذهبنا على الفور إلى أقرب شريط للمناقشة. ليس من الصحيح تمامًا تسميته روبوتًا. بدلاً من ذلك ، إنها منصة ذاتية الدفع مع التحكم في القياس عن بُعد عبر الإنترنت. لكن المقالة ستستخدم مصطلح "روبوت" لمجرد أنه مألوف أكثر.
تناسبنا تقنية WebRTC تمامًا ، نظرًا لأنه من السهل جدًا تنظيم نقل قنوات الفيديو والصوت والبيانات بين نظيرين بأقل تأخير في الإشارة. ولم تكن لدينا خبرة في هذه التكنولوجيا ، لذلك أردنا حقًا تجربتها.
يظهر رسم تخطيطي مبسط للنظام بأكمله في الشكل. المستخدم - المشغل والروبوت - يدخل كل من Raspberry PI صفحة الويب الخاصة به ، ويتصل بخادم الإشارة ، وبعد ذلك يتم إنشاء جلسة WebRTC بينهما يتم من خلالها نقل دفق الفيديو من الروبوت إلى المستخدم ، ويتم نقل إشارات التحكم إلى الروبوت. علاوة على ذلك ، يرسل الروبوت إشارات تحكم إلى مضيفه المحلي ، حيث تقوم خدمة أخرى بمعالجتها وإخراجها إلى GPIO للتحكم في المحركات. كل شيء يبدو بسيطًا. إليكم ما حصلنا عليه في هذه المرحلة:
بعد ذلك ، سنتعامل مع كل هذا بمزيد من التفصيل.
مكونات
, . , . , .
Raspberry Pi (3b 4), , OS Raspbian. , OpenCV, .. , .
()
- ( ), FPS . Logitech QuickCam Connect Logitech C270 12$. Raspicam, .
— — , -, . . , :
, .
, . .
Raspberry Pi . 3.7 DC-DC MT3608, , “”. - . Samsung. , . power- Xiaomi , - . Raspbery Pi4.
L9110, DC-DC , L293N. , . .
, "", -. “” 1$. Power- , . , Raspberry Pi. . , . , . -. - power-.
, , . . JavaScript Python. . , .
NodeJS . :
, .
, .. -.
SignalEmitter. . id - , isControl - . signalServer - uri . .
const se = new SignalEmitter({
id: searchParams.get('id'),
isControl: false,
signalServer: config.signalServer
});
WebRTC
RTC. - options SignalEmitter, . isControl - . platformSocket - uri localhost' .
const webrtc = new RTC({
isControl: false,
platformSocket: config.platformSocket},
se);
Vue.js, . /public. :
Selenium
, Selenium WebDriver + geckodriver headless . , robot-signal-server/selenium/index.js. , . , . /etc/network/if-up.d/ .
Python. - websocket , GPIO. , : [0…+-1, 0…+-1] JSON. .. , , -1 +1 0.01. , - . (. GItHub )
, . production- - , . , . .
3/4/5G , . :