جدول المحتويات:

الذكاء الاصطناعي في روبوت LEGO EV3 Maze-Driving: 13 خطوة
الذكاء الاصطناعي في روبوت LEGO EV3 Maze-Driving: 13 خطوة

فيديو: الذكاء الاصطناعي في روبوت LEGO EV3 Maze-Driving: 13 خطوة

فيديو: الذكاء الاصطناعي في روبوت LEGO EV3 Maze-Driving: 13 خطوة
فيديو: Как охотиться на людей ► 1 Прохождение Manhunt (PS2) 2024, يونيو
Anonim
Image
Image
كيف يتم حل المتاهة
كيف يتم حل المتاهة

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

تم وصف الروبوت السابق الخاص بي هنا:

تم تصميم الروبوت باستخدام LEGO Mindstorms EV3. يعمل برنامج EV3 على جهاز كمبيوتر ويقوم بإنشاء برنامج يتم تنزيله بعد ذلك إلى وحدة تحكم دقيقة تسمى وحدة البناء EV3. طريقة البرمجة تعتمد على الأيقونات وعالية المستوى. إنه سهل للغاية ومتعدد الاستخدامات.

اللوازم

القطع

  1. مجموعة LEGO Mindstorms EV3
  2. جهاز استشعار بالموجات فوق الصوتية LEGO Mindstorms EV3. لا يتم تضمينه في مجموعة EV3.
  3. كرتون مموج للمتاهة. يجب أن تكون علبتان كرتونية كافية.
  4. قطعة صغيرة من الكرتون الرقيق للمساعدة في تثبيت بعض الزوايا والجدران.
  5. غراء وشريط لاصق لتوصيل قطع الكرتون ببعضها البعض.
  6. مظروف أحمر لبطاقات التهنئة لتحديد مخرج المتاهة.

أدوات

  1. سكين متعدد الاستخدام لقطع الكرتون.
  2. مسطرة فولاذية للمساعدة في عملية القطع.

البرمجيات

البرنامج موجود هنا:

الخطوة 1: كيف يتم حل المتاهة

طريقة القيادة في المتاهة

هناك عدة طرق للتنقل في المتاهة. إذا كنت مهتمًا بدراستها ، فسيتم وصفها جيدًا في مقالة Wikipedia التالية:

اخترت طريقة تتبع الجدار الأيسر. الفكرة هي أن الروبوت سيحتفظ بجدار على جانبه الأيسر من خلال اتخاذ القرارات التالية أثناء انتقاله عبر المتاهة:

  1. إذا كان من الممكن الانعطاف إلى اليسار ، فافعل ذلك.
  2. خلاف ذلك ، اذهب مباشرة إذا كان ذلك ممكنًا.
  3. إذا لم تتمكن من التحرك يسارًا أو مستقيمًا ، انعطف يمينًا ، إن أمكن.
  4. إذا لم يكن أي مما سبق ممكنًا ، فيجب أن يكون هذا طريقًا مسدودًا. التف حوله.

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

حل المتاهة لإيجاد مسار مباشر

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

المنعطفات المحتملة هي: اليسار ، اليمين ، الخلف (عند طريق مسدود) ، والمستقيم (وهو تقاطع).

يتم استبدال المجموعات على النحو التالي:

  • يصبح "Left ، Back ، Left" "مستقيمًا".
  • "Left، Back، Right" تصبح "Back".
  • "Left، back، Straight" تصبح "Right".
  • يصبح "Right، Back، Left" "Back".
  • "مستقيم ، خلفي ، يسار" يصبح "يمين".
  • "مستقيم ، ظهر ، مستقيم" يصبح "رجوع".

