مدتی پیش بود که خبری شنیدم مبنی بر عرضه یک مینیتراک خودران از طرف کمپانی سوئدی ولوو (لینک) و به قدری برام جذاب بود که خواستم بسیار بیشتر از گذشته، در مورد مفهوم «خودروی خودران» تحقیق و تفحص کنم و حتی ازشون بنویسم. نتیجه شد که الان در حال نوشتن این مطلب هستم.
ابتدا که بحث خودروهای خودران خیلی مطرح شد، سال ۲۰۱۴ بود و تسلا قابلیت «خلبان خودکار» (یا البته بهتره در این مورد خاص، بگیم راننده خودکار) رو برای خودروهاش معرفی کرد. اگر میخواهید در مورد اتوپایلت تسلا بیشتر بدونید هم میتونید این لینک رو مطالعه کنید. ابتدا خیلی برام سوال بود که چطور میشه یک وسیله نقلیه مثل یک خودرو، کامیون و …؛ خودران باشه و نیازی به هیچ اپراتوری نداشته باشه. مثلا یکی از چیزایی که به ذهن من (و احتمالا خیلیهای دیگه) میرسه، بینایی ماشین باشه. این درسته اما همهش نیست.
خلاصه من دست به کیبرد شدم تا در مورد خودروهای خودران و چیزهایی که ازشون فهمیدم به تفصیل بنویسم و تجربه و دانشم رو منتقل کنم.
هوش مصنوعی چطور یاد میگیره رانندگی کنه؟
خب برای این که این سوال رو پاسخ بدیم، اول لازمه که به یک سوال خیلی خیلی مهمتر پاسخ بدیم. ما انسانها چطور یاد میگیریم رانندگی کنیم؟ اگر در این پاسخ از پروسه آموزش و آزمون آییننامه راهنمایی و رانندگی صرف نظر بشه، ما پشت یک خودرو مینشینیم که یک دست کلاچ ترمز اضافه داره، روی اون تابلو و نشان مخصوصی نصب شده که به باقی رانندهها اطلاع میده که این ماشین مخصوص آموزشه و در نهایت، مربی ما به ما میگه که چطور ماشین رو راه بندازیم، کجا دنده عوض کنیم و کجا راهنما بزنیم و اینها.
بعد از این که مراحل آموزش و آزمون شهری تمام شه و ما موفق به اخذ گواهینامه رانندگی بشیم، تازه وارد فضای «واقعی» میشیم. البته در فضاهای واقعی اوضاع کمی تفاوت داره و تا حد زیادی اتفاقا بیریخته. میپرسید چرا؟ چون که دیگه خودروی ما هیچ نشانی نداره که به بقیه بگه ما تازهکاریم و مربی هم کنار دستمون نیست (از حوصله این بحث خارجه اما یادم میاد چندسال پیش قرار بود برچسب «راننده تازهکار» به مدت سهماه روی خودروی نورانندهها چسبانده بشه) و احتمال زیاد اشتباهات کوچک ما حین رانندگی باعث بشن که مضطربتر بشیم و اشتباهات بزرگی مرتکب شیم.
حالا از این بگذریم، کم کم یک موضوع مهم رو یاد میگیریم. موضوع چیه؟ این که «تابلوها، علائم، فرمان پلیس و … همه مهم هستند و باید بهشون توجه کرد و احترام گذاشت. اما مهمتر از آنها، دیدن رانندگی باقی رانندههاست». اینجا اهمیت این موضوع کم کم روشن میشه که بفهمیم همه ما، قرار نیست عین هم رانندگی کنیم. خیلیها هستند که برای هضم دلتنگیهاشون تختگاز میرن. خیلیها هستند که در لاین سرعت با سرعت ۴۰ تا میرن. خیلیها هم درست رانندگی میکنن ولی راهنما نمیزنن و … . در واقع ما با تجربه میفهمیم که رفتار رانندهها چطوره و این رفتار رو آنالیز میکنیم و به نتایجی میرسیم که باعث میشن ما راننده بهتری بشیم.
حالا که در مورد رانندگی انسان اطلاعات داریم، ببینیم هوش مصنوعی چطور یاد میگیره؟ خیلی سادهست. هوش مصنوعی هم ابتدا یک مربی نیاز داره. این مربی کیه؟ این مربی انسانه. یک نفر مینشینه پشت فرمان، یک دور مثلا مسیری رو طی میکنه و بعد از اون، هوش مصنوعی بر اساس اون دیتایی که دریافت کرده، شروع میکنه به آموزش دادن مدل خودش. سپس، این مدل مورد آزمون و خطا قرار میگیره تا به کیفیت لازم و راضیکننده برسه. بعد از اونه که این مدل، روی خودرو، مینیکامیون و … سوار میشه و یک سری آزمایش جدیتر روش صورت میگیره و در نهایت به محصول نهایی تبدیل میشه.
خودروهای خودران چه دادهای نیاز دارند؟
طبیعتا هرجا بحثی از هوش مصنوعی در میان باشه، نیازمند داده هستیم. گاهی این دادهها رو نیازه که خودمان پیدا و درست کنیم، گاهی هم باید این دادهها رو از جاهای مختلفی جمعآوری کنیم (برای این که با موضوع جمعآوری داده آشنا بشید هم میتونید این پست رو بخونید) و خب در مورد خودروهای خودران، ما نیاز داریم که داده اولیه و خام رو لااقل خودمون تهیه کنیم. باقی داده چی؟ میتونیم اون رو از طریق کسانی که خودروهای ما رو میخرند جمعآوری کنیم و مدلهای خودمون رو بهبود بدیم.
حالا سوال پیش میاد که ما دقیقا چه دادهای نیاز داریم که به خودروی خودران بفهمونیم که باید خودران باشه؟ در این بخش از پست، سعی کردم تا حد امکان سادهش کنم و توضیحش بدم. البته در نظر داشته باشید که این بخش ممکنه ناقص باشه و در آینده، کم کم میتونه بهبود پیدا کنه.
دادههای علائم راهنمایی و رانندگی
خب هوش مصنوعی هم عین خودمون نیازمند اینه که آییننامه رو بلد باشه. در واقع باید بتونه علائم رو تشخیص بده. البته مهم اینجا اینه که این علائم چی هستند، و بعد با باقی دادهای که دریافت میکنه بتونه در مورد نحوه رانندگی تصمیمگیری کنه. پس ابتدا لازمه که هزاران عکس مختلف از علائم رانندگی داشته باشیم و یک مدل خاص (معمولا از نوع Object Detection که خب میتونیم از مدلهایی مثل YOLO براش استفاده کنیم) براش آموزش بدیم. البته موضوعاتی مثل رنگبندی علائم در کشورهای مختلف هم میتونه مسالهساز باشه که خب بعدتر میتونیم روی اون تصمیم بگیریم. مثلا یکی از این مسائل، «آبی» بودن چراغ سبز در کشور آلمانه. شما چه راهحلی براش دارید؟
تصویر مسیر
طبیعتا نیاز داریم که تصویری از مسیری که طی کردیم داشته باشیم. چرا؟ چون این تصویر هم به ما از موانع احتمالی، تابلوها، چراغ قرمز و … اطلاعات خوبی میده. این اطلاعات، با اطلاعاتی که از مدل قبلی کسب میکنیم میتونه به ما کمک کنه که در مسیری خاص، بهتر رانندگی کنیم. البته این هم باید در نظر بگیریم همین که در مسیری هستیم احتمال این که خودروهای دیگری هم حضور داشته باشند هست. این احتمال رو باید در نظر گرفت و طبیعتا تصویر مسیر میتونه از وضعیت ترافیک یک مسیر خاص هم به ما اطلاعات بده. همچنین از نوع خودروهای حاضر در مسیر، و از همه مهمتر، نحوه رانندگی سایرین در اون مسیر.
زاویه فرمان، میزان فشار روی پدال گاز و دفعات و شدت فشرده شدن ترمز
این هم مورد مهمیه. در واقع ما وقتی با خودرویی رانندگی میکنیم روی چند چیز همیشه کنترل داریم. در کیسی که ما راننده یک خودروی دستی هستیم، علاوه بر فرمان و گاز و ترمز، روی کلاچ و دنده هم کنترل داریم. اما از اونجا که خودروهای خودران عموما برقی هستند، جای «دنده عوض کردن» با Speed Control عوض شده (البته این به معنای نداشتن گیربکس یا دیفرانسیل نیست، فقط انتقال قدرت شکل دیگری به خودش گرفته) و به همین خاطر کلاچ و دنده دیگه حضور خاصی در این پروسه ندارند.
اما هنوز برای ما مهمه که چطور باید فرمان رو بچرخونیم، چطور گاز بدیم و چطور ترمز بگیریم. همه این موارد، موقع جمعآوری دیتا، جمع میشه. حالا موضوع اینه که اینها چه اهمیتی برای ما دارند؟ یکی از موارد مهم اینجا اینه که مدل ما میتونه بفهمه وقتی در یک فاصله خوبی ازش ماشینی قرار نگرفته، میتونه گاز بده. ولی وقتی ماشین مثلا در فاصله دهمتریش قرار داره، باید کمتر گاز بده. وقتی ماشین در فاصله پنجمتریشه، باید یواش یواش ترمز بگیره تا هم با اون ماشین برخورد نکنه و هم به ماشینهای پشتی اطلاع بده که جلو راه بستهس و از این دست چیزها.
فاصله
خودروهای خودران، علاوه بر تعداد زیادی دوربین، تعداد خوبی سنسور هم برای تشخیص فواصل دارند. این سنسورها یا از نوع LiDAR (یا Light detection and ranging) یا فراصوت (Ultrasonic) یا حتی RADAR (که مخفف Radio detection and ranging است) یا ترکیبی از این موارد هستند. با استفاده از این سنسورها، فاصله از موانع، عابرین پیاده، خودروهای دیگر و … ثبت و ضبط میشه و بعدا به مدل هوشمصنوعی ما میتونه کمک بده که اینجا چه خبر بوده و در موقعیت مشابه، چه تصمیماتی باید اتخاذ کنه.
موارد دیگر
بسته به شرایطی که قراره خودروی خودران ما درش کار کنه، ما ممکنه نیاز به دادههای دیگری داشته باشیم. به همین دلیل، از اسم بردن تک تک موارد اجتناب کرده و اگر نیاز شد بعدتر در مطلبی جداگانه در موردش خواهم نوشت.
قوانین استفاده از خودروهای خودران
در ایران هنوز بحثی از حضور خودروهای خودران مطرح نشده (و احتمالا از اونجایی که عمده این خودروها در حال حاضر ساخت امریکا هستند و هنوز حرفی از نمونههای ژاپنی، کرهای، چینی، آلمانی و … به میان نیست حالا حالاها هم مطرح نشه) و صرفا یک خبر از مخالفت پلیس راهور (لینک) با این موضوع به دست من رسیده ولی در باقی کشورها، بخصوص امریکا؛ به شدت روی قوانینی که مربوط به وسایل نقلیه خودران باشه کار میشه.
در حال حاضر، هیچ کشوری «خودروی ۱۰۰٪ بدون راننده» رو نمیپذیره و حتی خودروهایی که «بدون حضور راننده» به حرکت درمیان، نیازمند این هستند که توسط اپراتور کنترل بشن. این مورد، برای اینه که خودروها بدون هیچ راننده و کنترلی ممکنه موجب تصادف و آسیب به سایر خودروها، ساختمانها و افراد بشن.
در مورد Auto Pilot هم که معمولا با حضور رانندهست، حتی قانون اینه که خودروها باید مطمئن بشن که راننده از اتوپایلت برای خوابیدن، بازی کردن با گوشی و … استفاده نمیکنه. مثلا در ویدئویی که در مورد تسلای مدل ۳ ساخته شده (لینک) نشون داده میشه که خودرو خودش ازتون میخواد که هر یک دقیقه یک بار، فرمان رو تکون بدید تا بفهمه که بیدارید یا حواستون پرت نشده. در ویدئوی دیگر هم نشون داده شد که اگر شما به هشدارهای ماشین توجه نکنید، ماشین خاموش میشه و حتی نمیذاره چندین ساعت از اتوپایلت استفاده کنید (لینک) و تمامی این موارد، تابع قوانینیه که برای این خودروها چیده شدند.
در حال حاضر شاید قوانین شفافی برای خودرانها نداشته باشیم، اما قطعا چندین سال دیگر این مورد بهبود پیدا میکنه و قوانین جهانشمولی براشون تدوین خواهد شد. چرا که خودرانها قراره آینده صنعت حمل و نقل باشند.
جمعبندی و سخن آخر
تقریبا از وقتی تسلا انقدر انقلابی عمل کرد اخبارش رو دنبال میکردم. اما چیزی که هیچوقت در عمق و بطنش فرو نرفته بودم، تکنولوژیهایی بود که در محصولاتش استفاده میکرد. به همین خاطر، پیش نیامده بود که در مورد خودروهای خودران چیزی بنویسم (با این که سالها پیش در حال کار روی پروژه خودروی دستساز بودم و این پیگیری میتونست بهم در ساخت پروژه خودم هم کمک کنه). خلاصه پس از مدتها این رو نوشتم و وقتشه یک جمعبندی ریزی داشته باشیم.
همونطوری که فهمیدیم، خودروهای خودران ترکیبی از چند علم و چند صنعت هستند. شاید تلالو مهندسی مکانیک، مهندسی برق و مهندسی کامپیوتر و همکاریشون با یکدیگر در همین حوزه خلاصه شده باشه. ایده خودرویی که نیاز به راننده نداشته باشه البته ایده جدیدی نیست و تقریبا از دهه ۷۰ میلادی، این ایده وجود داشته. موضوع مهم اجرا و پیادهسازی بوده که خب در سالهای اخیر شاهدش بودیم. در ادامه فهمیدیم که خودروهای خودران نیازمند دادههای زیادی هستند و از قضا این دادهها رو نمیشه به سادگی از اینترنت دانلود کرد و به خورد یک مدل داد و نیاز داریم که مدل رو با دادههای بهروز و بههنگام؛ آموزش بدیم.
بحث قانون هم در این میان به پیش کشیده شد و خب این موضوع، حداقل جایی که تاثیر مستقیم روی زندگی انسان مشهوده، بحث بسیار مهمیه و من شخصا امیدوارم شاهد نگارش قانونهای درست و حسابی برای این موضوع باشیم.
سخن آخر هم این که مثل همیشه ممنونم از این که وقت گذاشتید و این مطلب رو خوندید و امیدوارم که این مطلب، مفید فایده واقع شده باشه 🙂