আমি একটি আইএমইউর অংশ হয়ে একটি চৌম্বকীয় AK8975 এ কাজ করছি। যা আমার কাছে খুব জটিল বলে মনে হচ্ছে। এই চিপটি পৃথিবীতে বা তার আশেপাশের যে কোনও স্থানে পৃথিবীর চৌম্বকীয় ক্ষেত্রের বর্ণনা হিসাবে আউটপুট হিসাবে একটি 3 ডি ভেক্টর দেয়।
আমি দুই ধরণের শিরোনাম গণনা অ্যালগরিদম চেষ্টা করেছি: একটি সহজ arctan(-y/x)
এবং অন্যটি হ'ল পিচ (পিচ) এবং ব্যাংক (রোল) বাতিল গণিতগুলি নীচে উল্লিখিত হয়েছে। ঝোঁক এবং ব্যাংক উভয়ই ভুল আউটপুট দেয়।
আমি যখন দুটি অ্যালগোস ব্যবহার করে স্থল পরিকল্পনাটি অনুভূমিক কব্জি রেখে ঘোরানো হয় তখন আমি পৃথিবীর সঠিক শিরোনামটি পেতে পারি (সহজলভ্য ওপেন স্টাডি রিসোর্স ব্যবহার করে) it
আমি নরম এবং শক্ত লোহার ত্রুটির জন্য ক্রমাঙ্কণের চেষ্টা করেছি। আমি এটি 3D এ প্লট করতে পারি এবং একটি নিখুঁত 3D গোলক দেখায়। এখনও ঝোঁক বা হ্রাস কাজ করে না।
যে কোনও পয়েন্টার সহায়ক হবে।
কোড এবং এর বাস্তবায়নগুলি নীচে হিসাবে রয়েছে:
void Compass_Heading()
{
double MAG_X;
double MAG_Y;
double cos_roll;
double sin_roll;
double cos_pitch;
double sin_pitch;
cos_roll = cos(roll);
sin_roll = sin(roll);
cos_pitch = cos(pitch);
sin_pitch = sin(pitch);
//// Tilt compensated Magnetic filed X:
MAG_X = magnetom_x*cos_pitch + magnetom_y*sin_roll*sin_pitch + magnetom_z*cos_roll*sin_pitch;
//// Tilt compensated Magnetic filed Y:
MAG_Y = magnetom_y*cos_roll-magnetom_z*sin_roll;
//// Magnetic Heading
MAG_Heading = atan2(-MAG_Y, MAG_X) ;
}
কোথায় magnetom_x
, #_y
এবং #_z
একটি 3D ভেক্টরের উপাদান যা আসলে ম্যাগনেটমিটার থেকে RAW মান হয়। রোল এবং পিচ অনবোর্ড অ্যাকসিলোমিটার এবং জাইরোস্কোপ থেকে একটি রহস্যময় কালম্যান ফিল্টার আউটপুট থেকে। এই তিনটি সেন্সর এটিএভিআরএসবিআইএন-তে রয়েছে । রোল এবং পিচ এই পর্যায়ে ঠিক আছে।
জার্নাল_অফ_সেন্সর_সেইনডিন এবং আল_2010c.pdf অনুসারে এখন একটি সরল শিরোনামের গণনা MAG_Heading = atan2(-magnetom_y, magnetom_x) ;
ও উপরের মত ক্ষতিপূরণ সহ হওয়া উচিত ছিল ।
সার্বিক কোড থেকে সহজভাবে হয় খোলা AHRS ।
রোল, পিচ এবং ইয়াও বিন্যাসে ডেটা। আমি কেবল আমার হাত দিয়ে ডিভাইসটি ঘোরালাম। প্রথম তিনটি যথাক্রমে কেবল রোল, পিচ এবং ইয়াউতে কেন্দ্রীভূত হয়েছে। বাকী দুটিকে প্রথমে X (রোলড) বরাবর 45 ডিগ্রি ধরে ডিভাইসটি ঘোরানো হয় তারপরে ম্যাগনেটমিটারের স্থানীয় জেড বরাবর ঘোরানো হয় Y তারপরে প্রায় 45 ডিগ্রি ঘূর্ণন ওয়াই (পিচ) বরাবর পুনরাবৃত্তি করা হয় তারপরে ম্যাগনেটমিটারের স্থানীয় জেডের সাথে ঘোরানো হয় same
গ্রাফগুলি -180 থেকে 180 ডিগ্রি সীমার মধ্যে প্লট করা হয়েছিল।
কোনও ফাইলের ডিগ্রিতে কোণগুলি রোলের YAW বৈশিষ্ট্যগুলি।
একটি ফাইলের ডিগ্রিতে কোণগুলি পিচের উপর ওয়াইএডাব্লু বৈশিষ্ট্য।
কোনও ফাইলের ডিগ্রিগুলিতে কোণগুলি ইয়াবা নিজেই YAW বৈশিষ্ট্যগুলি।
একটি ফাইলের ডিগ্রিতে কোণগুলি 45 ডিগ্রি ঘূর্ণিত সহ ইয়াউয়ের YAW বৈশিষ্ট্যগুলি।
একটি ফাইলের ডিগ্রিতে কোণগুলি 45 ডিগ্রি পিচ সহ ইয়াউয়ের ওয়াইএডাব্লু বৈশিষ্ট্যগুলি।
দ্রষ্টব্য: সর্বশেষ 2 টি চিত্রের জন্য: প্রথমে হোম পজিশনে রাখা, এটি সবার জন্য সমান (txt ফাইলগুলি দেখুন)। তারপরে 45 ডিগ্রি রোলড করে তারপরে প্লেন ডিভাইসটি ব্যবহার করে (চৌম্বকীয় সাথে) ম্যাগনেটমিটারের জেড-অক্ষের সাথে ঘোরানো হয়েছিল।
একইভাবে শেষ চিত্রটির জন্য ডিভাইসটি 45 ডিগ্রি ম্যাগনেটমিটারের জেড-অক্ষের সাথে সজ্জিত করা হয়েছে।
আমি আশা করি এগুলি আমার সমস্যা সমাধানে সহায়তা করবে।
নতুন অগ্রগতি নিম্নরূপ:
আমি শিরোনামে কিছু কাজ করেছি। আমি নিম্নলিখিত আউটপুট পেয়েছিলাম। CSV