সকার রোবোটের জন্য স্পিন নিয়ামক লেখার সঠিক পদ্ধতির কী?


14

3 চাকা সকার রোবট প্রোগ্রামিং কল্পনা করুন। এটি কাটানোর জন্য আপনি কোন ধরণের নিয়ামক ব্যবহার করবেন? পি? PID,?

এই নিয়ন্ত্রণকারীর লক্ষ্য হ'ল এটি রোবটকে একটি সংজ্ঞায়িত কোণে (0 ডিগ্রি) দাঁড় করানো উচিত এবং যদি হাত বা অন্য রোবোট দ্বারা ঘোরানো হয় তবে ফিরে আসা উচিত।

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

আমি ইতিমধ্যে একটি নমুনা পি টাইপ নিয়ামক লিখেছি এবং চলাচল মোটামুটি ভাল। তবে আমি যদি সম্ভব হয় তবে এটি আরও ভাল করে তুলতে চাই। কোডটি নিম্নরূপ:

void spinSpeed(int devidedValue, int addedValue, int correction) {

    if(degree<correction && degree>-correction) {
        motorSpeed = 0;
    } else {
        if(degree > 0) {
            motorSpeed = ((degree)/(devidedValue) + (addedValue));
        } else {
            motorSpeed = ((degree)/(devidedValue) - (addedValue));  
        }
    }
}

correctionএকটি পরিসীমা, এতে রোবটের কোনও চলাচল নেই has degree-127 এবং 128 এর মধ্যে একটি সংখ্যা যা কম্পাস থেকে ফিরে আসে। motorSpeed0 এবং 255 এর মধ্যে একটি সংখ্যা যা পিডব্লিউএম-তে প্রয়োগ হয়।


সম্ভবত এই রুটিনটি প্রতিবার কম্পাসের জন্য একটি নতুন মান উত্পন্ন করার সময় চালানো হয় degree?
মার্ক বুথ

@ মারকবুথ আমার কিছুক্ষণের মধ্যে আমার কোড রয়েছে (1) সুতরাং প্রতিটি চক্রের মধ্যে এটি কম্পাসের থেকে মূল্য পেয়ে যায় যা এটি ফাংশনে দেয় এবং তারপরে মোটরগুলিতে ফলাফলটি প্রয়োগ করে।
মিরো মারকারাভনেস

আপনি কোনও সফ্টওয়্যারটিতে সার্ভো আচরণের সদৃশ করার চেষ্টা করছেন বলে কোনও সার্ডো কোন ধরণের নিয়ামক ব্যবহার করে তা আমি তদন্ত করব।
ক্রিস Laplante

আমি সার্ভস ব্যবহার করি না আমি স্টেপ মোটর ব্যবহার করি সুতরাং মোটরটিতে ইতিমধ্যে এরকম আচরণ নেই।
মিরো মার্কারাভনেস

2
হাই মিরো, স্ট্যাক এক্সচেঞ্জের ক্ষেত্রে মন্তব্যে প্রশ্নের জবাবে আপনার প্রশ্নটি সম্পাদনা করা ভাল, যাতে মন্তব্যগুলি আরও পরিষ্কার করা যায় (মুছে ফেলা হয়) যাতে তারা নিজেরাই প্রশ্ন থেকে বিরত না থাকে।
মার্ক বুথ

উত্তর:


7

একটি পিআইডি সম্পর্কে মনে রাখা গুরুত্বপূর্ণ বিষয় কন্ট্রোল লুপটি হ'ল প্রতিটি পদক্ষেপটি একটি পদক্ষেপের সময় বিভিন্ন সময়ে নিয়ন্ত্রণে আধিপত্য বিস্তার করার উদ্দেশ্যে তৈরি হয়।

আনুপাতিক শব্দটি লক্ষ্য এবং আপনি আপনার লক্ষ্য অবস্থান থেকে দূরে যে আরও বড় টর্ক (বা আপনার ক্ষেত্রে গতিতে) সরবরাহ করার উদ্দেশ্যে।

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

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

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

এই কারণগুলির কারণে, আপনি একটি সম্পূর্ণ পিআইডি লুপ বাস্তবায়ন থেকে সামান্যই উপার্জন করতে পারবেন যদি না আপনি একটি স্বতন্ত্র ত্বরণ, ক্রুজ এবং বিভক্ত পর্যায়ক্রমে একটি বেগের প্রোফাইলে পরিকল্পনাও করেন।

এছাড়াও মনে রাখবেন যে ডেডব্যান্ড এবং আই টার্মের অভাবের অর্থ চূড়ান্ত অবস্থানটি সর্বদা কিছুটা এলোমেলো থাকবে এবং আপনি যে দিকটি পছন্দসই অবস্থানে পৌঁছেছেন তার উপর নির্ভর করে সম্ভবত পৃথক হবে। যেমন, আপনার দ্বি-দিকীয় পুনরাবৃত্তিযোগ্যতা আপনার স্ট্যান্ডার্ড পুনরাবৃত্তির চেয়ে আরও খারাপ হতে পারে।

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


8

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

আমি ইতিমধ্যে এই ক্ষেত্রে কিছু রোবোটিকস সম্পন্ন করেছি, এটি আমরা আমাদের রোবোটে ব্যবহার করেছি, আপনার সাথে খুব বেশি আলাদা কিছু না করে ...


1
আপনার উত্তরের জন্য ধন্যবাদ. আমি উত্তরটি গ্রহণ করতে চেয়েছিলাম তবে আমি আরও উত্তর দেখতে চাই, সুতরাং যখন আরও উত্তর থাকবে তখন আমি তা গ্রহণ করব;)
মিরো মার্কারাভনেস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.