درک مکانیسم کنترل و حرکت کوادکوپتر ها
کلمه ی کوادکوپتر از دو کلمه ی کواد + کوپتر تشکیل شده است. که کلمه ی کواد به معنی چهارگانه و کوپتر هم به صورت عام به معنی پرنده است. پس به صورت کلی کوادکوپتر یعنی یک پرنده ی چهار موتوره. این پرنده ها برای کاربرد های فیلمبرداری، نقشه برداری، نظامی، حمل و نقل و... استفاده می شوند و از مزیت های اصلی آنها نسبت به پرنده هایی مثل هواپیما و هلیکوپتر می توان به مکانیک ساده، قدرت مانور دهی بالا و یک جا ایستادن (هاور کردن) اشاره کرد.
احتمالا کوادکوپتر ها و نحوه ی مانور دادن آن ها را از قبل دیده اید.
در این نوشته قصد داریم به کمک چند مفهوم ساده ی ریاضی نحوه حرکت کوادکوپتر ها را ترسیم کنیم.
برای درک وضعیت قرار گیری این پرنده نسبت به زمین ابتدا باید مفهوم زاویه های اویلری را بشناسیم.
فرض کنید در دستگاه مختصات دکارتی هستیم. یک دستگاه مرجع در نظر می گیریم حال دستگاه ثانویه ای را تصور کنید که مبدا آن روی مبدا دستگاه مرجع است ولی نسبت به آن چرخیده است.
برای نشان دادن این چرخش تنها به یک متغیر نیاز داریم و این همان زاویه ی Θ یعنی زاویه ی بین محور x دستگاه اولیه و ثانویه است.
اما حالا همین شرایط را برای دو دستگاه سه بعدی که نسبت به هم چرخیده اند فرض کنید. اینجا برای اینکه همه ی حالت ها و زوایای چرخش دو دستگاه را نسبت به هم پوشش دهیم به سه متغیر نیاز داریم که به آن ها pitch ،roll و yaw گفته می شود.در واقع این سه وضعیت چرخش دستگاه ثانویه را که می تواند یک هواپیما یا یک کوادکوپتر باشد نسبت به دستگاه مرجع به صورت یکتا نشان می دهد.
حالا که حسی نسبت به این سه زاویه پیدا کردیم به بررسی خود کوادکوپتر می پردازیم.اول یک شکل از بالا از کوادکوپتر و همچنین جهت چرخش پره های آن ببینیم که این برای مفاهیم بعدی به دردمان می خورد.
فرض کنید سرعت زاویه ای هرکدام از موتور های 1 تا 4 را با w1 تا w4 معرفی کنیم.
اول سراغ نیروی بالابر پرنده می رویم که برای ایجاد کردن نیروی بالابر باید به w1 تا w4 یک مقدار ثابت مثل T اضافه کنیم.
اگر می خواهیم به pitch پرنده اضافه کنیم یعنی دماغه ی آن را پایین بدهیم باید مقداری مثل P را از w1 و w3 کم کنیم و همچنین به w2 و w4 اضافه کنیم. اگر خواستیم دماغه بالا رود به راحتی عدد P را منفی می کنیم.
حالا roll را بررسی می کنیم. اگر بخواهیم این زاویه را زیاد کنیم (به صورت شهودی یعنی اینکه سمت راست پرنده پایین می رود و سمت چپش بالا می آید) باید مقداری مثل R را از سرعت موتور های راستی یعنی w1 و w4 کم کنیم و به موتور های چپی یعنی w3 و w2 اضافه کنیم.
در نهایت به بررسی yaw می پردازیم. زیاد شدن این زاویه به صورت شهودی یعنی اینکه پرنده دور خودش می چرخد. باید بدانید که همان طور که در بحث نیرو، عمل و عکس العمل داریم در چرخش هم مشابه این امر وجود دارد. یعنی این که وقتی موتور 1 پادساعتگرد می چرخد عکس العملش باعث می شود بدنه پرنده ساعتگرد بچرخد و ما از همین عکس العمل استفاده می کنیم تا بتوانیم yaw کوادکوپتر را عوض کنیم. پس برای زیاد کردن yaw مقدار Y را از w3 و w4 کم می کنیم و به w1 و w2 اضافه می کنیم.
خلاصه ی این توضیحات را در این شکل ببینیم:
خلاصه ای از معادلاتی که توضیح داده شد ببینیم:
همون طور که می بینید این چهار معادله که ظاهر ساده ای هم دارند نشان می دهند که مثلا در تراست (نیروی بالابر) فقط جمع نیروی چهار موتور مطرح است که اگر w1 تا w4 را با هم جمع بزنیم به 4T می رسیم این یعنی سه پارامتر دیگه(P ،R و Y) روی این نیرو اثری ندارند و فقط باعث چرخش پرنده می شوند.
تا الان شهودی راجع به این که دور موتور های کوادکوپتر چه باشند پیدا کردیم. حالا به بررسی این که کوادکوپتر ها چه طور حرکت می کنند، می پردازیم. اولش بگوییم که خود کوادکوپتر پایدار نیست و مدام نیاز دارد که کنترل بشود تا بتواند خوب پرواز کند. وظیفه ی این کنترل بر عهده ی فلایت کنترلر است. که با سنسور های خودش زاویه های pitch ،roll و yaw پرنده را اندازه می گیرد و مدام محاسبه می کند که عدد های P ،R و Y چه باشند تا زاویه های pitch ،roll و yaw پرنده ثابت بماند و آنی بشود که به فلایت کنترلر دستور داده شده. پس الان فرض می کنیم که زاویه ی پرنده توسط فلایت کنترلر، کنترل شده و همانی شده که ما می خواهیم پس ما تا الان سه خواسته که همان زوایای pitch ،roll و yaw مطلوب هستند داریم. حال عدد T باقی می ماند که آن هم خود مستقیم به فلایت کنترلر می فرستیم پس با T شد چهار پارامتر که با استفاده از یک دسته مثل دسته های بازی این عدد ها به فلایت کنترلر منتقل می شوند. شکل زیر نشان دهنده ی این توضیحات روی دسته های رایج کوادکوپتر هاست:
در نهایت شکل زیر مشخص می کند که پرنده ی ما چه طور سرعت افقی می گیرد:
همان طور که می بینید نیروی وزن با مولفه ی عمودی thrust (که از جنس نیروست و رابطه ی مستقیم با 4T دارد که این رابطه به ویژگی های پره مربوط است).خنثی می شود و مولفه ی افقی thrust باعث شتاب گرفتن پرنده در راستای افقی می گردد که با motion در عکس نشان داده شده است.
پس کلا ما می توانیم این پرنده را در مختصات x,y,z جا به جا کنیم و آن را در این نقاط ثابت نگه داریم یعنی بردار سرعت برایند پرنده صفر می شود. این امری است که در خیلی از پرنده ها مثل هواپیما های مسافری امکان پذیر نیست.(هواپیمای مسافری امکان هاور کردن ندارد.)
در نهایت یادگرفتیم که به صورت کلی کوادکوپتر ها چه طور حرکت می کنند و با مفاهیم و مقدمات اولیه ای آشنا شدیم تا بتوانیم بعدا از آنها استفاده کنیم و خودمان قسمت هایی از کد های فلایت کنتلر را بنویسیم.
مطلبی دیگر از این انتشارات
ارتباطات هوشمند مورچهها
مطلبی دیگر از این انتشارات
طراحی مسیر در رباتهای خودمختار (Path Planning)
مطلبی دیگر از این انتشارات
آکتیو در مقابل متلب