ROBOWORKS Robofleet Orin Nano x3 ROS Robot 

ROBOWORKS Robofleet Orin Nano x3 ROS Robot

ملخص

يشرح هذا المستند بشكل أساسي استخدام حزمة وظائف تشكيل الروبوتات المتعددة المسماة wheeltec_multi.

وتنقسم هذه الوثيقة إلى أربعة أجزاء:

  • الجزء الأول يدور بشكل رئيسي حول مقدمة طريقة تشكيل الروبوتات المتعددة؛
  • يصف الجزء الثاني بشكل أساسي إعدادات اتصال ROS متعدد الأجهزة، بما في ذلك إنشاء ROS للاتصال متعدد الأجهزة والمشكلات التي قد تتم مواجهتها في عملية اتصال ROS؛
  • يصف الجزء الثالث بشكل أساسي خطوات تشغيل مزامنة الوقت المتعددة الأجهزة؛
  • يشرح الجزء الرابع الاستخدام المحدد لحزمة وظائف التشكيل متعدد الآلات.

الغرض من هذه الوثيقة هو مقدمة للنظام الآلي متعدد الوكلاء ويسمح للمستخدم ببدء مشروع تشكيل الروبوتات المتعددة بسرعة.

مقدمة إلى خوارزميات الوكلاء المتعددين

خوارزميات تشكيل الوكلاء المتعددين

تمثل حزمة ROS هذه مشكلة نموذجية تتمثل في تعدد الوكلاء في التحكم التعاوني أثناء حملة التشكيل. يضع هذا البرنامج التعليمي الأساس للتطوير المستقبلي حول هذا الموضوع. تشير خوارزمية التحكم في التشكيل إلى خوارزمية تتحكم في وكلاء متعددين لتشكيل تشكيل محدد لأداء مهمة. يشير التعاون إلى التعاون بين وكلاء متعددين باستخدام علاقة قيد معينة لإكمال المهمة. خذ محرك تشكيل الروبوتات المتعددة كمثالampلو، التعاون يعني أن الروبوتات المتعددة تشكل التشكيل المطلوب معًا. جوهرها هو وجود علاقة رياضية معينة بين مواقف كل روبوت. تنقسم طرق التكوين بشكل أساسي إلى التحكم المركزي في التكوين والتحكم في التكوين الموزع. تتضمن طرق التحكم في التشكيل المركزي بشكل أساسي طريقة الهيكل الافتراضي وطريقة النظرية الرسومية والطريقة التنبؤية للنموذج. تتضمن طرق التحكم في التشكيل الموزع بشكل أساسي طريقة القائد والأتباع والطريقة القائمة على السلوك وطريقة الهيكل الافتراضي.

تطبق حزمة ROS هذه طريقة القائد والتابع في طريقة التحكم في التشكيل الموزع لتنفيذ محرك التشكيل متعدد الروبوتات. يتم تعيين أحد الروبوتات في التشكيل كقائد، ويتم تعيين الروبوتات الأخرى كعبيد لمتابعة القائد. تستخدم الخوارزمية مسار حركة الروبوت الرائد لتعيين الإحداثيات التي سيتم تتبعها بواسطة الروبوتات التالية باتجاه وسرعة معينة. من خلال تصحيح انحرافات الموقع عن إحداثيات التتبع، سيعمل المتابعون في النهاية على تقليل الانحراف بين المتابع وإحداثيات التتبع المتوقعة إلى الصفر لتحقيق أهداف حملة التشكيل. بهذه الطريقة، تكون الخوارزمية أقل تعقيدًا نسبيًا.

خوارزميات تجنب العوائق

إحدى خوارزميات تجنب العوائق الشائعة هي طريقة المجال الاصطناعي المحتمل. تعتبر حركة الروبوت في بيئة مادية بمثابة حركة في مجال قوة اصطناعية افتراضية. يتم تحديد أقرب عائق بواسطة LiDAR. يوفر العائق مجال قوة تنافر لتوليد قوة تنافر للروبوت وتوفر نقطة الهدف مجال جاذبية لتوليد قوة جاذبية للروبوت. وبهذه الطريقة، فإنه يتحكم في حركة الروبوت تحت تأثير التنافر والجذب المشترك.

