রোবোওয়ার্কস-লোগো

রোবোওয়ার্কস রোবোফ্লিট মাল্টি-এজেন্ট অ্যালগরিদম

রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-প্রোডাক্ট

স্পেসিফিকেশন

  • পণ্যের নাম: ROBOWORKS
  • সংস্করণ: 20240501
  • প্রস্তুত করেছেন: ওয়েন লিউ এবং জ্যানেট লিন
  • তারিখ: 1 মে 2024

পণ্য তথ্য

ROBOWORKS হল একটি মাল্টি-এজেন্ট সিস্টেম যা রোবট সমন্বয় এবং যোগাযোগের জন্য বিভিন্ন অ্যালগরিদম বাস্তবায়নের অনুমতি দেয়।

FAQs

প্রশ্ন: রোবট স্বয়ংক্রিয়ভাবে ওয়াইফাই-এর সাথে সংযোগ করতে না পারলে আমার কী করা উচিত?

উত্তর: রোবটটি স্বয়ংক্রিয়ভাবে সংযোগ করতে ব্যর্থ হলে, নেটওয়ার্ক কার্ডটি আনপ্লাগ এবং পুনরায় প্লাগ করার চেষ্টা করুন এবং আবার সংযোগ করার চেষ্টা করুন।

সারাংশ

এই নথিটি মূলত wheeltec_multi নামে মাল্টি-রোবট গঠন ফাংশন প্যাকেজের ব্যবহার ব্যাখ্যা করে।

এই নথিটি চারটি অংশে বিভক্ত:

  • প্রথম অংশটি মূলত মাল্টি-রোবট গঠন পদ্ধতির প্রবর্তন সম্পর্কে;
  • দ্বিতীয় অংশটি মূলত ROS মাল্টি-মেশিন যোগাযোগ সেটিংস বর্ণনা করে, যার মধ্যে রয়েছে ROS নির্মাণ মাল্টি-মেশিন যোগাযোগ এবং ROS যোগাযোগের প্রক্রিয়ায় যে সমস্যাগুলি সম্মুখীন হতে পারে;
  • তৃতীয় অংশটি প্রধানত মাল্টি-মেশিন টাইম সিঙ্ক্রোনাইজেশনের অপারেশন ধাপগুলি বর্ণনা করে;
  • চতুর্থ অংশ মাল্টি-মেশিন গঠন ফাংশন প্যাকেজের সুনির্দিষ্ট ব্যবহার ব্যাখ্যা করে।

এই নথির উদ্দেশ্য হল মাল্টি-এজেন্ট রোবোটিক সিস্টেমের একটি ভূমিকা এবং ব্যবহারকারীদের মাল্টি-রোবট গঠন প্রকল্পটি দ্রুত শুরু করার অনুমতি দেয়।

মাল্টি-এজেন্ট অ্যালগরিদমের ভূমিকা

মাল্টি-এজেন্ট গঠন অ্যালগরিদম

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

বাধা পরিহার অ্যালগরিদম

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

মাল্টি-এজেন্ট কমিউনিকেশন সেটআপ

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

মাল্টি-এজেন্ট যোগাযোগ সেট আপ করার পদক্ষেপ

  • একই নেটওয়ার্কে ROS কন্ট্রোল সেট আপ করুন
    • একই নেটওয়ার্কের অধীনে মাস্টার/স্লেভ ROS কন্ট্রোল সেট আপ করার 2টি উপায় রয়েছে।

বিকল্প 1:

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

বিকল্প 2:

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

মাস্টার/স্লেভ এনভায়রনমেন্ট ভেরিয়েবল কনফিগার করুন

