تبلیغات
webots شبیه ساز رباتها - webots servo

webots servo

1389/04/10  11:15

نوع مطلب :درباره webots ،

در اینجا می خواهم به معرفی یک گره اصلی در وبتز یا صحیح تر وباتز بپردازم:

گره سرو  servo

گره سرو برای افزودن یک درجه آزادی فعال یا غیرفعال بکار می رود. درجه آزادی (حرکت یا چرخش های مستقل از هم ) میان گره والدین(سرو) و بچه های سرو یا همان گره children آن بوجود می آید و به اشیایی که در گره childern سرو هستند اجازه حرکت خطی یا دوران حول محور سرو را می دهد. سرو دارای دو نوع دورانی یا خطی است که نوع آن در فیلد type آن با نوشتن یکی از دو کلمه rotational یا linear مشخص می شود. درجه آزادی فعال یعنی سرو به عنوان یک موتور عمل کند و گشتاوری یا نیرویی  بر اشیای زیرمجموعه اش وارد کند. ماکزییم این نیرو یا گشتاور در قسمت maxforce معین می شود. درجه آزادی غیرفعال یعنی گشتاور یا نیرویی بر درجه آزادی اعمال نشود یا فیلد maxforce برابر صفر باشد. در این حالت سرو مانند یک مفصل لولایی یا یک مفصل منشوری در حالت خطی عمل خواهد کرد.



ادامه مطلب را ببینید:

گره سرو نوع دورانی برای شبیه سازی مفاصل لولایی و موتورهای الکتریکی و فنرهای پیچشی استفاده می شود.

نوع خطی برای شبیه سازی حرکاتی خطی مانند موتور خطی، پیستون، سیلندرهای هیدرودینامیک و پنوماتیک، فنرهای خطی یا دمپر استفاده می شود.

نوع دورانی برحسب رادیان گردش می کند و نوع خطی بر حسب متر محاسبه می شود. در شکل زیر یک سروموتور دورانی واقعی را می بینید.

 

 

تعریف فیلدها:

type: یک مقدار رشته ای است که  نوع سرو را معین می کند و می تواند مقادیر rotational یا  linear باشد که مقدار دورانی پیش فرض است.

 :maxForceماکزیمم نیرو بر حسب نیوتن یا ماکزیمم گشتاور را برحسب نیوتن-متر برای سرو موتورها معین می کند. دستور ()wb servo_ set_ motor_ force این مقدار را در حین اجرای برنامه از طریق برنامه کنترلی تغییر می دهد. این مقدار باید صفر یا مثبت باشد و مقدار پیش فرض آن 10 است. اگر مقدار ماکزییم نیرو کم باشد، موتور نمی تواند جسم سنگین را بلند کند یا حتی وزن خودش را تحمل کند.

controlP: این فیلد مقدار اولیه پارامتر p را تعیین می کند. پارمتر p بهره تناسبی موتور سرو با کنترل p  است. مقدار بالای عدد p  پاسخ های بزرگ و خطاهای کوچک را نتیجه می دهد و بنابراین یک سیستم بسیار حساس خواهیم داشت. توجه داشته باشید که با دادن مقادیر بسیار بزرگ به p سیستم ناپایدار خواهد شد. با مقادیر pp در حین اجرا نیز با دستور کوچک،گام های زمانی بسیاری برای رسیدن به موقعیت مطلوب نیاز خواهد بود، اما سیستم پایداری بیشتری خواهد داشت. مقدار

 wb_servo_set_control p() قایل تغییر است.

acceleration : شتاب پیش فرض  سرو موتور را با کنترل p تعیین می کند. مقدار 1- یعنی اینکه شتاب بوسیله کنترل p  محدود نمی شود بلکه نامحدود است. شتاب در حین اجرا نیز بوسیله دستور wb_servo_set_acceleration() قابل تغییر است.

Position : موقیعت فعلی سرو را نشان می دهد  وقتی سرو دورانی است برحسب رادیان و هنگامی که خطی است بر حسب متر آن را نشان می دهد. هنگامی که شبیه سازی را متوقف می کنید اگر روی این فیلد کلیک کنید موقعیت جاری را نشان می دهد.