تعد حزمة ROS هذه عبارة عن تحسين يعتمد على طريقة المجال الاصطناعي المحتمل. أولاً، تقوم خوارزمية التكوين بحساب السرعة الخطية والزاوية للتابع التابع. ثم يزيد أو ينقص السرعة الخطية والزاوية وفقًا لمتطلبات تجنب العوائق. عندما تكون المسافة بين التابع التابع والعائق أقرب، تكون قوة تنافر العائق أمام التابع التابع أكبر. وفي الوقت نفسه فإن تغير السرعة الخطية وتغيرات السرعة الزاوية أكبر. عندما يكون العائق أقرب إلى مقدمة التابع التابع، يصبح تنافر العائق أمام التابع أكبر (التنافر الأمامي هو الأكبر والتنافر الجانبي هو الأصغر). ونتيجة لذلك، فإن الاختلافات في السرعة الخطية والسرعة الزاوية أكبر. من خلال طريقة المجال الاصطناعي المحتمل، فإنه يحسن الحل

عندما يتوقف الروبوت عن الاستجابة أمام أي عائق. وهذا يخدم غرض تجنب العوائق بشكل أفضل.

إعداد الاتصالات متعددة الوكلاء

يعد الاتصال متعدد الوكلاء إحدى الخطوات الأساسية لإكمال تشكيل الروبوتات المتعددة. عندما تكون المواقع النسبية للروبوتات المتعددة غير معروفة، تحتاج الروبوتات إلى مشاركة معلومات بعضها البعض من خلال الاتصال لتسهيل إنشاء الاتصالات. تعتبر بنية ROS الموزعة واتصالات الشبكة قوية جدًا. إنه ليس مناسبًا للاتصال بين العمليات فحسب، بل أيضًا للتواصل بين الأجهزة المختلفة. من خلال الاتصال بالشبكة، يمكن تشغيل كافة العقد على أي جهاز كمبيوتر. يتم إكمال المهام الرئيسية مثل معالجة البيانات على الجانب المضيف. الآلات التابعة مسؤولة عن تلقي البيانات البيئية التي يتم جمعها بواسطة أجهزة استشعار مختلفة. المضيف هنا هو المدير الذي يقوم بتشغيل العقدة الرئيسية في ROS. إطار الاتصال الحالي متعدد الوكلاء يتم من خلال مدير العقدة ومدير المعلمات للتعامل مع الاتصالات بين الروبوتات المتعددة.

إعداد اتصال متعدد الوكلاء

خطوات إعداد اتصالات متعددة الوكلاء

قم بإعداد عناصر تحكم ROS في نفس الشبكة

هناك طريقتان لإعداد عناصر تحكم ROS الرئيسية/التابعة ضمن نفس الشبكة.

الخيار 1:

يقوم المضيف الرئيسي بإنشاء شبكة wifi محلية عن طريق تشغيل مدير العقدة الرئيسية. بشكل عام، يقوم أحد الروبوتات الذي تم تعيينه كرئيس بإنشاء شبكة wifi هذه. تنضم الروبوتات أو الأجهزة الافتراضية الأخرى إلى شبكة wifi هذه كعبيد.

الخيار 2:

يتم توفير شبكة wifi المحلية بواسطة جهاز توجيه تابع لجهة خارجية كمركز لترحيل المعلومات. جميع الروبوتات متصلة بنفس جهاز التوجيه. يمكن أيضًا استخدام جهاز التوجيه بدون اتصال بالإنترنت. حدد أحد الروبوتات باعتباره السيد وقم بتشغيل مدير العقدة الرئيسية. يتم تعيين الروبوتات الأخرى كعبيد وتقوم بتشغيل مدير العقدة الرئيسية من السيد.

يعتمد القرار بشأن الخيار الذي تختاره على متطلبات مشروعك. إذا لم يكن عدد الروبوتات التي تحتاج إلى التواصل كبيرًا، يوصى بالخيار 1 لأنه يوفر التكلفة ويسهل إعداده. عندما يكون عدد الروبوتات كبيرًا، يوصى بالخيار 2. يمكن أن يؤدي القيد على قوة الحوسبة للتحكم الرئيسي في نظام ROS وعرض النطاق الترددي المحدود لشبكة wifi إلى حدوث تأخيرات وتعطل الشبكة بسهولة. يمكن لجهاز التوجيه إصلاح هذه المشكلات بسهولة.

