দৃষ্টি#
ভূমিকা#
VEX AIR ড্রোনটিতে দুটি ভিশন সেন্সর রয়েছে যা এপ্রিলট্যাগ আইডি শনাক্ত ও ট্র্যাক করে। এগুলোর সাহায্যে ড্রোনটি তার চারপাশ বিশ্লেষণ করতে, বস্তু অনুসরণ করতে এবং শনাক্তকৃত দৃশ্যমান তথ্যের ভিত্তিতে প্রতিক্রিয়া জানাতে পারে।
নিম্নে সকল উপলব্ধ ব্লকের একটি তালিকা দেওয়া হলো:
ক্রিয়াকলাপ — ভিশন ফিড নিয়ন্ত্রণ করুন এবং অবজেক্ট ডেটা ক্যাপচার করুন।
অবজেক্ট ডেটা পান — এপ্রিলট্যাগ আইডিগুলির জন্য ডেটা ক্যাপচার করে।
সেটিংস — শনাক্তকৃত কোন অবজেক্টগুলো অ্যাক্সেস করা হবে তা সামঞ্জস্য করুন।
ভিশন অবজেক্ট আইটেম সেট করুন — সনাক্ত করা অবজেক্ট তালিকা থেকে একটি নির্দিষ্ট অবজেক্ট নির্বাচন করে।
মান — অবজেক্টের উপস্থিতি, শ্রেণিবিভাগ এবং বৈশিষ্ট্যসমূহ পুনরুদ্ধার করুন।
ভিজ্যুয়াল অবজেক্ট বিদ্যমান — কোনো বস্তু সনাক্ত করা হয়েছে কিনা তা জানায়।
ভিশন অবজেক্ট হল এপ্রিলট্যাগ আইডি — সনাক্ত করা এপ্রিলট্যাগ আইডি একটি নির্দিষ্ট আইডির সাথে মেলে কিনা তা পরীক্ষা করে।
দৃষ্টি বস্তুর সংখ্যা — সনাক্ত করা বস্তুর সংখ্যা জানায়।
ভিশন অবজেক্ট প্রপার্টি — নিম্নলিখিত বিবরণ পুনরুদ্ধার করে:
centerX & centerY — সেন্সরের দৃষ্টিসীমার মধ্যে কেন্দ্রের অবস্থানের স্থানাঙ্ক।
বিয়ারিং — সামনের ভিশন সেন্সরের সাপেক্ষে বস্তুর কোণ অথবা ড্রোনটির বস্তুর দিকে মুখ করার জন্য প্রয়োজনীয় ডিগ্রি।
ঘূর্ণন — বস্তুটির অভিমুখ।
originX & originY — সেন্সরের ভিউতে উপরের-বাম কোণার অবস্থানের স্থানাঙ্ক।
id — একটি এপ্রিলট্যাগ আইডির শনাক্তকরণ নম্বর।
কর্ম#
অবজেক্ট ডেটা পান#
গেট অবজেক্ট ডেটা স্ট্যাক ব্লকটি ভিশন সেন্সরের ফ্রেম থেকে ডেটা ফিল্টার করে। ভিশন সেন্সরগুলো এপ্রিলট্যাগ আইডি শনাক্ত করতে পারে।
ডেটা সেটটি অবজেক্টগুলিকে প্রস্থ অনুসারে বৃহত্তম থেকে ক্ষুদ্রতম ক্রমে সংরক্ষণ করে, যা সূচক 0 থেকে শুরু হয়। প্রতিটি অবজেক্টের বৈশিষ্ট্যগুলি ভিশন অবজেক্ট বৈশিষ্ট্য ব্লক ব্যবহার করে অ্যাক্সেস করা যেতে পারে। যদি কোনও মিলযুক্ত অবজেক্ট সনাক্ত করা না যায় তবে একটি খালি ডেটা সেট রিপোর্ট করা হয়।
[সামনে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
প্যারামিটার |
বর্ণনা |
|---|---|
স্বাক্ষর |
প্রদত্ত সিগনেচারের ডেটা অন্তর্ভুক্ত করার জন্য ডেটাসেটটি ফিল্টার করে। উপলব্ধ সিগনেচার হলো সমস্ত AprilTag। |
ক্যামেরা |
ভিশন সেন্সরটি থেকে ডেটা সংগ্রহ করা যায়, হয় সামনে অথবা নিচে। |
উদাহরণ
শুরু হলে
[Climb upward when an AprilTag ID is detected.]
[300] [mm v] উচ্চতায় উড্ডয়ন করো ▶
চিরকাল
[সামনে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
যদি <Vision অবজেক্ট আছে?> তাহলে
[উপরে v] দিকে [200] [mm v] উঠো ▶
সেটিংস#
ভিশন অবজেক্ট আইটেম সেট করুন#
সেট ভিশন অবজেক্ট আইটেম স্ট্যাক ব্লকটি নির্ধারণ করে যে ডেটাসেটের কোন আইটেমটি ব্যবহার করা হবে।
Vision অবজেক্ট আইটেম [1] সেট করো
প্যারামিটার |
বর্ণনা |
|---|---|
আইটেম |
ডেটাসেটে ব্যবহার করার জন্য আইটেমের সংখ্যা। |
উদাহরণ
শুরু হলে
[Display the smallest-appearing AprilTag ID.]
চিরকাল
[সামনে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
কনসোল মুছে দাও
যদি <Vision অবজেক্ট আছে?> তাহলে
Vision অবজেক্ট আইটেম (Vision অবজেক্টের সংখ্যা) সেট করো
কনসোলে (Vision অবজেক্ট [id v]) প্রিন্ট করো ▶
মূল্যবোধ#
দৃষ্টি বস্তু বিদ্যমান#
Vision object exists বুলিয়ান ব্লকটি জানায় যে নির্দিষ্ট ভিশন সেন্সরটি বর্তমানে কোনো বস্তু শনাক্ত করছে কিনা।
সত্য — নির্দিষ্ট ভিশন সেন্সরটি একটি বস্তু শনাক্ত করে।
মিথ্যা — নির্দিষ্ট ভিশন সেন্সরটি কোনো বস্তু শনাক্ত করতে পারছে না।
<Vision অবজেক্ট আছে?>
প্যারামিটার |
বর্ণনা |
|---|---|
এই ব্লকটির কোনো প্যারামিটার নেই। |
উদাহরণ
শুরু হলে
[Climb upward when an AprilTag ID is detected.]
[300] [mm v] উচ্চতায় উড্ডয়ন করো ▶
চিরকাল
[সামনে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
যদি <Vision অবজেক্ট আছে?> তাহলে
[উপরে v] দিকে [200] [mm v] উঠো ▶
ভিশন অবজেক্ট হলো এপ্রিলট্যাগ আইডি।#
ভিশন অবজেক্ট এপ্রিলট্যাগ আইডি বুলিয়ান ব্লকটি জানায় যে এপ্রিলট্যাগ আইডিটি একটি নির্দিষ্ট আইডি নম্বর কি না।
সত্য — এপ্রিলট্যাগ আইডি হলো নম্বরটি।
ভুল — এপ্রিলট্যাগ আইডিটি নম্বর নয়।
<Vision object is AprilTag ID [1]>
প্যারামিটার |
বর্ণনা |
|---|---|
এপ্রিলট্যাগ আইডি নম্বর |
শনাক্তকৃত এপ্রিলট্যাগ আইডি নম্বরের সাথে তুলনা করার জন্য সংখ্যাটি ০ থেকে ৩৭-এর মধ্যে হতে হবে। |
উদাহরণ
শুরু হলে
[Display when the target AprilTag ID is detected.]
চিরকাল
[সামনে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
কনসোল মুছে দাও
যদি <Vision অবজেক্ট আছে?> তাহলে
যদি <Vision object is AprilTag ID [21]> তাহলে
কনসোলে [Target found!] প্রিন্ট করো ▶
अंत
দৃষ্টি বস্তুর সংখ্যা#
ভিশন অবজেক্ট কাউন্ট রিপোর্টার ব্লকটি ডেটাসেটে শনাক্ত করা অবজেক্টের সংখ্যা একটি পূর্ণ সংখ্যা হিসেবে রিপোর্ট করে।
(Vision অবজেক্টের সংখ্যা)
প্যারামিটার |
বর্ণনা |
|---|---|
এই ব্লকটির কোনো প্যারামিটার নেই। |
উদাহরণ
শুরু হলে
[Display how many AprilTag IDs are detected.]
চিরকাল
[সামনে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
কনসোল মুছে দাও
কনসোলে (Vision অবজেক্টের সংখ্যা) প্রিন্ট করো ▶
[0.2] সেকেন্ড অপেক্ষা করো
দৃষ্টি বস্তুর বৈশিষ্ট্য#
get object data ব্লকটি ব্যবহার করার পরে সংরক্ষিত প্রতিটি অবজেক্টের সাথে একাধিক বৈশিষ্ট্য অন্তর্ভুক্ত থাকে (নীচে দেখানো হয়েছে)।
(Vision অবজেক্ট [প্রস্থ v])
id ব্যতীত অন্য সকল প্রপার্টি ভ্যালু, get object data ব্লকটি ব্যবহার করার মুহূর্তে শনাক্তকৃত বস্তুর অবস্থান, আকার, অভিমুখ বা দিক বর্ণনা করে। এই মানগুলি পিক্সেল বা ডিগ্রিতে পরিমাপ করা হয়। প্রতিটি ভিশন সেন্সরের একটি ভিন্ন রেজোলিউশন রয়েছে:
সম্মুখমুখী: ৬৪০ x ৪৮০ পিক্সেল
নিম্নমুখী: ৬৪০ x ৪০০ পিক্সেল
প্যারামিটার |
বর্ণনা |
|---|---|
সম্পত্তি |
Which property of the detected object to use: |
প্রস্থ#
width প্রপার্টিটি শনাক্তকৃত অবজেক্টের প্রস্থকে ১ থেকে ৬৪০ পর্যন্ত একটি পূর্ণ সংখ্যা হিসেবে পিক্সেলে প্রকাশ করে।
(Vision অবজেক্ট [প্রস্থ v])
উদাহরণ
শুরু হলে
[Show if the AprilTag ID appears large or small.]
চিরকাল
[সামনে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
কনসোল মুছে দাও
যদি <Vision অবজেক্ট আছে?> তাহলে
যদি <(Vision অবজেক্ট [প্রস্থ v]) [math_greater_than v] [100]> তাহলে
কনসোলে [Large] প্রিন্ট করো ▶
অন্যথায়
কনসোলে [Small] প্রিন্ট করো ▶
अंत
अंत
[0.2] সেকেন্ড অপেক্ষা করো
উচ্চতা#
height প্রপার্টিটি শনাক্তকৃত অবজেক্টের উচ্চতা পিক্সেলে প্রকাশ করে, যা ১ থেকে ৪৮০ পর্যন্ত একটি পূর্ণ সংখ্যা।
(Vision অবজেক্ট [উচ্চতা v])
উদাহরণ
শুরু হলে
[Show if the AprilTag ID appears large or small.]
চিরকাল
[সামনে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
কনসোল মুছে দাও
যদি <Vision অবজেক্ট আছে?> তাহলে
যদি <(Vision অবজেক্ট [উচ্চতা v]) [math_greater_than v] [100]> তাহলে
কনসোলে [Large] প্রিন্ট করো ▶
অন্যথায়
কনসোলে [Small] প্রিন্ট করো ▶
अंत
अंत
[0.2] সেকেন্ড অপেক্ষা করো
কেন্দ্রX#
centerX প্রপার্টিটি শনাক্তকৃত অবজেক্টের কেন্দ্রের x-স্থানাঙ্ককে পিক্সেলে ১ থেকে ৬৪০ পর্যন্ত একটি পূর্ণ সংখ্যা হিসেবে প্রকাশ করে।
(Vision অবজেক্ট [centerX v])
উদাহরণ
শুরু হলে
[Show if an AprilTag ID is to the left or the right of the camera.]
চিরকাল
[সামনে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
কনসোল মুছে দাও
যদি <Vision অবজেক্ট আছে?> তাহলে
যদি <(Vision অবজেক্ট [centerX v]) [math_less_than v] [320]> তাহলে
কনসোলে [To the left] প্রিন্ট করো ▶
অন্যথায়
কনসোলে [To the right] প্রিন্ট করো ▶
अंत
अंत
[0.2] সেকেন্ড অপেক্ষা করো
কেন্দ্রY#
centerY প্রপার্টিটি শনাক্তকৃত অবজেক্টের কেন্দ্রের y-স্থানাঙ্ককে পিক্সেলে ১ থেকে ৪৮০ পর্যন্ত একটি পূর্ণ সংখ্যা হিসেবে প্রকাশ করে।
(Vision অবজেক্ট [centerY v])
উদাহরণ
শুরু হলে
[Take off and attempt to align the drone with an AprilTag ID on the wall.]
[Adjust the takeoff height to observe different results.]
[800] [mm v] উচ্চতায় উড্ডয়ন করো ▶
[সামনে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
যদি <Vision অবজেক্ট আছে?> তাহলে
যদি <(Vision অবজেক্ট [centerY v]) [math_less_than v] [240]> তাহলে
কনসোলে [Below the target!] প্রিন্ট করো ▶
অন্যথায়
কনসোলে [Above the target!] প্রিন্ট করো ▶
अंत
অন্যথায়
কনসোলে [No target found!] প্রিন্ট করো ▶
ভার বহন#
bearing প্রপার্টিটি ড্রোনের সাপেক্ষে কোনো বস্তুর অবস্থান নির্দেশকারী একটি কোণ রিপোর্ট করে। এর আচরণ ব্যবহৃত ভিশন সেন্সরের উপর নির্ভর করে।
০° মান নির্দেশ করে যে বস্তু এবং সেন্সরের কেন্দ্র একই সরলরেখায় রয়েছে। ধনাত্মক মানের অর্থ হলো বস্তুটি ডানদিকে, আর ঋণাত্মক মানের অর্থ হলো বস্তুটি বামদিকে।
সেন্সর |
ফেরত |
|---|---|
নিচের দিকে |
বস্তুটির কেন্দ্রের সাথে সারিবদ্ধ হতে ড্রোনটির সামনের অংশকে –১৮০º থেকে ১৮০º পর্যন্ত কত ডিগ্রি ঘোরাতে হবে। |
ফরোয়ার্ড |
ভিশন সেন্সরের কেন্দ্র থেকে বস্তুটি বাম বা ডান দিকে –১৮০º থেকে ১৮০º পর্যন্ত কত ডিগ্রিতে সরে আছে। |
(Vision অবজেক্ট [দিকনির্দেশ v])
উদাহরণ
শুরু হলে
[Align the front of the drone to an AprilTag ID.]
ঘোরার গতি (15)% সেট করো
[500] [mm v] উচ্চতায় উড্ডয়ন করো ▶
চিরকাল
[নিচের দিকে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
যদি <Vision অবজেক্ট আছে?> তাহলে
যদি <[-20] [math_less_than v] (Vision অবজেক্ট [দিকনির্দেশ v]) [math_less_than v] [20]> তাহলে
[Hover once sensor is centered on the AprilTag ID.]
ভাসমান থাকো
[সফল v] শব্দ বাজাও ▶
অন্যথায় যদি <(Vision অবজেক্ট [দিকনির্দেশ v]) [math_less_than v] [-21]> তাহলে
[বাম v] দিকে ঘোরো
অন্যথায়
[ডান v] দিকে ঘোরো
ঘূর্ণন#
rotation প্রপার্টিটি শনাক্তকৃত AprilTag ID-র অভিমুখকে ১ থেকে ৩৫৯ পর্যন্ত ডিগ্রিতে একটি পূর্ণ সংখ্যা হিসেবে প্রকাশ করে।
(Vision অবজেক্ট [ঘূর্ণন v])
উদাহরণ
শুরু হলে
[Turn left or right based on the rotation of an AprilTag ID.]
[1000] [mm v] উচ্চতায় উড্ডয়ন করো ▶
চিরকাল
[সামনে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
যদি <Vision অবজেক্ট আছে?> তাহলে
যদি <[240] [math_less_than v] (Vision অবজেক্ট [ঘূর্ণন v]) [math_less_than v] [300]> তাহলে
[বাম v] দিকে [90] ডিগ্রি ঘোরো ▶
অন্যথায় যদি <[60] [math_less_than v] (Vision অবজেক্ট [ঘূর্ণন v]) [math_less_than v] [120]> তাহলে
[ডান v] দিকে [90] ডিগ্রি ঘোরো ▶
অন্যথায়
ভাসমান থাকো
অরিজিনএক্স#
originX প্রপার্টিটি শনাক্তকৃত অবজেক্টের বাউন্ডিং বক্সের উপরের-বাম কোণার x-স্থানাঙ্ককে পিক্সেলে প্রকাশ করে, যা ১ থেকে ৬৪০ পর্যন্ত একটি পূর্ণ সংখ্যা।
(Vision অবজেক্ট [originX v])
উদাহরণ
শুরু হলে
[Draw lines to the AprilTag ID origin from all corners.]
চিরকাল
স্ক্রিন মুছে দাও
get [all AprilTags v] data from vision [forward v] camera
যদি <Vision অবজেক্ট আছে?> তাহলে
স্ক্রিনে রেখা [0] [0] (Vision অবজেক্ট [originX v]) (Vision অবজেক্ট [originY v]) আঁকো
স্ক্রিনে রেখা [0] [480] (Vision অবজেক্ট [originX v]) (Vision অবজেক্ট [originY v]) আঁকো
স্ক্রিনে রেখা [640] [0] (Vision অবজেক্ট [originX v]) (Vision অবজেক্ট [originY v]) আঁকো
স্ক্রিনে রেখা [640] [480] (Vision অবজেক্ট [originX v]) (Vision অবজেক্ট [originY v]) আঁকো
अंत
[0.2] সেকেন্ড অপেক্ষা করো
উৎপত্তি#
originY প্রপার্টিটি শনাক্তকৃত অবজেক্টের বাউন্ডিং বক্সের উপরের-বাম কোণার y-স্থানাঙ্ককে পিক্সেলে প্রকাশ করে, যা ১ থেকে ৪৮০ পর্যন্ত একটি পূর্ণ সংখ্যা।
(Vision অবজেক্ট [originY v])
উদাহরণ
শুরু হলে
[Draw lines to the AprilTag ID origin from all corners.]
চিরকাল
স্ক্রিন মুছে দাও
get [all AprilTags v] data from vision [forward v] camera
যদি <Vision অবজেক্ট আছে?> তাহলে
স্ক্রিনে রেখা [0] [0] (Vision অবজেক্ট [originX v]) (Vision অবজেক্ট [originY v]) আঁকো
স্ক্রিনে রেখা [0] [480] (Vision অবজেক্ট [originX v]) (Vision অবজেক্ট [originY v]) আঁকো
স্ক্রিনে রেখা [640] [0] (Vision অবজেক্ট [originX v]) (Vision অবজেক্ট [originY v]) আঁকো
স্ক্রিনে রেখা [640] [480] (Vision অবজেক্ট [originX v]) (Vision অবজেক্ট [originY v]) আঁকো
अंत
[0.2] সেকেন্ড অপেক্ষা করো
আইডি#
id প্রপার্টিটি শনাক্তকৃত AprilTag ID-র শনাক্তকরণ নম্বরটি একটি পূর্ণ সংখ্যা হিসেবে রিপোর্ট করে।
(Vision অবজেক্ট [id v])
উদাহরণ
শুরু হলে
[Display the detected AprilTag ID.]
চিরকাল
[সামনে v] ক্যামেরার Vision থেকে [সব AprilTags v] ডেটা নাও
কনসোল মুছে দাও
যদি <Vision অবজেক্ট আছে?> তাহলে
কনসোলে (Vision অবজেক্ট [id v]) প্রিন্ট করো ▶
अंत
[0.2] সেকেন্ড অপেক্ষা করো