সমস্ত ROS মাস্টার একই নেটওয়ার্কে থাকার পরে, মাল্টি-এজেন্ট যোগাযোগের জন্য পরিবেশের ভেরিয়েবল সেট করতে হবে। এই এনভায়রনমেন্ট ভেরিয়েবলটি প্রধান ডিরেক্টরির .bashrc ফাইলে কনফিগার করা হয়েছে। এটি চালু করতে gedit ~/.bashrc কমান্ডটি চালান। অনুগ্রহ করে মনে রাখবেন যে মাল্টি-এজেন্ট যোগাযোগে মাস্টার এবং স্লেভের .bashrc ফাইল উভয়ই কনফিগার করা প্রয়োজন। ফাইলের শেষে যে আইপি ঠিকানাগুলি পরিবর্তন করতে হবে তা হল। এর দুটি লাইন হল ROS_MASTER_URI এবং ROS_HOSTNAME, চিত্র 2-1-4 এ দেখানো হয়েছে। ROS হোস্টের ROS_MASTER_URI এবং ROS_HOSTNAME উভয়ই স্থানীয় IP। ROS স্লেভ .bashrc ফাইলের ROS_MASTER_URI হোস্টের IP ঠিকানায় পরিবর্তন করতে হবে যখন ROS_HOSTNAME একটি স্থানীয় IP ঠিকানা হিসাবে থাকবে।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (2)

ROS মাল্টি-মেশিন যোগাযোগ ROS রিলিজ সংস্করণ দ্বারা সীমাবদ্ধ নয়। মাল্টি-মেশিন যোগাযোগের প্রক্রিয়ায়, একজনকে নিম্নলিখিতগুলি সম্পর্কে সচেতন হওয়া উচিত:

  1. ROS স্লেভ প্রোগ্রামের অপারেশন ROS মাস্টার ডিভাইসের ROS মাস্টার প্রোগ্রামের উপর নির্ভর করে। স্লেভ ডিভাইসে স্লেভ প্রোগ্রামটি কার্যকর করার আগে ROS মাস্টার প্রোগ্রামটিকে অবশ্যই প্রথমে মাস্টার ডিভাইসে চালু করতে হবে।
  2. মাল্টি-মেশিন কমিউনিকেশনে মাস্টার এবং স্লেভ মেশিনের আইপি অ্যাড্রেস একই নেটওয়ার্কে থাকা দরকার। এর মানে হল IP ঠিকানা এবং সাবনেট মাস্ক একই নেটওয়ার্কের অধীনে।
  3. পরিবেশ কনফিগারেশন ফাইলে ROS_HOSTNAME .bashrc-কে লোকালহোস্ট ব্যবহার করার পরামর্শ দেওয়া হয় না। একটি নির্দিষ্ট আইপি ঠিকানা ব্যবহার করার পরামর্শ দেওয়া হয়।
  4. স্লেভ আইপি অ্যাড্রেস সঠিকভাবে সেট না করার ক্ষেত্রে, স্লেভ ডিভাইসটি এখনও ROS মাস্টার অ্যাক্সেস করতে পারে কিন্তু নিয়ন্ত্রণ তথ্য ইনপুট করতে পারে না।
  5. ভার্চুয়াল মেশিন মাল্টি-এজেন্ট যোগাযোগে অংশগ্রহণ করলে, এর নেটওয়ার্ক মোডকে ব্রিজ মোডে সেট করতে হবে। নেটওয়ার্ক সংযোগের জন্য স্ট্যাটিক আইপি নির্বাচন করা যাবে না।
  6. মাল্টি-মেশিন যোগাযোগ করতে পারে না view অথবা স্থানীয়ভাবে বিদ্যমান নেই এমন বার্তা ডেটা টাইপের বিষয়গুলিতে সদস্যতা নিন।
  7. রোবটগুলির মধ্যে যোগাযোগ সফল কিনা তা যাচাই করতে আপনি লিটল টার্টল সিমুলেশন ডেমো ব্যবহার করতে পারেন:
    • a. মাস্টারের কাছ থেকে পালাও
      • রিস্কোর #আরওএস পরিষেবা চালু করুন
      • rostrum turtles turtlesim_node #লঞ্চ কচ্ছপ ইন্টারফেস
    • b. গোলামের কাছ থেকে পালিয়ে যাও
      • turtles rerun turtle_teleop_key #কচ্ছপের জন্য কীবোর্ড কন্ট্রোল নোড চালু করুন