يرجى ملاحظة أنه عند إجراء اتصال متعدد الوكلاء، إذا تم استخدام الجهاز الظاهري كعبد ROS، فيجب ضبط وضع الشبكة الخاص به على وضع الجسر.

تكوين متغيرات البيئة الرئيسية/التابعة 

بعد أن تكون جميع وحدات ROS الرئيسية في نفس الشبكة، يجب تعيين متغيرات البيئة للاتصالات متعددة الوكلاء. تم تكوين متغير البيئة هذا في ملف .bashrc file في الدليل الرئيسي. قم بتشغيل الأمر gedit ~/.bashrc لتشغيله. يرجى ملاحظة أن كلا الملفين .bashrc fileيجب تكوين اتصالات السيد والعبد في الاتصال متعدد الوكلاء. ما يجب تغييره هو عناوين IP الموجودة في نهاية الملف file. السطرين هما ROS_MASTER_URI و ROS_HOSTNAME، كما هو موضح في الشكل 2-1-4. يعد كل من ROS_MASTER_URI وROS_HOSTNAME لمضيف ROS عنواني IP محليين. ROS_MASTER_URI في ROS التابع .bashrc file يحتاج إلى تغييره إلى عنوان IP الخاص بالمضيف بينما يظل ROS_HOSTNAME كعنوان IP محلي.

إعداد اتصال متعدد الوكلاء

اتصال ROS متعدد الأجهزة غير مقيد بإصدار إصدار ROS. في عملية الاتصال متعدد الأجهزة، ينبغي للمرء أن يكون على علم بما يلي:

  1. يعتمد تشغيل برنامج ROS التابع على برنامج ROS الرئيسي لجهاز ROS الرئيسي.
    يجب تشغيل برنامج ROS الرئيسي أولاً على الجهاز الرئيسي قبل تنفيذ البرنامج التابع على الجهاز التابع.
  2. يجب أن تكون عناوين IP الخاصة بالأجهزة الرئيسية والتابعة في الاتصالات متعددة الأجهزة في نفس الشبكة. وهذا يعني أن عنوان IP وقناع الشبكة الفرعية موجودان ضمن نفس الشبكة.
  3. ROS_HOSTNAME في تكوين البيئة file لا يُنصح باستخدام .bashrc لاستخدام المضيف المحلي. يوصى باستخدام عنوان IP محدد.
  4. في حالة عدم تعيين عنوان IP التابع بشكل صحيح، سيظل بإمكان الجهاز التابع الوصول إلى ROS الرئيسي ولكن لا يمكنه إدخال معلومات التحكم.
  5.  إذا كان الجهاز الظاهري يشارك في الاتصال متعدد الوكلاء، فيجب ضبط وضع الشبكة الخاص به على وضع الجسر. لا يمكن تحديد IP ثابت للاتصال بالشبكة.
  6. لا يمكن الاتصال بالأجهزة المتعددة view أو الاشتراك في موضوعات من نوع بيانات الرسالة غير الموجودة محليًا.
  7. يمكنك استخدام العرض التوضيحي لمحاكاة Little Turtle للتحقق من نجاح الاتصال بين الروبوتات:
    a. اهرب من السيد
    roscore # إطلاق خدمات ROS
    rosrun Turtlesim Turtlesim_node #launch Turtlesim Interface
    b.
    اهرب من العبد
    rosrun Turtlesim Turtle_teleop_key #launch عقدة التحكم بلوحة المفاتيح لـ Turtlesim

إذا تمكنت من التعامل مع حركات السلحفاة من لوحة المفاتيح الموجودة على الجهاز التابع، فهذا يعني أن الاتصال الرئيسي/التابع قد تم إنشاؤه بنجاح.

اتصال واي فاي تلقائي في ROS

تشرح الإجراءات التالية كيفية تكوين الروبوت ليتصل تلقائيًا بالشبكة المضيفة أو شبكة جهاز التوجيه.

