نبذة عن أساسيات القيادة الذاتية

طريقك لفهم القيادة الذاتية

302

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

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

يتطلب بناء سيارة ذاتية القيادة جزئين رئيسيين:

1- السوفت وير الخاص بالنظام وهو عبارة عن الأكواد المكتوبة للتحكم بالسيارة.

2- الهارد وير أو السينسورات المستخدمة لإعطاء معلومات عن البيئة المحيطة للسيارة.

ما سنركز عليه هنا هو جزء السوفت وير.

لغات البرمجة المستخدمة في المجال

تختلف لغات البرمجة المستخدمة حسب الشركة المصنعة حيث تستخدم شركة تسلا كلا من لغتي ال C++,C ، أما شركة waymo (مشروع جوجل للسيارات ذاتية القيادة) فيستخدم كلا من C, C++, Python, FPGA programming، وشركة أوبر تستخدم C++,python.

وما سنستخدمه لتوضيح بعض أساسيات المجال هو لغة الpython 

كيفية معرفة المسافة

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

عبور الملفات 

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

al : التسارع الحادث أثناء مرور السيارة من الملف لجعلها تتغلب على قوة الطرد المركزي

v: سرعة السيارة أثناء المرور 

R: نصف قطر الملف 

الطريق الأقصر

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

في حالة اختيار الطريق الأيسر سيكون خارج الدالة L وفي حالة اختيار الطريق الأيمن يكون خارجها R

def make_decision(L1, L2, L3, L4):
    if L3 + L4 < L1 + L2:      
        return "L"          
    if L3 + L4 > L1 + L2:      
        return "R"          
    else:      
       return "R" or "L"          

عدم التأكد

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

-كيفية تصرف الطرف الآخر : تصرفات البشر غير متوقعة مهما حاولنا.

-مكانك بالتحديد : ربما تظن أنك تعرف مكانك بالتحديد أثناء القيادة ولكن هذا غير صحيح فأنت تعرف مكانك بدقة كافية بالنسبة إليك ولكنها ليست دقيقة بما فيه الكفاية.

-سرعتك : ربما تظن أن جهاز قياس السرعة بالسيارة يعطيك سرعتك بالتحديد ولكن الحقيقة أنه يعطيك قيمة تقريبية لسرعتك وبالتالي فهي ليست دقيقة تماما.

-ماذا سيحدث عندما تدير عجلة القيادة : السيارة هي نظام ميكانيكي غير مثالي بالتالي في كل مرة تدير فيها عجلة القيادة تكون نسبة الدوران مختلفة بنسبة قليلة جدا.

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

الاحتمالات والإحصاء

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

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

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

يتبع فضاء العينة في الغالب نمطا يمكن حسابه رياضيا بمعادلة :

حيث تمثل x : الأحداث المحتمل حدوثها مثلا قد تتحرك السيارة في ثلاثة اتجاهات مختلفة.

وN : هي عدد مرات تكرار التجربة فلدينا في الصورة سيارتين ما يعني أننا سنكرر التجربة مرتين وبالتالي يكون فضاء العينة ثلاثة أس اثنين أي 9.

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

الاحتمالات الشرطية 

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

وتعني المعادلة أن احتمالية حدوث A بمعلومية أن B حدثت بالفعل تساوي احتمالية حدوث AوB معا مقسومة على احتمالية حدوث B

يصبح الأمر أكثر غرابة كلما تعمقت به أكثر ولتوضيح مدى غرابته دعنا نرى المثال التالي : 

قمت بإجراء اختبار لتبين إن كنت مصابا بالسرطان أو لا ولأننا نعلم أن الاختبارات ليست قاطعة وهي تحتمل نسبة خطأ لا بأس بها طلب منك الطبيب أن تحسب احتمالية أن يكون الاختبار موجبا سواء كان لديك سرطان فعلا أو لا

لديك خيارين إما أن يكون الاختبار صحيحا فيكون + وأنت بالفعل مصاب أو يكون الاختبار خاطئا فيكون + وأنت غير مصاب

ونعبر عنها بالمعادلات بالشكل التالي     (1)

وبفكها بقانون الاحتمالات الشرطية فوق نجد أن :(2)

حيث   وتمثل احتمالية إصابتك بالسرطان و  تمثل احتمالية عدم إصابتك بالسرطان

وبفرض أن  و 

بالتعويض في المعادلة (2) تجد أن 

الآن دعنا نحسب احتمالية أن لديك سرطان لا قدر الله بمعلومية أن الاختبار أعطى نتيجة إيجابية

يعني أننا نريد حساب  وقانونها هو  بالفعل لدينا ال لكن ليس لدينا قيمة البسط

بالتالي نتجه  لحساب البسط 

وبالتالي يكون 

أي أن احتمالية أن يكون لديك سرطان بالفعل حتى وإن كان الاختبار موجبا هي 1/3 فقط تقريبا ثلاثة من كل عشرة أشخاص يحصلون على اختبار موجب سيكون لديهم فعلا سرطان! لكي تفهم أهمية شيء كهذا للسيارات عليك أن تعرف أن نسبة خطأ الGPS قد تكون كبيرة بعض الشيء كأن تكون 5 متر مثلا بالتالي عندما يخبر الGPS السيارة بأنها في مكان ما فمن المحتمل ألا تكون به بشكل دقيق وهذا قد يؤدي لاصطدامها بشيء ما إن لم تستطع تحديد مكانها بدقة لاحظ الصورة قد تكون السيارة بأي مكان داخل الدائرة الحمراء أي أنه لو افترضنا تواجد شجرة بمكان ما خلال هذه الدائرة فلن تتمكن السيارة من تحديد إذا كانت على وشك الاصطدام بها أو لا إن اعتمدت على الGPS وحده.

مبرهنة بايز أو Bayes Rule

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

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

أي بشكل عام يمكن قياسا على الحسابات السابق ذكرها كتابتها بالشكل التالي :

إن شعرت ببعض الحيرة أحضر ورقة وقلم وحاول إكمال الحسابات بنفسك بفك البسط في المثال السابق ذكره وفك المقام ستجد أنك استوعبت الأمر لحد كبير

بإمكان هذه القاعدة أن تطبق في سياق القيادة الذاتية كالآتي :

حيث RL هي robot location أي موقع الروبوت أو السيارة

و SM هو الsensor Measurement أو قياس السينسور

و PL هو الPrevious location أو الموقع السابق للسيارة.

بالتالي بمعرفة احتمالية موقع السيارة السابق واحتمالية صواب قياس السنسور يمكن الاقتراب من تحديد موقع السيارة الحالي بدقة أكبر وبالتالي تقليل نسبة الخطأ. 

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

مصدر مصدر1 مصدر2 مصدر3
تعليقات