পিগ, ইয়াও এবং ম্যাগ, অ্যাক, এবং গাইরো ডেটা থেকে রোল গণনা করা হচ্ছে


19

আমার কাছে 9 ডিগ্রি স্বাধীনতা সংবেদক সহ একটি আরডিনো বোর্ড রয়েছে, সেখান থেকে বোর্ডের পিচ, ইয়াও এবং রোলটি অবশ্যই নির্ধারণ করতে হবে।

9-ডিওএফ সেন্সর থেকে প্রাপ্ত এক সেট ডেটার উদাহরণ এখানে রয়েছে:

অ্যাক্সিলোমিটার (মি / গুলি)

  • = -5,85AccX
  • = 1,46AccY
  • = 17,98AccZ

জাইরোস্কোপ (আরপিএম)

  • = 35,14GyrX
  • = -40,22GyrY
  • = -9,86GyrZ

চৌম্বকীয় (গাউস)

  • = 0,18MagX
  • = -0,04MagY
  • = -0,15MagZ

আমি কীভাবে এই ডেটাগুলি থেকে পিচ, ইয়াও এবং রোল গণনা করতে পারি?


1
প্রাথমিক নীতি: আপনার অ্যাক্সিলোমিটারে মাধ্যাকর্ষণ সনাক্তকরণ থেকে আপনি জানেন যে কোন পথে নামছে; আপনার চৌম্বকীয় পৃথিবীর চৌম্বকীয় ক্ষেত্র সনাক্তকরণ থেকে আপনি জানেন যে কোন দিকে উত্তর। এর ভিত্তিতে এবং অন্য কোনও উল্লেখযোগ্য ত্বরণ বা শক্ত চৌম্বকীয় ক্ষেত্র ধরে না রেখে আপনি নিজের মনোভাব নির্ধারণ করতে পারেন।
মঙ্গল

1
জাইরোস্কোপ ডেটা একটি ঘূর্ণনের হার সরবরাহ করে তবে কোনও পরম অবস্থান নয়। এটি একটি পরিচিত মনোভাব থেকে পরিবর্তনের অনুমানের জন্য একীভূত করা যেতে পারে, তবে এটি অন্যরকম সেন্সরগুলির সাথে একত্রে ব্যবহার না করা হলে এটি সাধারণত গোলমাল এবং প্রবাহের ঝুঁকিতে পড়ে।
মঙ্গলবার

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

উত্তর:


15

পিচ, রোল এবং ইয়াও এক্স, ওয়াই এবং জেড অক্ষের চারপাশে ঘূর্ণন হিসাবে সংজ্ঞায়িত করা হয়। সংজ্ঞাটি চিত্রিত করার জন্য ছবি হিসাবে নীচে।

রোল পিচ এবং ইয়াও

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

accelerationX = (signed int)(((signed int)rawData_X) * 3.9);
accelerationY = (signed int)(((signed int)rawData_Y) * 3.9);
accelerationZ = (signed int)(((signed int)rawData_Z) * 3.9);
pitch = 180 * atan (accelerationX/sqrt(accelerationY*accelerationY + accelerationZ*accelerationZ))/M_PI;
roll = 180 * atan (accelerationY/sqrt(accelerationX*accelerationX + accelerationZ*accelerationZ))/M_PI;

সম্পূর্ণ উত্স কোডটি এখানে পাওয়া যাবে

উপরের সংজ্ঞা উপর ভিত্তি করে

yaw = 180 * atan (accelerationZ/sqrt(accelerationX*accelerationX + accelerationZ*accelerationZ))/M_PI;

দ্রষ্টব্য: M_PI = 3.14159265358979323846 এটি গণিতে h স্থিরভাবে সংজ্ঞায়িত

নীচে আরডুইনো বেস সোর্স কোড সহ কিছু উল্লেখ রয়েছে যা আপনাকে সাহায্য করতে পারে।


তথ্যসূত্র:


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