إعداد اتصال Wifi التلقائي لـ Jetson Nano

  1. قم بتوصيل Jetson Nano عبر أداة VNC عن بعد أو مباشرة بشاشة الكمبيوتر. انقر على أيقونة wifi في الزاوية اليمنى العليا ثم انقر على "تحرير الاتصالات ..".
    إعداد اتصال متعدد الوكلاء
  2. انقر فوق الزر + في اتصالات الشبكة:
    إعداد اتصال متعدد الوكلاء
  3. ضمن نافذة "اختيار نوع الاتصال"، انقر فوق القائمة المنسدلة وانقر فوق الزر "إنشاء...":
    إعداد اتصال متعدد الوكلاء
  4. في لوحة التحكم، انقر فوق خيار Wifi. أدخل اسم Wifi للاتصال في حقول "اسم الاتصال" وSSID. حدد "العميل" في القائمة المنسدلة "الوضع" وحدد "wlan0" في القائمة المنسدلة "الجهاز".
    إعداد اتصال متعدد الوكلاء
  5. في لوحة التحكم، انقر فوق الخيار "عام" وحدد "الاتصال بهذه الشبكة تلقائيًا...". اضبط أولوية الاتصال على 1 في خيار "أولوية الاتصال للتنشيط التلقائي". حدد خيار "يمكن لجميع المستخدمين الاتصال بهذه الشبكة". عندما يتم ضبط الخيار على 0 في "أولوية الاتصال للتنشيط التلقائي" لشبكة wifi أخرى، فهذا يعني أن هذه هي شبكة wifi المفضلة في الماضي.
    إعداد اتصال متعدد الوكلاء
  6. انقر فوق خيار "أمان Wi-Fi" في لوحة التحكم. حدد "WPA & WPA2 Personal" في حقل "الأمان". ثم أدخل كلمة مرور Wifi
    إعداد اتصال متعدد الوكلاء

ملحوظة:

إذا لم يتمكن الروبوت من الاتصال تلقائيًا بشبكة wifi بعد التشغيل عندما تكون أولوية wifi مضبوطة على 0، فقد يكون سبب ذلك مشكلة إشارة wifi ضعيفة. لتجنب هذه المشكلة، يمكنك اختيار حذف جميع خيارات الواي فاي التي تم توصيلها في الماضي. احتفظ فقط بشبكة wifi التي أنشأها المضيف أو جهاز التوجيه.

انقر فوق خيار "إعدادات IPv4" في لوحة تحكم إعدادات الشبكة. حدد الخيار "يدوي" في حقل "الطريقة". ثم انقر فوق "إضافة"، واملأ عنوان IP الخاص بالجهاز التابع في حقل "العنوان". املأ "24" في حقل "قناع الشبكة". املأ قطاع شبكة IP في "البوابة". قم بتغيير الأرقام الثلاثة الأخيرة من مقطع شبكة IP إلى "1". الغرض الرئيسي من هذه الخطوة هو إصلاح عنوان IP. بعد اكتمال ذلك للمرة الأولى، سيظل عنوان IP بدون تغيير عند الاتصال بنفس شبكة WIFI لاحقًا.

إعداد اتصال متعدد الوكلاء

بعد تكوين كافة الإعدادات، انقر فوق "حفظ" لحفظ الإعدادات. بعد نجاح الحفظ، سيتصل الروبوت تلقائيًا بشبكة المضيف أو جهاز التوجيه عند تشغيله.

ملحوظة:

  1. يجب أن يكون عنوان IP المعين هنا هو نفس عنوان IP المعين في .bashrc file في القسم 2.1.
  2. يجب أن يكون عنوان IP الخاص بالسيد وكل عبد فريدًا.
  3. يجب أن يكون عنوان IP الرئيسي والتابع في نفس قطاع الشبكة.
  4. يجب عليك الانتظار حتى يرسل المضيف أو جهاز التوجيه إشارة WiFi قبل أن يتم تشغيل الروبوت التابع والاتصال تلقائيًا بشبكة WiFi.
  5. بعد تكوين الإعداد، إذا لم يتمكن الروبوت من الاتصال تلقائيًا بشبكة WiFi عند تشغيله، فيرجى توصيل بطاقة الشبكة وفصلها ومحاولة الاتصال مرة أخرى.

إعداد اتصال Wifi التلقائي لـ Raspberry Pi 

الإجراء الخاص بـ Raspberry Pi هو نفس الإجراء الخاص بـ Jetson Nano.

إعداد اتصال Wifi التلقائي لـ Jetson TX1 

الإعداد في Jetson TX1 هو نفسه تقريبًا كما هو الحال في Jetson Nano مع استثناء واحد وهو أنه يجب على Jetson TX1 تحديد جهاز "wlan1" في "الجهاز" في لوحة تحكم إعدادات الشبكة.

إعداد اتصال متعدد الوكلاء

إعداد المزامنة المتعددة الوكلاء

في مشروع التكوين متعدد الوكلاء، يعد إعداد مزامنة الوقت متعدد الوكلاء خطوة حاسمة. في عملية التكوين، ستحدث العديد من المشكلات بسبب وقت النظام غير المتزامن لكل روبوت. تنقسم مزامنة الوقت متعددة الوكلاء إلى حالتين، وهما الحالة التي يكون فيها كل من الروبوتات الرئيسية والتابعة متصلة بالشبكة والحالة التي يتم فيها قطع اتصال كلاهما بالشبكة.

اتصال ناجح بالشبكة الرئيسية/التابعة

بعد تكوين الاتصال متعدد الوكلاء، إذا تمكنت الأجهزة الرئيسية والتابعة من الاتصال بالشبكة بنجاح، فسوف تقوم تلقائيًا بمزامنة وقت الشبكة. وفي هذه الحالة، لا يلزم اتخاذ أي إجراءات أخرى لتحقيق مزامنة الوقت.

استكشاف أخطاء انقطاع اتصالات الشبكة وإصلاحها 

بعد تكوين الاتصال متعدد الوكلاء، إذا لم تتمكن الأجهزة الرئيسية والتابعة من الاتصال بالشبكة بنجاح، فمن الضروري مزامنة الوقت يدويًا. سوف نستخدم أمر التاريخ لإكمال إعداد الوقت.

أولاً، قم بتثبيت أداة الإنهاء. من أداة الإنهاء، استخدم أداة تقسيم النافذة لوضع أطراف التحكم الخاصة بالجهاز الرئيسي والتابع في نفس النافذة الطرفية (انقر بزر الماوس الأيمن لتعيين نافذة مقسمة، وقم بتسجيل الدخول إلى الأجهزة الرئيسية والتابعة عبر ssh في نوافذ مختلفة) .

sudo apt-get install terminator # قم بتنزيل terminator لتقسيم النافذة الطرفية 

انقر فوق الزر الموجود أعلى اليسار، وحدد الخيار [البث للجميع]/[بث الكل]، وأدخل الأمر التالي. ثم استخدم أداة الإنهاء لتعيين نفس الوقت للسيد والعبد.

إعداد المزامنة متعددة الوكلاء

sudo date -s “2022-01-30 15:15:00” # إعداد الوقت اليدوي 

حزمة ROS متعددة الوكلاء

مقدمة حزمة ROS 

إعداد اسم العبد

في حزمة الوظائف wheeltec_multi، من الضروري تعيين اسم فريد لكل روبوت تابع لتجنب الأخطاء. على سبيل المثالample، رقم 1 للعبد 1 ورقم 2 للعبد 2 وما إلى ذلك.

الغرض من تعيين أسماء مختلفة هو تجميع العقد قيد التشغيل وتمييزها بمساحات أسماء مختلفة. على سبيل المثالample، موضوع الرادار للعبد 1 هو: /slave1/scan، وعقدة LiDAR للعبد 1 هي: /slave1/laser.

إعداد إحداثيات الرقيق

يمكن لحزمة wheeltec_multi تنفيذ تشكيلات مخصصة. عندما تكون هناك حاجة إلى تشكيلات مختلفة، ما عليك سوى تعديل الإحداثيات المطلوبة للروبوتات التابعة. Slave_x وslave_y هما إحداثيات x وy للتابع مع السيد كنقطة مرجعية أصلية. الجزء الأمامي من الشريحة الرئيسية هو الاتجاه الإيجابي للإحداثي x، والجانب الأيسر هو الاتجاه الإيجابي للإحداثي y. بعد اكتمال الإعداد، سيتم إصدار إحداثيات TF التابعة 1 كالإحداثيات المتوقعة للتابع.

إذا كان هناك سيد واحد وعبدان، فيمكن تعيين التشكيل التالي:

  1. التشكيل الأفقي: يمكنك ضبط إحداثيات العبد على اليسار على:slave_x:0,slav_y:0.8، وإحداثيات العبد على اليمين على:slave_x:0,slav_y:-0.8.
  2. تكوين العمود: يمكن ضبط إحداثيات أحد العبد على:slave_x:-0.8،slav_y:0، ويمكن ضبط إحداثيات العبد الآخر على:slave_x:-1.8،slav_y:0.
  3. التشكيل الثلاثي: يمكن ضبط إحداثيات أحد العبد على:slave_x:-0.8،slav_y:0.8، ويمكن ضبط إحداثيات العبد الآخر على:slave_x:-0.8،slav_y:-0.8.