minPosition و maxPosition: محدوده حد بالا و پایین را برای موقعیت سرو یا همان فیلد position ایجاد می کند.

·        minStop و maxStop: موقعیت توقف فیزیکی یا مکانیکی سرو را مشخص می کنند springConstant و dampingConstant: این فیلدها اجازه افزودن فنر یا دمپر(میراکننده) به سرو را می دهند. همچنین اگر سرو مانند یک مفصل عمل کند یعنی ماکزیمم نیروی آن صفر باشد این فیلد درجه آزادی مورد نظر را به یک فنر پیچشی یا خطی تبدیل می کند.

 

 موقعیت و جهت گیری اولیه سرو

گره servo فیلدها translation و rotation را مانند گره Transform دارا است. این دو فیلد بیانگر موقعیت و جهت گیری دستگاه مختصات چسبیده به وسط محور سرو(متصل به بچه های سرو) نسبت به گره بالا دستش یا والدین است که والدین آن می توانند یک ربات یا سروموتور دیگری باشند. هنگامی که سرو در حال حرکت است، مقادیر این دوفیلد به طور خودکار اصلاح می شوند تا با وضعیت تبدیل مختصات جدید منطبق شوند.

در نوع سرو دورانی، فیلد انتقال، موقعیت وسط محور دوران سرو را نشان می دهد و فیلد rotation جهت گیری محور دوران را نشان می دهد

 


در نوع سرو خطی فیلد انتقال مختصات محور لغزنده را نشان می دهد و فیلد دوران، جهت گیری محور لغزنده را نشان می دهد. مقادیر فیلدهای انتقال و دوران قبل از اجرای شبیه سازی بیانگر مختصات و جهت گیری اولیه  سرو است. در این هنگام فیلد position صفر است، سپس موقعیت مطلوب توسط برنامه کنترلی و دستور

() wb_servo_set_positionنسبت به موقعیت اولیه تعیین می شود. مقادیر  minPosition ,maxPosition ,minStop و maxStop نسبت به موقعیت صفر اولیه تعیین می شود.

 

کنترل سرعت و موقعیت

راه متعارف استفاده از سرو، کنترل مستقیم موقعیت آن است(position control).کاربر بوسیله دستور ()wb_servo_set_position موقعیت هدف را به سرو می دهد.

 

می توان به جای تنظیم موقعیت هدف بوسیله کنترل p، مستقیما سرعت سرو را نیز تنظیم کرد. بدین منظور کاربر باید سرعت سرو را با این دستور

wb_servo_set_velocity() تنظیم کند سپس دستور

 (wb_servo_set_position(servo_name,INFINITY) را وارد کند. این کار باعث آغاز حرکت پیوسته سرو با سرعت مطلوب شبیه یک موتور dc  تا بی نهایت می شود.

 

محدوده های سرو

فیلد position در حالت دورانی نشان دهنده زاویه بین نقطه شروع و موقعیت کنونی به رادیان است و در مورد سرو خطی نشان دهنده فاصله (به متر) میان نقطه شروع و فیلد انتقال کنونی است.

minPosition  و maxPosition محدوده نرم سرو را نشان می دهند. محدوده نرم، مرزی را برای کنترل P مشخص می کند که خارج از آن برای حرکت دادن سرو تلاشی نکند

فیلدها minStop و maxStop محدوده سخت سرو را مشخص می کند. این محدوده سخت، محدوده فیزیکی است که بوسیله هیچ نیرویی نمی تواند نقض شود.محدوده سخت برای شبیه سازی پیستونهای هیدرولیک یا پنوماتیک یا یک محدوده بسته مفصل لولایی استفاده می شود. مقدار minStop باید در بازه بسته [pi, 0-] باشد و maxStop[0, pi] باید باشد. وقتی هردو صفرند(پیش فرض) محدوده سخت غیرفعال است. به یاد داشته باشید که هنگامی که هر دو محدوده نرم و سخت، فعال باشند. محدوده نرم باید درون محدود سخت باشد در بازه بسته

 

 

 


نوشته شده توسط: مهدی | آخرین ویرایش:- | نظرات ()