(@ জুবায়ের) "ইয়াও = 180 * আতান (ত্বরণ জেড / স্কয়ার্ট (এক্সিলারেশনএক্সিলারেশন এক্স + এক্সিলারেশনজ্যাকিলারেশন জেড)) / এমএপিআই;" সেই 'এমএপিআই' কী ??
টিকা সবুজ

@ ওয়াসাবি এমএপিআই = 3.14159265358979323846। এটি অবিচ্ছিন্নভাবে গণিত এইচ লাইব্রেরিতে সংজ্ঞায়িত করা হয়।
মহেন্দ্র গুণাওয়ারডেনা

9

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

সেন্সর বৈশিষ্ট্য এবং পটভূমি

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

একটি চৌম্বকীয় পদার্থটি আরও সোজা হয় তারপরে একটি অ্যাক্সিলোমিটার। চলাচলের ফলে এতে সমস্যা হবে না তবে আয়রন এবং অন্যান্য চৌম্বকগুলির মতো জিনিসগুলি আপনার আউটপুটকে প্রভাবিত করবে। যদি এই হস্তক্ষেপের কারণ হিসাবে উত্সগুলি স্থিত হয় তবে তা মোকাবেলা করা কঠিন নয় তবে যদি এই উত্সগুলি ধ্রুব না হয় তবে এটি এমন অনেকগুলি আওয়াজ তৈরি করবে যা অপসারণ করতে সমস্যাযুক্ত।

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

সেন্সর ফিউশন

এখন এই সমস্ত সেন্সরকে এক সাথে কাজ করার সৌন্দর্যটি হ'ল আপনি গাইরো ড্রিফট বাতিল করতে অ্যাক্সিলোমিটার এবং চৌম্বকীয় থেকে প্রাপ্ত তথ্য ব্যবহার করতে পারেন। এটি আপনাকে গাইরো ড্রিফটের মারাত্মক ত্রুটি ছাড়াই গাইরোর নির্ভুলতা এবং গতি দেওয়ার অনুমতি দেয়।

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

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

filteredData = (1-weight)*filteredData + weight*newData

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

fusedData = (1-weight)*gyroData + weight*accelMagData

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

আপনি যদি এখনও আরও তথ্য চান তবে আপনি "পরিপূরক ফিল্টার সহ সেন্সর ফিউশন" গুগল করতে পারেন এ সম্পর্কে প্রচুর নিবন্ধ রয়েছে।


3

এক্সিলারেটর সেন্সর ডেটা থেকে, আপনি কেবল পিচ এবং রোল গণনা করতে পারেন। ফ্রিস্কেলের নমুনা দস্তাবেজ আপনাকে কী প্রয়োজন তা প্রচুর তথ্য দিয়ে ব্যাখ্যা করে:

এএন 3461 - একটি ত্রি-অক্ষ এক্সিলারোমিটার ব্যবহার করে টিল্ট সেন্সিং

দস্তাবেজের বক্তব্যের ভিত্তিতে,

কষাφএক্সYz- র=জিপিYজিপিz- র

কষাθএক্সYz- র=-জিপিএক্সজিপিYপাপφ+ +জিপিz- রকোসাইন্φ=-জিপিএক্সজিপিY2+ +জিপিz- র2

যার সমান:

roll = atan2(accelerationY, accelerationZ)

pitch = atan2(-accelerationX, sqrt(accelerationY*accelerationY + accelerationZ*accelerationZ))

অবশ্যই, ফলাফল কেবল তখনই ঘটে যখন আবর্তনগুলি নির্দিষ্ট অর্ডারে (Rxyz) ঘটে থাকে:

  1. কোণ দ্বারা এক্স-অক্ষের চারপাশে রোল করুন φ
  2. কোণ দ্বারা y- অক্ষের চারপাশে পিচ θ
  3. কোণ দ্বারা জেড-অক্ষের চারপাশে ইয়াও ψ

আবর্তনের ক্রমের উপর নির্ভর করে আপনি বিভিন্ন সমীকরণ পান। জন্যআরএক্সYz- র আবর্তন ক্রম, আপনি কোণ খুঁজে পাবেন না ψ Z- অক্ষের চারপাশে ইয়াওয়ার জন্য।


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