سؤال

حتى قبل أن تعلمت البرمجة لقد فتنت كيف يمكن أن تعمل الروبوتات. الآن أعرف كيف سيتم كتابة تعليمات البرمجة الأساسية، ولكن ما لا أفهمه هو كيفية اتباع هذه النسخات الروبوت.

على سبيل المثال، إذا كتبت هذا الرمز:

object=Robot.ScanSurroundings(300,400);
if (Objects.isEatable(object))
{
   Robot.moveLeftArm(300,400);
   Robot.pickObject(object);
}

كيف سيتبع هذا البرنامج وحدة المعالجة المركزية بطريقة تجعل الروبوت القيام بالعمل البدني للنظر إلى اليسار، وتحريك ذراعه، ومثل هذا؟ هل انتهيت في المقام الأول في اللغة الثنائية / ASM؟

أخيرا، أين أذهب إذا أردت أن أتعلم كيفية إنشاء روبوت؟

هل كانت مفيدة؟

المحلول

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

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

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

نصائح أخرى

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

هناك أطر تحاول تقديم بعض هذه الترجمة، بما في ذلك (ولكن لا تقتصر على):

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

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

يجب عليك التحقق من مايكروسوفت روبوتس ستوديو (السيدة). لديهم الكثير أشرطة الفيديو / screencasts., ، و دروس مكتوبة. وبعد بالإضافة إلى ذلك، القناة 9 لديها العديد من مقاطع الفيديو, والمقابلات، إلخ، على موضوع الرصيف. بما في ذلك المظاهرات والمقابلات مع مطوري السيدة.

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

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

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

سوف تعمل الروبوتات عن طريق التفاعل مع الأجهزة. غالبا ما يتم تشغيل الجسر من التعليمات البرمجية الخاصة بك من خلال أنواع مختلفة من منافذ الإدخال / الإخراج. قد يكون ببساطة كابل RS232 على سبيل المثال (أنت تعرف منافذ COM1 القديمة تلك). سيتم تكوين أجزاء الأجهزة بواسطة المحركات (مثل أجهزة المحركات) وأجهزة الاستشعار (مثل الموجات فوق الصوتية لتشعر بالعقبات أو الليزر للحصول على مسافة أو مفاتيح).

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

إذا كنت مهتما، أقترح عليك إلقاء نظرة على هذا الكتاب وهو التمهيدي جيد.

أيضا، يمكنك تجربة البرمجة الطوابع الأساسية, ، من السهل جدا بعد البرامج التعليمية وسوف تعطيك بداية جيدة حول كيفية بناء الروبوتات. انها ليست مكلفة للغاية وستتفاعل مع الأجهزة في أي وقت من الأوقات.

حظا سعيدا واستمتع بوقتك!

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

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

يمكنك العثور على المزيد حول في هذا موقع, ، إنه DSL لوصف سلوك الوكيل المصنوع في جافا. يطلق عليه اسم مترجم جايسون واللغة هي Agentspeak (L).

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

يجب أن يكون لديك برنامج تشغيل يتربط مع الأجهزة (على الأرجح ختم أو FPGA مع المحركات وما إلى ذلك ...). يمكنك بعد ذلك استدعاء الوظيفة Me.moveleftarm (x، y)؛ وسيعرف السائق أن moveleftarm () يعني نقل مشغل ل X ثواني / ميلي ثانية / درجة.

أنا متأكد من أنه يمكنك العثور على مجموعة تقوم ببرمجة الروبوت.

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

أشارك نفس الحكة .. أنا على وشك شراء الأول Beagle board. وبعض أجهزة الاستشعار / servos التي يمكن أن تستخدم I2C. أوتوبيس. سأكون استخدام تصميم مدفوع الحدث والتنفيذ الخام للألياف (ليفية، إذا كنت كذلك) والتي هي مؤشرات الترابط للمستخدمين.

أساسا التصميم الخاص بي يدعو لعملية واحدة، والتي تطلق موضوع واحد لكل مجموعة من servos. كل مؤشر ترابط مدير المجموعة سوف يطلق X # of Fibrils، 2 لكل مؤازرة (من المحتمل). يتم استخدام Fibril One للسيطرة على المؤازرة، والأحداث الموجودة في الفيبريل الأخرى من تلك المؤازرة (أي كائن ثقيل للغاية لالتقاط، تم إسقاط كائن، إلخ).

تتمتع العملية الرئيسية بمهمة الاستماع إلى الأحداث من كل شيء آخر وتأكد من أن "اليد اليمنى تعرف ما تفعله اليد اليسرى أثناء التحرك إلى الأمام والتفاوض على العقبات.

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

من المحتمل جدا أن أستخدم Microkernel، وليس Linux.

أنا أقوم بذلك كثيرا لشحذ نفسي مع أساليب الحدث مدفوعة وكذلك رغبتي في جعل بلدي R2 :)

أبدا ب أهلية إذا كنت على دراية .NET. يمكنك الخروج Trossenrobotics.com. للأجزاء.

مجموعة واجهة Phidgets هي مكان جيد للبدء. من هناك، يمكنك الحصول على وحدة تحكم مؤازرة وبدء بناء الأشياء التي تتحرك.

منتديات Trossen هي أيضا مكان جيد لمراجعة مشاريع الآخرين. لديهم مركز بيانات جديد مع كود / عينات المشروع أيضا. أنا لا أعمل من أجلهم ... مجرد عملاء سعيد.

الكثير من الإجابات الجيدة هنا. جزء من رمز الخيال الخاص بك ليس بعيدا عن الطريقة التي تقوم بها في لغة أعلى مستوى مثل C # عبر ستوديو MS Robotics. ضع في اعتبارك أن الأشياء البسيطة (مثل "تحريك الذراع اليسار") محملة للغاية ب "تحيز المعلومات".

وصولا الى المعدن، وهو ذراع روبوتية هي مجموعة من الروابط و [ربما] المفاصل الآلية. لذلك "تحريك الذراع اليسار" (أو أي نقطة بالتنسيق) هي بالفعل مهمة معقدة للغاية لحساب (ابحث عن جدول D & H، إلى الأمام والعكس Kinematics للمتلاعبين).

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

باختصار، غالبا ما تكون اللغة وتداخل الأجهزة تافهة مقارنة بنمذجة النظام لتحقيق السلوك المرغوب فيه.

فيما يتعلق بالسؤال الأخير "كيفية إنشاء روبوت"، أجد بدءا من البحث عن مشروع ذي صلة في المجتمعات عبر الإنترنت مثل [Adafruit] [1]، [hackster.io] [2]، أو حتى [خلل] [3] أو تبحث عن مشاركات بلوق لشخص ما بنى روبوت من نقطة الصفر، على سبيل المثال، https://burningervos.com., ، أو منتج يوفر الوثائق والبرامج التعليمية لكل من الأجهزة والبرامج، على سبيل المثال، http://emanual.robotis.com/docs/en/platform/openmanipulator_x/overview/.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top