রোবোটে ত্রিকোণমিতির জন্য মাইক্রোকন্ট্রোলার / সিপিইউ?


15

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

পিআইসি, আরডুইনো বা সস্তা এভিআর 100 / সেকেন্ডের সমস্ত কিছু গণনা করতে এবং জড়তা এবং বাধা এড়ানোর মতো বিষয়গুলি মনে রাখার জন্য, এমনকি ব্রুটফোর্স পাথ / গেইটগুলির পক্ষে যথেষ্ট দ্রুত নয়।

  • প্ল্যান এ হ'ল মস্তিষ্ককে রোবোটে বহন করা। এটি মাইক্রোপ্রসেসর, মাইক্রো আইটিএক্স, নেটটপ বা অন্যান্য; ত্রিকোণমিতি / ম্যাট্রিক্স গণিত দ্রুত করার জন্য দক্ষ হার্ডওয়্যার কী?

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

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

  • পরিকল্পনা সি হ'ল লোড বিতরণ করা এবং প্রতিটি পায়ে একটি পাওয়ার সাশ্রয়ী মাইক্রোকন্ট্রোলার / কোর থাকা, যদিও এটি এর প্রসারিত-ক্ষমতাটি অনেক কারণেই আমার পক্ষে সেরা সমাধান নয়।

আমি এখনও ব্যবহৃত ভাষা এবং / অথবা লাইব্রেরি সম্পর্কে সিদ্ধান্ত নিয়েছি না, তবে পাস্কাল এবং সি ++ পছন্দ করি।

(আরও উপযুক্ত ট্যাগের জন্য পরামর্শ স্বাগত, আমি এখানে নতুন)


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

3
রিয়েলটাইমে ভারী গণিত হারিয়ে যাওয়ার পরিবর্তে একটি সাধারণ সমাধান হ'ল মানগুলির সারণিগুলির প্রাক-গণনা এবং তারপরে উত্তরটি সন্ধান করা। একাধিক সিপিইউয়ের মধ্যে কাজটি বিতরণের ধারণাটিও ভাল, উদাহরণস্বরূপ একটি শক্তিশালী মাস্টার সিপিইউ এবং তারপরে প্রতিটি পায়ে একটি প্রসেসর।
জন ইউ

2
আপনি রোবোটিক্স স্ট্যাকেক্সচেঞ্জ সাইটে এই ধরণের প্রশ্ন জিজ্ঞাসা করার বিষয়েও বিবেচনা করতে পারেন ।
রকেটম্যাগনেট

1
প্ল্যান বি গণনাটি বেশ দ্রুত করবে, তবে ওয়াইফাইয়ের মাধ্যমে যোগাযোগ সম্ভবত কার্যকারিতা লাভকে মেরে ফেলবে। আপনি ইউএসবি মাধ্যমে সংযুক্ত একটি Android ফোন ব্যবহার বিবেচনা করেছেন? ওয়াইফাই ছাড়াই এটি অনেক বেশি কম্পিউটিং শক্তি
স্টেফান

1
ভাসমান পয়েন্ট ইউনিট সহ একটি এসটিএম 32 এফ 4 বোর্ড আপনার আবেদনের জন্য যথেষ্ট বলে মনে হচ্ছে। এটিতে 64k সিসিএম সহ 128 কে এসআরএএম রয়েছে। এটি 168MHz এ চলতে পারে। একটি 32-বিট ভাসমান পয়েন্টের
গুণমানটি

উত্তর:


16

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

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

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

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

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


আমি সবসময় এই ছাপে ছিলাম যে একটি পিক কেবলমাত্র বিপরীত গতিবিজ্ঞানের জন্যও ধীর হয়ে যায়, তবে আমার পুনর্বিবেচনা করার প্রয়োজন হতে পারে। কমপক্ষে 100 / সেকেন্ডে 3 ডিএফএফ-এর 6 লিগের জন্য কি বিপরীত গতিবিদ্যা করা সম্ভব? কেবল লাইভ লেগ মুভমেন্টগুলি পেতে 6x3x100 বিপরীতমুখী গতিবিদ্যা Tha যাইহোক, অ্যালগরিদম যেভাবে চালিত হয় একই প্ল্যাটফর্মে আমার বিপরীত গতিবিদ্যা প্রয়োজন, যাতে আমাকে এই অংশগুলি দুবার পুনরায় সংশোধন করতে না হয়। অ্যালগরিদম আরও চাহিদাজনক হবে, এবং অবশ্যই কোনও পিআইসি বা আরডুইনো-ইশ বোর্ডে চালাতে সক্ষম হবে না।
ব্যারি স্টেস