كيف يتعامل الروبوت مع متاهة بلدي

  1. عندما يبدأ الروبوت في القيادة ، يرى مسافة إلى اليمين ويخزن مباشرة في القائمة في المصفوفة.
  2. ثم يستدير لليسار ويضيف اليسار إلى القائمة. تحتوي القائمة الآن على: مستقيم ، يسار.
  3. مع طريق مسدود ، يستدير ويضيف رجوع إلى القائمة. تحتوي القائمة الآن على: مستقيم ، يسار ، خلفي.
  4. اجتياز الممر الذي استخدمته من المدخل ، يضيف مباشرة إلى القائمة. تحتوي القائمة الآن على: مستقيم ، يسار ، خلفي ، مستقيم. يتعرف على مجموعة ويغير اليسار والظهر والمباشرة إلى اليمين. تحتوي القائمة الآن على مستقيم ، يمين.
  5. مع طريق مسدود ، يستدير ويضيف رجوع إلى القائمة. تحتوي القائمة الآن على: مستقيم ، يمين ، خلفي.
  6. بعد الانعطاف إلى اليسار ، تحتوي القائمة على مستقيم ، يمين ، خلفي ، يسار. يتعرف على مجموعة ويتغيرات من اليمين والظهر ومن اليسار إلى الخلف. تحتوي القائمة الآن على مستقيم ، خلفي.
  7. بعد الانعطاف لليسار التالي ، تحتوي القائمة على مستقيم ، خلفي ، يسار. يغير هذا المزيج إلى اليمين. تحتوي القائمة الآن على الحق فقط.
  8. يمرر مسافة ويضيف مباشرة إلى القائمة. تحتوي القائمة الآن على اليمين ، مستقيم.
  9. بعد الانعطاف إلى اليمين ، تحتوي القائمة على اليمين ، المستقيم ، اليمين وهو المسار المباشر.

الخطوة الثانية: اعتبارات عند برمجة الروبوت

اعتبارات لأي متحكم دقيق

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

عندما يستشعر الروبوت تقاطعًا على اليمين ولكنه ليس منعطفًا يمينًا ، وجدت أنه من الجيد أن يقود الروبوت إلى الأمام بحوالي 10 بوصات (25 سم) دون فحص مستشعراته.

اعتبارات خاصة بـ LEGO MINDSTORMS EV3

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

لكن مستشعر الألوان له مدى قصير جدًا ، حوالي 2 بوصة (5 سم) ، مما يؤدي إلى بعض الاعتبارات الخاصة كما هو موضح أدناه:

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

الخطوة الثالثة: البرنامج الرئيسي

البرنامج الرئيسي
البرنامج الرئيسي

تتميز LEGO Mindstorms EV3 بطريقة برمجة مريحة للغاية قائمة على الأيقونات. تظهر الكتل في الجزء السفلي من شاشة العرض على الكمبيوتر ويمكن سحبها وإفلاتها في نافذة البرمجة لإنشاء برنامج. يمكن توصيل وحدة البناء EV3 بالكمبيوتر إما عن طريق كبل USB أو Wi-Fi أو Bluetooth ، ويمكن بعد ذلك تنزيل البرنامج من الكمبيوتر إلى وحدة البناء.

يتكون البرنامج من برنامج رئيسي والعديد من "My Blocks" وهي إجراءات فرعية. يحتوي الملف الذي تم تحميله على البرنامج كاملاً والموجود هنا:

الخطوات في البرنامج الرئيسي هي كما يلي:

  1. تحديد وتهيئة متغير عدد الدورات والمصفوفة.
  2. انتظر 5 ثوان وقل "انطلق".
  3. ابدأ حلقة.
  4. قد من خلال المتاهة. عند الوصول إلى المخرج ، يتم الخروج من الحلقة.
  5. اعرض على شاشة الطوب ، التقاطعات الموجودة في المتاهة حتى الآن.
  6. تحقق مما إذا كان يجب تقصير المسار.
  7. اعرض التقاطعات في المسار المختصر.
  8. قم بالرجوع إلى الخطوة 4.
  9. بعد الحلقة ، قم بقيادة المسار المباشر.

تظهر لقطة الشاشة هذا البرنامج الرئيسي.

الخطوة 4: الكتل الخاصة بي (الإجراءات الفرعية)

الكتل الخاصة بي (الروتين الفرعي)
الكتل الخاصة بي (الروتين الفرعي)

يتم عرض Navigate My Block ، الذي يتحكم في كيفية تحرك الروبوت عبر المتاهة. النسخة المطبوعة صغيرة جدًا وقد لا تكون مقروءة. لكنه مثال جيد على مدى تنوع وقوة عبارات if (تسمى Switches في نظام LEGO EV3).

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

تعد كتل My Blocks الخاصة بتقصير المسار ولقيادة المسار المباشر أكثر تعقيدًا وستكون غير مقروءة تمامًا ، وبالتالي لم يتم تضمينها في هذا المستند.

الخطوة الخامسة: البدء في بناء الروبوت: القاعدة

البدء في بناء الروبوت: القاعدة
البدء في بناء الروبوت: القاعدة
البدء في بناء الروبوت: القاعدة
البدء في بناء الروبوت: القاعدة

