حلل الدالة ( ) move_to_target واشرح كيفية قيام الطائرة المسيرة بحساب موضعها التالي في قائمة نقاط الطريق، كيف يمكن تحسين مسار الطائرة المسيرة لتقليل زمن الطيران بين نقاط الطريق؟
حل سؤال من تمرينات الدرس الثاني التطبيقات الروبوتية 1 ضمن الوحدة السادسة: الذكاء الاصطناعي والمجتمع في مادة الذكاء الاصطناعي، والمقررة على طلاب الصف الثالث الثانوي مسارات خلال الفصل الدراسي الثاني (الجزء الثاني) ١٤٤٧هـ.
حلل الدالة ( ) move_to_target واشرح كيفية قيام الطائرة المسيرة بحساب موضعها التالي في قائمة نقاط الطريق، كيف يمكن تحسين مسار الطائرة المسيرة لتقليل زمن الطيران بين نقاط الطريق؟
الإجابة هي
تعمل هذه الدالة على تحريك الطائرة المسيرة إلى موضع معين عن طريق حساب الزاوية وضبط الانحدار كما أنها تغير موضع نقاط الطريق وتتنقل بين الاحداثيات الخاصة بنقاط الطريق حتي تصل للهدف.
ويمكن تحسين المسار باستخدام خوارزميات التحسين مثل برمجة الاعداد الصحيحة المختلطة.
الشرح والتوضيح:
تُعد الدالة ()move_to_target جزءاً أساسياً من النظام البرمجي للتحكم في الطائرة المسيرة (الدرون) في بيئة "ويبوتس" (Webots)، وفيما يلي تحليل دقيق لهذه الدالة وآلية عملها:
تحليل الدالة ()move_to_target
• المعاملات: تأخذ هذه الدالة معاملين هما self (الذي يمثل مثال الطائرة المسيرة) و**waypoints** (التي تمثل قائمة نقاط الطريق بإحداثيات X وY).
• الوظيفة الأساسية: تعمل الدالة على تحريك الطائرة المسيرة إلى موضع معين من خلال حساب الزوايا اللازمة وضبط قيم "الانحدار" (Pitch) و"الانعراج/التعرج" (Yaw).
• آلية التحقق: تبدأ الدالة بالتحقق مما إذا كانت الطائرة في وضع السكون (الإحداثيات 0,0)؛ فإذا كانت كذلك، تنتقل إلى أول نقطة في قائمة نقاط الطريق.
• المخرجات: تقوم الدالة بإرجاع قيمتين هما yaw و pitch، وهما القيمتان اللتان تحددان توجيه الطائرة نحو الهدف.
كيفية حساب الموضع التالي في قائمة نقاط الطريق
تتبع الطائرة المسيرة آلية محددة للانتقال بين النقاط وحساب مسارها:
1. استخدام الفهرسة (Indexing): يتم استخدام متغير يسمى target_index لتتبع النقاط، حيث يبدأ من الرقم (0) كأول نقطة طريق.
2. المراقبة المستمرة: تتحقق الدالة باستمرار مما إذا كانت الطائرة قد وصلت إلى الهدف الحالي؛ وفي حال لم تصل، تستمر في التحرك نحو النقطة المحددة، ثم تنتقل آلياً من نقطة طريق إلى أخرى حتى تصل للهدف النهائي.
3. الحسابات الرياضية:
◦ يتم حساب الزاوية بين الموضع الأصلي والموضع المستهدف.
◦ تُستخدم دوال رياضية مثل atan2 (مقلوب ظل الزاوية) لحساب اتجاه الطائرة، مع ضمان بقاء القيمة بين سالب باي وباي (أي بين -180 و180 درجة).
◦ تُستخدم دالة ()abs للحصول على القيمة المطلقة للأرقام الناتجة لضمان دقة الحسابات المسافية.
تحسين مسار الطائرة لتقليل زمن الطيران
لتقليل الزمن المستغرق بين نقاط الطريق وتحسين كفاءة المسار، تشير المصادر إلى عدة طرق:
• استخدام خوارزميات متقدمة: يمكن الاعتماد على خوارزميات مثل "برمجة الأعداد الصحيحة المختلطة" (Mixed Integer Programming) التي تساعد في إيجاد المسار الأمثل.
• التعلم من الخبرة: تطوير خوارزميات التحكم لتشمل تعلم الآلة (Machine Learning) والتعلم العميق (Deep Learning)، مما يسمح للطائرة بالتعلم من أدائها السابق وتحسين مساراتها بناءً على التجارب السابقة في المحاكاة.
• نماذج التحكم التكيفية: تطوير نماذج تحكم أكثر تعقيداً لديها القدرة على التكيف مع العوامل الخارجية المتغيرة (مثل الرياح أو العوائق) بشكل أسرع، مما يقلل من الانحرافات ويحافظ على مسار زمني قصير.
• موازنة الاستقرار والاستجابة: ضبط ثوابت PID (التناسب والتفاضل والتكامل)؛ حيث إن تقليل بعض هذه الثوابت قد يجعل الطائرة أكثر استجابة للتغيرات في موضع الهدف، ولكن يجب الحذر لأن ذلك قد يؤثر على استقرارها.