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

EyeRobot - العصا البيضاء الآلية: 10 خطوات (بالصور)
EyeRobot - العصا البيضاء الآلية: 10 خطوات (بالصور)

فيديو: EyeRobot - العصا البيضاء الآلية: 10 خطوات (بالصور)

فيديو: EyeRobot - العصا البيضاء الآلية: 10 خطوات (بالصور)
فيديو: Вычислительное мышление – информатика для руководителей бизнеса 2016 2024, يوليو
Anonim
EyeRobot - العصا الروبوتية البيضاء
EyeRobot - العصا الروبوتية البيضاء

الخلاصة: باستخدام iRobot Roomba Create ، قمت بتصميم نموذج أولي لجهاز يسمى eyeRobot. سوف يوجه المستخدمين المكفوفين وضعاف البصر من خلال البيئات المزدحمة والمكتظة بالسكان باستخدام Roomba كقاعدة لتزاوج بساطة العصا البيضاء التقليدية مع غرائز الكلب البصري. يشير المستخدم إلى الحركة المرغوبة عن طريق دفع المقبض ولفه بشكل حدسي. يأخذ الروبوت هذه المعلومات ويجد مسارًا واضحًا أسفل الردهة أو عبر الغرفة ، باستخدام السونار لتوجيه المستخدم في اتجاه مناسب حول العوائق الثابتة والديناميكية. ثم يتبع المستخدم الروبوت لأنه يوجه المستخدم في الاتجاه المطلوب بالقوة الملحوظة التي يشعر بها من خلال المقبض. يتطلب هذا الخيار الآلي القليل من التدريب: ادفع للذهاب ، اسحب للتوقف ، قم باللف للالتفاف. إن البصيرة التي توفرها أجهزة تحديد المدى تشبه رؤية كلب العين ، وهي ميزة كبيرة على التجربة المستمرة والخطأ الذي يميز استخدام العصا البيضاء. ومع ذلك ، لا يزال برنامج eyeRobot يوفر بديلاً أرخص بكثير من كلاب الإرشاد ، والتي تكلف أكثر من 12000 دولارًا وهي مفيدة لمدة 5 سنوات فقط ، بينما تم بناء النموذج الأولي بأقل من 400 دولار. إنها أيضًا آلة بسيطة نسبيًا ، وتتطلب عددًا قليلاً من أجهزة الاستشعار غير المكلفة ، ومقاييس الجهد المختلفة ، وبعض الأجهزة ، وبالطبع ، Roomba Create.

الخطوة 1: عرض فيديو

عرض فيديو
عرض فيديو

نسخة عالية الجودة

الخطوة 2: نظرة عامة على العملية

نظرة عامة على العملية
نظرة عامة على العملية

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

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

الخطوة 3: مستشعرات المدى

مجسات المدى
مجسات المدى

الموجات فوق الصوتية: يحمل روبوت العين 4 أجهزة تحديد المدى بالموجات فوق الصوتية (MaxSonar EZ1). يتم وضع أجهزة الاستشعار بالموجات فوق الصوتية في قوس في مقدمة الروبوت لتوفير معلومات حول الأشياء الموجودة أمام الروبوت وعلى جوانبه. يقومون بإبلاغ الروبوت بمدى الكائن ومساعدته في العثور على مسار مفتوح حول هذا الكائن والعودة إلى مساره الأصلي.

أجهزة تحديد المدى بالأشعة تحت الحمراء: يحمل روبوت العين أيضًا مستشعرين للأشعة تحت الحمراء (GP2Y0A02YK). يتم وضع أجهزة تحديد المدى بالأشعة تحت الحمراء بحيث تواجه 90 درجة إلى اليمين واليسار لمساعدة الروبوت في متابعة الجدار. يمكنهم أيضًا تنبيه الروبوت إلى الأشياء القريبة جدًا من جوانبه والتي قد يدخلها المستخدم.

الخطوة 4: مستشعرات وضع القصب

مجسات وضع القصب
مجسات وضع القصب

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

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

الخطوة 5: المعالج

المعالج
المعالج

المعالج: يتم التحكم في الروبوت بواسطة Zbasic ZX-24a جالسًا على Robodyssey Advanced Motherboard II. تم اختيار المعالج نظرًا لسرعته وسهولة استخدامه وتكلفته المعقولة و 8 مدخلات تناظرية. وهي متصلة بلوح كبير للنماذج الأولية للسماح بإجراء تغييرات سريعة وسهلة. تأتي كل طاقة الروبوت من مصدر الطاقة على اللوحة الأم. يتواصل Zbasic مع Roomba من خلال ميناء البضائع ، ولديه سيطرة كاملة على أجهزة الاستشعار والمحركات الخاصة بـ Roomba.

