«

»

ডিসে. 07

রোবটিক্স পরিচিতি – লেকচার ৫ – রোবট কন্ট্রোলঃ Sliding Mode Control

[কোর্সের মূল পাতা | নিবন্ধনের লিংক]

 

কি থাকছে আজকের লেকচারে

 

পার্ট ১: রোবট কন্ট্রোলঃ  Sliding Mode Control ও অন্যান্য কন্ট্রোলার

পার্ট ২: রোবট হাটানোর বাঙালি কিছু টিপস

পার্ট ৩: কোর্সে আমাদের অবস্থান

 

রোবট কন্ট্রোলঃ শুরু থেকে বর্তমান

(এই পার্ট সবচেয়ে বোরিং এবং বিরক্তিকর, কিন্তু এই পার্ট ই সবচেয়ে গুরত্তপূর্ন :P)

 

রোবট ডাইনামিক্স খুবই ননলিনিয়ার সিস্টেম। যেকোনো ননলিনিয়ার সিস্টেমের কন্ট্রোল তুলনামূলক কঠিন জিনিষ। মাল্টিবডি মোশন যেখানে আছে সেখানে ট্র্যাকিং এচিভ করা মুশকিল। রোবটের নিজের মোশন-ডিস্টার্বেন্স আছে, (also known as dynamic disturbances/internal disturbances) বাইরের ডিস্টার্বেন্স তো আছেই। আছে প্যারামেটার আর মডেল আন্সার্টেন্টি। লেকচার ফলো করে থাকলে দেখেছি যে, অরডিনারি কন্ট্রোলার ডিস্টার্বেন্স রিজেক্ট করতে পারেনা, তাই মাল্টিমুভিং সিচুএশন এ টার্গেট এচিভ করা যায় না।

 স্লাইডিং মুড কন্ট্রোল (Sliding mode control->SMC) একটা কন্ট্রোল থিওরি, যেটা ননলিনিয়ার অথবা মাল্টিবডি ডাইনামিক সিস্টেমে খুবই কার্যকর।  এটা “রোবাস্ট কন্ট্রোলার” নামেও পরিচিত কারন এটা প্যারামেটার আন্সার্টেন / চেইঞ্জ এ খুব ই এফেক্টিভলি কাজ করে । ডিস্টার্বেন্স রিজেকশন বেশ ভাল এধরনের কন্ট্রলার এর।

স্লাইডিং মুড কন্ট্রোল নিয়ে খুব সম্ভবত এটাই প্রথম “বাংলা” কোনো টিউটোরিয়াল। “Sliding mode control” লিখে সার্চ দিলে কিছু দুর্বোধ্য পত্রিকা, জার্নাল 😀 ছাড়া আর কিছু পাওয়া যাবে বলে মনে হয়না। (এই জিনিষ গুলা মূলত গ্র্যাজুয়েট লেভেল এ পড়ানো হয়, তবে জিনিষগুলা খুব ই সহজ যদি বেসিক ব্যাপার গুলা রপ্ত থাকে)।  যাদের এটা লাগছে বা লাগে তাদের মূলত কাজে আসবে। ‘ডাইনামিক্স পার্ট’ টা পড়া থাকলে যেন বোঝা যায়,  ‘ওইভাবে’ বোঝানোর চেষ্টা করেছি। তবে কন্ট্রোল ইঞ্জিনিয়ারিং এর বেসিক ছাড়া পুরোপুরি ‘ফিল’ করা যাবেনা ব্যাপার টা। বুঝতে না পারলে হতাশ হওয়ার কোনো কারন নাই। অনলাইন ভিডিও সময়-সুযোগ মত অসংখ্য বার দেখার সুযোগ আছে।

নিচের লিঙ্ক টা SMC এর ওপর একটি বোধগম্য লেকচার, কিন্ত এটা কমপ্লিট না। (জানার জন্য দেখতে পারেন, তবে আমি এর চেয়ে সহজ ভাবে বুঝিয়েছি আমার ভিডিওতে)

 

 

কি কি থাকছে ভিডিও তে

কন্ট্রোল এর কিছু ধারনা, PID আবারো ব্যাখ্যা করেছি।(আগেরবার না বুঝলেও এবার বুঝে যাবেন :P)

রোবট কন্ট্রোল সম্পর্কে কিছু ধারনা  দিয়েছি