আপনি যদি স্লেভের কীবোর্ড থেকে কচ্ছপের গতিবিধি ম্যানিপুলেট করতে পারেন, তাহলে এর মানে মাস্টার/দাস যোগাযোগ সফলভাবে প্রতিষ্ঠিত হয়েছে।

ROS এ স্বয়ংক্রিয় ওয়াইফাই সংযোগ

নীচের পদ্ধতিগুলি ব্যাখ্যা করে যে কীভাবে রোবটটিকে স্বয়ংক্রিয়ভাবে হোস্ট নেটওয়ার্ক বা রাউটার নেটওয়ার্কের সাথে সংযোগ করতে কনফিগার করতে হয়।

জেটসন ন্যানোর জন্য স্বয়ংক্রিয় ওয়াইফাই সংযোগ সেটআপ

  1. ভিএনসি রিমোট টুলের মাধ্যমে বা সরাসরি কম্পিউটার স্ক্রিনে জেটসন ন্যানো সংযোগ করুন। উপরের ডানদিকের কোণায় ওয়াইফাই আইকনে ক্লিক করুন তারপর "সংযোগ সম্পাদনা করুন" এ ক্লিক করুন।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (3)
  2. নেটওয়ার্ক সংযোগে + বোতামে ক্লিক করুন:রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (4)
  3. "একটি সংযোগের ধরন চয়ন করুন" উইন্ডোর অধীনে, ড্রপ-ডাউন মেনুতে ক্লিক করুন এবং "তৈরি করুন..." বোতামে ক্লিক করুন:রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (5)
  4. কন্ট্রোল প্যানেলে, ওয়াইফাই বিকল্পে ক্লিক করুন। "সংযোগের নাম" এবং SSID ক্ষেত্রগুলিতে সংযোগ করতে WiFi এর নাম লিখুন৷ "মোড" ড্রপডাউন মেনুতে "ক্লায়েন্ট" নির্বাচন করুন এবং "ডিভাইস" ড্রপডাউন মেনুতে "wlan0" নির্বাচন করুন।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (6)
  5. কন্ট্রোল প্যানেলে, "সাধারণ" বিকল্পে ক্লিক করুন এবং "এই নেটওয়ার্কে স্বয়ংক্রিয়ভাবে সংযোগ করুন..." চেক করুন। "স্বয়ংক্রিয়-অ্যাক্টিভেশনের জন্য সংযোগ অগ্রাধিকার" বিকল্পে সংযোগের অগ্রাধিকার 1 এ সেট করুন। "সমস্ত ব্যবহারকারীরা এই নেটওয়ার্কের সাথে সংযোগ করতে পারে" বিকল্পটি চেক করুন। যখন বিকল্পটি অন্যান্য ওয়াইফাইয়ের জন্য "স্বয়ংক্রিয়-অ্যাক্টিভেশনের জন্য সংযোগ অগ্রাধিকার"-এ 0 তে সেট করা হয়, তখন এর মানে হল এটি অতীতে পছন্দের ওয়াইফাই নেটওয়ার্ক।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (7)
  6. কন্ট্রোল প্যানেলে "Wi-Fi নিরাপত্তা" বিকল্পে ক্লিক করুন। "নিরাপত্তা" ক্ষেত্রে "WPA এবং WPA2 ব্যক্তিগত" নির্বাচন করুন। তারপর "পাসওয়ার্ড" ফিল্ডে ওয়াইফাই পাসওয়ার্ড দিন।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (8)

দ্রষ্টব্য: ওয়াইফাই অগ্রাধিকার 0 তে সেট করা থাকলে বুট করার পরে যদি রোবট স্বয়ংক্রিয়ভাবে ওয়াইফাই নেটওয়ার্কের সাথে সংযোগ করতে না পারে তবে এটি একটি দুর্বল ওয়াইফাই সিগন্যালের সমস্যার কারণে হতে পারে। এই সমস্যা এড়াতে, আপনি অতীতে সংযুক্ত করা সমস্ত ওয়াইফাই বিকল্পগুলি মুছে ফেলার জন্য চয়ন করতে পারেন৷ শুধুমাত্র হোস্ট বা রাউটার দ্বারা তৈরি ওয়াইফাই নেটওয়ার্ক রাখুন। নেটওয়ার্ক সেটিংস কন্ট্রোল প্যানেলে "IPv4 সেটিংস" বিকল্পে ক্লিক করুন। "পদ্ধতি" ক্ষেত্রের "ম্যানুয়াল" বিকল্পটি নির্বাচন করুন। তারপর "অ্যাড" এ ক্লিক করুন, "ঠিকানা" ফিল্ডে স্লেভ মেশিনের আইপি ঠিকানাটি পূরণ করুন। "নেটমাস্ক" ফিল্ডে "24" পূরণ করুন। "গেটওয়ে" এ আইপি নেটওয়ার্ক সেগমেন্ট পূরণ করুন। IP নেটওয়ার্ক সেগমেন্টের শেষ তিনটি সংখ্যা পরিবর্তন করে "1" করুন। এই ধাপের মূল উদ্দেশ্য হল IP ঠিকানা ঠিক করা। প্রথমবার এটি সম্পন্ন হওয়ার পর, পরবর্তীতে একই WIFI-এর সাথে সংযোগ করার সময় IP ঠিকানা অপরিবর্তিত থাকবে।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (9)

সমস্ত সেটিংস কনফিগার হওয়ার পরে, সেটিংস সংরক্ষণ করতে "সংরক্ষণ করুন" এ ক্লিক করুন। সংরক্ষণ সফল হওয়ার পরে, রোবটটি স্বয়ংক্রিয়ভাবে হোস্ট বা রাউটারের নেটওয়ার্কের সাথে সংযুক্ত হবে যখন এটি চালিত হবে।

দ্রষ্টব্য:

  1. এখানে সেট করা IP ঠিকানাটি বিভাগ 2.1-এর .bashrc ফাইলে সেট করা IP ঠিকানার মতোই হতে হবে।
  2. মাস্টার এবং প্রতিটি ক্রীতদাসের আইপি ঠিকানা অনন্য হতে হবে।
  3. মাস্টার এবং স্লেভ আইপি অ্যাড্রেস একই নেটওয়ার্ক সেগমেন্টে থাকা দরকার।
  4. স্লেভ রোবটটি চালিত হওয়ার আগে এবং স্বয়ংক্রিয়ভাবে ওয়াইফাই নেটওয়ার্কের সাথে সংযুক্ত হওয়ার আগে আপনাকে হোস্ট বা রাউটার ওয়াইফাই সিগন্যাল পাঠানোর জন্য অপেক্ষা করতে হবে।
  5. সেটিং কনফিগার হওয়ার পর, যদি রোবটটি ওয়াইফাই চালু থাকা অবস্থায় স্বয়ংক্রিয়ভাবে সংযোগ করতে না পারে, তাহলে অনুগ্রহ করে নেটওয়ার্ক কার্ডটি প্লাগ এবং আনপ্লাগ করুন এবং আবার সংযোগ করার চেষ্টা করুন।

রাস্পবেরি পাই এর জন্য স্বয়ংক্রিয় ওয়াইফাই সংযোগ সেটআপ

রাস্পবেরি পাইয়ের পদ্ধতিটি জেটসন ন্যানোর মতোই।

Jetson TX1 এর জন্য স্বয়ংক্রিয় ওয়াইফাই সংযোগ সেটআপ

জেটসন TX1-এর সেটআপ জেটসন ন্যানোতে প্রায় একই রকম, একটি ব্যতিক্রম জেটসন TX1-এর নেটওয়ার্ক সেটিংস কন্ট্রোল প্যানেলে "ডিভাইস"-এ "wlan1"-এর ডিভাইস নির্বাচন করা উচিত।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (10)

মাল্টি-এজেন্ট সিঙ্ক্রোনাইজেশন সেটআপ

মাল্টি-এজেন্ট গঠন প্রকল্পে, মাল্টি-এজেন্ট সময় সিঙ্ক্রোনাইজেশন সেটিং একটি গুরুত্বপূর্ণ পদক্ষেপ। গঠন প্রক্রিয়ায়, প্রতিটি রোবটের অ্যাসিঙ্ক্রোনাস সিস্টেম সময়ের কারণে অনেক সমস্যার সৃষ্টি হবে। মাল্টি-এজেন্ট টাইম সিঙ্ক্রোনাইজেশনকে দুটি পরিস্থিতিতে বিভক্ত করা হয়েছে, যথা, যে পরিস্থিতিতে মাস্টার এবং স্লেভ রোবট উভয়ই নেটওয়ার্কের সাথে সংযুক্ত এবং যে পরিস্থিতিতে উভয়ই নেটওয়ার্ক থেকে সংযোগ বিচ্ছিন্ন।

সফল মাস্টার/স্লেভ নেটওয়ার্ক সংযোগ

মাল্টি-এজেন্ট যোগাযোগ কনফিগার করার পরে, যদি মাস্টার এবং স্লেভ মেশিন সফলভাবে নেটওয়ার্কের সাথে সংযোগ করতে পারে, তাহলে তারা স্বয়ংক্রিয়ভাবে নেটওয়ার্ক সময় সিঙ্ক্রোনাইজ করবে। এই ক্ষেত্রে, সময় সিঙ্ক্রোনাইজেশন অর্জনের জন্য আর কোন কর্মের প্রয়োজন নেই।

নেটওয়ার্ক সংযোগ বিচ্ছিন্ন সমস্যার সমাধান করা

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

প্রথমে টার্মিনেটর টুল ইন্সটল করুন। টার্মিনেটর টুল থেকে, একই টার্মিনাল উইন্ডোতে মাস্টার এবং স্লেভের কন্ট্রোল টার্মিনাল স্থাপন করতে উইন্ডো স্প্লিটিং টুল ব্যবহার করুন (একটি স্প্লিট উইন্ডো সেট করতে ডান-ক্লিক করুন এবং বিভিন্ন উইন্ডোতে ssh দ্বারা মাস্টার এবং স্লেভ মেশিনে লগ ইন করুন) .

  • sudo apt-get install terminator # টার্মিনাল উইন্ডোকে বিভক্ত করতে টার্মিনেটর ডাউনলোড করুন

উপরের বাম দিকের বোতামটি ক্লিক করুন, বিকল্পটি নির্বাচন করুন [সকলের জন্য সম্প্রচার]/[সম্প্রচার সকল], এবং নিম্নলিখিত কমান্ডটি প্রবেশ করান। তারপর মাস্টার এবং স্লেভের জন্য একই সময় সেট করতে টার্মিনেটর টুল ব্যবহার করুন।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (11)

  • sudo date -s "2022-01-30 15:15:00" # ম্যানুয়াল টাইম সেটআপ

মাল্টি-এজেন্ট ROS প্যাকেজ

ROS প্যাকেজ পরিচিতি

দাসের নাম সেট আপ করুন

wheeltec_multi ফাংশন প্যাকেজে, ত্রুটিগুলি এড়ানোর জন্য প্রতিটি স্লেভ রোবটের জন্য একটি অনন্য নাম সেট করা প্রয়োজন। প্রাক্তন জন্যample, slav1-এর জন্য নং 1 এবং slave2-এর জন্য নং 2, ইত্যাদি। বিভিন্ন নাম সেট করার উদ্দেশ্য হল চলমান নোডগুলিকে গ্রুপ করা এবং বিভিন্ন নামস্থান দ্বারা আলাদা করা। প্রাক্তন জন্যample, স্লেভ 1-এর রাডার বিষয় হল/স্লেভ1/স্ক্যান, এবং স্লেভ 1-এর LiDAR নোড হল/স্লেভ1/লেজার৷

স্লেভ স্থানাঙ্ক সেট আপ করুন

wheeltec_multi প্যাকেজ কাস্টম গঠন বাস্তবায়ন করতে পারে। যখন বিভিন্ন গঠনের প্রয়োজন হয়, তখন স্লেভ রোবটের কাঙ্খিত স্থানাঙ্ক পরিবর্তন করুন। স্লেভ_এক্স এবং স্লেভ_ই হল মূল রেফারেন্স পয়েন্ট হিসাবে মাস্টারের সাথে স্লেভের x এবং y স্থানাঙ্ক। মাস্টারের সামনের দিকটি হল x স্থানাঙ্কের ধনাত্মক দিক এবং বাম দিকটি হল y স্থানাঙ্কের ধনাত্মক দিক। সেটিং সম্পূর্ণ হওয়ার পরে, স্লেভের প্রত্যাশিত স্থানাঙ্ক হিসাবে একটি TF কোঅর্ডিনেট স্লেভ 1 জারি করা হবে। যদি একজন প্রভু এবং দুই ক্রীতদাস থাকে, তাহলে নিম্নলিখিত গঠন সেট করা যেতে পারে:

  1. অনুভূমিক গঠন: আপনি স্লেভ_এক্স:০, স্লেভ_ই: ০.৮ এবং ডানদিকে স্লেভের স্থানাঙ্কগুলি স্লেভ_এক্স:০, স্লেভ_ই:-০.৮-এ সেট করতে পারেন।
  2. কলাম গঠন: একটি স্লেভের স্থানাঙ্ক সেট করা যেতে পারে: slave_x:-0.8, slave_y:0, এবং অন্য স্লেভের স্থানাঙ্ক সেট করা যেতে পারে: slave_x:-1.8, slave_y:0।
  3. ত্রিভুজাকার গঠন: একটি স্লেভের স্থানাঙ্ক সেট করা যেতে পারে: slave_x:-0.8, slave_y: 0.8, এবং অন্য স্লেভের স্থানাঙ্ক সেট করা যেতে পারে: slave_x:-0.8, slave_y:-0.8।

অন্যান্য গঠন প্রয়োজন অনুযায়ী কাস্টমাইজ করা যেতে পারে।

দ্রষ্টব্য:

  • দুটি রোবটের মধ্যে প্রস্তাবিত দূরত্ব 0.8 সেট করা হয়েছে এবং এটি 0.6 এর কম না হওয়ার পরামর্শ দেওয়া হচ্ছে৷ ক্রীতদাস এবং মাস্টারের মধ্যে দূরত্ব 2.0 এর নিচে সেট করার সুপারিশ করা হয়। প্রভুর থেকে যত দূরে, প্রভু যখন বাঁক নিচ্ছেন তখন স্লেভের রৈখিক গতি তত বেশি। সর্বোচ্চ গতির সীমাবদ্ধতার কারণে, স্লেভের গতি প্রয়োজনীয়তা পূরণ না হলে বিচ্যুত হবে। রোবট গঠন বিশৃঙ্খল হয়ে যাবে।

দাস অবস্থানের সূচনা

  1. স্লেভের প্রাথমিক অবস্থান ডিফল্টরূপে প্রত্যাশিত স্থানাঙ্কে। প্রোগ্রাম চালানোর আগে, স্লেভ রোবটটিকে তার প্রত্যাশিত স্থানাঙ্কের কাছাকাছি রাখুন আরম্ভ করার জন্য। এই ফাংশনটি wheeltec_multi প্যাকেজে turn_on_wheeltec_robot.launch নামের ফাইলে pose_setter নোড দ্বারা প্রয়োগ করা হয়েছে, যেমন চিত্র 4-1-3 এ দেখানো হয়েছে।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (12)

ব্যবহারকারী যদি স্লেভের প্রারম্ভিক অবস্থান কাস্টমাইজ করতে চান, তাহলে তাকে শুধুমাত্র slave_x এবং slave_y মান সেট করতে হবে যেমনটি wheeltec_slave.launch এ চিত্র 4-1-4 এ দেখানো হয়েছে। slave_x এবং slave_y মানগুলি turn_on_wheeltec_robot.launch এ পাস করা হবে এবং pose_setter নোডে বরাদ্দ করা হবে। প্রোগ্রাম চালানোর আগে রোবটটিকে কাস্টম অবস্থানে রাখুন।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (13)

অবস্থান কনফিগারেশন

একটি মাল্টি-এজেন্ট গঠনে, প্রথম সমস্যাটি হল মালিক এবং দাসের অবস্থান নির্ধারণ করা। মাস্টার প্রথমে একটি 2D মানচিত্র তৈরি করবেন। মানচিত্র তৈরি এবং সংরক্ষণ করার পরে, 2D নেভিগেশন প্যাকেজ চালান এবং মাস্টারের অবস্থান কনফিগার করতে 2D নেভিগেশন প্যাকেজে অভিযোজিত মন্টে কার্লো পজিশনিং অ্যালগরিদম (amcl পজিশনিং) ব্যবহার করুন। যেহেতু মাস্টার এবং ক্রীতদাস একই নেটওয়ার্কে এবং একই নোড ম্যানেজার শেয়ার করে, তাই মাস্টার 2D নেভিগেশন প্যাকেজ থেকে মানচিত্রটি চালু করেছেন, সমস্ত স্লেভ একই নোড ম্যানেজারের অধীনে একই মানচিত্র ব্যবহার করতে পারে। অতএব, ক্রীতদাস একটি মানচিত্র তৈরি করতে হবে না. wheeltec_slave.launch-এ, মন্টে কার্লো পজিশনিং (amcl পজিশনিং) চালান, স্লেভরা মাস্টারের তৈরি মানচিত্র ব্যবহার করে তাদের অবস্থান কনফিগার করতে পারে।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (14)

কিভাবে গঠন তৈরি এবং গঠন বজায় রাখা

গঠন আন্দোলনের প্রক্রিয়ায়, মাস্টার আন্দোলন Rviz, কীবোর্ড, রিমোট কন্ট্রোল এবং অন্যান্য পদ্ধতি দ্বারা নিয়ন্ত্রিত হতে পারে। স্লেভ তার গতিবিধি নিয়ন্ত্রণ করতে এবং গঠনের লক্ষ্য অর্জনের জন্য slave_tf_listener নোডের মাধ্যমে তার গতি গণনা করে। slav_tf_listener নোড নোড গণনা দ্বারা অত্যধিক গতি এড়াতে স্লেভের গতি সীমিত করে, যা প্রভাবগুলির একটি সিরিজ সৃষ্টি করবে। নির্দিষ্ট মান wheeltec_slave.launch এ পরিবর্তন করা যেতে পারে।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (15)

গঠন অ্যালগরিদমের প্রাসঙ্গিক পরামিতিগুলি নিম্নরূপ: রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (16)

বাধা পরিহার তথ্য

একটি মাল্টি-এজেন্ট গঠনে, মাস্টার বাধা পরিহার সম্পূর্ণ করতে move_base নোড ব্যবহার করতে পারে। যাইহোক, স্লেভের প্রারম্ভিকতা মুভ_বেস নোড ব্যবহার করে না। এই মুহুর্তে, স্লেভ প্রোগ্রামে মাল্টি_অ্যাভিডেন্স নোডকে কল করা দরকার। প্যাকেজে ডিফল্টরূপে বাধা পরিহার নোড সক্রিয় করা হয়। যদি প্রয়োজন হয়, বাধা পরিহার নোড নিষ্ক্রিয় করতে "মিথ্যা" এ সেট করা যেতে পারে। রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (17)

বাধা পরিহার নোডের কিছু প্রাসঙ্গিক পরামিতি নীচের চিত্রে দেখানো হয়েছে, যেখানে নিরাপদ_দূরত্ব হল বাধা নিরাপদ দূরত্বের সীমা, এবং বিপদ_দূরত্ব হল বাধা বিপজ্জনক দূরত্বের সীমা। যখন বাধা নিরাপদ দূরত্ব এবং বিপদ দূরত্বের মধ্যে থাকে, তখন দাস বাধা এড়াতে তার অবস্থান সামঞ্জস্য করে। যখন বাধা বিপদের মধ্যে থাকে, তখন বান্দা বাধা থেকে দূরে সরে যায়।রোবোওয়ার্কস-রোবফ্লিট-মাল্টি-এজেন্ট-অ্যালগোরিদমস-চিত্র- (18)

