সুচিপত্র:

Kinect সঙ্গে Mannequin মাথা শব্দ স্থানীয়করণ: 9 ধাপ (ছবি সহ)
Kinect সঙ্গে Mannequin মাথা শব্দ স্থানীয়করণ: 9 ধাপ (ছবি সহ)

ভিডিও: Kinect সঙ্গে Mannequin মাথা শব্দ স্থানীয়করণ: 9 ধাপ (ছবি সহ)

ভিডিও: Kinect সঙ্গে Mannequin মাথা শব্দ স্থানীয়করণ: 9 ধাপ (ছবি সহ)
ভিডিও: Как охотиться на людей ► 1 Прохождение Manhunt (PS2) 2024, নভেম্বর
Anonim
Kinect সঙ্গে Mannequin মাথা স্থানীয়করণ শব্দ
Kinect সঙ্গে Mannequin মাথা স্থানীয়করণ শব্দ

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

ধাপ 1: তত্ত্ব

তত্ত্ব
তত্ত্ব

কোণ গণনা করা

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

সুতরাং ওয়েভফ্রন্টটি একটি সরলরেখা বলে ধরে নিন। যদি ডান দিক থেকে আওয়াজ আসছে, তাহলে এটি সময় t2 এ মাইক্রোফোন #2 এবং সময় t1 এ মাইক্রোফোন #1 আঘাত করবে। মাইক্রোফোন #2 এবং মাইক্রোফোন #1 হিট করার মধ্যে শব্দটি যে দূরত্বটি ভ্রমণ করে তা হল শব্দ v এর গতি দ্বারা গুণিত শব্দ সনাক্ত করার সময় পার্থক্য:

d = v s *(t1-t2) = বনাম *Δt

আমরা এই দূরত্বকে মাইক্রোফোন জোড়া এবং কোণ between জোড়ার মধ্য থেকে শব্দের উৎসের মধ্যে দূরত্বের সাথে সম্পর্কযুক্ত করতে পারি:

cos (θ) = d /d 12 = বনাম*Δt /d12

কারণ আমাদের মাত্র দুটি মাইক্রোফোন আছে, আমাদের হিসেবের মধ্যে অস্পষ্টতা থাকবে যে শব্দ উৎস আমাদের সামনে বা পিছনে। এই সিস্টেমে, আমরা ধরে নেব যে শব্দের উৎস জোড়ার সামনে এবং 0 ডিগ্রী (জোড়ার সম্পূর্ণ ডানদিকে) থেকে 180 ডিগ্রী (সম্পূর্ণ বাম দিকে) এর কোণটি আটকান।

অবশেষে, আমরা বিপরীত কোসাইন গ্রহণ করে থিটা সমাধান করতে পারি:

θ = acos (বনাম*Δt/d12), 0 <= θ <=

কোণটিকে একটু বেশি প্রাকৃতিক করার জন্য, আমরা থেটা থেকে 90 ডিগ্রী বিয়োগ করতে পারি, যাতে 0 ডিগ্রী সরাসরি জোড়ার সামনে থাকে এবং +/- 90 ডিগ্রী সম্পূর্ণ বাম বা পূর্ণ ডান হয়। এটি আমাদের অভিব্যক্তিটিকে বিপরীত কোসাইন থেকে বিপরীত সাইন পর্যন্ত পরিণত করে।

  • cos (θ-π/2) = sin (θ) = d/d12 = vs*Δt/d12
  • θ = asin (বনাম*Δt/d12), -π/2 <= θ <= π/2

বিলম্ব খোঁজা

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

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

θ = asin (বনাম*n/(d12*fs)), -π/2 <= θ <= π/2

ধাপ 2: উপাদান

