আমি কীভাবে একটি ধীর (30Hz) সিস্টেম সহ একটি দ্রুত (200Hz) রিয়েলটাইম সিস্টেমটি নিয়ন্ত্রণ করতে পারি?


12

আমরা বর্তমানে একাধিক নিয়ন্ত্রিত ডিগ্রি সহ স্বাধীনতা এবং সেন্সর সহ একটি মোবাইল রোবট + মাউন্ট করা বাহু ডিজাইন করছি।

আমি দুটি অংশে একটি আর্কিটেকচার বিবেচনা করছি:

  1. আর্ম মোটর এবং এনকোডারগুলিকে নিয়ন্ত্রণ করতে রিয়েলটাইম কন্ট্রোলারের একটি সেট (রস্পবেরি পিস একটি আরটিওএস যেমন জেনোমাই বা বেয়ার মেটাল মাইক্রোকন্ট্রোলারগুলি চালাচ্ছেন) to মাইক্রোকন্ট্রোলারের সংখ্যার উপর নির্ভর করে x = 1,2,3… সহ এই মেশিনগুলিকে আরটিএক্স কল করি। এই নিয়ন্ত্রণ লুপটি 200Hz এ চলবে।

  2. এসএলএম গণনা, এমক্যাপ এবং উচ্চ স্তরের যুক্তি সম্পাদনের জন্য রোবটের চালিত একটি শক্তিশালী ভ্যানিলা লিনাক্স মেশিন (রোবটের কাজটি নির্ধারণ করতে এবং মোটরগুলির পছন্দসই অবস্থান এবং গতি গণনা)। এই নিয়ন্ত্রণ লুপটি 30Hz এ চলবে।

আমি জানি যে আমার কাঠামোটি আরও বেশি মোটর, আরও সেন্সর, আরও পিসি (উদাহরণস্বরূপ, বাহ্যিক এমক্যাপের জন্য) অ্যাকাউন্টে স্কেলযোগ্য হওয়া দরকার।

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

দ্রুত আরটি মেশিনগুলি পিসি 1 এর সাথে মোটর নিয়ন্ত্রণ নিশ্চিতকরণের জন্য সংযোগ স্থাপনের জন্য, আমি টিসিপি / আইপি, ক্যান এবং ইউআরটি বিবেচনা করেছি:

  • টিসিপি / আইপি: নির্বিচারবাদী নয় বরং সহজেই স্থাপন করা যায়। অ নির্ধারণবাদ কি আসল সমস্যা (যেহেতু এটি কেবল ধীর গতিতে 30Hz তে ব্যবহৃত হবে)?
  • ক্যান: ধীর, খুব নির্ভরযোগ্য, গাড়িগুলিকে লক্ষ্য করে লক্ষ্য করা হয়েছে (রোবটগুলির সাথে ক্যান ব্যবহারের উদাহরণ রয়েছে তবে এটি বহিরাগত বলে মনে হয়েছে)
  • ইউআর্ট: মোটর নিয়ন্ত্রণের জন্য যদি আমার কাছে কেবল একটি আরটি মেশিন থাকত আমি ইউআআআরটি বিবেচনা করতাম তবে অনুমান করি যে এই বন্দরটি অনেকগুলি আরটিএক্সের সাথে ভালভাবে মাপছে না টিসিপি / আইপি কি এর অ-সংঘবদ্ধ বৈশিষ্ট্যের কারণে আসলেই কোনও অগ্রগতি নয়? এটা ব্যবহার করা এত সহজ…

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

এই বিষয় বা সাহিত্যের বিষয়ে কারও কি সুস্পষ্ট দৃষ্টিভঙ্গি রয়েছে? রোবটগুলিতে কি সাধারণ বা মূলধারার যোগাযোগের সমাধান ব্যবহার করা হয়?


1
আপনি যদি রিয়েল-টাইম নেটওয়ার্কগুলিতে সন্ধান করছেন তবে আপনি ইথারক্যাটকে একটি চেহারা দিতে চাইতে পারেন !
শাহবাজ

1
যেহেতু এটি দাঁড়িয়েছে এই প্রশ্নটি ভবিষ্যতের দর্শকদের সহায়তা করার সম্ভাবনা কম এবং খুব স্থানীয়ভাবে বন্ধ হয়ে যেতে পারে । যদিও সমস্ত পটভূমি এক জায়গায় থাকার পক্ষে দরকারী, তবে আমি কি আপনাকে যে সমস্যার মুখোমুখি হতে পারি তার ভিত্তিতে ব্যবহারিক, উত্তরযোগ্য প্রশ্নের ধারাবাহিকতায় বিভক্ত করার পরামর্শ দিতে পারি ? দেখুন মতামত জিজ্ঞাসা করা ঠিক আছে কি? আরও পটভূমি জন্য।
মার্ক বুথ

উত্তর:


8

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

আমি রোবট আর্কিটেকচার সম্পর্কিত কাগজগুলি দেখেছি [...] তবে নিম্ন স্তরের কীভাবে উচ্চ স্তরের সাথে যোগাযোগ করা যায় এবং একটি স্কেলযোগ্য পদ্ধতিতে কীভাবে তথ্য পাওয়া যায় সে সম্পর্কে আমার এখনও তথ্য খুঁজে পাওয়া যায়নি। আমি কি কিছু রেখে গেলাম?

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

আপনার অ্যাপ্লিকেশনটির যা প্রয়োজন তা হল একটি যোগাযোগ সেতু - আপনার 200Hz লুপ এবং আপনার ROS পরিবেশের মধ্যে একটি একক ইন্টারফেস। অন্য কথায়, পরিবর্তে PC1 প্রতিটি RTx নিয়ামক tying এর সব RTx কন্ট্রোলার একসঙ্গে গিঁট এবং সংযোগ যে PC1 করতে।

উদাহরণস্বরূপ, আরটিএক্স সিস্টেমগুলিকে একসাথে লিঙ্ক করতে একটি আই 2 সি বাস ব্যবহার করুন এবং "আরম মাস্টার" (এএম) হতে অন্য আরটিএক্স নিয়ামক যুক্ত করুন। এএম এর কাজটি হ'ল কিছু পিসি 1-বান্ধব ফর্ম্যাট এবং প্রোটোকলে আগত কমান্ডগুলি গ্রহণ করা এবং সেই আদেশগুলি আই 2 সি বার্তায় রূপান্তর করা। তারপরে আপনি এএম-তে আদেশ পাঠানোর জন্য একটি আরওএস অ্যাপ্লিকেশন লিখবেন write

আই 2 সি দিয়ে এটি করার আরেকটি উপায় হ'ল সরাসরি পিস 1 এ আই 2 সি নিয়ামক স্থাপন করা এবং কোনও আরওএস অ্যাপে সমস্ত আর্ম কন্ট্রোলিং লজিক লিখতে হবে। এটি আপনার লক্ষ্যটি অর্জনের আরও প্রবাহিত উপায়ের মতো মনে হতে পারে তবে আপনি সিস্টেমের মডিউলারিটি অপসারণ করার সাথে সাথে এটি ডিবাগিং আরও জটিল করে তুলতে পারে - আপনাকে দুটি সহজে পরীক্ষামূলক উপাদানগুলির পরিবর্তে এটিকে একটি বৃহত জটিল সিস্টেম হিসাবে সমস্যা সমাধান করতে হবে।


যোগাযোগ ব্রিজের এই ধারণাটি আমি পছন্দ করি। আমি ফরোয়ার্ড করা লিঙ্কটি একবার দেখব। অনেক ধন্যবাদ!
arennuit

5

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

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

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

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

