تجزیه و تحلیل ثبات و طراحی کنترل کننده های مبتنی بر حرکت برای روبات های انسان نما
برنامه های پیش بینی شده برای روبات های انسان نما نیاز به طراحی کنترل کننده های تعادل و راه رفتن دارند. در حالی که نتایج امیدوار کننده ای به تازگی به دست آمده است، کنترل کننده های قوی و قابل اعتماد هنوز یک چالش برای جامعه کنترل به شمار می رود که با روباتیک انسان نما سروکار دارد. استراتژی های مبتنی بر حرکت موثر خود را برای کنترل تعادل انسان نما ثابت کرده اند، اما تحلیل پایداری این کنترل کننده ها هنوز وجود ندارد. این مقاله اولاً به صورت عددی نشان می دهد که استفاده از جدیدترین استراتژی های کنترل مبتنی بر حرکت می تواند به پویایی صفر ناپایدار منجر شود. ثانیاً، ما تغییرات ساده ای را در معماری کنترل پیشنهاد می کنیم که از بی ثباتی در سطح دینامیک صفر جلوگیری می کند. پایداری مجانبی سیستم حلقه بسته با استفاده از تجزیه و تحلیل لیاپانوف بر روی فضای مشترک سیستم خطی نشان داده می شود. نتایج نظری با شبیه سازی و آزمایش بر روی ربات انسان نما iCub معتبر است.
کنترل کل بدن iCub از طریق تنظیم نیرو بر روی کانتکت های سفت و سخت غیرهمسطح
برنامه های صنعتی کلاسیک از روبات هایی با تحرک محدود استفاده می کنند. در نتیجه، با فرض اینکه ربات محکم به زمین متصل شده است، کنترل تعامل (به عنوان مثال، دستکاری) معمولاً جدا از کنترل وضعیت کل بدن (به عنوان مثال، متعادل سازی) انجام می شود. برنامه های پیش بینی شده شامل ربات هایی با استقلال بیشتر و تحرک فیزیکی هستند. در این زمینه جدید، تعامل فیزیکی بر ثبات و تعادل تأثیر می گذارد. برای اینکه روبات ها بتوانند موانع بین تعامل و کنترل وضعیت را پشت سر بگذارند، تحقیقات آینده روباتیک باید اصول حاکم بر هماهنگی کل بدن با پویایی تماس را بررسی کند، زیرا اینها چالش های مهمی در جهت دستیابی به خودمختاری فیزیکی روبات ها هستند و بنابراین تمرکز مقاله حاضر خواهد بود.
شایان ذکر است که روبات های صنعتی فوق از اوایل دهه هفتاد مورد مطالعه گسترده قرار گرفته اند. استقلال فیزیکی روبات ها خواستار تغییر از ربات های ثابت معمولی به ربات های شناور آزاد هستند که کنترل آنها فقط در سال های اخیر مورد استفاده قرار گرفته است. سیستم های مکانیکی شناور آزاد در حال اجرا هستند و بنابراین نمی توانند به طور کامل خطی شوند (Spong, 1994). این مشکل زمانی پیچیده تر می شود که این سیستم ها محدود شوند و پویایی آنها تحت مجموعه ای از محدودیت های غیر خطی (احتمالاً متغیر در زمان) باشد. این یک مورد معمولی برای روبات های پا است، که برای آنها حرکت به دلیل تماس های سفت و سخت با زمین محدود می شود.
سهم عمده این کار پیاده سازی و ادغام تمام اجزای سازنده ای است که یک سیستم برای تعادل و کنترل حرکت یک روبات انسان نما تشکیل می دهند. این سیستم شامل کنترل گشتاور مشترک سطح پایین، کنترل دینامیک معکوس فضای کار، برنامه ریز وظیفه و برآورد نیروهای تماس و گشتاورهای مشترک است. اگرچه در سال های اخیر، سیستم های مشابه دیگری ارائه شده اند (Ott et al., 2011; Herzog et al., 2014)، اما اصالت این مقاله روی (الف) در ویژگی های پلتفرم آزمون و (ب) تعدادی از گزینه های طراحی که سادگی اجرا را برای عملکرد سیستم کنترل عوض کرده است، می باشد. به خصوص:
- متفاوت از سایر روبات ها، iCub می تواند به لطف سنسورهای لمسی توزیع شده، نیروهای تماس در کل ساختار خود را بومی سازی و برآورد کند.
- مشابه DLR-Biped (Ott و همکاران ، 2011)، iCub با موتورهای DC و درایوهای هارمونیک فعال می شود، اما انعطاف پذیری جعبه دنده را نادیده گرفتیم، که باعث ساده شدن روش تشخیص موتور و گشتاور کنترل کننده سطح پایین شد.
- متفاوت از سیستم عامل های فوق، iCub مجهز به سنسورهای گشتاور مشترک نیست، اما ما روشی را طراحی کردیم که از حسگرهای نیرو/گشتاور داخلی 6 محور برای برآورد گشتاورهای مشترک استفاده می کند.
- همه حلقه های کنترل ما با سرعت 100 هرتز اجرا می شوند که نسبت به کار Ott و همکاران (2011) و هرتزوگ و همکاران (2014) (حداقل) 10 برابر کندتر است.
کنترل های کل بدن
بررسی اجمالی
این مخزن شامل کنترل کننده های کل بدن مبتنی بر [1]Simulink است که برای کنترل ربات انسان نما iCub توسعه یافته اند. می توان آن را به عنوان یک نقطه شروع و یک مخزن پشتیبانی برای کاربری که قصد ایجاد یک کنترلر Simulink جدید (نه لزوما برای ربات iCub) در چارچوب سازمان رباتولوژی را دارد، تصور کرد. شایان ذکر است که:
کنترلرهای ذخیره شده در این مخزن مروری بر چارچوب های کنترلی احتمالی هستند که می توانند با استفاده از زیرساخت نرم افزار روباتولوژی پیاده سازی شوند. همچنین، مخزن شامل یک کتابخانه از پیکربندی و توابع مفید Matlab برای طراحی شبیه سازی با شبیه ساز Gazebo و روی ربات واقعی iCub است. با نصب وابستگی Matlab Whole-body Simulator، همچنین می توانید شبیه سازی هایی را با یک شبیه ساز کامل MATLAB/Simulink و روبات ساز انجام دهید که از طریق ورودی مرورگر کتابخانه Simulink Matlab Whole-body Simulator (به README مراجعه کنید) قابل دسترسی است.
پویایی و سینماتیک ربات با استفاده از WBToolbox ، یک کتابخانه Simulink که iDyntree را پوشش می دهد، زمان اجرا را محاسبه می کند. برای اطلاعات بیشتر در مورد کتابخانه iDyntree ، اینجا[2] را مطالعه کنید.
مدل های Simulink استراتژی های مختلف کنترل را هم برای ربات های پایه ثابت و هم برای ربات های پایه شناور پیاده سازی می کنند. آنها از کنترل گشتاور مبتنی بر حرکت[3] تا کنترل موقعیت بر اساس سینماتیک معکوس[4] فاصله دارند. برای جزئیات بیشتر به پوشه controllers نگاه کنید.
وابستگی ها
این مخزن به نرم افزار زیر بستگی دارد:
CMake ، حداقل نسخه 3.5.
Matlab/Simulink ، نسخه پیش فرض R2019b.
WB-Toolbox و blockfactory.
شبیه ساز matlab-whole-body-body، حداقل نسخه 2.0.0.
شبیه ساز Gazebo ، نسخه پیش فرض 9.0.
افزونه های gazebo-yarp.
icub-gazebo ، icub-gazebo-wholebody و icub-models برای دسترسی به مدلهای iCub.
برآورد کننده های کل بدن (اختیاری، برای استفاده از دستگاه wholeBodyDynamics).
YARP و icub-main.
نصب و استفاده
مخزن معمولاً در سیستم عامل های اوبونتو و macOS آزمایش و توسعه می یابد. برخی از عملکردها ممکن است در ویندوز به درستی کار نکنند.
پیشنهاد می شود کنترل کننده های کل بدن[5] و بیشتر وابستگی های آن (یعنی YARP, icub-main, whole-body-estimators,icub-gazebo,icub-gazebo-wholebody, icub-models, gazebo-yarp-plugins, matlab-whole-body-simulator, blockfactory blockfactory و WB-Toolbox و وابستگی های آنها) با استفاده از robotology-superbuild (گزینه ROBOTOLOGY_ENABLE_DYNAMICS را فعال کنید).
هشدار: سوپربایلد می تواند مخزن را بدون نصب Matlab ، Simulink و Gazebo در رایانه بارگیری و کامپایل کند، اما عملکردهای repo به میزان قابل توجهی کاهش می یابد! برای دسترسی به همه ویژگی های repo ، همه وابستگی ها را نصب کنید.
همچنین، در سوپربیلد باید گزینه های ROBOTOLOGY_USES_GAZEBO و ROBOTOLOGY_USES_MATLAB را فعال کنید.
در غیر این صورت، پس از نصب همه وابستگی ها، مخزن را در رایانه خود با اجرا روی کلمه ترمینال git https://github.com/robotology/whole-body-controllers کلون کنید یا مخزن را بارگیری کنید. سپس (در اوبونتو)، ترمینالی را از پوشه ای که کنترلرهای کل بدن را در آن بارگیری کرده اید باز کرده و اجرا کنید:
mkdir build
cd build
ccmake ..
در GUI که باز می شود، CMAKE_PREFIX_PATH را به عنوان پوشه نصب دلخواه خود تنظیم کنید. سپس، make install را اجرا کنید.
متغیر محیطی YARP_ROBOT_NAME را در فایل .bashrc خود (یا معادل آن) تنظیم کنید تا نام رباتی باشد که می خواهید کنترل کنید. لیست اسامی روبات های پشتیبانی شده:
نام ربات | مدل URDF مرتبط |
iCubGenova02 | model.urdf |
iCubGenova04 | model.urdf |
iCubGazeboV2_5 | model.urdf |
icubGazeboSim | model.urdf |
مهم! برای استفاده از کنترل کننده های WBC Simulink ، پوشه های نصب شده +wbc و +wbc/simulink (کپی شده از +wbc) را به مسیر Matlab اضافه کنید. دو راه ممکن برای افزودن پوشه به مسیر Matlab وجود دارد:
1) پوشه والد ++wbc (${CMAKE_INSTALL_PREFIX}/mex) و پوشه فرعی آن +wbc/simulink را به صورت دستی و دائمی به مسیر Matlab اضافه کنید.
2) فقط یکبار اسکریپت startup_WBC.m را که در پوشه $ {BUILD} شما نصب شده است اجرا کنید. در این حالت، مسیر به طور دائم به Matlab اضافه نمی شود و لازم است همیشه Matlab را از پوشه ای که فایل pathdef.m شما در آن است (معمولاً ~/Documents/MATLAB) شروع کنید. برای سهولت دسترسی به پوشه کار WBC از پوشه حاوی pathdef.m ، می توان یک اسکریپت goToWholeBodyController.m به طور خودکار در آن پوشه ایجاد کرد. آن را اجرا کنید تا به پوشه WBC بروید. برای اطلاعات بیشتر در مورد روش نصب، راهنمای WBToolbox[6] را مشاهده کنید.
هشدار: اگر مخزن از طریق robotology-superbuild نصب شده است، فایل startup_WBC.m را اجرا نکنید بلکه فایل startup_robotology_superbuild را همراه با نصب robotology-superbuild اجرا کنید.
توجه: برای استفاده از هر تابع درون بسته matlab-wbc/+wbc ، هنگام فراخوانی تابع پیشوند wbc را به نام تابع اضافه کنید، به عنوان مثال [outputs] = wbc.myFunction(inputs). اطلاعات بیشتر در مورد بسته ها را می توانید در راهنمای متلب[7] مشاهده کنید.
پوشه ${CMAKE_INSTALL_PREFIX}/mex که قبلاً به مسیر Matlab اضافه شده است ، هیچ الزام دیگری برای استفاده از کتابخانه شبیه سازی از شبیه ساز matla-whole-body-body وجود ندارد.
برخی از ویژگی های repo مانند تولید خودکار کد c ++ از Simulink وجود دارد که نیاز به فعال کردن گزینه های پیش فرض cmake ندارد. با اجرای ccmake گزینه های موجود را در دایرکتوری ساخت خود بررسی کنید.
عیب یابی
لطفاً به راهنمای عیب یابی WBToolbox[8] مراجعه کنید.
پوشه های مربوط به repo
- config: مجموعه ای از اسکریپت ها برای پیکربندی صحیح
- controllers: موقعیت کل بدن Simulink و کنترل کننده های گشتاور برای تعادل روبات های انسان نما.
- doc: راهنمای نحوه ایجاد/استفاده از مدل های Simulink برای کنترل.
- library: کتابخانه ای از توابع/اسکریپت های مورد استفاده توسط کنترل کننده ها.
- utilities: مدلهای Simulink برای اشکال زدایی سنسورها در ربات واقعی.
کنترلرهای موجود
- اتصالات ثابت پایه کنترل گشتاور
- شناور-پایه-متعادل کننده-موقعیت-کنترل
- شناور-پایه-تعادل-گشتاور-کنترل
- شناور-پایه-متعادل کننده-گشتاور-کنترل-با-شبیه ساز
- شناور- base-jerk-control
کتابخانه توابع Matlab
کتابخانه WBC matlab
ویژگی های اضافی
تولید خودکار کد c ++ از Simulink
امکان ایجاد کد c ++ از مدل های Simulink با استفاده از رمزگذار Simulink (فقط برای کنترل شناور-تعادل-گشتاور-کنترل موجود است) وجود دارد. مخزنی که حاوی کد c ++ تولید شده است ، کنترل کننده های تولید خودکار-کل بدن نامیده می شود. اسناد نحوه تولید کد در ویکی مخزن موجود است.
رابط کاربری گرافیکی ثابت برای Simulink
هنگامی که برای کنترل سیستم عامل های واقعی استفاده می شود، مدلهای سنگین Simulink ممکن است مرحله شبیه سازی تعریف شده توسط کاربر را نقض کنند، این مسئله را نیز ببینید. به نظر می رسد منبع تأخیر به روز رسانی رابط کاربری Simulink در زمان اجرا است. به همین دلیل، یک رابط کاربری گرافیکی ثابت برای اجرای مدل ها توسعه داده شده است. اگر می خواهید Simulink را با رابط کاربری گرافیکی ثابت اجرا کنید، اسکریپت startModelWithStaticGui را اجرا کنید.
موقعیت های اصلی برای yarpmotorgui
این رپو شامل مجموعه ای از موقعیت های خانگی از پیش تعیین شده است که با yarpmotorgui استفاده می شود. به طور پیش فرض ، اگر repo از طریق robotology-superbuild نصب شده باشد، موقعیت های اصلی در فهرست robotology-superbuild/build/install نصب شده است. در غیر این صورت مسیر پوشه homePositions را به متغیر محیطی YARP_DATA_DIRS در فایل .bashrc خود اضافه کنید. دستور استفاده از موقعیت های خانه با yarpmotorgui yarpmotorgui است -از myHomePosFileName.ini.
کجا می توانم مخازن قدیمی را پیدا کنم؟
مخازن رسمی قدیمی عبارتند از: mex-wholebodymodel و WBI-Toolbox-controllers.
توجه: این مخازن قدیمی دارای کد غیر مستند/قدیمی و توابع matlab کپی شده یا آزمایش نشده هستند. آنها همچنین شامل کد اصلی هستند که در گذشته روی ربات آزمایش شده و سپس دیگر مورد استفاده قرار نگرفته است، یا کدی که در آینده در مخزن اصلی منتقل می شود.
بهره برداری از کنترل کننده اصطکاک
کنترل کننده راه رفتن
کنترل کننده اره برقی
تنظیم خودکار افزایش و تنظیم خودکار افزایش متلب
کنترل اتصالات الاستیک
کنترل واکمن و واکمن کنترل-متلب
کنترل فضای مشترک و تغییر مرکز
استندآپ کنترل 4 مخاطب
همچنین می توانید سایر کنترل کننده ها/شبیه سازهای قدیمی را در این مخزن کنترل کننده های کل بدن در تعهدات خاص پیدا کنید:
simulink-balancing-simulator@c217f051.
فایل شبیه سازی کامل این مقاله را از این پروژه دانلود کنید.
سفارش پروژه مشابه دارید؟ به این صفحه مراجعه کنید.
منابع
Nori F, Traversaro S, Eljaik J, Romano F, Del Prete A and Pucci D (2015) iCub whole-body control through force regulation on rigid non-coplanar contacts. Front. Robot. AI 2:6. doi: 10.3389/frobt.2015.00006
Nava, Gabriele & Romano, Francesco & Nori, Francesco & Pucci, Daniele. (2016). Stability Analysis and Design of Momentum-based Controllers for Humanoid Robots. 10.1109/IROS.2016.7759126.
[1] Simulink-based whole-body controllers
[2] https://github.com/robotology/idyntree/blob/master/README.md
[3] momentum-based
[4] inverse-kinematics-based
[5] whole-body-controllers
[6] https://robotology.github.io/wb-toolbox/mkdocs/install/#matlab
[7] https://ch.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html
[8] https://robotology.github.io/wb-toolbox/mkdocs/troubleshooting/#problems-finding-libraries-and-libstdc
پروژه مشابه دارید؟
برای ثبت سفارش در سیمیا می توانید از طریق اپلیکیشن سیمیا، یا فرم ثبت سفارش در سایت اقدام کرده و یا از طریق ایمیل، واتساپ، تلگرام و اینستاگرام اقدام نمایید.
اپلیکیشن سیمیا را از بازار و مایکت دانلود کنید.
سریع ترین راه پاسخگویی سیمیا، واتساپ می باشد. لینک واتساپ، اینستاگرام و تلگرام در پایین سایت وجود دارد.
نشانی ایمیل سیمیا simiya_ht@yahoo.com می باشد.
از برقراری تماس برای هماهنگی پروژه خودداری کنید، حجم بالای سفارشات به ما اجازه نمی دهد تا از طریق تلفن پاسخگوی شما عزیزان باشیم، حتما درخواست خود را به صورت مکتوب و از طریق یکی از راه های ذکر شده فوق ارسال نمایید، درخواست خود را به طور کامل و با تمام فایل ها و توضیحات لازم ارسال نمایید تا مدت زمان بررسی آن به حداقل برسد. پس از تعیین کارشناس، در اسرع وقت به شما پاسخ می دهیم.
نقد و بررسیها
هیچ دیدگاهی برای این محصول نوشته نشده است.