অপারেশন পদ্ধতি

এক্সিকিউশন কমান্ড লিখুন

মাল্টি-এজেন্ট গঠন শুরু করার আগে প্রস্তুতি:

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

sudo তারিখ -s "2022-04-01 15:15:00"

  • ধাপ 1: মাস্টার থেকে একটি 2D মানচিত্র খুলুন।

roslaunch turn_on_wheeltec_robot navigation.launch

  • ধাপ 2: সকল দাসদের থেকে গঠন কার্যক্রম চালান।

roslaunch wheeltec_multi wheeltec_slave.launch

  • ধাপ 3: মাস্টার থেকে কীবোর্ড কন্ট্রোল নোড খুলুন বা মাস্টার মুভমেন্ট রিমোট কন্ট্রোল করতে জয়স্টিক ব্যবহার করুন।

wheeltec_robot_rc keyboard_teleop.launch পুনরায় লঞ্চ করুন

  • ধাপ 4: (ঐচ্ছিক) Rviz থেকে রোবটের গতিবিধি পর্যবেক্ষণ করুন।

rviz

দ্রষ্টব্য: 

  1. প্রোগ্রাম চালানোর আগে সময় সিঙ্ক্রোনাইজেশন অপারেশন সম্পূর্ণ করতে ভুলবেন না।
  2. মাল্টি-এজেন্ট গঠনের মাস্টার নিয়ন্ত্রণ করার সময়, কৌণিক বেগ খুব দ্রুত হওয়া উচিত নয়। প্রস্তাবিত রৈখিক গতি হল 0.2m/s, কৌণিক গতি ডিগ্রী 0.3rad/s এর নিচে। মাস্টার যখন বাঁক নিচ্ছেন, স্লেভ মাস্টার থেকে যত দূরে থাকবে, রৈখিক গতি তত বেশি প্রয়োজন। প্যাকেজে রৈখিক গতি এবং কৌণিক গতির সীমার কারণে, যখন স্লেভ গাড়িটি প্রয়োজনীয় গতিতে পৌঁছাতে পারে না, তখন গঠনটি বিশৃঙ্খল হবে। সামগ্রিকভাবে, অত্যধিক রৈখিক গতি সহজেই রোবটকে ক্ষতিগ্রস্ত করতে পারে।
  3. যখন ক্রীতদাসের সংখ্যা একাধিক হয়, ROS হোস্টের সীমিত অন-বোর্ড ওয়াইফাই ব্যান্ডউইথের কারণে, মাল্টি-এজেন্ট যোগাযোগের উল্লেখযোগ্য বিলম্ব এবং সংযোগ বিচ্ছিন্ন করা সহজ। রাউটার ব্যবহার করলে এই সমস্যা ভালোভাবে সমাধান করা যায়।
  4. মাল্টি-রোবট গঠনের টিএফ ট্রি (2 স্লেভ) হল: rqt_tf_tree
  5. মাল্টি-রোবট গঠনের (2 স্লেভ) নোড সম্পর্ক চিত্র হল: rqt_graph

দলিল/সম্পদ

রোবোওয়ার্কস রোবোফ্লিট মাল্টি-এজেন্ট অ্যালগরিদম [পিডিএফ] ব্যবহারকারী ম্যানুয়াল
Robofleet মাল্টি এজেন্ট অ্যালগরিদম, Robofleet, মাল্টি এজেন্ট অ্যালগরিদম, এজেন্ট অ্যালগরিদম, অ্যালগরিদম

তথ্যসূত্র

একটি মন্তব্য করুন

আপনার ইমেল ঠিকানা প্রকাশ করা হবে না. প্রয়োজনীয় ক্ষেত্রগুলি চিহ্নিত করা হয়েছে *