يمكن تخصيص تشكيلات أخرى حسب الحاجة.

ملحوظة

تم ضبط المسافة الموصى بها بين الروبوتين على 0.8، ومن المستحسن ألا تقل عن 0.6. يوصى بتعيين المسافة بين العبيد والسيد أقل من 2.0. كلما ابتعد عن السيد، زادت السرعة الخطية للعبد عندما يدور السيد. نظرًا لقيود السرعة القصوى، فإن سرعة العبد سوف تنحرف إذا لم يستوف المتطلبات. سيصبح تشكيل الروبوت فوضويًا.

تهيئة موقف الرقيق

الموضع الأولي للعبد يكون عند الإحداثيات المتوقعة افتراضيًا. قبل تشغيل البرنامج، ما عليك سوى وضع الروبوت التابع بالقرب من إحداثياته ​​المتوقعة لإكمال التهيئة.

يتم تنفيذ هذه الوظيفة بواسطة عقدةpose_setter في ملف file يُسمى Turn_on_wheeltec_robot.launch في الحزمة wheeltec_multi، كما هو موضح في الشكل 4-1-3.

حزمة Ros متعددة الوكلاء

إذا أراد المستخدم تخصيص الموضع الأولي للعبد، فهو يحتاج فقط إلى تعيين قيم Slav_x وslave_y كما هو موضح في الشكل 4-1-4 في wheeltec_slave.launch. سيتم تمرير قيمتيslav_x وslave_y إلى Turn_on_wheeltec_robot.launch وتعيينهما إلى عقدةpose_setter. ما عليك سوى وضع الروبوت في موضع مخصص قبل تشغيل البرنامج.

حزمة Ros متعددة الوكلاء

تكوين الموقف 

في التشكيل متعدد الوكلاء، أول مشكلة يجب حلها هي تحديد موقع السيد والعبد. سيقوم السيد بإنشاء خريطة ثنائية الأبعاد أولاً. بعد إنشاء الخريطة وحفظها، قم بتشغيل حزمة التنقل ثنائية الأبعاد واستخدم خوارزمية تحديد موضع مونت كارلو التكيفية (تحديد موضع amcl) في حزمة التنقل ثنائية الأبعاد لتكوين موضع الخريطة الرئيسية.

نظرًا لأن السيد والعبيد موجودان في نفس الشبكة ويتشاركان في نفس مدير العقدة، فقد أطلق السيد الخريطة من حزمة التنقل ثنائية الأبعاد، ويمكن لجميع العبيد استخدام نفس الخريطة تحت نفس مدير العقدة. لذلك، لا يحتاج العبد إلى إنشاء خريطة. في wheeltec_slave.launch، قم بتشغيل تحديد موقع مونت كارلو (amcl Positioning)، ويمكن للعبيد تكوين مواقعهم باستخدام الخريطة التي أنشأها السيد.

حزمة Ros متعددة الوكلاء

كيفية إنشاء التكوين والحفاظ على التكوين 

في عملية تشكيل الحركة، يمكن التحكم في الحركة الرئيسية بواسطة Rviz ولوحة المفاتيح وجهاز التحكم عن بعد وغيرها من الطرق. يقوم العبد بحساب سرعته من خلال عقدةslav_tf_listener من أجل التحكم في حركته وتحقيق هدف التشكيل.

تحدد عقدةslave_tf_listener سرعة الرقيق لتجنب السرعة المفرطة من خلال حساب العقدة، مما سيؤدي إلى سلسلة من التأثيرات. يمكن تعديل القيمة المحددة في wheeltec_slave.launch.

حزمة Ros متعددة الوكلاء

المعلمات ذات الصلة لخوارزمية التكوين هي كما يلي:

حزمة Ros متعددة الوكلاء

تجنب العوائق في التشكيل

