وهذا بالطبع انتصار خارج المنافسة! ولكن لدينا أيضًا تجربة مثيرة للاهتمام في تصحيح أخطاء روبوت يقع على بعد 2000 كم منا في مرآب للقوارب على الساحل النرويجي. تحت القص ، قصة حول كيفية صنعنا للرؤية وحكمنا "العقول السحابية" للروبوتات أثناء الحجر الصحي عن بُعد:
في الربيع ، صنعنا نموذجًا أوليًا لنظام التحكم عن بعد بالكامل للبث ثلاثي الأبعاد والتدريب بواسطة روبوت على YuMi ذات اليدين ، والتقينا بشركة نرويجية حلها مفيد جدًا بالنسبة لنا لبث دفق ثلاثي الأبعاد من كاميرات Realsense - Aivero. لذلك بعد فترة عمل صعبة ، بدت الخطط صافية: السفر إلى إيطاليا لمدة شهر من الشتاء مع عائلتي ، ومن هناك للسفر إلى معارض الروبوتات في أوروبا وإنهاء كل شيء مع التوقف لمدة أسبوعين في مدينة بها مضايق جميلة في المنطقة المجاورة - ستافنجر ، حيث لمناقشة التكامل ثلاثي الأبعاد برامج الترميز في نظامنا ومحاولة إقناع Aivero بوضع زوج من الروبوتات معًا.
ما الخطأ الذي يمكن أن يحدث في هذه الخطة الرائعة ...
جلست في الحجر الصحي لمدة أسبوعين بعد العودة (ليس بدون حادث) من الإغلاق الإيطالي ، اضطررت إلى التخلص من الغبار من لغتي الإنجليزية المنطوقة والمكتوبة وتنفيذ الجزء الثاني من الخطة بالفعل في Zoom ، وليس في حاشية المضايق.
على الرغم من ذلك ، إليك كيف تبدو. أجبر الحجر الصحي الكثيرين على البدء بجدية في العمل على طرق ممكنة للأتمتة حيث ليس من الصعب استبدال شخص. خاصة بالنسبة للدول الغربية ، حيث يكون الحد الأدنى للأجور أعلى من 1500 يورو ، حيث تكون الروبوتات في العمل اليدوي البسيط ذات صلة حتى بدون الوضع الوبائي الحالي.
نقوم بتوصيل الروبوتات المختلفة
اسمحوا لي أن أذكركم أننا قمنا بتدريب الروبوتات باستخدام سجلات التحكم عن بعد. أولئك. يتصل الروبوت بالإنترنت ، بالسحابة لدينا ويبدأ في إرسال صور ثلاثية الأبعاد وقراءات أجهزة الاستشعار. يستقبل الأوامر وينفذها. في هذا المنطق ، تتمثل مهمتنا في تعليم معالج ML التصرف كمشغل. هناك حاجة إلى الأبعاد الثلاثية لتقديم المشهد في الواقع الافتراضي للمشغل. هذا مناسب ، ويصبح ML أكثر دقة عند الإمساك بالأشياء عندما تكون هناك خريطة عمق.
كما هو مخطط لنا ، يمكننا توصيل مجموعة متنوعة من الروبوتات بسحابة لدينا ، ولكن إنشاء جميع أنواعها بأنفسنا يعد طريقًا شائكًا للغاية. نحن نركز على أدمغتهم ، على التعلم.
نتيجة لذلك ، اتفقنا مع Aivero على إنشاء روبوت عالمي بذراع واحد بعيون ثلاثية الأبعاد من خلال قواها ، دعنا نسميها "وحدة" ، وعلينا أن نفعل كل روبوتات السحابة.
كانت الأولوية هي البساطة وتكلفة الحل للعميل النهائي. وبطبيعة الحال ، براعة. نريد تقليل عتبة الدخول لأتمتة العمل اليدوي البسيط. من الناحية المثالية ، حتى صاحب العمل الصغير الذي ليس لديه مهارات خاصة يمكنه شراء أو تأجير "وحدتنا" ، ووضعها في مكان العمل وإدارتها.
فكرنا لمدة أسبوعين ، واختبرنا الفرضيات لمدة شهرين وهذا ما حدث (نسخة مع Jetson AGX في القاعدة وكاميرا نظرة عامة مختلفة عن تلك الموجودة في العنوان الأول):
وكشاف أقرب:
التركيب:
- جيتسون إن إكس
- 2 كاميرات Realsense ثلاثية الأبعاد (نظرة عامة ، والأخرى لمنطقة العمل)
- بقعة ضوء
- مضخة فراغ إذا لزم الأمر
- ذراع آلية (Eva / UR / ABB YuMi) مزودة بقبضة فراغية أو ميكانيكية
- إنترنت واي فاي أو سلكي
يتم وضع مثل هذا الحامل التلسكوبي المزود بآلة حاسبة ومضخة تفريغ في القاعدة بجوار منطقة عمل الروبوت ، ويتصل بالإنترنت (على سبيل المثال ، عبر رمز الاستجابة السريعة لشبكة WiFi) ، ويبدأ فورًا في حل المهمة بتكوين ضئيل أو بدون تكوين.
هنا يمكنك تقدير التكلفة على الفور. إن الذراع الآلية الأكثر تكلفة من Eva هي 8000 يورو (لم يتم توفيرها في روسيا) ، وسيكلف UR10 بالفعل ما يقرب من 50000 يورو ، ولكن هنا تجدر الإشارة إلى أن UR تدعي موثوقية أكبر بكثير ، لذلك قد لا تكون أكثر تكلفة على المدى الطويل. وهم أصبحوا أرخص في الآونة الأخيرة. باقي المجموعة تكلف حوالي 2000 يورو.
ABB YuMi IRB 14050
لقد تعاملنا سابقًا مع YuMi ذات اليدين ، لكننا هنا جربنا إصدارًا جديدًا من IRB14050 ، وهو في الأساس مجرد يد واحدة مقطوعة.
باختصار ما أعجبني:
- الدقة والاتقان الميكانيكي
- حساسية عالية للتصادم ومخمدات على المفاصل
ولم يعجبه:
- يصعب حل الاصطدامات وحالات الطوارئ عن بُعد
- السفر الزاوي الصغير لبعض المفاصل يجعل المسارات صعبة إلى حد ما بالنسبة للحركات التي تبدو بسيطة ، والتي ليست صعبة على حركيات الأذرع الأخرى ذات التنسيق 6
- قدرة تحمل منخفضة مقارنة مع نظائرها
- يتطلب بالإضافة إلى ذلك تحميل (وفي بعض الأحيان تصحيح الأخطاء) برنامج بلغة البرمجة الخاصة به من ABB ، والذي يعالج أوامر TCP من جهاز كمبيوتر
وليس بإيجاز.
هذا هو المكان الذي قضينا فيه معظم الوقت. وصفة كيفية الإطلاق ليست بسيطة على الإطلاق:
- خذ جهاز ويندوز لأن وإلا فلن تتمكن من تثبيت RobotStudio من ABB.
- https://github.com/BerkeleyAutomation/yumipy RAPID ( ABB) ( , ), python API YuMi IRB 14050 IRB 14000.
- , IRB14000 urdf ROS moveit. IRB14000, IRB14050.
- ROS moveit Python API .
- FlexPendant for OmniCore, .
لكن ، بالطبع ، هذا ليس سوى مسار محتمل لكيفية جعل YuMi يطيع ، وكل الأشياء الصغيرة التي يمكن أن تتعثر فيها لا يجب ذكرها بالطبع.
إيفا
باختصار ما أعجبنا:
- بالطبع السعر
- API بسيطة وموجزة
والعيوب:
- عدم الكشف عن الاصطدام (أعلن في إصدار الخريف)
- دقة تحديد المواقع - لا تزال الشركة المصنعة بحاجة إلى العمل عليها ، لكن لدينا ما يكفي
بالطبع ، سهولة الإدارة تأسر:
pip install evasdk
و
import evasdk
eva = evasdk.Eva(host_ip, token)
with eva.lock():
eva.control_wait_for_ready()
eva.control_go_to([0, 0, 0, 0, 0, 0])
والذراع الروبوتية خارجة! ويؤدي.
لا ، بالطبع ، تمكنا من تجاوز السجلات في وحدة التحكم اليدوية ، وبعد ذلك توقف عن الاستماع. لكن يجب أن نشيد بالمصنع - كان إنشاء قضية في جايتهم كافياً لفهم الأسباب (وأدى إلى مكالمتين مع مجلس بأكمله حول مشاكلنا).
وبشكل عام ، فإن Automata (منتج Eva) رائع! آمل أن يتمكنوا من النمو والتطور في سوق الروبوتات بشكل أكبر ، مما يجعل الروبوتات ميسورة التكلفة وأسهل بكثير مما هي عليه الآن.
أور
احب:
- ميكانيكا ممتازة ودقة عالية
- نطاقات كبيرة من زوايا المفاصل ، مما يجعل تخطيط المسار أسهل بكثير
- يمكن حل الاصطدامات في عارض VNC عن طريق الاتصال بجهاز كمبيوتر الروبوت
- تم تصحيحه جيدًا في البنية التحتية ROS
سلبيات:
- نظام تشغيل قديم على وحدة تحكم UR ، لم تكن هناك تحديثات أمنية لمدة عام ونصف تقريبًا
- لا تزال ليست أحدث طريقة للاتصال ، على الرغم من أنها مغطاة جيدًا بالمكتبات المفتوحة المتاحة
من بيثون ، تتوفر الذراع الآلية في سيناريوهين رئيسيين:
- قم بتثبيت https://github.com/SintefManufacturing/python-urx واستمتع. القائمة أطول قليلاً مما في حالة evasdk ، لذلك لن أعطيها. هناك أيضًا مشكلات توافق معروفة مع الأذرع الروبوتية الجديدة ، بناءً على أداة تعقب المشكلة. شيء يجب تصحيحه أيضًا لنفسك ، tk. لم يتم تنفيذ جميع أنماط الحركة في المكتبة ، ولكن هذه هي التفاصيل الدقيقة.
- “ROS-” (https://github.com/ros-industrial/universal_robot). , ROS , : UR moveit ( ROS, , , ).
نحاول تجنب ROS بسبب يتم تنفيذ جزء من وظائفه (وسيط الرسائل) بواسطة rabbitmq في نظامنا ، وهناك تعقيد خطير لمجموعة التكنولوجيا المستخدمة. لذلك بالنسبة للحالة التي تحتاج فيها إلى تجاوز العقبات ، فإننا نقوم بتغليف ROS في خدمة مصغرة على جانب الخادم.
الآن الحيلة!
لكي تفهم ، UR هي:
أي. يُسمح بأي عطس على لوحة اللمس الخاصة بالروبوت. ومن أجل تعذيب زميلنا من Aivero ليس 5 مرات في اليوم ، القيادة إلى مرآب القوارب ، فأنت بحاجة إلى الوصول إلى هناك عن بُعد بطريقة ما.
اتضح أن وحدة التحكم UR مثبتة على نظام Linux (وبالمناسبة ، ليس أضعف معالج x86).
نكتب ssh IP ... المستخدم: الجذر ، كلمة المرور: easybot.
وأنت على ديبيان ويزي.
لذلك نأخذ خادم VNC ونثبته ونجد أنفسنا السيد الكامل للروبوت! (هنا من الضروري فقط ملاحظة أن Wheezy لم يتم تحديثه لمدة عامين بالفعل ولن تكون قادرًا على أخذ خادم vnc وتثبيته ببساطة بسبب السجلات القديمة. ولكن هناك ارتباط إلى "الملف السحري" الذي يتيح لك القيام بذلك).
بالمناسبة ، قالت شركة Universal Robots ، عندما عرضنا عليها عرضنا التوضيحي ، إن جهاز التحكم عن بُعد هذا يتطلب إجراء شهادة أمان جديدة. عادل بما يكفي. من الغريب جدًا كيف تعمل Smart Robotics مع هذا بشكل عام. لا أستطيع أن أتخيل أن متغيرات الاستهداف من رؤية الكمبيوتر يمكن أن تكون آمنة بنسبة 100٪ للآخرين.
حان الوقت لتعليم الروبوت أن يمسك الصناديق
دعني أذكرك بأننا نعرض ما يجب أن يفعله الروبوت في الواقع الافتراضي:
أولئك. لكل حركة سجلنا كيف بدا المشهد ونوع الأمر ، على سبيل المثال ، هذا:
{“op": "pickup_putdown_box",
"pos1": [441.1884, -112.833069, 151.29303],
"pos2": [388.1267, 91.0179138, 114.847595],
"rot1": [[0.9954941, 0.06585537, -0.06822499], [0.0917332, -0.851038456, 0.517028868], [-0.0240128487, -0.52095747, -0.85324496]],
"rot2": [[0.992139041, 0.102700718, -0.07150351], [0.100485876, -0.99436, -0.0339238755], [-0.0745842, 0.026472155, -0.996863365]],
"calibration": [[-0.01462146, 0.9814359, -0.191232175, 551.115051], [0.9987302, 0.0051134224, -0.0501191653, -6.613386], [-0.0482108966, -0.191722155, -0.9802644, 771.933167]],
"box": [[474.331482, -180.079529, 114.765076], [471.436157, -48.88102, 188.729553], [411.868164, -180.27713, 112.670532], [476.105164, -148.54512, 58.89856]],
"source": "operator"}
بشكل عام ، هذا يكفي لتدريب الشبكات على تحديد المربع المحيط لجسم ما في الفضاء ومكان الإمساك به.
لذا نجلس لمدة نصف ساعة ونبين للروبوت كيفية التوفيق بين 4 أنواع من الصناديق ، نحصل على حوالي 100 مثال. نضغط على الزر السحري ... حسنًا ، بشكل أكثر دقة sudo docker run -e INPUT_S3_FOLDER = ... OUTPUT_S3_FOLDER = ... rembrain / train_all_stages: dev . ودعونا ننام. في الصباح ، يرسل عامل الإرساء رسالة إلى معالج ML لتحديث الأوزان ، وبنفس متقطع (على الرغم من أن الروبوتات تم اختبارها مجانًا من قبل الشركات المصنعة ، إلا أنها تكلف أموالًا طائلة) ، أطلقنا و ...
OOPS ...
يجب أن أقول أنه لم يتضرر روبوت واحد أثناء التصحيح. أعتقد فقط بسبب الحظ المذهل.
في أحد الأيام ، جاء ابني البالغ من العمر عامين وقرر اللعب بجهاز تعقب الواقع الافتراضي. صعد إلى كرسي ، وأخذه من حافة النافذة ... وأرسل UR10 في رحلة لا يمكن تصورها ، ودفع شريط الكاميرا جانبًا ووضع الذراع الآلية في وضع صعب إلى حد ما. لذلك اضطررت إلى إضافة بعض الصمامات إلى الضوابط. وكاميرا المراقبة الثانية ، tk. خلاف ذلك ، في بعض الأحيان لا يكون مرئيًا ببساطة إلى أين ذهبت اليد وما إذا كان من الممكن تحريكها.
وإذا لم تكن مزحة ، فإن دقة الكشف عن مثل هذه الصناديق البسيطة في اختباراتنا تجاوزت 99.5٪ حتى مع عينة تدريب صغيرة من عدة مئات من الأمثلة. لم يعد المصدر الرئيسي للمشاكل هنا هو رؤية الكمبيوتر ، ولكن الصعوبات ذات الصلة: على سبيل المثال ، بعض الحالات الشاذة في الترتيب الأولي للأشياء ، أو التداخل غير المقصود في الإطار. ولكن بعد ذلك نصنع نظامًا تعليميًا مع المشغلين في حلقة ليكونوا جاهزين لأي شيء ، وحل المشكلات دون إشراك أشخاص أحياء في الحال.
خوارزمية أخرى ، حول وجودي في الواجهة الخلفية وفقدان واجهة واجهة المستخدم
bin-picking «bin-stuffing», .. . — . , .
, , . . .. , , . , .
, . , ( , ). - :
, .. , :
Backend
, websocket-, :
, Coordinator . , Rabbit mongoDB, , ( ). , .
, , backend- , ML .
UI
. , UI , . .
AWS console, Yandex console, , , , . .
, .
, -> -> , , , -> , .
, “”. , UX . — . UI robot Console .
bin-picking «bin-stuffing», .. . — . , .
, , . . .. , , . , .
, . , ( , ). - :
, .. , :
Backend
, websocket-, :
, Coordinator . , Rabbit mongoDB, , ( ). , .
, , backend- , ML .
UI
. , UI , . .
AWS console, Yandex console, , , , . .
, .
, -> -> , , , -> , .
, “”. , UX . — . UI robot Console .
ماذا بعد
نقوم بتصوير مقطع فيديو لتركيب الروبوت وإعداده في دقيقتين ، ونجهز المواد للترقية في عدة أنواع من المهام.
في الوقت نفسه ، نحن نبحث عن تطبيقات عملية جديدة بالإضافة إلى اختيار القمامة المفهومة والشائعة (شخصياً ، أحلم باستخدام الروبوتات في موقع البناء).
أعتقد أنه في غضون بضعة أشهر
لذلك كان الحجر الصحي جيدًا!