যন্ত্রাংশ

  • Xbox 360, মডেল 1414 বা 1473 এর জন্য Microsoft Kinect। Kinect- এর চারটি মাইক্রোফোন রয়েছে যা আমরা ব্যবহার করব একটি রৈখিক অ্যারেতে।
  • Kinect এর স্বত্বাধিকারী সংযোগকারীকে USB + AC শক্তিতে রূপান্তর করার জন্য অ্যাডাপ্টার।
  • রাস্পবেরি পাই 2 বা 3 চলমান রাস্পবিয়ান স্ট্রেচ। আমি মূলত একটি Pi 1 মডেল B+ব্যবহার করার চেষ্টা করেছি, কিন্তু এটি যথেষ্ট শক্তিশালী ছিল না। আমি Kinect থেকে সংযোগ বিচ্ছিন্ন থাকার সমস্যা রাখা।
  • সবচেয়ে উদ্ভট ম্যানেকুইন মাথা আপনি খুঁজে পেতে পারেন
  • একটি অ্যানালগ servo যথেষ্ট শক্তিশালী আপনার mannequin মাথা ঘুরিয়ে
  • একটি 5V ইউএসবি ওয়াল চার্জার যা যথেষ্ট অ্যাম্পারেজ সহ পাই এবং সার্ভো এবং কমপক্ষে দুটি পোর্টকে শক্তি দেয়। (আমি এর মতো একটি 5A 3-পোর্ট প্লাগ ব্যবহার করেছি
  • দুটি আউটলেট সহ একটি এক্সটেনশন কর্ড (একটি ইউএসবি ওয়াল চার্জারের জন্য এবং অন্যটি কিনেক্ট এসি অ্যাডাপ্টারের জন্য।
  • দুটি ইউএসবি ক্যাবল: একটি টাইপ-এ থেকে মাইক্রো-ইউএসবি কেবল পাই পাওয়ার জন্য এবং আরেকটি সার্ভিকে পাওয়ার জন্য যা আপনি কাটাতে আপত্তি করেন না
  • সবকিছু বসার জন্য একটি প্ল্যাটফর্ম এবং ম্যানিকুইন হেডের জন্য আরেকটি ছোট প্ল্যাটফর্ম। আমি বেস হিসাবে একটি প্লাস্টিকের পরিবেশন ট্রে এবং প্রধান প্ল্যাটফর্ম হিসাবে একটি প্লাস্টিকের প্লেট ব্যবহার করেছি। দুটোই ওয়ালমার্টের ছিল এবং মাত্র কয়েক ডলার খরচ হয়েছিল
  • 4x #8-32 1/2 "বোল্ট এবং বাদাম বড় প্ল্যাটফর্মে আপনার সার্ভ সংযুক্ত করতে
  • 2x M3 8mm বোল্ট ওয়াশারের সাথে
  • দুটি পুরুষ থেকে পুরুষ জাম্পার তার, একটি লাল এবং একটি কালো, এবং একটি মহিলা থেকে পুরুষ জাম্পার তারের
  • আঠালো সমর্থিত ভেলক্রো স্ট্রিপ
  • বৈদ্যুতিক টেপ
  • তারের ব্যবস্থাপনার জন্য নল টেপ

সরঞ্জাম

  • কাটার চাকা দিয়ে ড্রেমেল
  • ড্রিল
  • 7/64 ", 11/16", এবং 5/16 "ড্রিল বিট
  • M3 ট্যাপ (servচ্ছিক, আপনার servo হর্ন উপর নির্ভর করে)
  • স্ক্রু ড্রাইভার
  • সোল্ডার দিয়ে সোল্ডারিং লোহা
  • সাহায্যকারী হাত (alচ্ছিক)
  • মার্কার
  • কম্পাস
  • তারের স্ট্রিপার
  • মাল্টিমিটার (চ্ছিক)

পিপিই

  • নিরাপত্তা কাচ

  • ফেস মাস্ক (ড্রেমেল-এড প্লাস্টিকের বিটের জন্য)।

ধাপ 3: নিম্ন প্ল্যাটফর্ম সমাবেশ

নিম্ন প্ল্যাটফর্ম সমাবেশ
নিম্ন প্ল্যাটফর্ম সমাবেশ
নিম্ন প্ল্যাটফর্ম সমাবেশ
নিম্ন প্ল্যাটফর্ম সমাবেশ
নিম্ন প্ল্যাটফর্ম সমাবেশ
নিম্ন প্ল্যাটফর্ম সমাবেশ

আমরা প্রথম অংশটি তৈরি করব নিম্ন প্ল্যাটফর্ম, যা আমাদের Kinect, servo, এবং আমাদের সমস্ত ইলেকট্রনিক্স ধারণ করবে। প্ল্যাটফর্মটি তৈরি করতে আপনার প্রয়োজন হবে:

  • প্লাস্টিক পরিবেশন ট্রে
  • সার্ভো
  • 4x #8-32 1/2 "বাদাম সহ বোল্ট
  • কাটার চাকা সহ ড্রেমেল
  • স্ক্রু ড্রাইভার
  • ড্রিল
  • 11/16 "ড্রিল বিট
  • মার্কার

কিভাবে তৈরী করে

  1. আপনার ট্রেটি উল্টে দিন।
  2. ট্রেটির পিছনের দিকে আপনার সার্ভোকে পাশে রাখুন, নিশ্চিত করুন যে সার্ভার আউটপুট গিয়ার ট্রেটির মাঝের লাইন বরাবর রয়েছে, তারপর সার্ভোর বেসের চারপাশে চিহ্নিত করুন।
  3. আপনার ড্রেমেল এবং কাটার চাকা ব্যবহার করে, আপনি চিহ্নিত এলাকাটি কেটে ফেলুন, তারপরে আপনার সার্ভোটিকে তার স্লটে স্লাইড করুন।
  4. ট্রেতে সার্ভো হাউজিং মাউন্ট করা গর্তগুলির কেন্দ্রগুলি চিহ্নিত করুন, তারপরে সার্ভোটি সরান এবং আপনার 11/16 "ড্রিল বিট দিয়ে সেই গর্তগুলি ড্রিল করুন। গর্তগুলি ড্রিল করার সময় এটির মতো পাতলা প্লাস্টিক ফাটানো খুব সহজ, তাই আমি এটিকে অনেক বেশি নিরাপদ মনে করি ড্রিলটি উল্টোদিকে চালানোর জন্য এবং ধীরে ধীরে উপাদানটিকে সরিয়ে দিতে হবে।
  5. আপনার servo স্লটে রাখুন, তারপর #8-32 বোল্ট এবং বাদাম দিয়ে ট্রেতে মাউন্ট করুন।

ধাপ 4: হেড প্ল্যাটফর্ম সমাবেশ

প্রধান প্ল্যাটফর্ম সমাবেশ
প্রধান প্ল্যাটফর্ম সমাবেশ
প্রধান প্ল্যাটফর্ম সমাবেশ
প্রধান প্ল্যাটফর্ম সমাবেশ
প্রধান প্ল্যাটফর্ম সমাবেশ
প্রধান প্ল্যাটফর্ম সমাবেশ
প্রধান প্ল্যাটফর্ম সমাবেশ
প্রধান প্ল্যাটফর্ম সমাবেশ

পরের অংশটি আমরা তৈরি করব ম্যানকুইন হেডকে সার্ভোর সাথে সংযুক্ত করার জন্য একটি প্ল্যাটফর্ম। হেড প্ল্যাটফর্ম তৈরি করতে আপনার প্রয়োজন হবে:

  • প্লাস্টিক এর থালা
  • সার্ভো হর্ন
  • ওয়াশারের সাথে 2x M3 8mm বোল্ট
  • স্ক্রু ড্রাইভার
  • ড্রিল
  • 7/64 "এবং 5/16" ড্রিল বিট
  • কম্পাস
  • ড্রিমেল চাকা দিয়ে

কিভাবে তৈরী করে

  1. আপনার কম্পাসটি আপনার ম্যানেকুইন মাথার বেসের ব্যাসার্ধে সেট করুন।
  2. প্লেটের কেন্দ্রে একটি বৃত্ত চিহ্নিত করতে আপনার কম্পাস ব্যবহার করুন। এটি আমাদের হেড প্ল্যাটফর্মের প্রকৃত আকার হবে।
  3. প্লেটের বাইরে ছোট প্ল্যাটফর্মটি কাটাতে আপনার ড্রেমেল এবং কাটার চাকা ব্যবহার করুন।
  4. আপনার নতুন প্ল্যাটফর্মের মাঝখানে 5/16 "ড্রিল বিট দিয়ে ড্রিল করুন। এটি আমাদের স্ক্রুতে অ্যাক্সেস দেবে যা আমাদের সার্ভো হর্নকে আমাদের সার্ভোতে মাউন্ট করে। প্ল্যাটফর্মকে স্থিতিশীলতা দেওয়ার জন্য আমি গর্তটি ড্রিল করার জন্য, আমি একটি স্পুল রাখলাম তার নীচে তার এবং স্পুলের কেন্দ্র দিয়ে ড্রিল করা হয়।
  5. প্ল্যাটফর্মের কেন্দ্রের সাথে আপনার সার্ভ হর্ন সারিবদ্ধ করুন এবং প্ল্যাটফর্মে হর্ন সংযুক্ত করতে দুটি গর্ত চিহ্নিত করুন। নিশ্চিত করুন যে এই মাউন্ট করা গর্তগুলি যথেষ্ট দূরে রয়েছে তাই আপনার M3 বোল্টের মাথা এবং ওয়াশারের জন্য জায়গা আছে।
  6. 7/64 "ড্রিল বিট দিয়ে এই চিহ্নিত গর্তগুলি ড্রিল করুন।
  7. আমার সার্ভো হর্নের নিচের ছিদ্রটি মসৃণ ছিল, যেমন M3 বোল্টের জন্য থ্রেড ছিল না। এভাবে, আমি আমার ড্রিল এবং একটি M3 ট্যাপ ব্যবহার করে থ্রেড তৈরি করেছি।
  8. হেড প্ল্যাটফর্মে সার্ভো হর্ন সংযুক্ত করতে বোল্ট এবং ওয়াশার ব্যবহার করুন।

ধাপ 5: Servo পাওয়ার কেবল

Servo পাওয়ার কেবল
Servo পাওয়ার কেবল
Servo পাওয়ার কেবল
Servo পাওয়ার কেবল
Servo পাওয়ার কেবল
Servo পাওয়ার কেবল
Servo পাওয়ার কেবল
Servo পাওয়ার কেবল

এনালগ সার্ভোস সাধারণত 4.8-6V দিয়ে চালিত হয়। যেহেতু রাস্পবেরি পাই ইতিমধ্যে ইউএসবি থেকে 5V দ্বারা চালিত হতে চলেছে, তাই আমরা ইউএসবি থেকে সার্ভোকে পাওয়ার দ্বারা আমাদের সিস্টেমকে সহজ করে তুলব। এটি করার জন্য আমাদের একটি USB তারের পরিবর্তন করতে হবে। সার্ভো পাওয়ার ক্যাবল তৈরি করতে আপনার প্রয়োজন হবে:

  • টাইপ-এ প্রান্তের সাথে অতিরিক্ত ইউএসবি কেবল (যেটি আপনার কম্পিউটারে প্লাগ করে)
  • একটি লাল এবং একটি কালো জাম্পার তার
  • তাতাল
  • ঝাল
  • তারের স্ট্রিপার
  • বৈদ্যুতিক টেপ
  • সাহায্যকারী হাত (alচ্ছিক)
  • মাল্টিমিটার (alচ্ছিক)

কিভাবে তৈরী করে

  1. আপনার ক্যাবল থেকে নন-ইউএসবি টাইপ-এ সংযোগকারীটি কেটে ফেলুন, তারপর চারটি ভিতরের তারের প্রকাশের জন্য কিছুটা অন্তরণ বন্ধ করুন। উন্মুক্ত তারের চারপাশে ঝাল কেটে ফেলুন।
  2. সাধারণত ইউএসবি তারের চারটি তার থাকবে: ডেটা ট্রান্সমিশন এবং রিসেপশনের জন্য দুটি এবং পাওয়ার এবং গ্রাউন্ডের জন্য দুটি। আমরা শক্তি এবং স্থলে আগ্রহী, যা সাধারণত যথাক্রমে লাল এবং কালো। লাল এবং কালো তারের কিছু অন্তরণ বন্ধ করুন এবং সবুজ এবং সাদা তারগুলি কেটে দিন। যদি আপনি উদ্বিগ্ন হন যে আপনার সঠিক পাওয়ার এবং গ্রাউন্ড ওয়্যার নেই, তাহলে আপনি আপনার কেবলটি আপনার USB পাওয়ার অ্যাডাপ্টারে প্লাগ করতে পারেন এবং মাল্টিমিটার দিয়ে আউটপুট ভোল্টেজ পরীক্ষা করতে পারেন।
  3. এর পরে, আপনার লাল এবং কালো জাম্পার তারের এক প্রান্ত কেটে নিন এবং কিছু অন্তরণ বন্ধ করুন।
  4. এখন, আপনার জাম্পার এবং ইউএসবি তারের উন্মুক্ত কালো তারগুলি একত্রিত করুন। উন্মুক্ত তারের কেন্দ্রগুলি অতিক্রম করুন এবং একে অপরের চারপাশে পাকান। তারপরে, মিলিত তারগুলিকে একসঙ্গে ধরে রাখার জন্য ঝাল প্রয়োগ করুন। সাহায্যের হাত আপনার ক্যাবলগুলি জায়গায় ধরে রেখে এটিকে আরও সহজ করে তুলবে।
  5. লাল তারের জন্য ধাপ 4 পুনরাবৃত্তি করুন।
  6. যদি আপনি অভিনব বোধ করেন তবে বৈদ্যুতিক টেপ দিয়ে উন্মুক্ত তারগুলি আবৃত করুন, বা তাপ সঙ্কুচিত টিউবিং। এই জয়েন্টগুলি ভঙ্গুর হবে কারণ তারগুলি এত ছোট, তাই ইউএসবি কেবলটির বাইরের অন্তরণে জাম্পার কেবলগুলি ধরে রাখা টেপের একটি দ্বিতীয় স্তর যুক্ত করুন। এটি সমাবেশকে আরও কঠোর করে তুলবে এবং এভাবে বাঁকানো থেকে বিরতির সম্ভাবনা কম।

ধাপ 6: ইলেকট্রনিক্স মাউন্ট করা

ইলেকট্রনিক্স মাউন্ট করা
ইলেকট্রনিক্স মাউন্ট করা
ইলেকট্রনিক্স মাউন্ট করা
ইলেকট্রনিক্স মাউন্ট করা
ইলেকট্রনিক্স মাউন্ট করা
ইলেকট্রনিক্স মাউন্ট করা

অবশেষে, আমরা আমাদের ইলেকট্রনিক্স এবং অন্যান্য সবকিছুকে নিম্ন প্ল্যাটফর্মে মাউন্ট করে সবকিছু একত্রিত করব। আপনার প্রয়োজন হবে:

  • নিম্ন প্ল্যাটফর্ম
  • হেড প্ল্যাটফর্ম
  • ম্যানকুইনের মাথা
  • ইউএসবি+এসি অ্যাডাপ্টারের সাথে Kinect করুন
  • ইউএসবি পাওয়ার অ্যাডাপ্টার
  • এক্সটেনশন কর্ড
  • মাইক্রো ইউএসবি কেবল
  • সার্ভো পাওয়ার ক্যাবল
  • রাস্পবেরি পাই
  • পুরুষ থেকে মহিলা জাম্পার কেবল
  • আঠালো ভেলক্রো
  • কাঁচি

কিভাবে তৈরী করে

  1. ভেলক্রো দিয়ে ট্রেটির নীচে পাই মাউন্ট করুন।
  2. ভেলক্রো দিয়ে ইউএসবি পাওয়ার অ্যাডাপ্টার সংযুক্ত করুন।
  3. ইউএসবি পাওয়ার অ্যাডাপ্টারে সার্ভো এবং পাই প্লাগ করুন।
  4. Pi এর পিন 12 (GPIO18) কে সার্ভোর সিগন্যাল ক্যাবলের সাথে সংযুক্ত করুন। এটি ডানদিকে 6th ষ্ঠ পিন।
  5. আপনার এক্সটেনশন কর্ডটিকে ট্রেটির পিছনের হ্যান্ডেল দিয়ে সাপ করুন এবং ইউএসবি পাওয়ার অ্যাডাপ্টারটিকে একপাশে লাগান।
  6. কিনেকট ইউএসবি+এসি অ্যাডাপ্টারটি নিন এবং পাওয়ার অ্যাডাপ্টারটি এক্সটেনশন কর্ডের অন্য পাশে এবং ইউএসবিটি পাইতে লাগান।
  7. ট্রে এর সামনের হ্যান্ডেল দিয়ে Kinect এর কর্ডটি সাপ করুন এবং Kinect অ্যাডাপ্টারে প্লাগ করুন।
  8. আমি প্ল্যাটফর্মের নীচে তারগুলি ধরে রাখার জন্য ডাক্ট টেপ ব্যবহার করেছি। এটি সবচেয়ে মার্জিত দেখায় না, কিন্তু ভাগ্যক্রমে এই সব লুকানো আছে।
  9. প্ল্যাটফর্মটি ডানদিকে উল্টে দিন এবং প্লিনফর্মের সামনের দিকে কিনেকট মাউন্ট করতে ভেলক্রো ব্যবহার করুন।
  10. ম্যানকুইন হেডকে হেড প্ল্যাটফর্মে মাউন্ট করতে ভেলক্রো ব্যবহার করুন। একবার সবকিছু সারিবদ্ধ হয়ে গেলেও, দুটি টুকরা আলাদা করুন যাতে আমরা সার্ভো হর্ন মাউন্ট স্ক্রু অ্যাক্সেস করতে পারি। এখনও সার্ভোতে হর্ন স্ক্রু করবেন না, যদিও, আমাদের নিশ্চিত করতে হবে যে সার্ভোটি তার কেন্দ্রের অবস্থানে রয়েছে যাতে আমরা সবকিছুকে লাইন করতে পারি। আমরা এটি পরবর্তী ধাপে করব।

ধাপ 7: সফ্টওয়্যার এবং অ্যালগরিদম

সফটওয়্যার এবং অ্যালগরিদম
সফটওয়্যার এবং অ্যালগরিদম

ওভারভিউ

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

এই সিস্টেমে, ROS প্রাথমিকভাবে সার্ভার নিয়ন্ত্রণকারী কোড থেকে সাউন্ড সোর্সের আগমনের দিক (DOA) গণনা করে কোড আলাদা করার জন্য ব্যবহৃত হয়, অন্যান্য প্রকল্পগুলিকে Kinect DOA অনুমান অন্তর্ভুক্ত করার অনুমতি দেয় সার্ভো কোড ছাড়া তাদের প্রয়োজন বা প্রয়োজন নেই । আপনি যদি কোডটি নিজেই দেখতে চান তবে এটি GitHub এ পাওয়া যাবে:

github.com/raikaDial/kinect_doa

Kinect DOA নোড

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

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

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

একবার নির্ধারণ করে যে তরঙ্গাকৃতিগুলি উল্লেখযোগ্য নন-নয়েজ কন্টেন্ট ধারণ করে, প্রোগ্রামটি ক্রস-পারস্পরিক সম্পর্কের সাথে এগিয়ে যায়। তবে এই গণনার মধ্যে তিনটি গুরুত্বপূর্ণ অপ্টিমাইজেশান রয়েছে:

  1. Kinect- এ চারটি মাইক্রোফোন রয়েছে, যার অর্থ হল মোট ছয় জোড়া তরঙ্গাকৃতি যা আমরা পারস্পরিক সম্পর্কযুক্ত করতে পারি। যাইহোক, যদি আপনি মাইক্রোফোন অ্যারের স্থানিক ব্যবস্থা দেখেন, আপনি দেখতে পারেন যে মাইক্রোফোন 2, 3 এবং 4 একে অপরের খুব কাছাকাছি। প্রকৃতপক্ষে, তারা এত কাছাকাছি যে শব্দের গতি এবং আমাদের নমুনা ফ্রিকোয়েন্সি কারণে 2, 3, এবং 4 এ প্রাপ্ত তরঙ্গাকৃতিগুলি সর্বাধিক একটি নমুনা সামনে বা পিছনে আলাদা করা হবে, যা আমরা গণনা দিয়ে যাচাই করতে পারি maxlag = Δd *fs/vs, যেখানে Δd হল মাইক্রোফোন জোড়া আলাদা করা, fs হল নমুনা ফ্রিকোয়েন্সি, এবং বনাম শব্দের গতি। এইভাবে, এই তিনটির মধ্যে জোড়া জোড়া করা বেহুদা, এবং আমাদের কেবল 2, 3, এবং 4 এর সাথে মাইক্রোফোন 1 ক্রস-সম্পর্কযুক্ত করতে হবে।
  2. অডিও সিগন্যালগুলির স্ট্যান্ডার্ড ক্রস-পারস্পরিক সম্পর্ক রিভারবারেশন (ইকো) উপস্থিতিতে খারাপভাবে সম্পাদন করতে পরিচিত। একটি শক্তিশালী বিকল্প ফেজ ট্রান্সফর্মের (GCC-PHAT) সঙ্গে সাধারণীকৃত ক্রস-পারস্পরিক সম্পর্ক হিসাবে পরিচিত। এই পদ্ধতিটি একটি ওয়েটিং ফাংশন প্রয়োগ করার জন্য উষ্ণ হয় যা ক্রস-পারস্পরিক সম্পর্কের মধ্যে শিখরকে বাড়িয়ে তোলে, যার ফলে মূল সংকেতকে ইকো থেকে আলাদা করা সহজ হয়। আমি GCC-PHAT- এর পারফরম্যান্সকে একটি রিভারব্রেশন চেম্বারে সহজ ক্রস-পারস্পরিক সম্পর্কের সাথে তুলনা করেছি (পড়ুন: কংক্রিট বাথরুম পুন remনির্মাণ করা হচ্ছে), এবং GCC-PHAT কে সঠিক কোণ অনুমান করার ক্ষেত্রে 7 গুণ বেশি কার্যকর বলে মনে করেছি।
  3. ক্রস-পারস্পরিক সম্পর্ক সম্পাদন করার সময়, আমরা দুটি সংকেত গ্রহণ করছি, একটিকে অন্যটির সাথে স্লাইড করছি এবং প্রতিটি ধাপে আমাদের নির্দিষ্ট সংকেতের প্রতিটি বিন্দুকে আমাদের স্লাইডিং সংকেতের প্রতিটি বিন্দু দ্বারা গুণ করছি। দৈর্ঘ্য n এর দুটি সংকেতের জন্য, এর ফলাফল n^2 গণনা। আমরা এর পরিবর্তে ফ্রিকোয়েন্সি ডোমেনে ক্রস-পারস্পরিক সম্পর্ক সঞ্চালনের মাধ্যমে এটি উন্নত করতে পারি, যার মধ্যে একটি দ্রুত ফুরিয়ার ট্রান্সফর্ম (এনলগন গণনা) জড়িত, প্রতিটি পয়েন্টকে একটি রূপান্তরিত সংকেতে অন্য পয়েন্ট (এন ক্যালকুলেশন) দ্বারা সংশ্লিষ্ট বিন্দু দ্বারা গুণ করে, তারপর একটি বিপরীত কাজ করে ফুরিয়ার ট্রান্সফর্ম টাইম ডোমেইনে ফিরে যেতে (nlogn calculations), ফলে n+2*nlogn গণনা, n^2 এর চেয়ে কম। যাইহোক, এটি সরল পদ্ধতি। আমাদের অ্যারের মাইক্রোফোনগুলি একসাথে এত কাছাকাছি এবং শব্দের গতি এত তুলনামূলকভাবে ধীর যে অডিও তরঙ্গাকৃতি ইতিমধ্যেই বেশিরভাগ সারিবদ্ধ থাকবে।এইভাবে, আমরা আমাদের ক্রস-পারস্পরিক সম্পর্ককে কেবল সামনে বা পিছনে থাকা অফসেটগুলি বিবেচনা করতে পারি। মাইক্রোফোন 1 এবং 4 এর জন্য, ল্যাগটি অবশ্যই +/- 12 নমুনার মধ্যে পড়তে হবে, যার মানে প্রতিটি ক্রস-পারস্পরিক সম্পর্কের জন্য আমাদের কেবল 24*n গণনা করতে হবে, যার ফলে আমাদের তরঙ্গাকৃতি 2900 টি নমুনার চেয়ে বেশি হলে কম্পিউটেশনাল সাশ্রয় হবে।

এই সিস্টেমটি minidsp লাইব্রেরির সুবিধা দেয়, যা GCC-PHAT অ্যালগরিদমকে অপ্টিমাইজেশান 3 প্রয়োগ করে।

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

সার্ভো কন্ট্রোল নোড

Kinect_doa নোডের তুলনায়, সার্ভো নোড তুলনামূলকভাবে সহজ। এর কাজ হল শুধুমাত্র আনুমানিক DOA নেওয়া এবং সার্ভোকে সেই কোণে সরানো। এটি রাস্পবেরি পাই এর হার্ডওয়্যার PWM মডিউল অ্যাক্সেস করার জন্য wiringPi লাইব্রেরি ব্যবহার করে, এটি সার্ভার কোণ সেট করতে ব্যবহার করে। বেশিরভাগ এনালগ সার্ভোস PWM সিগন্যাল দ্বারা নিয়ন্ত্রিত হয় যার পালস প্রস্থ 1000 µs থেকে 2000 µs পর্যন্ত থাকে, যা 0 ° থেকে 180 of কোণের সাথে সম্পর্কিত, কিন্তু আমি যে সার্ভোটি ব্যবহার করতাম তা 500 µs থেকে 2500 µs এর সাথে নিয়ন্ত্রিত ছিল 0 ° থেকে 270 পর্যন্ত। এইভাবে, সর্বনিম্ন পালস প্রস্থ, সর্বাধিক পালস প্রস্থ এবং সর্বাধিক এবং সর্বনিম্ন কোণের মধ্যে পার্থক্য নির্ধারণ করে বিভিন্ন সার্ভো হার্ডওয়্যারের জন্য নোড কনফিগারযোগ্য। উপরন্তু, সার্ভো অবিলম্বে লক্ষ্য কোণে চলে যায় না, বরং একটি কনফিগারযোগ্য গতিতে কোণের দিকে চলে যায়, যা মার্গারেটকে আরও ধীরে ধীরে, ভীতিকর অনুভূতি দেয় (প্লাস, একটি সার্ভোর শব্দ দ্রুত এবং পিছনে সরানো সত্যিই বিরক্তিকর হয়ে ওঠে)।

ধাপ 8: নির্মাণ এবং ইনস্টলেশন

নির্ভরতা ইনস্টল করুন:

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

sudo apt-get git cmake build-essential libusb-1.0-0-dev ইনস্টল করুন

সিডি Git ক্লোন https://github.com/OpenKinect/libfreenect mkdir, বিল্ড সিডি বিল্ড cmake.. -DCMAKE_BUILD_REDIST_PACKAGE = off -DCMAKE_BUILD_EXAMPLES = off করতে উবুন্টু করতে উবুন্টু CP ~ / libfreenect / প্ল্যাটফর্ম / লিনাক্স / udev দ্বারা / 51-Kinect ইনস্টল libfreenect সিডি.rules /etc/udev/rules.d udevadm control --reload-rules && udevadm trigger

এরপরে, আমাদের ওয়্যারিংপিআই প্যাকেজটি ইনস্টল করতে হবে, যা আমাদের পাইয়ের জিপিআইও পিনগুলি নিয়ন্ত্রণ করতে দেয়:

সিডি

git ক্লোন git: //git.drogon.net/wiringPi cd ~/wiringPi./build

Mannequin হেড সংযুক্ত করুন:

ওয়্যারিংপিআই ইনস্টল করার সাথে সাথে আমরা এখন হার্ডওয়্যার-ল্যান্ডে ফিরে যেতে পারি এবং নীচের প্ল্যাটফর্মে ম্যানিকুইনের মাথা সংযুক্ত করতে পারি। কমান্ড লাইনের মাধ্যমে সার্ভোকে কেন্দ্র করতে, নিম্নলিখিত কমান্ডগুলি প্রবেশ করুন:

gpio pwm-ms

gpio pwmc 192 gpio pwmr 2000 gpio -g pwm 18 150

যদি কোন আন্দোলন না হয়, তাহলে আপনার servo সম্ভবত ইতিমধ্যে কেন্দ্রীভূত। নিশ্চিত হওয়ার জন্য, যদিও, আপনি একটি অ-কেন্দ্রে মান সেট করতে পারেন, যেমন gpio -g pwm 18 200, তারপর 150 এ সেট করুন।

একবার আপনি নিশ্চিত হয়ে যান যে সার্ভোটি কেন্দ্রীভূত, হেড প্ল্যাটফর্মের সার্ভো হর্নটি সার্ভোতে সংযুক্ত করুন যাতে আপনার ম্যানকুইন হেড সরাসরি সামনের দিকে তাকিয়ে থাকবে। তারপরে, শিংটিকে সার্ভোতে স্ক্রু করুন এবং ভেলক্রো বিটের মাধ্যমে আপনার মাথা সংযুক্ত করুন।

ROS ইনস্টল করুন:

পরবর্তী, আপনার পাইতে ROS ইনস্টল করুন। একটি দুর্দান্ত ইনস্টল গাইড এখানে পাওয়া যাবে; আমাদের সিস্টেমের জন্য আমাদের OpenCV এর প্রয়োজন নেই, তাই আপনি ধাপ 3 এড়িয়ে যেতে পারেন। এই বিল্ডটি সম্পূর্ণ হতে কয়েক ঘন্টা সময় লাগবে। ইনস্টল গাইড অনুসরণ করার পরে, আপনার bashrc এ ইনস্টলেশন সোর্সিং যোগ করুন যাতে আমরা আমাদের নতুন ইনস্টল করা ROS প্যাকেজ ব্যবহার করতে পারি:

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc

Kinect DOA প্যাকেজ তৈরি করুন:

সব শেষ হয়ে গেলে, আমাদের প্রকল্পের জন্য একটি ক্যাটকিন ওয়ার্কস্পেস তৈরি করুন এবং src ডিরেক্টরিতে প্রবেশ করুন:

mkdir -p ~/kinect_doa_ws/src

cd ~/kinect_doa_ws/src

এই প্রকল্পের কোড kinect_doa প্যাকেজে রয়েছে, তাই এটি আপনার নতুন কর্মক্ষেত্রের src ডিরেক্টরিতে ক্লোন করুন:

git ক্লোন

Robot_upstart প্যাকেজটি লঞ্চ ফাইল ইনস্টল করার জন্য একটি সহজে ব্যবহারযোগ্য টুল প্রদান করে যাতে তারা স্টার্টআপে চলতে পারে, তাই এটিকে আপনার কর্মক্ষেত্রে ক্লোন করুন:

git ক্লোন

এখন, আমরা আমাদের ওয়ার্কস্পেসের শীর্ষ স্তরের ডিরেক্টরি থেকে catkin_make কে কল করে প্রকল্প কোডটি তৈরি করতে পারি, তারপর আমাদের বিল্ডের উৎস তৈরি করুন যাতে আমাদের প্যাকেজগুলি পাওয়া যায়:

cd ~/kinect_doa_ws

catkin_make echo "source /home/pi/kinect_doa_ws/devel/setup.bash" >> ~/.bashrc

চলমান এবং টিউনিং:

ধরে নিচ্ছি সবকিছু প্লাগ ইন এবং চালিত, আপনি এখন সিস্টেমটি চালু করতে সক্ষম হবেন এবং আপনার কানেক্ট ট্র্যাকটি ভয়েস করতে পারবেন! যাইহোক, যদি আপনার একটি Kinect 1473 থাকে, তাহলে প্রথমে একটি টেক্সট এডিটরে open/kinect_doa_ws/src/kinect_doa/launch/kinect_doa.launch ফাইলটি খুলুন এবং_kinect_1473 ব্যবহার করে প্যারামিটারটি সত্যে সেট করুন। উপরন্তু, যদি আপনি আমার চেয়ে আলাদা সার্ভো ব্যবহার করেন তবে এটি সম্ভবত একটি স্ট্যান্ডার্ড এনালগ সার্ভো, তাই লঞ্চ ফাইলে থাকাকালীন, min_us 1000, max_us 2000 এবং max_deg 180 এ প্যারামিটার পরিবর্তন করুন।

roslaunch kinect_doa kinect_doa.launch

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

যখন আমরা Pi তে পাওয়ার করি তখন প্রোগ্রামটি চালু করার জন্য, আমরা আমাদের লঞ্চ ফাইলটি ইনস্টল করতে robot_upstart প্যাকেজ ব্যবহার করি। যদি ROS বর্তমানে চলমান না হয়, তাহলে এটি roscore কমান্ড দিয়ে শুরু করুন। তারপরে, একটি নতুন টার্মিনাল খুলুন এবং এর সাথে লঞ্চটি ইনস্টল করুন:

rosrun robot_upstart kinect_doa/launch/kinect_doa.launch --user root --symlink ইনস্টল করুন

আমরা লঞ্চ ফাইলে কপি করার পরিবর্তে একটি সিমলিঙ্ক তৈরি করি যাতে আমরা editing/kinect_doa_ws/src/kinect_doa/launch/kinect_doa.launch এডিট করে প্যারামিটার পরিবর্তন করতে পারি।

ধাপ 9: এটি অফিসে লুকিয়ে রাখুন

অফিসে লুকিয়ে রাখা
অফিসে লুকিয়ে রাখা

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

প্রস্তাবিত: