একটি 6-অক্ষের রোবট সহ, শেষ-প্রভাবশালী অবস্থান এবং ওরিয়েন্টেশনের পরিসীমা দেওয়া হয়, কীভাবে অনুকূল যৌথ মানগুলি পাওয়া যায়


10

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

http://en.wikipedia.org/wiki/Robotic_arm

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

সুতরাং বিপরীতমুখী সমীকরণের অসীম বহু সমাধান থাকবে।

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

উত্তর:


9

প্রথমত, আমাদের সর্বোত্তম সংজ্ঞা দেওয়া দরকার । যেহেতু আপনি যাকে অনুকূল বিবেচনা করছেন তা আপনি বলছেন না, বেশিরভাগ লোকেরা চতুর্ভুজীয় অভিব্যক্তিটি চয়ন করে। উদাহরণস্বরূপ, ধরুন আপনার বর্তমান যৌথ কোণগুলি ভেক্টর দ্বারা দেওয়া হয়েছেα। আমরা ত্রুটি সহ প্রয়োজনীয় গতিবিধি হ্রাস করতে বিবেচনা করতে পারিx=ααstart, আপনি একটি ব্যয় ফাংশন সংজ্ঞায়িত করতে পারেন J=xTপ্রশ্নঃx কিছু ম্যাট্রিক্স জন্য প্রশ্নঃ। আমরা সাধারণত একটি তির্যক ম্যাট্রিক্স ব্যবহার করি তবে কোনও ধনাত্মক-নির্দিষ্ট ম্যাট্রিক্স তা করবে।

দুটি যৌথ কোণ সহ সরল উদাহরণে, যৌথ হলে একটি একটি সস্তা মোটর ছিল (সম্ভবত শেষ-প্রভাবশালী এর কাছাকাছি), আমাদের একটি ব্যয় কার্য থাকতে পারে

জে=[এক্সএকটিএক্স][1002][এক্সএকটিএক্স]অর্থাৎ। যৌথ আন্দোলন যৌথ হিসাবে দ্বিগুণ ব্যয়বহুল একটি

এখন, গতিময় সমীকরণটি একটি ম্যাট্রিক্স সূত্র এবং ডেনাভিট-হার্টেনবার্গে স্বরলিপিটি হতে পারে:

Πটিআমি=[100এক্স010Y001z- র0001], যেখানে ডানদিকে অবস্থানটি প্রতিনিধিত্ব করে (এক্স,Y,z- র) এবং অরিয়েন্টেশন (বর্তমানে শূন্য ঘূর্ণন হিসাবে সেট করা হয়েছে), যৌথ কোণগুলি দেওয়া।

যেহেতু আমরা অভিমুখীকরণ এবং শুধুমাত্র অবস্থানের বিষয়ে চিন্তা করি না তাই আমরা সর্বশেষ রূপান্তর ম্যাট্রিক্সের প্রথম 3 টি কলাম এবং প্রথম রূপান্তর ম্যাট্রিক্সের শেষ সারিটি কেটে ফেলতে পারি। আমরা সমানভাবে এই সূত্রটি প্রকাশ করতে পারি:

[100001000010]Πটিআমি[0001]=[এক্সYz- র]

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

কেএক্স=[এক্সYz- র]কিছু ম্যাট্রিক্সের জন্য কে

চতুষ্কোণ প্রোগ্রামটি এমন একটি সমস্যা যা আকারে প্রকাশ করা যেতে পারে:

কমান জে=12এক্সটিপ্রশ্নঃএক্স+ +টিএক্স

বিষযে একজনএক্স, এক্স=

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

সমীকরণের একটি অ-লিনিয়ার সিস্টেম সমাধান করা আরও কঠিন is এটাকে বলা হয় নন-লিনিয়ার প্রোগ্রামিং , তবে আপনার যদি ঘোরানো জয়েন্ট থাকে তবে তা আপনার কাছে।

মূলত, ম্যাট্রিক্স সমীকরণের জায়গায় আপনার ননলাইনার ফাংশন রয়েছে।

