أين أبدأ تعلم Robotics | محمد شريف

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


1. الهندسة الميكانيكية:
علم الميكاترونيات يعتمد بشكل كبير على عدة أفرع من الهندسة الميكانيكة، مثل التصميم الميكانيكي، ونظرية الآلات، ودراسة الاتزان في حالتي السكون والحركة من Classical Mechanics وهو من فروع الفيزياء ولكن مهندسي الميكانيكا من أكثر التخصصات التي تتعامل مع هذا العلم، لذلك سوف نلحقه بها.
بالنسبة لهندسة التصميم الميكانيكي، يتم دراسة كيفية تأثير أنواع الأحمال المختلفة على المواد، وبناءً على ذلك يتم تحديد نوع المادة المناسبة للتطبيق المعين الذي نهتم به، بعد ذلك يتم عمل نموذج في برنامج رسم هندسي CAD Program لكل من هذه الأجزاء على حدة، ثم تجميعها بعد اختيار الأبعاد المناسبة والمواد المستخدمة في التصميم في رسم تجميعي Assembly Drawing، وبعد هذه الخطوة تأتي المحاكاة، حيث يتم تعريض التصميم للأحمال المتوقعة سواء كانت ثابتة أو متغيرة والتي تم التصميم على أساسها، ومقارنة الأحمال على الأجزاء بالأحمال التي تم حسابها في خطوة التصميم السابقة، والتأكد من أن التصميم آمن تمامًا، بعد ذلك يتم عمل رسومات التشغيل Working Drawing وهي التي تستخدم في تصنيع الأجزاء التي تم تصميها لتصبح موجودة في الواقع.
بالنسبة لنظرية الآلات، فإن المطلوب هو تخليق نوع معين من الحركة Motion Synthesis وقد تكون الحركة المطلوبة حركة خط أو نقطة على حسب التطبيق، ومن ثم يتم دراسة Position Analysis وتحليل السرعة والعجلة ثم القوى (ولاحظ هنا أن عند هذه النقطة، التي يتم فيها تحديد القوى ندخل في خطوة التصميم الميكانيكي السابقة، وهكذا هذا العلم متداخل)
دراسة الحركة Dynamics Analysis تأتي للتأكد من أن التصميم يعمل بشكل صحيح في بيئة المحاكاة، فلا تتداخل أجزاء التصميم الكلي الذي تم تجميعه، والتأكد من أنها تنتج الحركة المطلوبة، ويمكن استخدام برامج CAD في هذا وقد يتوقف دورها على إنتاج حركة صورية Animation فقط ومن ثم لا تنتج حسابات يمكن الاعتماد علىها في دراسة الحركة، أو استخدام برنامج مخصص لهذه الدراسة بالذات مثل MSC Adams أو SIMULINK SimMechanics.
يمكنك فهم دراسة السكون والحركة Statics and Dynamics من كورسيرا مجموعة رائعة وهي حسب ترتيب المستوى كالآتي:
يمكنك تعلم أساسيات التصميم Mechanics of Materials من هذه المصادر:
والمصدرالتالي عبارة عن أساسيات لبرنامج SolidWorks:
والمصدر التالي عبارة عن أساسيات لبرنامج CATIA:
وللعلم، كل من CATIA & SolidWorks تنتجهما نفس الشركة، لكن SolidWorks أشهر بين الطلاب لأن سعره أقل، وهو تقريبًا يحتوي على كل إمكانيات CATIA المشهور في الشركات أكثر، والذي يكون أفضل في حال بناء مشاريع ضخمة، يوجد برامج أخرى وبالطبع يوجد على يوتيوب شرح لها، والأفضل هو التعامل مع برنامج واحد وإتقانه تمامًا.
2. الهندسة الكهربية:
نظرية الدوائر الكهربية والغرض منها في الصورة الكبيرة للنظام الميكاتروني هو تغذية المحركات Actuators بالطاقة المطلوبة، وتعديل خرج الحساسات ليناسب التعامل مع نظام التحكم، ويكون الهدف غالبًا عمل تنقية لخرج الحساسات، من الترددات العليا التي تتداخل معها قبل عمل تكبير لها، لتتناسب مع دخل نظام التحكم.
يمكنك بناء معرفة بفهم واضح للمبادئ الأساسية لتحليل الدوائر والتعرف على العناصر الأساسية فيها، وتطبيقاتها في الأجهزة المحيطة بنا،عن طريق متابعة سلسلة الدوائر الكهربية الخطية من معهد ولاية جورجيا للتكنولوجيا على موقع كورسيرا:
https://www.coursera.org/course/circuits
يتبع هذه السلسلة في طريق إتقان هذه الجزئية سلسلة أخرى بعنوان مقدمة لعلم الإلكترونيات، يتناول دراسة بمستوى أعلى من سابقه لبعض العناصر الإلكترونية، مثل المكبر OP-Amp الدايود والترانزستور وتصميم الفلاتر من هنا:
https://www.coursera.org/course/introtoelectronics
يوجد كتاب مفتوح جيد عن تصميم الفلاتر تجده هنا:
http://www.mikroe.com/products/view/…/digital-filter-design/
3. النمذجة والمحاكاة والتحكم:
الهدف الأساسي من هذه الخطوة هو تصميم نظام التحكم وتحديد قدرة المحركات المطلوبة لتحريك الروبوت، ولاحظ التداخل بين فروع هذا العلم، ففي الخطوة الأخيرة من الهندسة الميكانيكية لدينا نموذج تم عمله في برنامج تصميم ميكانيكي ثم في برنامج تحليل للحركة، وهكذا يكون لدينا نموذج ولا نحتاج إلي هذه الخطوة هنا، وقد يتم تمثيل النظام عن طريق معادلة تفاضلية في Time domain أو Transfer Function في الـ S-Domain أو عن طريق تعريف النظام بمجموعة من المدخلات ومجموعة مقابلة من المخرجات الصحيحة كما يحدث في System Identification ونخلص من هذه النقطة إلى أنه يمكن أن يتم بناء النموذج بطرق عديدة، والاختلاف بينها يكون في مستوي الدقة المقبول.
المحاكاة هي عبارة عن حل المعادلات التي تصف النظام الذي نريد دراسة سلوكه بناءً على بعض المدخلات، بفرض أن لدينا نظام مثل ذراع روبوت ينقل شيء من مكان لآخر أو يقوم بعملية لحام أو دهان، بعد عمل النموذج تتم المحاكاة يتم فيها إدخال قيم معينة للمحركات في مفاصل الذراع من أجل أن يقوم بالمهمة المرغوبة، وغالبًا نجد أن النظام لا يقوم بالأمر المطلوب بمستوى الآداء المرضي مثل السرعة أو الثبات عند الوضع النهائي، أو أن النظام غير متزن أصلًا وهنا يأتي تصميم نظام التحكم.
الهدف الأساسي لنظام التحكم هو جعل المنظومة التي تم عمل نموذج لها متزنة بالكامل، وبعد ذلك يتم وضع تصميم معين لمستوى الآداء المطلوب، مثل بطء النظام أو سرعته في الوصول للهدف بأقل حيود في اتجاه الزيادة Over Shoot والتأكد من الثبات عن القيمة النهائية المطلوبة Zero Steady State error.
من البرامج الأساسية في النمذجة والمحاكاة وتصميم التحكم هو Matlab وهو سهل في الاستخدام والتعلم مقارنة بلغة C أو C++يمكن اكتساب خبرة جيّدة فيه، إذ لا غنى عنه للمهندسين من خلال الكورس:
https://iversity.org/…/modelling-and-simulation-using-matlab
تصميم التحكم يمكن أن تستمتع بتعلمه من هذه المصادر المرتبة حسب درجة الصعوبة:
4. البرمجة:
يسأل الكثيرون عن لغة البرمجة المناسبة لمهندسين الميكاترونيات، حتى الآن أعتقد أن الترتيب الحالي من حيث الأهمية واقعي:
لغة Matlab هي الأهم وقد ذكرت مصدرًا جيدًا لتعلمه في الجزء السابق، ومن الجيد أن تتعلم كيفية ربط الماتلاب مع الHardware المختلفة مثل Arduino وLego Mindstorms وكيف تستعمل كل منها على حده، يمكن أن تساعدك هذه الخبرة في إنجاز تجارب سريعة تفهم منها الكثير من الأشياء النظرية في الدراسة.
كما يجب أن تقضي وقتاً طويلًا مع Matlab Robotics Toolbox وقد ذكرته في كورس د. بيتر كورك وهو أصلًا من إنتاجه، ويكون أفضل إذا استطعت متابعة الكورس معه.
يأتي بعده في الأهمية لغات C / C++ تكتسب من خلال تعلمها أساسيات البرمجة (بغض النظر عن اللغة) وهذه الخبرة لا غنى عنها، كما أنك سوف تحتاج إليهما في حالة برمجة الأنظمة المدمجةEmbedded System on low level وللعلم، فإن برنامج Matlab يمكنه أن ينتج كود C لبعض الـHardware باستخدام Automatic code generation.
ثم لغة Arduino وهي تعتمد على C/C++ في الأساس وتستخدم C-Compiler، ولكن الدوال الموجودة تجعل البرمجة سهلة جدًا للمبتدئين.
تجد في هذا المصادر كيفية تعلم Arduino وكيفية ربط Matlab& Arduino.
مصادر لتعلم لغات C/C++ :
وإذا كنت تحتاج إلى تعلم برمجة الأنظمة المدمجة فيمكن أن ترجع لهذه المقالة على المدونة (مصادر تعلم الأنظمة المدمجة):
5. الذكاء الاصطناعي:
هو العلم الذي يهدف إلي بناء سلوك معين للآلات يجعلها تحاكي القدرات الذهنية الموجودة عند الكائنات الحية، ومن أهمها القدرة على الإدراك والتعلم والتفكير المنطقي والاستنتاج والتخطيط ورد الفعل على أوضاع لم تبرمج عليها الآلة كالمعتاد. ويعرف الذكاء بالقدرة على إدراك الوسط المحيط والتغير فيه، واتخاذ قرارات تزيد من احتمال النجاح في المهمة المطلوبة. وفي الواقع تعدد فروع الذكاء الاصطناعي تجعله يحتاج إلى مقالات، ولكن نكتفي بذكر بعض تطبيقات الذكاء الاصطناعي في الروبوتات، مثل إدراك الأصوات، والرؤية، والتفريق بين الأشياء، وتحديد الموقع ورسم الخرائط، والبحث والتحكم وغيرها.
يمكن تعلم الذكاء الاصطناعي بالتركيز على علم الروبوتات من كورس رائع على يوداسيتي، يقدمه سباستيان ثرن قائد فريق سيارة جوجل، وفي الكورس يتم بناء Autonomous Robotic Systems أو نظام ذاتي التحكم من هنا:
https://www.udacity.com/…/artificial-intelligence-for-robot…
6. علم الروبوتات:
هو أصلًا تطبيق لعلم الميكاترونيات، ولشهرته الواسعة يستخدمه البعض كاسمٍ بديلٍ له، والبداية في فهم هذا العلم غالبًا ما تكون بدراسة الروبوتات الصناعية (Industrial Arm Robots)، ونتعلم فيه كيفية توصيف وضع الجسم Pose (مكانه ودورانه) في الفراغ الثلاثي وبالنسبة لمحاور إحداثيات مختلفة، ثم دراسة الحركة وتوصيف حركة نهاية ذراع الروبوت End Effector بسبب حركة المحركات الموجودة في مفاصل الذراع والتي تتحكم بمجموعها في حركة نهاية الذراع لكي يتمكن من إنجاز مهمة معينة مثل اللحام أو الدهان ونقل شئ معين. بعد ذلك نتعلم كيف يتم تخطيط مسار معين ليتمكن الذراع من إتمام المهمة المطلوبة على المسار المصمم وبالسرعة المطلوبة، ودراسة حركة الذراع dynamics ثم كيفية التحكم فيه.
من المصادر الجيدة في تعلم أساسيات هذا العلم، كورس د.أسامة خطيب من جامعة ستانفورد:
وكورس بيتر كورك صاحب Matlab Robotics Toolbox وهو كورس مفتوح المصدر وسوف يكرره قريبًا:
وله كورس آخر في أنظمة الرؤية الخاصة بالروبوتات هنا:
وكورسان من جامعة سيول نجدهم هنا مرتبين حسب المستوى (المستوى الثاني يحتوي على معلومات معقدة جدًا في الكتب، وتم تناولها بالتفصيل) وهو الوحيد الذي يشمل دراسة Serial Robot وParallel Robot:
المصدر 
  1. هذة احدث تدوينة
  2. التدوينة السابقة
    تعليقات الموقع
    تعليقات فيسبوك
جارى التحميل ...

تابعنا على فيسبوك