ربات تمام چرخ رباتی است که ازتمام چرخ ها بهره می گیرد تا بتواند در هر مسیری و در هر زاویه ای حرکت کند ، بدون اینکه پیشاپیش حرکت چرخشی داشته باشد. اگر می خواهید رباتی داشته باشید که انعطاف زیادی داشته باشد ، از این نوع ربات استفاده نمایید.اگر می خواهید رباتی داشته باشید که توانایی چرخش در هنگام مسیر متشابه را داشته باشد، بایستی از این نوع ربات استفاده نمایید .
تمام چرخ
چگونه یک ربات می تواند کار گیرنده و فرستندگی امواج در جهت مناسب داشته باشد؟ راه حل این است که از چرخ های ویژ ه ای استفاده می نماید. در واقع تمام چرخ، تنها فقط چرخ نیست بلکه اکثر چرخ ها روی یک چرخ سوار شده است و یک چرخ مرکزی وجود دارد. در کنار دستگاه های جانبی چرخ های کوچک بسیاری وجود دارد که دارای محور عمودی حول محور چرخ مرکزی می باشد.
این چرخ مرکزی، قابلیت چرخش به دور محور خود شبیه به هر چرخ عادی را دارد ولی چندین چرخ عمودی هم به آن اضافه شده است که قابلیت حرکت موازی حول محور خود را دارد.
شکل های زیر انواع تمام چرخ ها ی موجود در بازار را نمایش می دهد:
اندازه چرخ ها و ضخامت آن ها بستگی به عواملی همچون وزن ربات مورد نظر، سرعت آن و … دارد. توجه به جنس چرخ ها نیز به علاقه شما بستگی دارد .به طور معمول این نوع ربات از جنس پلاستیک است اما ظاهرا پلاستیک برای این کار خیلی صاف بوده و چرخ ها کشش زیادی بر روی زمین ندارند. ولی در عوض اطمینان حاصل کنید که چرخ های کوچک جانبی از نوع کشسانی همانند لاستیک و یا پلی اتیلن باشد . پس از شناخت این نوع مشکل و داشتن چرخ های جدید با کشش بیشتر در چندین مرحله پیشرفت چشمگیری حاصل می شود همانطور که در این ربات از این نوع تمام چرخ استفاده شده است .
هولونومیک ها در برابر غیر هولونومیک ها
تنها دونوع ربات سیال و متحرک وجود دارد : ربات های هولونومیک و ربات غیر هولونومیک. ربات های غیر هولونومیک طوری هستند که نمی توانند فورا به هر سویی حرکت کنند همانند یک اتومبیل. این نوع ربات ها بایستی برای تغییر مسیر حرکت یک سری از عملیات را انجام دهد .برای مثال اگر از اتومبیل خود بخواهید تا ازفرعی ها حرکت کند باید عملیات دشوار توقف موازی را انجام دهید، برای اینکه اتومبیل دور بزند بایستی چرخهای اتومبیل را بچرخانید و سپس به طرف جلو پیش بروید. این نوع ربات بایستی دارای درجه ی آزادی 1.5 داشته باشد . به این معنی که می تواند در هر دو مسیر X و Y حرکت داشته باشد ولی نیازبه حرکات پیچیده دارد تا به مسیر X برسد.
اما بک ربات هولونومیک میتواند فورا در هر مسیری حرکت داشته باشد . این نوع ربات نیاز به عملیات دشوار برای رسیدن به توقف موازی ندارد . درجه آزادی این نوع ربات 2 می باشد که می تواند در سطوح X و Y آزادانه حرکت داشته باشد .
به طور نمونه بازوی ربات که از نوع تمام است دارای درجات آزادی خیلی بیشتری می باشد .
حال یه سوال برای پرسشگر باقی می ماند، سوال اینست که در ربات گاو2 ، ربات از نوع هولونومیک است و یا غیر هولونومیک ؟ صادقانه باید گفت که نمی توان به طور کلی مطمئن بود که از چه نوع رباتی است. به این دلیل که تقریبا یک تاخیر کوچکی برای چرخ ها به وجود می اید تا زوایا را تغییر دهد و شاید همانند ربات نوع 1.5 DOF باشد.
سه چرخ در مقابل چهار چرخ
اکثر ربات های تمام چرخ شامل سطح سه گوش و سه چرخ می باشد اما بهتر است که در صورت امکان از چهارچرخ استفاده گردد . تنها یک دلیل برای برتر بودن سه چرخ وجود دارد و آن اینست که سه چرخ و سه موتور ارزانتر از نوع چهار تایی آن می باشد . هر چند یک مشکل ماندگار در وسایل چهار چرخ وجود دارد و مشکل این است که چهارراس ضمانتی را برای ساکن بودن دریک سطح را ایجاد نمی کند . اگردر ربات سه راس وجودداشته باشد، در صورتی که ربات چهار چرخ با زمین ناهمواری مواجه شود، یک موقعیت خوب برای یکی از چرخ ها ایجاد می شود تا با سطح زمین برخوردی نداشته باشد ولی راه حل های بسیاری برای این مشکل وجود دارد . در ربات گاو2 از یک اهرم ضربه استفاده شده است . اتومبیل ها از ضربه های ارتجاعی استفاده می کنند .درطرح تمام چرخ از از یک آلومینیوم انعطاف پذیر، که فرمان ها در آن نصب گردیده، استفاده شده است که قابلیت خمیدگی و انعطاف با زمین را دارد.
اکنون بیایید به غیر از قیمت و کمی پیچیدگی ربات به اینکه طرح چهار چرخ بهتراست دلیلی بیاوریم : در مرحله ی اول چهار چرخ خیلی تاثیر گذارتر است . درنوع سه چرخ این امکان وجود نداشت که چرخ ها صد در صد تاثیرات کلی در بر داشته باشد . به این دلیل که در نوع سه چرخ، بیشتر از یک چرخ درحرکت، تنظیم نخواهدبود، ولی در نوع چهار چرخ ،زمانی که دوچرخ بی حرکت باشد ، دو چرخ دیگر میتواند 100% برای سرعت موثر واقع شود . تمامی زوایای دیگر میتوانند نسبت به ربات تمام سه چرخ، موثر تر واقع شوند.
همانطور که در طرح چهار چرخ مشاهده میکنید ، دو چرخ درحال گردش بوده و زمانی که دوتای دیگراصلا حرکت نمی کنند و به عنوان چرخ کمکی عمل کرده و به کارامد بودن آن 100% تاثیر میگذارد . به همین دلیل یک ربات تمام چهار چرخ درحالیکه از توان موتور بیشتر و یا کمتری استفاده میکند ، دارای سرعت بیشتری است .
دلایل مهم دیگر که چرا استفاده از چهار چرخ آسانتر است مربوط به دلایل محاسباتی ومنطقی است . چهار چرخ نسبت به یکدیگر زاویه ی 90 درجه را میسازند در حالیکه در نوع سه چرخ زوایای 120 درجه را دارند . به این معنی که چهار چرخ دارای چرخ هایی هستند که مستقیما برخلاف یکدیگر قرار گرفته اند ، به نوعی میتوان گفت که جفت چرخ ها فقط نیاز به یک محاسبه ساده دارد و با یک چرخ یک عدد منفی را دریافت میکند درحالی که دیگری عدد مثبت را دریافت می نماید . ساختارهای سه چرخ چون دارای جفت چرخ نیستند بنابراین سه نوع محاسبات برای آنها بایستی در نظر گرفته شوند .
کنترل یک ربات تمام چرخ
برای این که زاویه ی خاصی برای یک ربات تمام چرخ تفهیم شود، هر چرخ بایستی در یک میسر و سرعت چرخشی خاصی به چرخش در آید . تا زمانی که ربات در زاویه ای حرکت میکند، برای تعیین سرعت این چرخ ها نیاز به یک سری محاسبات مثلثاتی دارد . اگر چه تا زمانی که کنترل ربات تمام چرخ به شدت بستگی به توانایی پردازش کامپیوتری ربات دارد، اما محاسبات مثلثاتی همیشه ممکن نیست . اگر از یک Pc برای کنترلگر ربات استفاده میک نید ، ربات شما قابلیت انجام محاسبات قابل اعتمادی را در هر ثانیه خواهند داشت ، اگر چه بیشتر میکرو کنترلرها این قابلیت را ندارند. یک میکروکنترلر( همانند PIC یا AVR) کار دیگری جزسه نوع محاسبه درهر ثانیه انجام نمی دهند .ولی متاسفانه این ربات هم نیاز به بازخوانی از طریق سنسور ،راه انداز سرو(خودتنظیم ) ،دیتاهای ترجمه شده و خیلی چیزهای دیگر دارد و درعوض دراین مواقع می توان به جدول مراجعه مثلثاتی رجوع کرد.
اساسا قبل از اینکه آنها را در حافظه SAVE کنید یک سری محاسبات برروی آنها انجام داده اید و برنامه فقط به یک لیست مراجعه می نماید این کار 100% دقیق نخواهد بود ویا تعداد دستورالعمل های آن کمترین میزان حافظه را اشغال نخواهد کرد وسرعت آن خیلی خیلی زیاد خواهد بود و سرعت آن به میزان دقت آن متعادل خواهد بود و در دقت به اندازه 10درجه به خوبی کار خواهد کرد .
برای یک ربات تمام چرخ کار کنترل موقعیت ناممکن است . یک تمام چرخ بر اساس لغزش روی چرخ ها کار می کند بنابراین استفاده از چیزهایی شبیه به انکدرها (رمزگزار) کار را درست نخواهد کرد . باید رباتی داشته باشید که اطراف مسیر ردیابی را به طور دقیق آشکار سازی کند. وسایلی همانند IMUها ، ژیروسکوپ ها (وسیله اندازه گیری حرکت زاویه جسم دوار) و یا ردیاب های بصری و …مناسب هستند.
هنگام بهینه سازی کنترل محرک چه مواردی را باید مدنظر داشت؟
بهینه سازی کنترل محرک کمی دشوار است . برای این کار چند چیز را باید مدنظر داشته باشید:
- زاویه کنترل : برای یک ربات تمام چرخ برای درک یک زاویه ی مشخص ، هر یک از موتورها نیاز دارند تا با سرعت مشخص به نسبت بقیه حرکت کنند. در اینجا خود سرعت مسئله ساز نیست و تنها نسبت مهم است .
- سرعت موتور:هر چقدر سرعت موتور بیشتر باشد به همان نسبت ربات سریعتر حرکت خواهد کرد .
- کنترل چرخش: یک ربات تمام چرخ اگر بخواهد در سرعت خاصی به چرخش در آید ، بایستی به اندازه ی یکسانی ، از سرعت هر از موتور ها افزایش یا بکاهد .
- حداکثر سرعت موتور: موتورها تنها میتوانند به سرعت بچرخند بنابراین زمانی که شما نسبت ها و افزایش کنترل چرخشی را انجام میدهید ، باید اطمینان داشته باشید که نباید فرمان بیشتر شدن سرعت موتور را به موتور بدهید در صورتی که، خود موتور بیشتر از آن نمی تواند حرکت کند .
- زاویه کلی : بسته به علاقه شما شما ممکن است عمل کنترل زاویه برای ربات نسبت به محیطش انجام گیرد و یا نگیرد.
حال بدین ترتیب این نوع محاسبات را انجام میدهید :
1) نسبت های موتور را برای تعیین زاویه انتقال محاسبه نمایید. برای این کار از لیست انتخابی جداول بهره بگیرید
2) نسبت ضریب سرعت را محاسبه نمایید . تنها کافی است برخی از ثابت ها را برای سرعت انتقال موتور افزایش و یا کاهش دهید تا درجهت عقربه های ساعت و یا خلاف جهت آن بچرخد .
اطمینان حاصل کنید که حداکثر میزان سرعت موتور افزایش پیدا نکرده است . فرض کنید که حداکثر سرعت موتور 100 است ولی محاسباتی که برای سرعت موتور چهار چرخ انجام داده اید نسبت ها را 50 ،50-، 110-،110 را به دست آورده اید . و بایستی برابر با X/-X/-100/100 باشد که مقدار X نامعلوم و بستگی به حداکثر سرعت از 100 دارد . با استفاده از قوائد جبر ، رابطه شما به صورت زیر در می آید :
50/110 = X/100
X = 45.45 =~46
و سرعت موتور برابر خواهد بود با : 46/-46/-100/100
این محاسبه بار دیگر برا ی ربات تمام سه چرخ دشوار خواهد بود ولی محاسبات می تواند به شیوه مشابه صورت بگیرد . همچنین می توان سرعت ربات را با تغییر حداکثر سرعت در نرم افزار کاهش داد.
عیوب راه انداز تمام چرخ
متاسفانه برای راه انداز تمام چرخ چندین نوع عیب وجود دارد . تمام چرخ ها کمتر موثر واقع می شوند چرا که تمامی چرخ ها در مسیر حرکت ربات به چرخش در نمی آیند .و همچنین تلفات زیادی بعلت اصطکاک به وجود می آید . کنترل موقعیت نیزبه دلیل لغزش زیاد ، کار نخواهد کرد و به دلیل محاسبات زوایا از طریق مثلثات ، خطای محاسباتی خواهیم داشت .
مراحل ساخت یک ربات تمام چرخ
اگر میخواهید این نوع ربات را بسازید . شکل های زیر به خوبی نشان داده است که برای ساخت این نوع ربات چه کار باید کنید.ابتدا در مورد این که چگونه تمام چرخ را به فرمان اتصال داده ایم بحث میکنیم . چندین سوراخ را در چرخ ایجاد کرده و سپس شاخک فرمان را توسط پیچ اتصال میدهیم .
در شکل های زیر مراحل ساخت ربات را نمایش داده است و اگر میخواهید خودتان آن را بسازید برای شما مفید خواهد بود . توجه داشته باشید که روکش سفید از جنس HDPE می باشد و فلز نشان داده شده هم ورقه نازکی از آلومینیوم است . در اینجا از جداکننده ها (Spacer) برای اتصال به بالا و پایین استفاده شده است .و از دو باتری 6 ولتی از نوع NIMH ، یکی برای تغذیه موتورها و دیگری برای تغذیه سنسورها و میکروکنترلر استفاده شده است.
همچنانچه در تصویر مشاهده میکنید دوتصویر آخر تغییراتی بود که من برای ربات مسیر یاب مسابقه ای نوع CMU MOBOT انجام داده ام . یک فن نسبتا بزرگ برای جلوگیری از ورود گردوغبار که باعث پنهان ماندن سنسورهای بازیابی اطلاعات میشوند، نصب گردیده است . تمام سه چرخ نیز در اینجا استفاده نشده است چراکه نمی توانند از شکافهای سیمان در مسیر مسابقه عبور نمایند. دونوع چرخ کفی اضافه شده و دومی بعنوان چرخ زیرین استفاده شده است .
ویژگی های دیگرFUZZY (در ربات )(مربوط به بحث ربات تمام چرخ نیست ولی مطالعه آن جالب است )
فازی ( منطق فازی) اولین تلاش برای دستیابی به ربات از طریق هوش مصنوعی می باشد. دلیل خیلی از سنسورهایی که در ربات استفاده شده بود این بود که هرچقدر ربات باهوش تر باشد تصمیم گیری ربات در افزایش میاب دمن مجموعه ای از حرکات را در مواقع متفاوت برای ربات به قرار زیر تعریف نموده ام :
- خسته : ربات آهسته حرکت میکند
- کسل : تصادفا دیگر حرکات را هم انجام میدهد
- ترسیده : خود را پنهان میکند و از اشیایی که درحال حرکت است دوری میکند
- هراسیده از مکانهای بسته : در روشنایی مناطق روشن میماند
- گرسنه : هشدار باتری ضعیف دارد تا موثر تر کارکند
- علاقمند به جستجو: دراین مواقع بیشتر در جستجو و مکاشفه است .
- نا امیدی : برای دستیابی به هدف چیز جدیدی را امتحان می کند.
سنسورهای استفاده شده در ربات
سه نوع از فایندر بازیابی اطلاعات نوع SHARP که همه چیز در جلوی آن ترسیم شده است . شکل 2D که به صورت 180 درجه ترسیم شده است ،اشیا را تا مرز 20فوتی از زمین برداشته و فرکانس سنجش آن 3 هرتز می باشد . این ربات به صورت موفقیت آمیزی تصمیم گیری های هوشمندانه ای در زمینه کشتیرانی داشته است. قابلیت تشخیص و شناسایی تمامی اشیا ، اندازه آنها را دارد .این ربات همچنین قابلیت تشخیص مسیر پیش رو را دارد تا تشخیص دهد که فضای کافی بین اشیا وجود دارد یا بایستی ربات از رد شدن صرف نظر کند و دور بزند.
سه نوع سنسور به عنوان ضربه گیر برای فایندر اطلاعات SHARP تعریف شده یاست . چون اولین بار از سنسور استفاده نموده ام بنابراین تجربه آموزشی خوبی برای من به حساب می آید . با نگاهی به مطالب قبلی به نظر من نوع ردیاب صوتی با زاویه دید وسیع، کافی است .
برای تغییرات مسیر یاب دوجفت از آشکارسازهای منتشر کننده مادون قرمز استفاده شده است .
اکنون نتایجی که از این آزمایش بدست آمده است را بررسی میکنیم . می توانیم بگوییم که برای کارهای هوش مصنوعی استفاده از میکرو کنترلر PIC16F877 بعلت نداشتن حافظه کافی مناسب نیست و پس از اینکه تمامی برنامه های سنسور در این آی سی پروگرام شد، حافظه ی آن به اتمام می رسد . من برای جهت یاب های دیجیتالی و فتورزیستورها هم طرحی دارم ولی به صورت عملی با آن کار نکرده ام . کار مسیر دهی ، ممانعت عبور از مانع به صورت هوشمند را انجام داده و همچنین تمامی حرکات خود و … را به طرز صحیحی انجام می دهد ولی متاسفانه هیچ احساساتی ندارد.
کد منبع : PIC 16F877 source code for omni-wheel robots