কমান (এক্স) বিষযে (এক্স)=0, (এক্স)0 (সীমাবদ্ধতার আরএইচএস শূন্য করার প্রয়োজনে পুনরায় ব্যবস্থা করুন)

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

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

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


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

দ্বিতীয় অর্ডারের প্রায় অনুমান ব্যবহার করে (হেসিয়ান ম্যাট্রিক্স হিসাবে এটি পরিচিত কারণ এটি মাল্টিভারিয়েট - ত্রি-মাত্রিক দিকের জন্য), আপনি ব্যয় ফাংশনের গ্রেডিয়েন্টের শূন্য-ক্রসিংটি খুঁজে পেতে পারেন (যেমন, পূর্বাভাসিত স্থানীয় মিনিমা)।

নতুন ভবিষ্যদ্বাণীযুক্ত ওরিয়েন্টেশন সহ, কেবল এটি আবার বিপরীত দ্রাবকের মাধ্যমে রাখুন এবং নির্ভুলতা পর্যাপ্ত না হওয়া পর্যন্ত পুনরাবৃত্তি করুন।

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


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

  • এলোমেলো পুনঃসূচনা (এটি এলোমেলোভাবে উত্পন্ন হয়)
  • গ্রিড-ভিত্তিক

বা অন্যান্য কাস্টম পদ্ধতি।

তবে মনে রাখবেন যে অনেকগুলি মিনিমা থাকলে গ্যারান্টি দেওয়ার কোনও ভাল উপায় নেই যে আপনি বিশ্বব্যাপী মিনিমা পাবেন। আপনি কেবল আপনার সম্ভাবনাগুলি উন্নত করতে পারেন।


2

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

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

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

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

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

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


1

এটির জন্য একটি দুর্দান্ত বন্ধ ফর্ম রয়েছে। যাক আমরা কী যত্ন করি নাRz- রহ'ল (অর্থাত্ আমরা কীভাবে এটি পরিবর্তন করব সে বিষয়ে আমাদের যত্ন নেই )।

জে-1এক্স˙=Θ˙=[123456][এক্স˙Y˙z- র˙Rএক্স˙RY˙Rz- র˙]=[θ1˙θ2˙θ3˙θ4˙θ5˙θ6˙]
কোথায় আমি হয় আমিটি এর কলাম জে-1। আমরা ব্রেক আপ করতে পারিΘ˙ উপর নির্ভর করে যে অংশে Rz- র˙ এবং অংশ না যে।
Θ˙=Θ˙এক্স˙...RY˙+ +Θ˙Rz- র˙Θ˙Rz- র˙=6Rz- র˙
সুতরাং এখন খেলা হয়ে উঠেছে, আসুন ছোট করা যাক
(Θ˙এক্স˙...RY˙+ +Θ˙Rz- র˙)টিডি(Θ˙এক্স˙...RY˙+ +Θ˙Rz- র˙)
কিছু তির্যক ম্যাট্রিক্স জন্য ডিরোনালঞ্চ যেমন উপরে বলেছিল। আমি ব্যবহার করতে যাচ্ছিএকজন=Θ˙এক্স˙...RY˙ এবং বি=Θ˙Rz- র˙* আরও সহজ দেখার জন্য।

আমরা এটিকে প্রসারিত করতে পারি

একজনটিডিএকজন+ +2বিটিডিএকজন+ +বিটিডিবিঅথবাএকজনটিডিএকজন+ +2Rz- র˙6টিডিএকজন+ +Rz- র˙26টিডি6

এখন আমাদের পার্থক্য করার জন্য একটি সহজ সমীকরণ রয়েছে Rz- র˙। আমরা শ্রদ্ধার সাথে ডেরাইভেটিভ খুঁজেRz- র˙ এবং এটি সেট 0

26টিডিএকজন+ +2Rz- র˙6টিডি6=0Rz- র˙=-6টিডিএকজন6টিডি6
এটি আপনার দুটি ভঙ্গীর মধ্যে যৌথ কোণ "দূরত্ব" হ্রাস করে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.