الخطوة 6: نظرة عامة على التعليمات البرمجية

نظرة عامة على التعليمات البرمجية
نظرة عامة على التعليمات البرمجية

تجنب العوائق: لتفادي العوائق ، يستخدم eyeRobot طريقة حيث تمارس الكائنات بالقرب من الروبوت قوة افتراضية على الروبوت لتحريكه بعيدًا عن الكائن. بمعنى آخر ، تدفع الأشياء الروبوت بعيدًا عن نفسها. في تطبيقي ، تتناسب القوة الافتراضية التي يبذلها كائن عكسيًا مع مربع المسافة ، وبالتالي تزداد قوة الدفع كلما اقترب الجسم وتخلق منحنى استجابة غير خطي: PushForce = ResponseMagnitudeConstant / Distance2يتم إضافة الدفعات القادمة من كل جهاز استشعار معًا ؛ أجهزة الاستشعار الموجودة على الجانب الأيسر تضغط لليمين ، والعكس بالعكس ، للحصول على متجه لسفر الروبوت. يتم بعد ذلك تغيير سرعات العجلة بحيث يتجه الروبوت نحو هذا المتجه. للتأكد من أن الأجسام الميتة أمام الروبوت لا تظهر "لا استجابة" (لأن القوى على كلا الجانبين تتوازن) ، فإن الأجسام الموجودة في المقدمة الميتة تدفع الروبوت إلى الجانب الأكثر انفتاحًا. عندما يجتاز الروبوت الكائن فإنه يستخدم مشفرات Roomba لتصحيح التغيير والعودة إلى المتجه الأصلي.

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

الخطوة 7: قائمة الأجزاء

قائمة الاجزاء
قائمة الاجزاء

الأجزاء المطلوبة: 1x) Roomba create1x) ورقة كبيرة من الأكريليك 2x) Sharp GP2Y0A02YK IR rangefinder 4x) Maxsonar EZ1 جهاز تحديد المدى بالموجات فوق الصوتية 1x) ZX-24a معالج دقيق 1x) Robodyssey Advanced Motherboard II1x) مقياس الجهد الانزلاقي 1x) مقياس الجهد المفرد 1x) المفصلات والمسامير والبراغي والصواميل والأقواس والأسلاك

الخطوة الثامنة: التحفيز والتحسين

التحفيز والتحسين
التحفيز والتحسين

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

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

الخطوة 9: الخاتمة

استنتاج
استنتاج

الخلاصة: أثبت iRobot أنه منصة مثالية للنماذج الأولية لتجربة مفهوم العصا البيضاء الروبوتية. من نتائج هذا النموذج الأولي يتضح أن روبوتًا من هذا النوع قابل للتطبيق بالفعل. آمل أن أطور روبوتًا من الجيل الثاني من الدروس التي تعلمتها من استخدام Roomba Create. في الإصدارات المستقبلية من برنامج eyeRobot ، أتخيل جهازًا قادرًا على القيام بأكثر من مجرد إرشاد شخص في الردهة ، بل هو روبوت يمكن وضعه في أيدي المكفوفين لاستخدامه في الحياة اليومية. باستخدام هذا الروبوت ، سيتحدث المستخدم ببساطة عن وجهته وسيقوم الروبوت بإرشادهم هناك دون بذل جهد واعي من المستخدم. سيكون هذا الروبوت خفيفًا ومضغوطًا بدرجة كافية بحيث يمكن حمله بسهولة على السلالم ، ووضعه بعيدًا في خزانة. سيكون هذا الروبوت قادرًا على القيام بالملاحة العالمية بالإضافة إلى القدرة على توجيه المستخدم من البداية إلى الوجهة دون معرفة أو خبرة مسبقة للمستخدمين. ستتجاوز هذه الإمكانية حتى الكلب الإرشادي ، مع نظام تحديد المواقع العالمي (GPS) وأجهزة استشعار أكثر تقدمًا تسمح للمكفوفين بالتنقل بحرية حول العالم ، ناثانيال بارشاي ، (أدخله ستيفن بارشاي) (شكر خاص لجاك هيت على Roomba Create)

الخطوة 10: البناء والكود

البناء والكود
البناء والكود

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

الكود: لقد أرفقت النسخة الكاملة من كود الروبوتات. على مدار ساعة حاولت تنظيفه من ثلاثة أو أربعة أجيال من التعليمات البرمجية التي كانت موجودة في الملف ، يجب أن يكون الأمر سهلاً بما يكفي للمتابعة الآن. إذا كان لديك ZBasic IDE ، فيجب أن يكون من السهل عرضه ، إذا لم يكن استخدام المفكرة بدءًا من الملف main.bas والانتقال عبر ملفات.bas الأخرى.

موصى به: