সরাসরি ডিফারেন্সিয়াল রোবট ড্রাইভিং পেতে পিআইডি ব্যবহার করার জন্য যোগাযোগ করুন


13

প্রতিক্রিয়ার জন্য প্রতিটি সাথে একটি এনকোডার যুক্ত দুটি মোটরযুক্ত চাকা রয়েছে এমন একটি ডিফারেনশিয়াল ড্রাইভ রোবোটটি বিবেচনা করুন। মনে করা হয় যে প্রতিটি ডিসি মোটরের জন্য একটি ফাংশন রয়েছে যা -1 থেকে 1 অবধি ভাসা নিয়ে যায় এবং সেই মোটরটিকে আনুপাতিক পরিমাণ পাওয়ার সরবরাহ করতে PWM সিগন্যাল সেট করে sets দুর্ভাগ্যক্রমে, সমস্ত মোটর সমানভাবে তৈরি হয় না, তাই প্রতিটি মোটর একই পিডাব্লুএম সিগন্যাল প্রেরণ করা রোবট বীরকে বাম বা ডান করে তোলে। আমি পিআইডি লুপের ইনপুট হিসাবে প্রতিটি মোটরের সাথে সংযুক্ত এনকোডারগুলি ব্যবহার করে কীভাবে রোবটটি চালনা করব সে সম্পর্কে চিন্তা করার চেষ্টা করছি।

আমি এটি কীভাবে করব তা এখানে: আমি বাম এবং ডান এনকোডারগুলির মধ্যে পার্থক্য নেব, কিছু পরিসরের মধ্যে ত্রুটিটি আবদ্ধ করবো, এটিকে [-1, 1] থেকে স্বাভাবিক করে তুলব এবং তারপরে এটিকে মোটর থেকে 0 থেকে 1 এ ম্যাপ করব। সুতরাং যদি আমি এবং ডিটি শূন্য হয় এবং আমরা 1 এর ত্রুটি পেয়েছি (সুতরাং বাম মোটরটি ডান মোটরের চেয়ে অনেক বেশি পরিণত হয়েছে), তবে বাম মোটরটি 0 তে সেট করা হবে এবং ডান মোটরটি 1 এ সেট হবে (একটি শক্ত কারণ তৈরি করবে) বামে)।

এটি নিয়ে কোনও সমস্যা আছে? এর চেয়ে ভাল পন্থা কী?

উত্তর:


5

এটি নিয়ে কোনও সমস্যা আছে?

এটির সাথে মুখ্য বিষয়টি হ'ল আপনার প্রস্তাবিত সমাধানটি মোটরগুলির পারফরম্যান্সের মধ্যে একটি অমিলের জন্য তাত্ক্ষণিকভাবে সংশোধন করবে, তবে এটি সঞ্চিত ত্রুটির জন্য সঠিক হবে না, অ্যাবে ত্রুটির মতো অবস্থানে আরও জটিল ত্রুটিগুলি ছেড়ে দিন (পরে দেখুন)।

এর চেয়ে ভাল পন্থা কী?

ত্রুটিগুলির প্রতি আপনার সহনশীলতা কী এবং আপনি সেগুলি সংশোধন করতে কতটা চেষ্টা করতে চান তার উপর নির্ভর করে আপনি করতে পারেন বেশ কয়েকটি জিনিস।

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

একক জটিল, আন্তঃনির্ভরশীল সম্মিলিত সিস্টেম টিউন করার চেয়ে দুটি নামমাত্র স্বতন্ত্র মোটর স্তরের পিআইডি লুপগুলি টিউন করা আরও সহজ হবে। উচ্চ স্তরের নিয়ন্ত্রণের কাজের যে কোনও পরিবর্তনের পক্ষে দাঁড়াতে আপনার প্রতিটি মোটর যথাসময়ে অন্যান্য মোটরের সাথে যথাসম্ভব যথাযথভাবে আচরণ করা দরকার এবং এর জন্য পৃথক সারো লুপ প্রয়োজন really

তবে আরও অনেক জটিলতা রয়েছে এবং এটি নির্ভর করে যে আপনার সঠিকতা কতটা প্রয়োজন এবং আপনি কোন সমাধানের জন্য যাচ্ছেন সেগুলি সংশোধন করতে আপনি কতটা প্রচেষ্টা প্রস্তুত। এটি মৃত গণনা যথেষ্ট হতে পারে বা আপনার রোবোটে আপেক্ষিক বা পরম অবস্থান নির্ধারণের প্রয়োজন হতে পারে।

একটি সমস্যা হ'ল এমনকি যদি আপনার বাম এবং ডান চাকা উভয়ই 1000 এনকোডার গণনা করে, আপনি এখনও দুটি ভিন্ন রান নিয়ে আলাদা অবস্থানে এসে থাকতে পারেন

