রোবোটিক গবেষণা / প্রয়োগের জন্য আমাদের কি আরওএস তৈরি করতে হবে? মূল সুবিধা কী? কখন বা কোন পরিস্থিতিতে আরওএস বাধ্যতামূলক?
রোবোটিক গবেষণা / প্রয়োগের জন্য আমাদের কি আরওএস তৈরি করতে হবে? মূল সুবিধা কী? কখন বা কোন পরিস্থিতিতে আরওএস বাধ্যতামূলক?
উত্তর:
আমি আবার একটি কম্পিউটারে ফিরে এসেছি!
আমি এই মন্তব্যে বলেছি , আরওএস সাধারণত বাধ্যতামূলক নয়। ROS অনেকের মধ্যে একটি প্ল্যাটফর্ম, বেশিরভাগ উইল গ্যারেজ যে কোনও সময়ে সবচেয়ে বেশি ROS মডিউল লেখেন তাকে বিনামূল্যে রোবট দেওয়ার কারণে বিখ্যাত। এটি বলেছিল যে এটি সর্বোত্তম প্ল্যাটফর্ম নয় এবং এটি অতিরিক্তভাবে বিশেষ কিছু নয়। বিশেষত, উল্লিখিত প্রতিযোগিতার ফলাফলটি কেবলমাত্র উচ্চতর হওয়ার জন্য প্রচুর নিম্ন-মানের মডিউল নিয়েছিল।
সময়ের সাথে সাথে, আরওএস মডিউলগুলির গুণমান আরও ভাল হয়েছে এবং সেগুলির অনেকগুলি রয়েছে। সুতরাং আরএসএস ব্যবহার করে আপনার ইতিমধ্যে যা করা হয়েছে তার অনেকগুলি পুনরায় ব্যবহার করার সুবিধা রয়েছে। আপনি আরএসএস ব্যবহার করতে পারেন এমন কয়েকটি কারণ আপনি এখানে পড়তে পারেন।
এটি মনে রেখে, আপনার পাশাপাশি পার্শ্ব প্রতিক্রিয়াগুলিও সন্ধান করা উচিত।
আরওএসের সাহায্যে আপনার অনেকগুলি নোড রয়েছে যা নেটওয়ার্কের মাধ্যমে একে অপরের সাথে কথা বলে। এটি কখনও কখনও ভাল এবং সহজ হয়, তবে সাধারণত বার্তাগুলি গ্রহণের ক্ষেত্রে বিভিন্নভাবে বিলম্বিত হয়। ফলস্বরূপ, সমস্ত বার্তা উপস্থিত হয়েছে তা নিশ্চিত করার জন্য আপনাকে একটি বৃহত্তর নিয়ন্ত্রণের বিলম্ব করতে হবে, যার অর্থ আপনি ইভেন্টগুলিতে তাত্ক্ষণিক প্রতিক্রিয়া করতে পারবেন না, যার ফলস্বরূপ আপনি যদি আপনার রোবটকে ধীর গতিতে সরিয়ে নিয়ে যান যাতে এই ইভেন্টগুলি মিস না হয়।
বিশ্বাস করুন বা না করুন, লোকেরা আরওএসের মাধ্যমে রোবট নিয়ন্ত্রণ করতে পারে ( মুভিটআইটি! উপাদানগুলির প্রাসঙ্গিক সেটটির নাম)। স্লো। অনিরাপদ। তবে সহজ!
এমনকি বিতরণ না করা হলেও, আরওএস কোনও আসল-সময় প্ল্যাটফর্ম নয়। এর অর্থ আপনি যে কোনও সময় উপযুক্ত কাজগুলি দেখতে উপযুক্ত সময় নির্ধারণের জন্য লিনাক্স কার্নেলের সম্পূর্ণ বিবেচনায় রয়েছেন। এটি কিছু অ্যাপ্লিকেশনগুলির জন্য ঠিক আছে তবে অন্যদের জন্য ঠিক নয়। সুতরাং আপনার নিজের প্রয়োজনীয়তাগুলি দেখতে হবে। আপনার কাজটির একটি নির্দিষ্ট সময়সীমার মধ্যেই শেষ হয়ে যাবে যে আপনার গ্যারান্টি থাকা দরকার ? যদি তা হয় তবে আপনার একটি রিয়েল-টাইম সিস্টেম দরকার।
আর একটি বিষয় বিবেচনা করার বিষয় হ'ল, যখন আরওএস যোগাযোগের একটি সাধারণ প্রোটোকল, এটি মূলত কেবল হোস্ট করা পরিবেশের জন্যই সমর্থিত। হোস্ট করা মানে কোডটি একটি কার্নেলের উপরে চলে যায়, ফ্রিস্ট্যান্ডিংয়ের বিপরীতে যার অর্থ কোডটি সরাসরি হার্ডওয়্যারকে নিয়ন্ত্রণ করে (যেমন, একটি মাইক্রোকন্ট্রোলারে)।
যদি আপনার রোবোটিক্স অ্যাপ্লিকেশনটি হার্ডওয়ারের কাছাকাছি চালিত হয়, এবং সেইজন্য আপনাকে এমন একটি প্রোগ্রামের প্রয়োজন হবে যা একটি মাইক্রোকন্ট্রোলারের উপর চলে, ROS আপনাকে কোনও সাহায্য করবে না।
সর্বশেষে তবে অন্তত নয়, আরওএসের জন্য বিকাশ একটি প্ল্যাটফর্ম লক-ইন করে in এর অর্থ হ'ল ভবিষ্যতে যদি কোনও কারণে বা অন্য কোনও কারণে আপনি নিজের কাজকে অন্য রোবোটিক প্ল্যাটফর্মের উপর ভিত্তি করে স্থির করার সিদ্ধান্ত নেন, যেমন ওআরোকস, ইএআরপি, ইত্যাদি, উদ্দীপনাজনক হবে।
আপনি কিছুটা লিনাক্সে লক হয়ে যাবেন। লিনাক্স সেরা, কোনও সন্দেহ নেই তবে একদিন আপনি অন্য সিস্টেমকে যেমন QNX, VxWorks ইত্যাদি সমর্থন করতে পারেন এবং আপনারও সেখানে সমস্যা হতে পারে।
আপনি যদি মাইক্রোকন্ট্রোলারদের জন্য লেখেন, তবে আরএসএস সম্পর্কে ভুলে যান। আপনি যদি উচ্চ-স্তরের মডিউলগুলি লিখছেন তবে আমি পোর্টেবল কোড লেখার জন্য সুপারিশ করছি। উদাহরণস্বরূপ, বলুন আপনি একটি নতুন সেন্সর তৈরি করেছেন এবং আপনি একটি মডিউল লিখতে চান যা এই সেন্সর থেকে ডেটা অর্জন করে, যা আপনার কম্পিউটারের সাথে সিএন বাসের মাধ্যমে সংযুক্ত রয়েছে is
আপনি এই পরিস্থিতিতে যা করতে পারেন তা হ'ল একটি সুনির্দিষ্ট গ্রন্থাগার লিখতে, এমন ফাংশন সহ যা আপনার সেন্সরের সাথে কাজ করতে এবং ডেটা অর্জন করতে সক্ষম with এমনকি আপনি লাইব্রেরিতে এমন একটি থ্রেড তৈরি করার কথা ভাবতে পারেন যা পর্যায়ক্রমে ডেটা অর্জন করে এবং তৈরি করে।
আপনার কাছে এই সহায়িকা গ্রন্থাগারটি তৈরি হয়ে গেলে আপনি কোনও সি এল এল, জিইআইআই, আরওএস মডিউল, ওআরোকস মডিউল, ইআরপি মডিউল, মতল্যাবের সাথে সংযুক্ত বা অন্য কিছু যা আপনি আপনার সেন্সরের সাথে ইন্টারঅ্যাক্ট করতে ব্যবহার করতে চান তা লিখতে পারেন।
চূড়ান্ত দ্রষ্টব্য: আমি এখানে যা বলেছি তা কেবলমাত্র আরওএস নয়, সমস্ত রোবোটিক প্ল্যাটফর্মের ক্ষেত্রে প্রযোজ্য।
"আরওএস" একটি আপেক্ষিক শব্দ, এপিএম সম্পূর্ণ কাস্টম কোডটি বিশেষত কোয়াড্রোপ্টার নিয়ন্ত্রণের জন্য তৈরি করা হয়েছে যেখানে একটি কাস্টম রস ক্র্যাশ হওয়া থেকে বাঁচতে বাঞ্ছনীয় হতে পারে, অন্যদিকে নাভিও + লিনাক্স কার্নেলে চালিত হয় এবং অটোপাইলট ব্যতীত অন্য কোড চালায়, এবং এখনও ক্রাশ থেকে রক্ষা করতে পরিচালনা করে। বেশিরভাগ আরএসএস হ'ল স্থলভাগ থেকে কোনও ওএস লেখার বিরোধিতা হিসাবে একটি বিদ্যমান ওএসের শীর্ষে ফাংশনের একটি সেট। যে কোনও কিছুর সাথে এটি নির্ভর করে।
দাবি অস্বীকার: এই উত্তরটি কোনওভাবেই শাহবাজের পোস্টের প্রতিক্রিয়া, সুতরাং এটির একটি রসের পক্ষপাতিত্ব রয়েছে।
আমি মনে করি না যে আরওএস বাধ্যতামূলক, তবে এটি একটি দুর্দান্ত সূচনা পয়েন্ট এবং বিনিয়োগের জন্য উপযুক্ত সময়। এটি উইলো গ্যারেজের মধ্যেই শুরু হয়েছিল, তবে এই সংস্থাটি নিখোঁজ হয়েছে এবং আরওএস এখনও জীবিত, ব্যবহৃত এবং বিকাশিত। বেশিরভাগ আরএসএস সম্পূর্ণ ওপেন সোর্স এবং বাণিজ্যিকভাবে ব্যবহারের উপযোগী যাতে কোনও সংস্থা আর আগ্রহী না হয় তবে আরএসএস কেবল নিখোঁজ হতে চলেছে এমন কোনও উপায় নেই। কোর্সের কোড কোয়ালিটি মূল মডিউলগুলি এবং কাটার এজ অ্যালগরিদমগুলির বাস্তবায়নের মধ্যে পার্থক্য রয়েছে যা কিছু পিএইচডি শিক্ষার্থী তার কাগজ দিয়ে প্রকাশ করেছিল।
আরওএস শিল্প সেটিংগুলিতে আরও বেশি গতি অর্জন করছে (বিশ্বব্যাপী রোবোটিক্স স্টার্টআপের একটি উল্লেখযোগ্য অংশ রয়েছে যা আরওএস ব্যবহার না করে) আমি অবাক হব)। কিছু অ্যালগরিদম আরও রক্ষণাবেক্ষণ এবং রস-ইন্ডাস্ট্রিয়াল কনসোর্টিয়াম দ্বারা বিকাশিত হতে চলেছে এবং আপনার যদি সদস্যদের দিকে নজর দেন তবে এটি একটি ভাল বাজি যে আরওএস শিল্পে একটি স্ট্যান্ডার্ড হয়ে উঠবে:
http://rosindustrial.org/ric/current-members/
আরওএস ব্যবহারের বিতরণিত উপায়টি নতুন প্যাকেজ তৈরি এবং রক্ষণাবেক্ষণে বিশেষত দলগুলির মধ্যে প্রচুর সহায়তা করে। বার্তা এবং ক্রিয়া সংজ্ঞা ইন্টারফেস সংজ্ঞায়িত করতে অনেক সহায়তা করে যাতে হার্ডওয়্যার এবং অ্যালগরিদমগুলি দ্রুত বিনিময় করা যায়। এটি নতুন দলের সদস্যদের একীভূত করতে সহায়তা করে কারণ একটি নতুন নোড ক্রাশ হয়ে গেলে নোড অন্যান্য নোডকে নামিয়ে আনবে (যতক্ষণ না এটি সমস্ত র্যাম খায় না ..) সুতরাং চলমান সিস্টেমে আংশিকভাবে কাজ করা নোডগুলি তাদের হিসাবে সংহত করা বরং নিরাপদ প্রভাব সীমিত। যোগাযোগটিতে টিসিপি ব্যবহার করা হয় যা নির্ভরযোগ্য এবং দ্রুত (স্থানীয় মেশিনে), যাতে বার্তাটি খুব দ্রুত হয় (একটি নিয়ন্ত্রণ লুপের জন্য কয়েক শতাধিক হার্জেড সম্ভব)।
অ রিয়েল-টাইম
আরএসএস বর্তমানে রিয়েলটাইম নয় কারণ বিশাল সংখ্যাগরিষ্ঠ অ্যালগরিদমের রিয়েলটাইমের প্রয়োজন নেই। সেন্সিং বা পরিকল্পনার বেশিরভাগ ক্ষেত্রে রিয়েলটাইম সীমাবদ্ধতা থাকে না (কত লোক উচ্চ গতির গাড়ি চালনা করছে?)। চূড়ান্ত নিয়ন্ত্রণের লুপটি রিয়েলটাইমে চলে এবং এটি বেশিরভাগ ক্ষেত্রে সরাসরি মোটরটিতে করা যেতে পারে (যেখানে চূড়ান্ত অবস্থানটি যেমন সিএন এর মাধ্যমে প্রেরণ করা হয়)। রিয়েল টাইম তবে ROS2 এর অন্যতম প্রধান লক্ষ্য ( https://github.com/ros2/ros2/wiki/Real-Time-Pogramming ) তাই ভবিষ্যতে আপনার যদি পুরো সিস্টেমের জন্য এটির প্রয়োজন হয় তবেও আরওএস আপনি কভার করেছেন ।
আপনি যদি এম্বেড থাকা স্টাফগুলি সত্যিই চালাতে চান তবে অবশ্যই আরডুইনোর সাথে একটি সংযোগ রয়েছে, যাতে আপনি সরাসরি আরডুইনোতে আরওএস বার্তা লিখতে পারেন যা সিরিয়াল সংযোগের মাধ্যমে প্রেরণ করা হয়।
উইন্ডোজটিতে আরএসএস চালানো এখন ব্যথা, তবে উইন্ডোজ যেমন লিনাক্সের কাছাকাছি চলেছে (এমনকি বাশ জাতীয় কিছু পাওয়া শুরু করেছে) এটি সম্ভব না হওয়া পর্যন্ত সময়ের বিষয় মাত্র। (তবে যাইহোক উইন্ডোজ দিয়ে কে একটি রোবট চালাতে চায়?)
হার্ডওয়্যার ইন্টারফেস এবং অ্যালগরিদম:
আমি মনে করি এটি রসের জন্য সত্যই একটি শক্তিশালী পয়েন্ট। বাণিজ্যিকভাবে উপলভ্য প্রচুর রোবট ইতিমধ্যে একটি আরওএস ইন্টারফেস নিয়ে এসেছে বা ইতিমধ্যে কেউ ইন্টারফেসটি প্রয়োগের জন্য কিছু সময় বিনিয়োগ করেছে। সর্বাধিক বাণিজ্যিক অস্ত্র মুভিট এ ব্যবহার করা যেতে পারে একটি নির্দিষ্ট বাহু দিয়ে চালানোর জন্য অ্যাপ্লিকেশন পেতে এত বেশি কাজ অন্য একটি হার্ডওয়্যার দিয়ে পুনরায় ব্যবহার করা যেতে পারে।
সম্প্রদায়:
আরওএসের জন্য আর একটি শক্ত পয়েন্ট। নতুন অ্যালগরিদম খুব দ্রুত একটি রস-ইন্টারফেস পায় এবং প্রচুর লোকের একই সমস্যা ছিল যাতে আপনি কাউকে সাহায্য করার জন্য খুঁজে পাবেন।
http://download.ros.org/downloads/metrics/metrics-report-2016-07.pdf