عمل خريطة باماكن الالغام بمسابقة اكتشاف الالغام هو من احد التحديات البرمجية للمتسابقين وسنقوم بعض عدة افكار تساعد الفريق على عمل الخريطة وايضا امثلة لذلك وبالاجتهاد بعد ان تاخذ هذذه الامثله والافكار يمكنك ان تحول الروبوت اليدوى الى روبوت اوتوماتيك حيث يقوم بمسح المنطقه وارسال البيانات والتحكم فيه من محطة الاستقبال والتحكم !!
يكون الحقل المراد مسحه فى المسابقة عبارة عن منطقة فى الصحراء مقسمة الى 19 مربع * 19 مربع وكل مربع 1*1 متر والمطلوب منك ان تقوم بمسح هذه المنطقة وتحديد المربعات الخطرة واللتى تحتوى على الغام وايضا تحديد نوع الللغم سواء ظاهر او مدفون !!
المطلوب هو عمل خريطة باماكن الالغام كما بالصورة او خريطة مشابهه لها
اول حاجة هنتكلم عن السينسور اللى ممكن تستخده وايه المقترحات !! يوجد العديد ولكن سنقوم بطرح ما اتذكره
- Encoder
- IMU – Inertial Measurement Unit
- Digital Magnetic Compass
- GPS – Global Positioning System
- Camera
- kinect camera
- Ultrasonic
- GPR – Ground-penetrating radar
- Metal detector sensor
ازاى تعمل الخريطة دى بطريقة بسيطة وسهلة بس مش هتكون دقيقة وهيكون فى اخطاء باستخدام الانكودر وسينسور اكتشاف المعادن واى سينسور لتحديد المسافة للتعرف ع نوع اللغم
اولا : بعض المواتير تكون مدمجة بالانكودر والبعض الاخر لايحتوى ع انكودر فى هذه الحالة لابد من تركيب انكودر على الموتور او ع جلة حرة على حسب التصميم الخاص بكم و سنقوم بمعايرة الانكودر لمعرفة عدد النبضات التى يحدثها فى اللفة الكاملة ومن ثم نقوم بحساب محيط العجلة وتكون اللفة الواحدة تجعل الروبوت بتحرك مسافة قدرها محيط العجلة وتتم الحسابات بالمعادلات اسفل الصورة ومثال فى اخر الكود هنا
- Circumference = pi * Diameter
- Distance traveled = Wheel rotations * circumference
- Distance traveled = (Degrees turned / 360) * circumference
- Distance traveled = (Encoder ticks / 360) * circumference
- Encoder ticks = (360 / circumference) * Distance to travel
نقوم بارسال البيانات عن طريق الاكسبى او اى وصيلة لا سلكية اخرى عن طريق استخدام منافذ السيريال تقوم الواجهه الرسومية بالتقاط البيانات والبدء فى عمل الخريطة كما فى هذا المثال باستخدام الفيجوال بيزيك
هذه الصورة اثناء اختبار اداء سينسور المعادن مع الالتراسونيك
وهذه اثناء الجولة الاخيرة فى البرتغال
تسبب هذه الطريقة بالعديد من الاخطاء والمشاكل ولتحسينها يمكنك استخدام مكتبات مثل
Arduino PID
ثانيا : استخدام مكتبات معالجة الصور ويمكنك استخدام الماتلاب او حتى استخدام ال اوبن سي فى ايا كان ما ستستخدمه ومن الافكار التى قام بها فريق الجامعة الالمانية العام الماضى قامو بتثبيت بالونه على الروبوت واخذ صورة للروبوت عندما يلتقط كاشف المعادن وبمقارنة بين حجم البالونة ع ابعاد مختلفة يمكن حساب المسافات ومنها عمل الخريطة
واقترح لمن يريد استخدام هذه الطريقة بتثبيت كاميرا واحدة تكشف الملعب كاملا وتثبيت 4 كرات بنفس الحجم على اطراف الملعب وتثبيت واحدة اخرى خامسة على الروبوت وبالمقارنة بين احجام الكرات والتى ستعطى دائرة من كل الاتجاهات فى حالة ثبوت مستوى المحور الافقى وعدد البكسلات فى الصورة سيكون المجهول هو بعد الروبوت ومعلوم عدد البكسلات وحجم الكرات حيث ان البعد بين اى كرتين هو 19 متر ما عدا الكرة المثبتة على الروبوت
وتتحقق المعادلة : البعد المعلوم (19 متر) * عدد البكسلات المعلوم (من معالجة الصورة) = البعد المجهول * عدد البكسلات المعلوم (من معالجة الصورة) بهذا يمكن حسااب المسافات ودى صورة توضيحية لملعب 5*5 والروبوت بالمتر الثالث فى العمود الثانى
يوجد عدة طرق اخرى يمكنكم الوصول اليها من خلال الانترنت ..
ثالثا : باستخدام ادوات الملاحة مثل
GPS & IMU and Digital Magnetic Compass
اولا نبدأ بال جى بى اس وله عيوب اكثر من مميزاته حيث ان نسبة الخطأ المتاحة للاستخدام المدنى تصل 50 اى 100 سم واحيانا الى 9 م وهذا لا يتناسب مع ظروف المسابقة
ثانيا ال IMU or Digital Magnetic Compass + encoder
ساضع لكم طرق استخدامه مع اللاب فيو والماتلاب وهذا يمكنكم من صنع الخريطة ع نفس البرنامج اما الاردوينو ف يمكنكم كما فعلنا بالاعلى باستقبال البيانات عن طريق السيريال وصناعة الخريطة فقط على الكمبيوتر
Arduino with Digital Magnetic Compass
IMU-9DOF Arduino read to Labview
تقدر تعدل ف الاكواد وتظبط بيها الخريطة بتاعتك بالشكل اللى انت عاوزه ولو غلبت خالص دور ازاى تقراهم وتطبع القراءة سيريال بلاردوينو واعمل زى اول طريقة فوق ..
رابعا ياستخدام نظام تشغيل الروبوتات ولغة بايثون او لغة بايثون وحدها لمن لا يريد التعقيد
هو نظام مفتوح المصدر ويمكنك الاعتماد على العديد من المكتبات به ولقوته يمكنك عمل روبوت اوتوماتيكى بكل سهوله فى هذا اللينك طريقة عمل روبوت اوتوماتيكى وايضا بقليل من التعديلات يمكنك عمل الخريطة وليست الخريطة فقط بل عمل محاكاه ف الوقت نفسه
تمكنك لغة بايثون من التعامل مع النظام بسهولة كما يمكنك عمل الخرائط بها بعيدا عن النظام ولكن سيتطلب الامر منك كمبتدئ بعض الوقت
خامسا ايضا هناك مشروع اخر مفتوح المصدر يمكنك الاستعانة به واستخدامه للاسترشاد والتعديل عليه للوصول لغرضك يمكنك الحصول ع كل ملفاته من هنا وايضا طريقة عمله من هنا
اخيرا يمكنك الاستعانة بتقنيات
3D vision or stereo vision or kinetic camera
ولغة بايثوون او لاب فيو او ماتلاب لصنع صورة ثلاثية الابعاد او حتى ثنائية لوكن ستكتسف كل الالغام الظاهرة وستكون النتيجة مشابهه لما فى الفيديوهات !!
ويمكن الحصول ع ملفات الطريقة الثانية من هنا