في التشكيل متعدد الوكلاء، يمكن للسيد استخدام عقدة move_base لإكمال تجنب العوائق. ومع ذلك، فإن تهيئة العبد لا تستخدم عقدة move_base. عند هذه النقطة، يجب استدعاء عقدة multi_avoidance في البرنامج التابع. يتم تمكين عقدة تجنب العوائق بشكل افتراضي في الحزمة. إذا لزم الأمر، يمكن ضبط التجنب على "خطأ" لتعطيل عقدة تجنب العوائق.

حزمة Ros متعددة الوكلاء

تظهر بعض المعلمات ذات الصلة بعقدة تجنب العوائق في الشكل أدناه، حيث تمثل Safe_distance حد المسافة الآمنة للعائق، وdanger_distance هي حد المسافة الخطرة للعائق. عندما يكون العائق ضمن المسافة الآمنة ومسافة الخطر، يقوم العبد بتعديل موضعه لتجنب العائق. عندما يكون العائق ضمن مسافة الخطر، سيبتعد العبد عن العائق.

حزمة Ros متعددة الوكلاء

إجراءات التشغيل 

أدخل أمر التنفيذ 

الاستعدادات قبل البدء في تكوين متعدد الوكلاء:

  • يتصل السيد والعبد بنفس الشبكة ويقومان بإعداد اتصال متعدد الوكلاء بشكل صحيح
  • يبني المعلم خريطة ثنائية الأبعاد مسبقًا ويحفظها
  • يتم وضع السيد عند نقطة بداية الخريطة، ويتم وضع العبد بالقرب من موضع التهيئة (موضع تكوين العبد الافتراضي)
  • بعد تسجيل الدخول إلى Jetson Nano/Raspberry Pi عن بعد، قم بإجراء مزامنة الوقت.

تاريخ Sudo -s "2022-04-01 15:15:00" 

الخطوة 1: افتح خريطة ثنائية الأبعاد من السيد.
roslaunch Turn_on_wheeltec_robot navigation.launch

الخطوة 2: تشغيل برنامج التكوين من جميع العبيد.
roslaunch wheeltec_multi wheeltec_slave.launch

الخطوة 3: افتح عقدة التحكم بلوحة المفاتيح من السيد أو استخدم عصا التحكم للتحكم عن بعد في الحركة الرئيسية.
roslaunch wheeltec_robot_rc Keyboard_teleop.launch

الخطوة 4: (اختياري) راقب حركات الروبوت من Rviz.
رفيز

ملحوظة

  1. تأكد من إكمال عملية مزامنة الوقت قبل تنفيذ البرنامج.
  2. عند التحكم في سيد التكوين متعدد العوامل، لا ينبغي أن تكون السرعة الزاوية سريعة جدًا. السرعة الخطية الموصى بها هي 0.2m/s، ودرجة السرعة الزاوية أقل من 0.3rad/s. عندما يقوم السيد بالدوران، كلما كان العبد بعيدًا عن السيد، كلما زادت السرعة الخطية المطلوبة. بسبب الحد الأقصى للسرعة الخطية والسرعة الزاوية في العبوة، عندما لا تتمكن السيارة التابعة من الوصول إلى السرعة المطلوبة، سيكون التشكيل فوضويًا. بشكل عام، يمكن للسرعة الخطية المفرطة أن تلحق الضرر بالروبوت بسهولة.
  3. عندما يكون عدد العبد أكثر من واحد، نظرًا لعرض النطاق الترددي المحدود لشبكة wifi على متن الطائرة لمضيف ROS، فمن السهل التسبب في تأخير كبير وقطع الاتصال متعدد الوكلاء. يمكن أن يؤدي استخدام جهاز التوجيه إلى حل هذه المشكلة جيدًا.
  4. شجرة TF الخاصة بتكوين الروبوتات المتعددة (2 تابعين) هي: rqt_tf_tree
  5. مخطط علاقة العقدة لتشكيل الروبوتات المتعددة (2 تابعين) هو: rqt_graph

المستندات / الموارد

ROBOWORKS Robofleet Orin Nano x3 ROS Robot [بي دي اف] دليل المستخدم
أورين نانو x3، روبوفليت روس روبوت، روبوفليت روس، روبوت، روبوفليت أورين نانو x3 روس روبوت، روبوفليت أورين نانو x3، أورين نانو x3 روس روبوت، أورين نانو x3

مراجع

اترك تعليقا

لن يتم نشر عنوان بريدك الإلكتروني. تم وضع علامة على الحقول المطلوبة *