একটি সরলরেখায় রোবট চালাতে আমি কীভাবে আরডুইনো পিআইডি লাইব্রেরি ব্যবহার করতে পারি?


19

আমি একটি চক্রের ২ টি চাকা, চতুর্ভুজ এনকোডার, একটি এইচ-ব্রিজ ড্রাইভার চিপ (বা মোটর নিয়ামক) এবং একটি কাস্টার সহ একটি আরডিনো ভিত্তিক রোবট তৈরি করতে চাই। ভ্রমণের দূরত্বের গতি আনুপাতিক কিনা তা নিশ্চিত করতে আমি পিআইডি লাইব্রেরিটি ব্যবহার করতে চাই।

একটি ধারণাগত স্তরে, (মোটরগুলি পিডাব্লুএম স্তরের ক্ষেত্রে অভিন্নভাবে সাড়া দেয় না ধরে নিচ্ছি) আমি পিআইডি নিয়ন্ত্রণটি কীভাবে বাস্তবায়ন করতে পারি যাতে এটি সরলরেখায় এবং ভ্রমণের জন্য যে দূরত্বের আনুপাতিক গতিতে ভ্রমণ করে?


এই প্রশ্নটির এখানেও তার জায়গা রয়েছে কারণ এটি বিশেষত আরডুইনো পিআইডি লাইব্রেরির আশেপাশে রয়েছে ।
অনিন্দো ঘোষ

উত্তর:


18

সুনির্দিষ্ট

এ খুঁজছি PID, বেসিক উদাহরণ আমি মনে করি যে আপনি শুধু PID, নিয়ামক, প্রতিটি চাকা এনকোডার এবং PWM জন্য এক দুটি অনুলিপি instantiate করা প্রয়োজন:

PID leftPID(&InputLeft, &OutputLeft, &SetpointLeft,2,5,1, DIRECT);
PID rightPID(&InputRight, &OutputRight, &SetpointRight,2,5,1, DIRECT);

তারপরে, আপনার loop()সমতুল্য, আপনি কেবল উভয় এনকোডার পড়ুন, প্রতিটি এনকোডার মান প্রাসঙ্গিক করে দিন PIDএবং শেষ পর্যন্ত উভয় পিডাব্লুএম মান লিখুন।

আপাতত SetpointLeftএবং SetpointRightআসলে একই মানের দিকে নির্দেশ করতে পারে তবে এগুলি আলাদাভাবে সংজ্ঞায়িত করা আপনাকে পরে ঘুরিয়ে দেওয়ার ক্ষমতা যোগ করতে দেয় allows

ধারণা

যদিও এটি বেসিক ক্ষেত্রে কাজ করতে পারে, এটি আপনার পর্যাপ্ত লাইনের প্রয়োজন কতটা সঠিক তার উপর নির্ভর করে really

মৃত হিসাব

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

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

আপেক্ষিক অবস্থান নির্ধারণ

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

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

যাইহোক আপনি আপেক্ষিক অবস্থানের দৃ determination় সংকল্পের সাথে যাই করুন না কেন, সময়ের সাথে সাথে আপনি নিজেকে যে অবস্থানটিতে বিশ্বাস করেন তা আপনার আসল শারীরিক অবস্থান থেকে দূরে চলে যাবে।

সম্পূর্ণ অবস্থান নির্ধারণ

এটির কাছে যাওয়ার একমাত্র উপায় হ'ল আপনার যানবাহনের ফ্রেমের বাইরে রেফারেন্স পয়েন্ট।

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

আপনার রোবটের জন্য, এটির কোনও হোম পজিশন থাকতে পারে, যেখানে এটি আবার ফিরে যেতে পারে এবং সনাক্ত করতে পারে যে এটি সেই পরিচিত স্থানে রয়েছে। এই মুহুর্তে এটি ঠিক কোথায় তা জানে এবং এটির অবস্থান নির্ধারণের অবস্থানটি প্রকৃত অবস্থান থেকে কত দূরে তা রিপোর্ট করতে পারে।

আর একটি বিকল্প, আপনার কয়েক হাজার মিটারের ওপরে সোজা লাইনে ভ্রমণ করার জন্য যদি আপনার রোবটটির প্রয়োজন হয় তবে এটি একটি আরডুইনো জিপিএস ঝাল যুক্ত করার মতো কোনও ভিন্ন কৌশলতে স্যুইচ করতে হবে ।

কৌশল সমন্বয়

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

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

এখানে প্রচুর বিকল্প রয়েছে এবং আপনি যা পছন্দ করেছেন তা আপনার প্রয়োজনীয়তার উপর নির্ভর করবে।


1

যদি আপনি উভয় চাকা চালানোর জন্য একক অক্ষ ব্যবহার না করে থাকেন তবে আমি দেখতে পাচ্ছি যে কেবলমাত্র সমাধানগুলি হ'ল 3-অক্ষের অ্যাক্সিলোমিটার বা অন্য কোনও সেন্সর যোগ করে রোবটের অভিযোজন সনাক্ত করতে এবং সেই অনুসারে প্রতিটি মোটরে সংকেতগুলি সামঞ্জস্য করা।


0

উপরে যেমন বলা হয়েছে, আপনি প্রতিটি চক্রকে একই গতিতে চলতে বলে শুরু করে এবং তারপরে পিআইডি নিশ্চিত করে যে তারা সেই গতিতে চলছে। তবে এটি নিখুঁত হবে না। আপনার ত্রুটিগুলি সংশোধন করা এবং সংশোধন করা প্রয়োজন (1) পর্যায়ক্রমে দুটি চাকা এনকোডার গণনাগুলি পড়ুন এবং তুলনা করুন এবং গণনা সমান হওয়ার জন্য প্রয়োজন হলে একটি চাকা কিছুটা দ্রুত যেতে হবে। এবং (2) এনকোডারগুলি কখনও নিখুঁত হয় আপনার একটি অ্যাক্সিলোমিটার এবং একটি কম্পাস দরকার।

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


0

এই লিঙ্কটি দুটি পিআইডি গণনা ছাড়াই একটি ভাল উদাহরণ দেয়। এছাড়াও আপনি সরল পথ পরিমাপ করতে ইমু / কম্পাস প্রয়োগ করতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.