تقرر برمجيات تنسيق الروبوتات المتعددة (orchestration) أي روبوت ينفذ أي مهمة، وبأي ترتيب، وكيف تتشارك عدة روبوتات الممرات والأبواب والمصاعد والشواحن دون أن يعرقل بعضها بعضًا. وإذا أردت تعريفًا في سطر واحد، فهي بمثابة مُوزِّع المهام لمجموعة من الروبوتات: تحوّل قائمة من الأعمال إلى خطة تستطيع آلات كثيرة تنفيذها في الوقت نفسه.
قد يبدو ذلك شبيهًا بإدارة الأسطول، وكثيرًا ما يُخلط بين الاثنين. فأداة إدارة الأسطول تخبرك بما تفعله روبوتاتك. أما التنسيق فيقرر ما يجب أن تفعله بعد ذلك، ولهذا يحتاج إلى معرفة أشياء أكثر بكثير من مواقع الروبوتات.
باختصار
- يشمل التنسيق ثلاث وظائف: توزيع المهام، وحجز المساحات والموارد المشتركة، وضبط توقيت التسليم بين الروبوتات.
- التحكم المركزي يجد خططًا أفضل، والتحكم اللامركزي يصمد أكثر أمام انقطاع الشبكة. ومعظم المواقع الفعلية تمزج بين الاثنين.
- مراقبة الأسطول وتنسيقه مشكلتان مختلفتان، ومواقع كثيرة تحتاج إلى الاثنين معًا.
- تحتاج الروبوتات أيضًا إلى سياق من الأبواب والمصاعد ومستشعرات الموقع، وكل أمر يعبر بين مصنّعين وبروتوكولات مختلفة يُختبر باستجابات محاكاة قبل تشغيله فعليًا.
كيف يعمل التنسيق بين الروبوتات المتعددة؟
ينقسم التنسيق بين الروبوتات المتعددة إلى ثلاث مشكلات تحلها برمجيات التنسيق باستمرار، وغالبًا عدة مرات في الثانية.
توزيع المهام يحدد أي روبوت يتولى أي مهمة. وأبسط طريقة ترسل كل مهمة جديدة إلى أقرب روبوت متاح. حسابها سريع وغالبًا ما تكون كافية، لكنها قد تتخذ خيارات سيئة عندما تصل عدة مهام معًا. لنأخذ روبوتين متاحين ومهمتين تصلان في اللحظة نفسها، مع أزمنة التنقل التالية إلى كل نقطة استلام:
| المهمة 1 | المهمة 2 | |
|---|---|---|
| الروبوت A | 3 دقائق | دقيقتان |
| الروبوت B | 4 دقائق | 9 دقائق |
إذا عولجت المهمة 1 أولًا، فإن قاعدة «أقرب روبوت» تسندها إلى الروبوت A (3 دقائق) وتترك المهمة 2 للروبوت B (9 دقائق): أي 12 دقيقة من التنقل دون حمولة، وتنتظر المهمة 2 روبوتها 9 دقائق. أما عند النظر إلى المهمتين معًا، فتذهب المهمة 1 إلى B (4 دقائق) والمهمة 2 إلى A (دقيقتان): أي 6 دقائق من التنقل دون حمولة، أي النصف. وبرمجيات التنسيق التي توزع المهام على دفعات، بدلًا من مهمة واحدة في كل مرة، تجد الخطة الثانية. ومع عشرات الروبوتات والمهام، تتراكم هذه الوفورات في التنقل دون حمولة على امتداد الوردية.
حجز الموارد يمنع الروبوتات من المطالبة بالمساحة نفسها. فالبرمجيات تتعامل مع الممرات الضيقة والتقاطعات ومقصورات المصاعد ونقاط الشحن ومحطات الرسو بوصفها موارد لا يشغلها إلا روبوت واحد في كل مرة. يطلب الروبوت المنطقة التالية على مساره، فيحصل عليها أو ينتظر، ثم يحررها بعد مغادرتها. والحالة التي يجب التخطيط لها هي الجمود المتبادل (deadlock): ينتظر الروبوت A منطقة يشغلها الروبوت B، بينما ينتظر B المنطقة التي يشغلها A. ولن يتحرك أي منهما أبدًا. وتراقب برمجيات التنسيق دورات الانتظار هذه وتفكّها، مثلًا بإعادة أحد الروبوتات إلى نقطة تجاوز.
المزامنة تتولى العمل الذي يعتمد على روبوت آخر. فإذا ترك روبوت عربة عند محطة وكان على روبوت ثانٍ أن يكمل نقلها، فلا ينبغي للثاني أن يتجه إلى المحطة قبل أن يبلّغ الأول بأنه أنزل العربة. وإذا اختل التوقيت، فستجد روبوتات تنتظر بلا عمل عند المحطات، أو روبوتات تصل إلى محطة فارغة.
وتتغير المشكلات الثلاث كلما حدث شيء جديد، ولهذا يعمل التنسيق باستمرار لا مرة واحدة في كل وردية. فقد تصل مهمة عاجلة بينما كل الروبوتات مشغولة، وعلى البرمجيات أن تقرر هل تسحب روبوتًا من عمل أقل أولوية أم تترك المهمة العاجلة تنتظر. والإفراط في إعادة التخطيط يسبب مشكلات خاصة به: فإذا تغير توزيع المهام كل بضع ثوانٍ، تتنقل الروبوتات ذهابًا وإيابًا بين الوجهات وتنجز عملًا أقل في المحصلة. وبرمجيات التنسيق الجيدة تتيح لك تحديد أولويات لكل نوع من المهام، وعتبة تحدد متى تستحق خطة أفضل ما يسببه التحول إليها من إرباك.
التحكم المركزي أم اللامركزي في الروبوتات المتعددة؟
هناك طريقتان أساسيتان لتنظيم التحكم في الروبوتات المتعددة.
في النظام المركزي، يرى مخطِّط واحد كل الروبوتات والمهام والحجوزات، ويرسل إلى كل روبوت تعليماته. وهو ينتج خططًا أفضل، مثل التوزيع على دفعات في المثال السابق، ويسهل توقع سلوكه والتحقق منه لأن كل القرارات تُتخذ في مكان واحد. والثمن هو الاعتماد على هذا المخطِّط: فإذا تعطل المخطِّط أو الشبكة، تُنهي الروبوتات حركتها الحالية ثم تنتظر. كما يزداد وقت التخطيط مع حجم الأسطول، لذا تحتاج الأساطيل الكبيرة جدًا إلى هندسة دقيقة.
وفي النظام اللامركزي، تنسق الروبوتات فيما بينها. فقد تتنافس على المهام في مزاد صغير، يعرض فيه كل روبوت تكلفته التقديرية ويفوز صاحب العرض الأقل، أو تتبع قواعد مشتركة لأولوية المرور عند التقاطعات. وهذا النظام يصمد أمام الانقطاعات ويتوسع جيدًا، لكن النتيجة الإجمالية أصعب توقعًا، وإثبات أن مجموعة من الروبوتات المستقلة لن تقع أبدًا في جمود متبادل مشكلة صعبة. ويُظهر مزاد صغير الجانبين معًا. تظهر مهمة جديدة، وتقدم ثلاثة روبوتات عروضًا بـ4 و6 و11 دقيقة. يفوز الروبوت الذي عرض 4 دقائق، وهو خيار معقول، لكن إذا كان هذا الروبوت سيصبح بعد قليل الوحيد القادر على الوصول إلى مهمة أكثر إلحاحًا، فلم يكن أحد في المزاد يعلم بذلك.
وينتهي الأمر بمعظم المواقع العاملة إلى نظام هجين. فمدير الأسطول الخاص بكل شركة مصنعة ينسق روبوتاتها بالتفصيل، وطبقة تنسيق فوقه توزع العمل عبر العلامات التجارية وتدير الموارد التي تتشاركها. وقد نشرت مجموعات صناعية واجهات لتسهيل ذلك: فمعيار التشغيل البيني من MassRobotics، الصادر عام 2021، يحدد رسائل JSON تتبادل فيها روبوتات متنقلة من شركات مختلفة مواقعها ووجهاتها، بحيث يستطيع نظام أحد الروبوتات على الأقل أن يرى روبوتات نظام آخر.
ما استخدامات أنظمة الروبوتات المتعددة؟
نظام الروبوتات المتعددة هو أي مجموعة من الروبوتات تعمل نحو أهداف مشتركة، واستخداماته أوسع من المستودعات.
- في المستودعات، تحضر مجموعات من الروبوتات الرفوف إلى عمال تجهيز الطلبات، وتنقل المنصات النقالة بين المناطق، وتمسح المخزون ليلًا.
- في المستشفيات، تنقل الروبوتات البياضات والوجبات والمستلزمات وعينات المختبر بين الأقسام، وغالبًا ما تتشارك الممرات والمصاعد مع المرضى والطاقم.
- في التصنيع، توصل الروبوتات القطع إلى خط الإنتاج، وتنقل المنتجات النهائية من الخط، وتنقل مجموعات القطع بين محطات العمل.
- في المباني الكبيرة والمجمعات، تغطي روبوتات التنظيف والدوريات الطوابق وفق جداول يجب أن يتجنب فيها بعضها بعضًا، وأن تتجنب الأشخاص الذين يستخدمون المكان.
- في الزراعة، تقسّم عدة روبوتات حقلية الحقل إلى شرائط حتى ينتهي العمل خلال الفترة التي يسمح بها الطقس.
ويميز الباحثون تمييزًا مفيدًا بين التنسيق والتعاون بين الروبوتات. فالروبوتات المنسَّقة تتشارك المساحة وتقسّم العمل، لكن كل روبوت يؤدي مهمته الخاصة. أما الروبوتات المتعاونة فتعمل معًا بشكل مادي، كروبوتين يرفعان حمولة أطول من أن يحملها روبوت واحد. وتُعنى برمجيات التنسيق التجارية اليوم في الغالب بالنوع الأول؛ أما التعاون المادي الوثيق فيجري عادةً داخل نظام مورّد واحد، حيث تتشارك الروبوتات البرمجيات والتوقيت.
كيفية محاكاة نظام متعدد الروبوتات
نادرًا ما تظهر مشكلات التنسيق مع روبوتين في فترة هادئة بعد الظهر، بل تظهر في ذروة الضغط، أو في ممر ضيق واحد، أو حين يخرج مصعد من الخدمة خلال ساعة مزدحمة. ولهذا تحاكي الفرق عادةً نظام الروبوتات المتعددة قبل وصول الروبوتات أو قبل إضافة المزيد منها. فمحاكيات الروبوتات، مثل Gazebo مفتوح المصدر أو أدوات المحاكاة التي يوفرها كثير من مورّدي الروبوتات، تنمذج مخطط الأرضية وسرعات الروبوتات ومعدلات وصول المهام، ثم تشغّل وردية كاملة في دقائق.
والأسئلة المفيدة للمحاكاة أسئلة محددة. كم روبوتًا تحتاج ساعة الذروة قبل أن تتوقف أزمنة انتظار المهام عن الانخفاض؟ أين تتراكم الحجوزات، وهل يتسبب تقاطع واحد في معظم الانتظار؟ ماذا يحدث للطابور عندما يتعطل مصعد لمدة ساعة؟ هل تتعافى الخطة من تلقاء نفسها بعد انقطاع الشبكة لثلاثين ثانية، أم تبقى الروبوتات متوقفة حتى يتدخل أحد؟
محاكاة الروبوتات تغطي الحركة. أما الربط بالأبواب والمصاعد والإنذارات وأنظمة الموقع الأخرى فيحتاج إلى اختبار خاص به، لأن هذه هي الأجزاء التي لا ينمذجها محاكي الروبوتات عادةً.
الفرق بين تنسيق الروبوتات المتعددة وإدارة الأسطول
أسهل طريقة لرؤية الفرق هي وضعهما جنبًا إلى جنب:
| إدارة الأسطول | تنسيق الروبوتات المتعددة | |
|---|---|---|
| السؤال الرئيسي | ماذا تفعل روبوتاتي؟ | ماذا يجب أن يفعل كل روبوت بعد ذلك؟ |
| المخرجات المعتادة | الحالة، والبطارية، والأعطال، والسجل، والتقارير | إسناد المهام، والحجوزات، وتوقيت التسليم |
| النطاق المعتاد | غالبًا روبوتات مورّد واحد | عبر عدة مورّدين، وغالبًا عبر أنظمة الموقع |
| عند غيابه | تكتشف المشكلات متأخرًا | تنتظر الروبوتات، أو تتكدس في الطوابير، أو تكرر العمل نفسه |
ويحتاج التنسيق أيضًا إلى حقائق من خارج الأسطول. يُغلق باب الحريق حين يأمر نظام الإنذار بذلك. يخرج مصعد من الخدمة. يبلّغ مستشعر في محطة عن عربة تنتظر الاستلام. يُفتح باب رصيف التحميل وتكون الشاحنة جاهزة. لا شيء من ذلك يأتي من الروبوتات، ومع ذلك تغيّر كل واحدة منها قرار أي روبوت يذهب وإلى أين.
وهذا السياق المشترك هو الطبقة التي يوفرها Kilo. فهو يربط مستشعرات الموقع والروبوتات التي تقبل الأوامر عبر MQTT بالقواعد نفسها، بحيث تستطيع قراءة من مستشعر المحطة أن تبدأ قاعدة ترسل إلى روبوت أمر «اذهب إلى المحطة» المُعدّ مسبقًا، بينما يسجل Kilo حالة الأمر: Delivered أو Confirmed أو Failed. وتحتفظ الروبوتات بأنظمة الملاحة والسلامة الخاصة بها. وقبل اختيار الأدوات، اكتب قائمة بالأبواب والمصاعد ومستشعرات المحطات التي سيحتاج التنسيق في موقعك إلى تلقي معلوماتها، وأيها يرسل بياناته بالفعل إلى مكان ما، لأن هذه هي الأجهزة التي ستنقل حالة الموقع إلى الذكاء الاصطناعي المادي، حيث تتشارك المستشعرات والآلات والروبوتات السياق.
ولأن هذه الأوامر تعبر بين مصنّعين وبروتوكولات مختلفة، يمكن تتبع تنفيذ كل قاعدة خطوة بخطوة في مصحح الأخطاء في Kilo مع محاكاة رد الروبوت قبل نشرها.
أسئلة شائعة حول برمجيات تنسيق الروبوتات المتعددة
كيف تقارن بين مزودي برمجيات تنسيق الروبوتات المتعددة؟
ابدأ بروبوتاتك أنت: اسأل كل مورّد عن طرازات روبوتاتك التي يدعم تكاملها بالفعل، وعبر أي واجهة، مثل واجهة API خاصة بالمورّد أو VDA 5050 أو معيار MassRobotics. ثم اسأل كيف يتعامل مع الجمود المتبادل وانقطاعات الشبكة والأبواب والمصاعد. وقد تمنحك قائمة بشركات برمجيات تنسيق الروبوتات المتعددة، أو تصنيف لأفضل منصات تنسيق الروبوتات المتعددة لعام 2025، أسماء تتواصل معها، لكن التجربة على أرض موقعك وحدها تُظهر مدى صمود الخطط.
هل برمجيات تنسيق الروبوتات المتعددة هي نفسها نظام إدارة المستودعات (WMS)؟
لا. فنظام إدارة المستودعات يتابع المخزون والطلبات ويقرر ما الذي يجب نقله. أما برمجيات تنسيق الروبوتات فتقرر أي روبوت ينقله ومتى. ويتبادل النظامان المهام وتأكيدات التنفيذ، وكثير من المواقع تشغّل الاثنين معًا.
كم روبوتًا تستطيع برمجيات تنسيق الروبوتات المتعددة إدارته؟
يذكر المورّدون أحجامًا للأساطيل، لكن العدد أقل أهمية من كثافة الحركة. فقد يكون تنسيق خمسين روبوتًا موزعة على مستودع كبير أسهل من تنسيق خمسة عشر روبوتًا تتشارك ممرين ضيقين ومصعدًا واحدًا، لأن ما يحدد عبء التخطيط هو عدد الروبوتات التي تتنافس على المناطق نفسها في الوقت نفسه. ونتائج موقع يشبه تخطيطه تخطيط موقعك تخبرك أكثر مما يخبرك به أكبر أسطول شغّله المورّد.
هل تحتاج أنظمة الروبوتات المتعددة إلى Wi-Fi أو شبكة 5G؟
تحتاج إلى شبكة لاسلكية موثوقة تغطي كل منطقة تتحرك فيها الروبوتات، وWi-Fi هو الخيار الأكثر شيوعًا. والتنقل السلس بين نقاط الوصول مهم، لأن الروبوت الذي يفقد اتصاله في منتصف الممر قد يتوقف وينتظر. وتستخدم بعض المصانع الكبيرة شبكات 5G خاصة للحصول على تغطية يمكن التنبؤ بها أكثر.
يمكن لجهاز محاكى يقبل أمر «اذهب إلى المحطة» أن يحل محل الروبوت قبل ربط أي روبوت حقيقي. اقرنه بمستشعر محطة محاكى، وأنشئ قاعدة واحدة ترسل الروبوت البديل إلى المحطة عندما يبلّغ المستشعر عن عربة تنتظر؛ والجهازان والقاعدة الواحدة ضمن حدود خطة Kilo المجانية. أرسل قراءة واحدة عند الطلب لتفعيل القاعدة، ثم افتح سجل الأوامر لترى كيف استجاب الروبوت البديل. وعندما يُركَّب مستشعر محطة حقيقي، يأخذ مكان المستشعر المحاكى، وتواصل القاعدة عملها دون تغيير.