তবে, আসল প্রশ্নের দিকে ফিরে আসতে, আমি মনে করি আপনি যদি আপনার সিস্টেমকে কমান্ডের পরিবর্তে রিয়েল-টাইম সেট পয়েন্ট হিসাবে বর্ণনা করেন (উদাহরণস্বরূপ গোটো এঙ্গেলের মতো কমান্ড নির্দেশ দেওয়ার চেয়ে মোটর এঙ্গেলটি ধারাবাহিকভাবে সম্প্রচার করে) তবে এটি মধ্যবর্তী সংযোগকে সহজ করে তোলে 200 হার্জ এবং 30 হার্জ লুপ


হাই এডি, আমি এখনই আপনার উত্তরটি লক্ষ্য করেছি। আপনি "পয়েন্ট-টু-পয়েন্ট লিঙ্কগুলি" এবং "সিস্টেম বাস" এর মধ্যে পার্থক্যটি ব্যাখ্যা করতে পারেন? বিশেষত আপনি প্রথমে নিম্ন গ্রেড হওয়ার জন্য পয়েন্ট-টু-পয়েন্ট উল্লেখ করেছেন তবে আপনি তখন বলে থাকেন যে ডায়নামিক্সাল ইউআআআআরটি ব্যবহার করে এবং দুর্দান্ত is আমি নিশ্চিত নই (যদিও আমি সম্মতি দিচ্ছি যে সিস্টেম বাসগুলি ব্যবহারের সুবিধার্থে অনেক কিছু নিয়ে আসে। ধন্যবাদ;)
arennuit

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

আমি এটা পাই! এক বছর পরে অতিরিক্ত বিশদগুলির জন্য ধন্যবাদ;)
অ্যারেনইট

4

আপনার মনে হয় 2 টি পৃথক (তবে সম্পর্কিত) সমস্যাগুলি একবারে সমাধান করার চেষ্টা করছেন। আসুন আপনার ধাঁধাটি ছোট ছোট টুকরো টুকরো করে দিন:

  1. কিভাবে আমি যোগাযোগ ফাস্ট নিয়ামক (200hz) একটি ধীর সিস্টেম (30Hz) থেকে আদেশ, এবং কীভাবে আমি যোগাযোগ তথ্য আমার 30Hz thinktank করার 200hz পিছে গৃহীত হচ্ছে না?
  2. 200Hz এ যা ঘটে চলেছে তা কীভাবে নিয়ন্ত্রণ করব , যখন আমি কেবল 30Hz এ রোবটকে কী করতে পারি তা বলতে পারি?

আইটেম 1টি হার্ডওয়্যারে সমাধান করা যেতে পারে কারণ আপনার মূল প্রশ্নটি মনে হচ্ছে- আপনি 200Hz এ ডেটা সারি করতে পারেন এবং 30Hz এ প্যাকেটটি আপনার উচ্চ স্তরের সিস্টেমে প্রেরণ করতে পারেন। আপনি টিসিপি / আইপি দিয়ে এটি করতে পারেন, বা সম্ভবত আপনি কতটা ডেটা প্রেরণ করতে চান তার উপর নির্ভর করে ক্যান করতে পারেন। বিভিন্ন হার্ডওয়্যারের বিভিন্ন সর্বোচ্চ ডেটা হার থাকে। আরওএসের মতো একটি আর্কিটেকচার স্তর যুক্ত করা যেমন যোগাযোগের সেতু / সালিসি হিসাবে অন্যান্য পোস্টে প্রস্তাবিত হিসাবে কাজ করাও সহায়তা করতে পারে।

আইটেম 2 একটি নিয়ন্ত্রণ তত্ত্বের সমস্যা যা একমাত্র হার্ডওয়্যার দিয়ে সমাধান করা যায় না। স্ল্যাম, অবস্থান এবং গতি নির্ধারণ এবং আপনি যে কার্যনির্বাহী চান তা আরও চৌকস হওয়া দরকার যেহেতু তারা প্রায়শই তথ্য প্রেরণ এবং গ্রহণ করে। আপনি সম্ভবত 2 কন্ট্রোল লুপ চাইবেন : 1 200Hz এ এবং 1 30Hz এ 1।

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

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