9

আপনি প্রচুর ইনপুট সিগন্যাল নিয়ে কাজ করতে যাচ্ছেন। অগত্যা একটি উচ্চ থ্রুপুট সহ আপনার সিপিইউ প্রয়োজন হবে না; সমান্তরালে প্রচুর সংকেত প্রক্রিয়া করা যায়। এটি সাধারণত ডিএসপি অঞ্চল। অবশ্যই, আপনি সাধারণ সিপিইউ কার্যকারিতাও চান। এটি কোনও সমস্যা নয়। ইন্টিগ্রেটেড ডিএসপি'র সাথে প্রচুর সিপিইউ রয়েছে।

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


কর্টেক্স-এম 4 এফ এ ম্যাট্রিক্স গণিতের একটি কিনারা থাকবে? (আমি সেখানে উদ্যোগ
ব্যারি স্টেস

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

6

কয়েকটি মন্তব্য:

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

  2. একটি পরীক্ষার জন্য আমি একটি এআরএম কর্টেক্স এম0 মাইক্রোকন্ট্রোলারে কলম্যান ফিল্টার সহ একটি এএইচআরএস অ্যালগরিদম প্রয়োগ করেছি (এটি একটি এসটিএম 32 ছিল, ঠিক মনে নেই তবে আমি মনে করি এটি 32 মেগাহার্টজ), এবং আমি স্থির পয়েন্ট গণিত ব্যবহার করে চালাতে পারি এটি প্রায় 40 স্যাম্পেল / সেকেন্ডে। একটি দ্রুত নিয়ামক দিয়ে আপনি এটি সহজেই বহন করতে সক্ষম হওয়া উচিত, এবং অবশ্যই আপনি এফপিজিএ বা ডিএসপি উপায় চেষ্টা করতে পারেন।

  3. আমি বলব যে পাগুলির নিয়ন্ত্রণ সিপিইউ-নিবিড় নয় এবং আপনি সমস্ত পা একসাথে নিয়ন্ত্রণ করতে পারেন, সম্ভবত ত্রিকোণমিতি এবং বাধা এড়ানোর অপারেশনগুলি থেকে পৃথক করে দেখুন (দেখুন 1)


সার্ভগুলি নিয়ামক দ্বারা নিয়ামক বা ডায়নামিক্সেল বাসের মাধ্যমে নিয়ন্ত্রিত হয়, তাই ইতিমধ্যে ইতিমধ্যে লোড ts সমস্যাটি হ'ল সফটওয়্যারটির জন্য কেবল লাইভ পোজ / গাইটের জন্য প্রয়োজনের চেয়ে আরও বিপরীত গতিবিধি গণনা করা দরকার।
ব্যারি স্টেস

5

ত্রিকোণমিতি জটিল, তবে শর্টকাট রয়েছে। আপনি যদি প্রক্রিয়াকরণ শক্তিতে হালকা হন তবে কর্ডিক অ্যালগরিদম বিবেচনা করুন।

এটি মূলত সাইন [উদাহরণস্বরূপ] এর মানগুলির একটি সারণী। কোণগুলি ডিগ্রি, রেডিয়ানে, আপনার পছন্দ মত হতে পারে। মুল বক্তব্যটি হ'ল এই মানগুলির SINE হল 1/2 (0.5), 1/4 (0.25), 1/8, 1/16 ..... আপনার রোবট যে এক ডিগ্রির ভগ্নাংশ ব্যবহার করতে পারে।

আপনার কোণটি ইনপুট করুন, প্রথম টেবিলের মানটি বিয়োগ করুন, আপনার ফলাফলকে প্রথম ফলাফলে সেট করুন (0.5)। যদি, বিয়োগ করে, আপনার কোণটি নেতিবাচক হয়ে উঠেছে, তবে পরবর্তী মানটি (এবং 0.25 বিয়োগ) যোগ করুন। অন্যথায়, কোণগুলি বিয়োগ করা এবং ফলাফল যুক্ত করা চালিয়ে যান।

আপনি যখন টেবিলের শেষে পৌঁছবেন, আপনি যা কিছু করেছেন তা যুক্ত করা এবং বিয়োগ করা হবে তবে আপনি শক্তিশালী হয়ে আছেন। গুণনের জন্য একটি চূড়ান্ত "ফিডল ফ্যাক্টর" রয়েছে।

ফলাফলের যথার্থতা [এবং গতি] উপর নির্ভর করে অনুসন্ধান সারণীর আকার [এবং রেজোলিউশন]।


কর্ডিক দেখতে দুর্দান্ত লাগছে তবে আমি কেবল তখনই এটি ব্যবহার করব যদি এটি রোবটটি দ্রুত করে তোলে (প্রয়োজনীয়তার প্রয়োজন হয়)।
ব্যারি স্টেজে

3

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

http://www.youtube.com/watch?v=RuYLTudcOaM

মডেল এ রাস্পবেরি পাই ২.৫ ডাব্লু পাওয়ার বাজেটের অধীনে থাকা অবস্থায় ওপেনগিএল ইএস 2 ব্যবহার করে তার জিপিইউ ব্যবহার করে সাধারণ উদ্দেশ্যে ফ্লোটিং পয়েন্ট গণনা করে 24 জিএফএলওপি করতে পারে।

http://elinux.org/RPi_Hardware

উদাহরণ: রাস্পবেরি পাই ব্যবহার করে একটি ব্যাটারি চালিত রোবট সেটআপ প্রয়োগ করা হয়েছে।

http://www.homofaciens.de/technics-robots-R3-construction_en_navion.htm

উদাহরণ 2: একটি রাস্পবেরি পাই দ্বারা নিয়ন্ত্রিত 6 লেগড রোবট:

http://www.youtube.com/watch?v=Yhv43H5Omfc

উদাহরণ 3: একটি রাস্পবেরি পাই দ্বারা নিয়ন্ত্রিত একটি স্ব-ভারসাম্য 2 চাকা বিপরীত দুল রোবট:

http://www.youtube.com/watch?v=n-noFwc23y0


2

লেগড রোবটের জন্য আপনি কিছু পূর্বনির্ধারিত লেগ মুভিং সিকোয়েন্স তৈরি করতে পারেন এবং "সেগুলি খেলুন"। রিয়েল-টাইম বাধা এড়ানো হালকা fuzzy logicবাস্তবায়নের মাধ্যমে সম্পন্ন করা যেতে পারে যেখানে সবকিছু আবার টেবিল বিন্যাসে রয়েছে এবং আপনাকে যা করতে হবে তা হ'ল এটি থেকে সঠিক মান বাছাই করা এবং defuzzyficationপ্রক্রিয়াটির জন্য এটি ব্যবহার করা ।

কোনওভাবে দ্রুত প্রসেসরের মতো সি তে সবকিছু করা যায় ARM7। আমি AVRসবকিছুকে রূপান্তর করতে অনেক সময় ব্যয় করার পরেও এটি চেষ্টা করেছি এবং ব্যর্থ হয়েছি fixed point arithmetics


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

সেক্ষেত্রে আমি সার্ভো লেগ সিস্টেমের জন্য যাব। প্রতিটি পায়ে নিজস্ব কন্ট্রোলার থাকে। এজেন্ট ভিত্তিক পন্থা।
গসেমার

1

টেক্সাস ইনস্ট্রুমেন্টস স্টেলারিস প্ল্যাটফর্মের ডিফল্টরূপে বোর্ডে একটি ভাসমান পয়েন্ট ইউনিট রয়েছে। 80MHz ক্লকড এআরএম নিয়ামকটি আপনার আবেদনের জন্য যথেষ্ট দ্রুত কিনা তা নিশ্চিত নন তবে লঞ্চপ্যাড বিকাশ বোর্ডটি বেশ সস্তা: http://www.ti.com/ww/en/launchpad/stellaris_head.html

এটি ইউএসবির মাধ্যমে প্রোগ্রামযোগ্য, কমপক্ষে উইন্ডোজ এবং লিনাক্সের জন্য বিনামূল্যে সরঞ্জামচেনগুলি উপলভ্য, প্রায় 4 × 6 সেমি পরিমাপ করে এবং 30+ জিপিআইও পিন রয়েছে (যদি আমি সঠিকভাবে গণনা করি)।


0

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


4
"x86" এবং "পাওয়ার পিসি" প্রতিযোগিতামূলক আর্কিটেকচার দুটি সম্পূর্ণ ভিন্ন (এবং ইতিহাসের কিছু পয়েন্টে অন্তত) are
ক্রিস স্ট্রাটন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.