উদাহরণস্বরূপ, বলুন যে আপনার কাছে সর্বোচ্চ 10 টি এনকোডার সংখ্যার ত্রুটি রয়েছে এবং আপনার মোটরগুলি পিআইডি লুপ পুনরাবৃত্তির জন্য 10 এনকোডার গণনা বলার গতিতে চলছে। আপনার বাম মোটরটি 5,10,10,10 ... 10,5 এ চলতে পারে যখন আপনার ডান মোটরটিতে 4,11,10,10 ... 10,5 এর প্রোফাইল থাকতে পারে এবং এমনকি প্রারম্ভের ক্ষেত্রে ত্বরণে সামান্য পার্থক্য থাকতে পারে পদক্ষেপের ফলে রোবটটি কিছুটা ভুল দিক থেকে সরে যেতে পারে। কেবল তা-ই নয় তবে তত বেশি আপনি সেই দিকে এগিয়ে যাবেন তত ত্রুটি তত বেশি হয়ে উঠবে পরম শর্তে। আমরা যখন এবে ত্রুটি সম্পর্কে কথা বলি তখন আমরা এই বিষয়েই কথা বলি এবং কোনও জটিল গতিময় মডেল বা কোনও ধরণের বাহ্যিক রেফারেন্স ছাড়াই আপনি কখনই এটি সংশোধন করতে সক্ষম হবেন না।

আরও তথ্যের জন্য, আমার অনুরূপ অনুরূপ তবে বেশ সদৃশ প্রশ্নের উত্তরটি দেখুন : আমি কীভাবে একটি সরলরেখায় একটি রোবট চালাতে আড়ডিনো পিআইডি লাইব্রেরিটি ব্যবহার করতে পারি? এবং আমার সম্পর্কিত সম্পর্কিত লাইন ফলোয়ার অপ্টিমাইজেশনের উত্তর


2

আমার কাছে একটি বট আছে যা স্বাধীনভাবে চালিত চাকাগুলির সাথে রয়েছে।

আমি এটিকে পছন্দসই দিকে এগিয়ে যেতে গিরো ব্যবহার করা বেছে নিয়েছি, পিছলে যাওয়া এবং এমনকি এটি বাছাই করা এবং এটিকে ঘুরিয়ে দেওয়া খুব সামান্য ফলাফল কারণ এটি কেবল এটির শিরোনামটি ঠিক করবে।

আমি একটি একক পিআইডি ব্যবহার করি, যা গিরো দ্বারা নির্ধারিত বর্তমান শিরোনাম (দিকনির্দেশ) এর ত্রুটি অনুসারে 2 মোটরের প্রতিটিটির জন্য কাঙ্ক্ষিত বর্তমান গতিতে একটি সংশোধন যোগ / বিয়োগ করে।

উদাহরণস্বরূপ আমি গতি 50% এবং 20 ডিগ্রিতে শিরোনাম সেট করেছি। এটি সাধারণত 50% পাওয়ারে উভয় মোটর চালিত করে। তবে শিরোনামটি বন্ধ হয়ে যাওয়ার সাথে সাথে, পিআইডি সামঞ্জস্য তৈরি করে একটি মোটরকে কিছুটা পাওয়ার যোগ করবে এবং অন্যটি থেকে কিছুটা পাওয়ার সরিয়ে ফেলবে, যাতে পিড শিরোনামটিকে সংশোধন করে আপনি মোটরগুলির মধ্যে 45% / 55% পাওয়ার বিভাজন নিয়ে শেষ করতে পারেন।

গাইরোসের সমস্যা আছে যদিও, কিছুটা সময় ব্যয় করার পরেও আমি এখনও খুঁজে পাচ্ছি যে আমার গ্রিয়ো প্রতি মিনিটে প্রায় 1 ডিগ্রি আছে। এটি হতে পারে কারণ পৃথিবী প্রতি ঘন্টা 15 ডিগ্রি ঘুরছে, এটিও দীর্ঘকালীন বিবেচনা করা উচিত।

পূর্বে উল্লিখিত চক্রগুলির এনকোডারগুলি আসলে আপনি কতটা ভ্রমণ করেছেন তা জানার জন্য একটি দুর্দান্ত ধারণা are


আমি এই জন্য আপনার কোড দেখতে চাই। আমি একই পথটি গাইরো / অ্যাক্সিলোমিটার / চৌম্বকীয় কেন্দ্র দিয়ে শুরু করছি তবে আমি এখনও এই সেন্সরগুলি থেকে পড়াগুলি বোঝার চেষ্টা করার খুব প্রাথমিক পর্যায়ে আছি।
রন স্মিথ

এখানে আমার কোডের একটি লিঙ্ক, আমি ভয় করি এটি বুঝতে সহজ হতে পারে না। github.com/rlsutton1/piBot/blob/master/src/main/java/au/com/…
রবার্ট সাটন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.