স্লাইডিং মুড কন্ট্রোল ব্যাখ্যা করেছি, এর সুবিধা অসুবিধা বলেছি। চেষ্টা করেছি জটিল টার্ম বাদ দিয়ে বলতে।

পরিশেষে advanced controller নিয়ে কিছু বলেছি।

ভিডিওতে দেখানো ফাইলটা পাওয়া যাবে এখানে https://www.dropbox.com/s/zaqnfa72ryur9c6/Robot_control.ppsx

 

 

edit : ২৮/১১/২০১৫

আমরা এখানে ফিডব্যাক কন্ট্রোল ল জেনেছি।  ফিডব্যক ল তে  ৯০ শতাংশ ইন্ডাস্ট্রি চলে। কিন্তু এছাড়া বেশ কিছু কন্ট্রোল ল আছে।  অল্প অল্প করে কিছু  নিচে দিচ্ছি। 

 

feed forward control:  ফিডব্যাক বা feedback হল আউটপুট স্টেট কে  পরবর্তী কন্ট্রোল লুপ এ কন্ট্রোল ইনপুট ক্যাল্কুলেশন এ ব্যবহার করা। আইটপুট স্টেট বলতে পজিশন , বেগ, এক্সলেরাশন যেকোনো কিছুই হতে পারে। (ডিপেন্ড করবে আমরা কিসের অপর কন্ট্রোলার বানাই) , তাহলে এই  বর্তমান স্টেট ( পজিশন , বেগ, এক্সলেরাশন) কে আবার যখন পরবর্তী লুপে গননাতে আনা হচ্ছে, এই ঘটনা টা কে  অনেকটা বলা যেতে পারে ফীড ইট ব্যাক, অর্থাৎ আবার খাওয়ানো।  তাহলে ফিড ফর‍্যার্ড হবে আগে থেকে খাওয়ানো তাইনা?  আসলেই তাই।  আগে থেকে যদি খাওয়াতে চান, তাহলে নিশ্চয় আগে থেকে সব জানা লাগবে। আগে থেকে জানবেন কিভাবে? উত্তরঃ   মডেল থেকে। মডেল ব্যবহার করে আপনি একটা নির্দিষ্ট রেফারেন্স ট্রাজেক্টরির জন্য আউটপুট স্টেট বের করতে পারবেন। এরকম একটা  feed forward control টেকনিক হল Model Predictive Control. এটার এপ্লিকেশন অতটা বেশি না, কারণ, খুব একুরেট মডেল দরকার হয়। আরো দরকার হয় একটা রানটাইম ওপ্টিমাইজার। এই অপ্টিমাইজার আপনাকে প্রত্যেক লুপে মিনিমার এরর এর জন্য কন্ট্রোল ইনপুট বের করে দিবে। এবং সেই ইনপুট পরের সাইকেলে দেয়া হবে। রোবটকে।Model Predictive Control অনেকটা এরকম, ধরুন  আপনি একদিন সকালে  ৮ ঘনটার কর্মসূচি নিলেন। ৮ ঘণ্টার প্রত্যেক ঘণ্টায় কি করবেন তা নির্দিষ্ট করলেন। অতঃপর সেই কর্মসূচি শুরু করলেন। ধরুন ৪ ঘন্টা  পর  দেখালেন তিনভাগের একভাগ কাজ শেষ হয়নাই।  এই মুহূর্তে আপনাকে নেক্সট প্ল্যান চেঞ্জ করতে হবে, কারণ এভাবে আপনি টার্গেট ফিল করতে পারবেন না। খেয়াল করুন,  আপনি যে নেক্সট প্ল্যান চেঞ্জ করবেন, কিসের অপর বেইজ করে?  টোটাল ৮ ঘন্টা পর আপনি কোথায় থাকবেন সেরকম একটা হিসাব থেকে, তাইতো? এজন্য এধরেনের কন্ট্রোলার কে বলে future driven.

এছাড়া বেশ কিছু কন্ট্রোল ল আছে, মোটা দাগে সবগুলা একি, কিন্তু অল্প স্বল্প ভিন্নতা আছে।  যেমন Compliance Control, Impedance Control, Interactive Control, Force Control. এগুলাতে পজিশন কন্ট্রোল করা হয়না। এগুলা সাধারণত পরিবেশ এর সাথে ইন্টারেকশনের জন্য। নিচের ভিডিও টী দেখলে বিষয়টি পরিষ্কার হবে। 

রোবট হাটানোর বাঙালি কিছু টিপস

শেষ লেকচারের হাটানো নিয়ে কিছু বলেছিলাম, অনেকেই আগ্রহ প্রকাশ করেছেন, মূলত তাদের জন্যই এই অংশ।

কঠিন কঠিন জিনিষ না পড়ে ওয়াকার বানানোর সহজ উপায় হচ্ছেঃ খুব ছোটো স্ট্রাকচার বানানো, Center of gravity যত নিচে দেয়া যায় তত ভালো। যত ওপরে হবে, ব্যালান্সিং তত কঠিন হবে।  পায়ের দৈর্ঘ্য কম দেয়া (কিন্তু জুতা বড়) এবং Damper/ spring জাতীয় কিছু দেয়া, যেন ফুট ফেলার সময় কিছুটা শক এবজর্ব হয় আর কিছু নিয়ন্ত্রন বিহীন মোশন কিছুটা নিউট্রালাইজ হয়। এরপর কাজ হল “একটা হাটার স্টাইল বের করা”।  ‘হাত’ দিলে ভালো, ‘হাত’ মুভ করে ব্যালেন্স করা তুলনামূলক সহজ।  (হাটার স্টাইল কে Gait বলে)  সেই গেইট অনুযায়ী ‘প্রতিটা জয়েন্টের’ একটা ট্রাজেক্টরি বা একটা মোশন  প্ল্যান দাড় করাতে হবে।  (মোশন প্ল্যান টা সিমুলেট করে নিতে পারলে খুব ভালো হবে। পরের লেকচার এ সিমুলেশন নিয়ে কিছু ধারনা দেবার চেষ্টা করবো) সব জয়েন্ট ট্র্যাজেক্টরি ফলো করতে পারলে হাটতে পারার কথা। কোন অবস্থা থেকে হাটার ‘সাইকেল’ বা কোন ‘পজিশন’ থেকে শুরু করছেন, সেটা খুবি ইম্পর্ট্যান্ট ব্যাপার। ‘শুরু’ টা চিত্রের মত “দুই পা খোলা” এবং  “রোবট অন অবস্থায়” শুরু করুন।

 walkingtry

 

বাঙ্গালি টিপস ১

একটি গুরত্তপূর্ন টিপস হলো, স্ট্যাটিক অবস্থায় দাড়াতে পারে, এরকম চিন্তা বাদ দিয়ে, বরঞ্চ , আপনার রোবট চালু অবস্থায় ‘শুরু’র মত স্টেজ করে (চিত্র) এ থাকলে মাটিতে নামান। ‘ডাইনামিক্যালি স্ট্যাবিলিটি’ (সর্ট স্টেপ কিন্তু রিলেটিভলি ফাস্ট মুভমেন্ট দেন) আর সার্ফেস ফ্রিকশন এর চিন্তা করে গেইট আর স্ট্রাকচার ডিজাইন করুন। অর্থাৎ, খালি হাটবে এরকম ভাবুন। দাড়াতে গেলে পড়ে যায়, এরকম কিছু হোক, অসুবিধা নাই। এটা করা সম্ভব হলে, পরবর্তীতে দাড়াতেও পারবে, রোবটে কিছু মডিফিকেশন আনা হলে। আমরা আসলে stability এর জন্য over-design করে ফেলি স্ট্রাকচার এর, যেটার আর হাটার capability থাকেনা।

 

বাঙালি টিপস ২

হাটানো পসিবল এরকম কিছু দাড় বানায় ফেলেন আগে। তারপর দুই তিনজন মিলে ধরে ধরে প্রতিবন্ধিটাকে হাটান, হাটানোর সময় সবগুলা জয়েন্টের মুভমেন্ট সময়ের সাথে সাথে রেকর্ড করে ফেলেন। রিয়েল টাইম রিড করেন অথবা স্টোর করেন EEPROM এ। পরবর্তীতে ওই ডাটা অনুযায়ী সব জয়েন্টের ট্র্যাজেক্টরি প্ল্যান করে ফেলেন, এরপর ওই অনুযায়ী ইনপুট দিলে হাটতে পারার কথা।

ট্র্যাজেক্টরি অনুযায়ী যদি কন্ট্রোল করা যায়, (অবশ্যই closed-loop control হতে হবে) তাহলে আশা করা যায় হাটতে পারবে। তবে শুরুতেই পাহাড় বেয়ে হাটতে সক্ষম এরকম বানাতে যাওয়া বোকামি 😛 । আগে হামগুড়ি দেন, অবশ্যই একদিন পাহাড় বেয়ে উঠা যাবে।  তবে যেভাবেই ফলো করা হোক, সব গুলা জয়েন্ট ট্র্যাজেক্টরি মেইন্টেইন করা লাগবে, নইলে নিচের চিত্রের মত অবস্থা হবে।

walkingprob

 

পড়াশোনা বুদ্ধিঃ

কিছু পেপার/থিসিস দিয়েছি, এগুলা স্টাডি করলে বোঝা যাবে।

https://www.dropbox.com/s/bctj1qawzdmco4b/walkingthesis1.pdf

https://www.dropbox.com/s/1ljwbk7rajhz9po/walikingthesis2.pdf

https://www.dropbox.com/s/tbb0ptqojkz1cr9/walkingpaper1.pdf

 

 

আগ্রহীদের জন্য বর্তমানে হিয়ম্যানয়েড রোবটদের অবস্থা নিয়ে এই ভিডিও টা…

 

কোর্সে আমাদের অবস্থান

 আমরা রোবট কাইন্যামেটিক্স, ডাইনামিক্স ও কন্ট্রোল পড়ে ফেলছি। মোবাইল রোবটের ডাইনামিক্স পড়ে নেন, এখান থেকে

https://www.dropbox.com/s/4kxf90svse4f4i4/InTech-Nonlinear_motion_control_of_mobile_robot_dynamic_model.pdf

https://www.dropbox.com/s/psf1dfe75rgzkn5/MobileRobot%20paper.pdf

আগের লেকচার শুরু থেকে শুনে থাকলে যে ফাইল দুটা দিয়েছি, ওগুলার মূল কন্সপেট বুঝতে পারবেন।  তো এখন আমাদের বেসিক পড়া শেষ, কোর্সে আর একটা লেকচার ই অবশিষ্ট রইলো। এখন চিন্তা ভাবনা শুরু করেন আর আইডিয়া গুলা কে রূপ দেন নিচের ছেলেটার মত 😀

 

আর শিখা গুলা ইমপ্লিমেন্ট করে আরো এগিয়ে যান…

 

যেকোন প্রশ্ন বা মন্তব্য থাকলে কমেন্টে জানান। সাধ্যমত জবাব দিতে চেষ্টা করবো।  ভাল থাকুন সবাই।

Comments

comments

About the author

নাহিয়ান

আমি নাহিয়ান, জন্ম-বেড়ে উঠা ঢাকাতে। বাংলাদেশ প্রকৌশল বিশ্ববিদ্যালয় থেকে মেকানিক্যাল ইঞ্জিনিয়ারিং ‘কষ্টসাধ্য’ স্নাতক শেষ করি ২০০৯ এ। ২-২ এর শেষের দিকে দল বেধে সোহাগ ভাইদের পাইল্যাবস এ যাই, প্রবল আগ্রহে সবকিছু বাদ দিয়ে মাইক্রোকন্ট্রলার শিখা শুরু করি। মূলত তখন থেকেই রোবট রিলেটেড কিছু পড়ার ইচ্ছা। এছাড়া জাপানে অনুষ্ঠিত রোবোকোন-২০০৯ এর মেকবুয়েটে দলে কিছু কাজ(!) করেছিলাম। মাইক্রোকন্ট্রলার এর beginner দের জন্য একটা পেইজ বানাইছিলাম, কারো আগ্রহ থাকলে দেখতে পারেন।
http://nahians-avr.webs.com/
কোরিয়ার পুশান ন্যাশনাল ইউনিভারসিটি থেকে রোবটিক্স (Intelligent Control and automation system) এ মাস্টার্স সম্পন্ন করে বর্তমানে Advanced Robotics এ পি এইচ ডি করছি ইটালিয়ান ইন্সটিটিউট অফ টেক এ (http://www.iit.it/) । (http://www.iit.it/en/people/nahian-rahman.html)
বর্তমানে গবেষনার বিষয় ডেক্সটারাস ম্যানুপুলেশন, রোবোট কন্ট্রোল, সার্জিকাল রোবোটিক্স, হ্যাপ্টিক্স নিয়ে। রোবটিক্স নিয়ে মাঝেমধ্যে লিখি এখানে http://nahiansrobotics.net/

Leave a Reply