كما ذكرنا سابقًا ، لا تسمح LEGO Mindstorms EV3 بأكثر من نوع واحد من كل نوع من أجهزة الاستشعار المتصلة بوحدة واحدة. لقد استخدمت المستشعرات التالية (بدلاً من ثلاثة مستشعرات فوق صوتية): مستشعر الأشعة تحت الحمراء ، ومستشعر الألوان ، ومستشعر الموجات فوق الصوتية.

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

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

الخطوة 6: قمة القاعدة ، 1

قمة القاعدة ، 1
قمة القاعدة ، 1
قمة القاعدة ، 1
قمة القاعدة ، 1

هذه الخطوة والخطوتان التاليتان هما الجزء العلوي من قاعدة الروبوت ، ومستشعر الألوان ، والكابلات ، وجميعها عبارة عن كبلات مقاس 10 بوصات (26 سم).

الخطوة 7: قمة القاعدة ، 2

الجزء العلوي من القاعدة ، 2
الجزء العلوي من القاعدة ، 2
الجزء العلوي من القاعدة ، 2
الجزء العلوي من القاعدة ، 2

الخطوة 8: قمة القاعدة ، 3

الجزء العلوي من القاعدة ، 3
الجزء العلوي من القاعدة ، 3
الجزء العلوي من القاعدة ، 3
الجزء العلوي من القاعدة ، 3

الخطوة 9: مستشعرات الأشعة تحت الحمراء والموجات فوق الصوتية

مستشعرات الأشعة تحت الحمراء والموجات فوق الصوتية
مستشعرات الأشعة تحت الحمراء والموجات فوق الصوتية
مستشعرات الأشعة تحت الحمراء والموجات فوق الصوتية
مستشعرات الأشعة تحت الحمراء والموجات فوق الصوتية

بعد ذلك ، يوجد مستشعر الأشعة تحت الحمراء (على الجانب الأيسر من الروبوت) ومستشعر الموجات فوق الصوتية (على اليمين). أيضا ، 4 دبابيس لربط الطوب في الأعلى.

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

الخطوة 10: الكابلات

الكابلات
الكابلات

تتصل الكابلات بالطوب كما يلي:

  • المنفذ ب: محرك كبير اليسار.
  • المنفذ C: محرك كبير صحيح.
  • المنفذ 2: جهاز استشعار بالموجات فوق الصوتية.
  • المنفذ 3: مستشعر الألوان.
  • المنفذ 4: مستشعر الأشعة تحت الحمراء.

الخطوة 11: الخطوة الأخيرة في بناء الروبوت: الزخرفة

الخطوة الأخيرة في بناء الروبوت: الزخرفة
الخطوة الأخيرة في بناء الروبوت: الزخرفة
الخطوة الأخيرة في بناء الروبوت: الزخرفة
الخطوة الأخيرة في بناء الروبوت: الزخرفة

الأجنحة والزعانف للزينة فقط.

الخطوة 12: بناء متاهة

بناء متاهة
بناء متاهة
بناء متاهة
بناء متاهة

يجب أن يكون كرتان من الكرتون المضلع كافيين للمتاهة. لقد صنعت جدران المتاهة بارتفاع 5 بوصات (12.5 سم) ، لكن يجب أن تعمل 4 بوصات (10 سم) أيضًا إذا كنت تعاني من نقص الورق المقوى المموج.

أولاً ، قمت بقص جدران الكراتين على بعد 10 بوصات (25 سم) من الأسفل. ثم قطعت حول الجدران 5 بوصات من القاع. يوفر هذا عدة جدران بحجم 5 بوصات. أيضًا ، قمت بقص قيعان الكراتين ، وتركت حوالي 1 بوصة (2.5 سم) متصلة بالجدران من أجل الثبات.

يمكن قص القطع المختلفة ولصقها أو لصقها بالشريط اللاصق عند الحاجة لتشكيل المتاهة. يجب أن يكون هناك مسافة 11 أو 12 بوصة (30 سم) بين الجدران الجانبية في أي مسار مسدود. يجب ألا يقل الطول عن 10 بوصات (25 سم). هذه المسافات ضرورية للروبوت لكي يستدير.

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

يحتوي المخرج على حاجز أحمر يتكون من نصف ظرف أحمر لبطاقات المعايدة وقاعدة مصنوعة من قطعتين من الورق المقوى الرفيع ، كما هو موضح.

الخطوة 13: المتاهة

المتاهة
المتاهة

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

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

ملاحظة ختامية

كان هذا مشروعًا ممتعًا وتجربة تعليمية رائعة. آمل أن تجده ممتعًا أيضًا.

موصى به: