«

»

নভে. 05

রোবটিক্স পরিচিতি – লেকচার ৪-১ –ট্র্যাজেক্টরি / পাথ প্ল্যানিং

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

 

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

ট্র্যাজেক্ট্ররি বা পাথ প্ল্যানিং আরো একটা বিশাল অধ্যায়। তবে আমাদের আলোচনা মোবাইল রোবোট আর ইন্ড্রাস্ট্রিয়াল টাইপ রোবোটে সীমাবদ্ধ থাকবে। এই লেকচারে মোবাইল রোবোটে পাথ প্ল্যানিং (A* এলগরিদম ব্যবহার করে) এর ওপর কিছু ধারনা দেয়া হয়েছে। পরের লেকচারে ইন্ড্রাস্ট্রিয়াল রোবোটে দেখানো হবে।

ধরুন আপনি একটা মাইক্রোমাউস(১) বা মেজ সল্ভিং (micromouse, maze solver) কম্পিটিশন এ অংশ নিচ্ছেন। বা এধরনের কোনো কিছু বানাবেন।

মাইক্রোমাউস কনটেস্ট হল একটা রোবোট কম্পিটিশন, যেখানে মিনি সাইজের wheel based robot কে একটা maze বা ধাধা solve করতে হয়। মেইজ বা ধাধা তে একটা স্টার্টিং বা শুরুর পয়েন্ট  আর end/goal point নির্দিষ্ট থাকে। সবচেয়ে কম সময়ে মেজ টা সল্ভ করা  বা goal point এ reach করা হল উদ্দেশ্য। এই ধরনের প্রতিযোগীতা জাপান, কোরিয়া, চায়না, ভারত, আমেরিকাতে বেশ জনপ্রিয়। নিচের ভিডিওটি দেখলে খেলাটি পরিষ্কার হবে।

micromouse-robot

ধরলাম আমরা একটা রোবোট বানিয়েছি, যার ভিশন আছে অথবা চারপাশে অপ্টিকাল সেন্সর আছে, যার সাহায্যে সে obstacle/wall বা প্রতিবন্ধকতা এড়িয়ে চলতে পারে। মেজ বা ধাধার প্রত্যেকটা বক্স (nxn)  সে অতিক্রম করে, সে তার মেমরি তে রাখতে পারে (SLAM)(২)।  যদি সে dead end পায়, তাহলে ফিরে অন্য পথে খুজতে পারে। তাহলে আমাদের রোবোটটাকে মেজ সল্ভার রোবোট বলা যায়।

কিন্তু প্রতিযোগীতার মেজ বা ধাধাগুলো তুলনামূলক বড় আকারের আর জটিল। এখানে অনেক dead end থাকে, অনেক গুলা পথ থাকে শুধুই আজিরা ঘুড়াঘুড়ি করার, এবং অনেকগুলো solution ও থাকে। বেস্ট সলুশন হবে সবচেয়ে ছোট পথ টা।  আপনাকে সবচেয়ে কম সময়ে সল্ভ করতে হলে শর্টেস্ট পাথ (shortest path) বা তার আশে পাশের কোনো ছোট পথ ধরতে হবে।  কম সময়ে যেতে পারলে আপনার ভালো করার চান্স থাকবে।  কিন্তু আপনি জানবেন কিভাবে কোন ‘পথ’ টা ছোটো? এজন্যই আপনাকে জানতে হবে কিছু এলগরিদম (/আর্টিফিসিয়াল ইন্টেলিজেন্স), যা ব্যবহার করে আপনি পাথ প্ল্যান করবেন। কম্পিঊটার গেমস এর ক্ষেত্রে এই এলগরিদম গুলা বেশি উপযোগী, কারন ফুল ম্যাপ পেয়ে গেলে শর্টেষ্ট পাথ বের করাটা হিসাব করা মাত্র। কিন্ত রোবোটের ক্ষেত্রে অজানা ধাধাতে পুরো ম্যাপ দেওয়ার সুযোগ থাকেনা। (SLAM- Simultaneous Localization and Mapping)

তাই রোবোট যখন অজানা কোনো মেজ এ বা এনভারন্মেন্ট এ থাকবে, এলগরিদম চালানোর  জন্য ডাটাগুলো সাথে সাথে দিতে হবে সেন্সর থেকে, সে অনুযায়ি ডিসিশান তৈরি করতে হবে। Go Straight , unless obstacle – if Obstacle check Right first and turn right if free, else check Left, go if free, All block, go backward! এধরনের কিছু priority based লজিক দিয়েও কিছু কিছু মেজ সল্ভ করা যাবে, কিন্তু যে কোনো মেজ সল্ভ করা যাবেনা।

যেকোন মেজ সল্ভ করতে পারবে এলগরিদম বা সার্চ টেকনিক,  তারা সর্টেস্ট পাথ (shortest path) ও বের করে দিবে আপনাকে। কিন্তু সেক্ষেত্রে সময়টা লাগবে একটু বেশি। (কারন ম্যাপ বা মেজ প্রায় পুরাটা scan করা লাগবে) তাই অপ্টিমাল একটা ডিসিশনে থাকতে হবে। মোট কথা, রিয়েলিস্টিক মেজ এ মাল্টিপল পাথ সলুশন থাকলে এলগরিদম কোনো টাইম গ্যারান্টি দিতে পারবেনা।

বেশ কিছু এলগরিদম আছে, এর মধ্যে A*, Dijkstra বেশি পরিচিত।  তবে ভিডিও তে দেখানো মেজগুলো ৪ সেকেন্ডে  বা এরচেয়ে ও কম সময়ে সল্ভ করতে হলে আপনাকে শুধু এই এলগরিদম জানলে হবে না,  আরো অনেক develop করতে হবে এলগরিদমগুলা।  আর ডিজাইন/ কন্সট্রাকশন/ওয়েট/ব্যালেন্স/সেন্সর/সার্কীট/কন্ট্রলার/মোটর/স্পীড তো আছেই!

আজকে আমরা A* এলগরিদম পড়বো। আমরা এখানে obstacle avoid করে সবচেয়ে কম পথ দিয়ে goal এ যাওয়ার পথ বের করবো। প্রথমে সার্চ টেকনিকটা শিখুন ধৈর্য ধরে। রোবোটে কিভাবে ব্যবহার করা যায়, সে নিয়ে ভিডিও এর শেষে বলেছি।

দেখানো স্লাইড টা পাওয়া যাবে  এখানে   https://www.dropbox.com/s/4slip9mw1labbng/A_star.ppsx

(স্লাইড টা খুব কম সময়ে তৈরি, ভুলত্রুটির জন্য ক্ষমাপ্রার্থী )

 

 

(মোবাইল রোবটে পাথ প্ল্যানিং সম্পর্কে খুব সামান্য ই ধারনা দিয়েছি এখানে, লেকচারটি মূলত মেজ সল্ভ করার চিন্তা থেকে করা। আরো জানতে একটু নেট ঘাটুন, কমেন্ট এ প্রশ্ন করুন )

path plan loop অনেকটা এরকমঃ

pathplanMobilerobot

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

(১) http://en.wikipedia.org/wiki/Micromouse

(২) http://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping

(৩) http://en.wikipedia.org/wiki/Maze_solving_algorithm

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