เซ็นเซอร์ AI วิชั่น#
การแนะนำ#
เซ็นเซอร์ตรวจจับภาพ VEX IQ AI สามารถตรวจจับและติดตามวัตถุ สี และรหัส AprilTag ได้ ทำให้หุ่นยนต์สามารถวิเคราะห์สภาพแวดล้อม ติดตามวัตถุ และตอบสนองตามข้อมูลภาพที่ตรวจพบได้
ตัวอย่าง AI Vision เหล่านี้ได้รับการออกแบบมาเพื่อใช้กับ Basebot ที่ติดตั้งเซ็นเซอร์ VEX IQ AI Vision ในตัวอย่างเหล่านี้ เซ็นเซอร์ได้รับการกำหนดค่าด้วยชื่อ AIVision1 ซึ่งปรากฏอยู่ในบล็อกต่างๆ
ด้านล่างนี้คือรายการของบล็อกทั้งหมด:
การดำเนินการ — บันทึกข้อมูลจากเซ็นเซอร์ตรวจจับภาพ VEX IQ AI สำหรับลายเซ็นที่เลือก
รับข้อมูลวัตถุ — บันทึกข้อมูลสำหรับลายเซ็นเฉพาะ เช่น สีที่กำหนดค่าไว้ วัตถุที่ฝึกฝนไว้ล่วงหน้า หรือรหัส AprilTag
การตั้งค่า — เลือกวัตถุที่จะโต้ตอบด้วย
ตั้งค่ารายการวัตถุ AI Vision — เลือกวัตถุเฉพาะจากรายการวัตถุที่ตรวจพบ
ค่านิยม — การเข้าถึงและการใช้ข้อมูลที่รวบรวมได้
วัตถุ AI Vision มีอยู่ — รายงานว่าตรวจพบวัตถุหรือไม่
จำนวนวัตถุ AI Vision — รายงานจำนวนวัตถุที่ตรวจพบ
คุณสมบัติของวัตถุ AI Vision — รายงานรายละเอียดต่างๆ เช่น:
วัตถุ AI Vision คืออะไร? — ตรวจสอบว่าวัตถุที่ตรวจพบตรงกับการจำแนกประเภทที่ระบุหรือไม่
วัตถุ AI Vision คือ AprilTag หรือไม่ — ตรวจสอบว่าวัตถุที่ตรวจพบเป็น AprilTag ที่ตรงกับ ID ที่ระบุหรือไม่
วัตถุ AI Vision คือ AprilTag ID หรือไม่ — ตรวจสอบว่า AprilTag ID ที่ตรวจพบตรงกับ ID ที่ระบุหรือไม่
การกระทำ#
รับข้อมูลวัตถุ#
บล็อกสแต็ก รับข้อมูลวัตถุ จะกรองข้อมูลจากเฟรมของเซ็นเซอร์ตรวจจับภาพ VEX IQ AI ให้เหลือเพียงลายเซ็นเดียว ซึ่งเป็นคำอธิบายที่บันทึกไว้ของสิ่งที่เซ็นเซอร์สามารถจดจำได้ เช่น วัตถุที่ได้รับการฝึกฝนล่วงหน้า รหัส AprilTag หรือสีหรือรหัสสีที่กำหนดค่าไว้
ต้องกำหนดค่าสีและรหัสสีในโปรแกรม AI Vision Utility ก่อน จึงจะสามารถใช้งานกับบล็อกนี้ได้
ชุดข้อมูลจัดเก็บวัตถุที่เรียงลำดับจากขนาดใหญ่ที่สุดไปเล็กที่สุดตามความกว้าง โดยเริ่มต้นที่ดัชนี 0 คุณสมบัติของวัตถุแต่ละชิ้นสามารถเข้าถึงได้โดยใช้บล็อก AI Vision object property หากไม่พบวัตถุที่ตรงกัน ระบบจะรายงานชุดข้อมูลว่างเปล่า
รับข้อมูล [SELECT_A_SIG v] จาก [AIVision1 v]
พารามิเตอร์ |
คำอธิบาย |
|---|---|
ลายเซ็น |
กรองชุดข้อมูลเพื่อให้มีเฉพาะข้อมูลที่มีลายเซ็นที่กำหนดเท่านั้น ลายเซ็นที่มีอยู่คือ:
|
หมายเหตุ: เพื่อให้ตัวเลือก AprilTag ID หรือ AI Classification ปรากฏขึ้น ต้องเปิดใช้งานการตรวจจับใน AI Vision Utility ก่อน
ตัวอย่าง
เมื่อเริ่มต้น
[Drive forward if an AprilTag ID is detected.]
ทำตลอดไป
รับข้อมูล [AprilTag IDs v] จาก [AIVision1 v]
ถ้า <[AIVIsion1 v] พบวัตถุ?> แล้ว
ขับ [ไปข้างหน้า v] เป็น [10] [มม. v] ▶
การจำแนกประเภท AI#
เซ็นเซอร์ตรวจจับภาพ VEX IQ AI สามารถตรวจจับวัตถุต่างๆ ภายใต้การจำแนกประเภท AI ที่แตกต่างกัน ขึ้นอยู่กับโมเดลการจำแนกประเภท AI ที่เลือกเมื่อกำหนดค่าเซ็นเซอร์ตรวจจับภาพ VEX IQ AI ในหน้าต่างอุปกรณ์ วัตถุที่ตรวจจับได้จะแตกต่างกันไป โมเดลที่มีให้เลือกในปัจจุบัน ได้แก่:
สิ่งของในห้องเรียน
บลูบอล
กรีนบอล
เรดบอล
บลูริง
กรีนริง
เรดริง
บลูคิวบ์
กรีนคิวบ์
เรดคิวบ์
การแข่งขันหุ่นยนต์ VEX IQ แบบผสมผสาน
บีม
เรดพิน
บลูพิน
ออเรนจ์พิน
ยกระดับการแข่งขันหุ่นยนต์ VEX IQ
บลูบีนแบ็ก
ถุงถั่วแดง
ถุงถั่วเหลือง
ลายเซ็นสี#
ลายเซ็นสี คือสีเฉพาะที่เซ็นเซอร์ตรวจจับภาพ VEX IQ AI สามารถจดจำได้ ลายเซ็นเหล่านี้ช่วยให้เซ็นเซอร์ตรวจจับและติดตามวัตถุโดยอิงจากสีของวัตถุ เมื่อตั้งค่าลายเซ็นสีแล้ว เซ็นเซอร์จะสามารถระบุวัตถุที่มีสีเฉพาะนั้นในขอบเขตการมองเห็นได้
ลายเซ็นสีถูกใช้ในบล็อก รับข้อมูลวัตถุ เพื่อประมวลผลและตรวจจับวัตถุสีแบบเรียลไทม์ สามารถกำหนดค่าลายเซ็นสีได้สูงสุด 7 รายการในคราวเดียว

ตัวอย่าง
เมื่อเริ่มต้น
[Display if any objects matching the RED_BOX signature is detected.]
ทำตลอดไป
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
ล้างแถว [1] บนหน้าจอ
[Change the signature to any configured Color Signature.]
รับข้อมูล [RED_BOX v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
พิมพ์ [Color detected!] บนหน้าจอ ▶
รหัสสี#
รหัสสีคือรูปแบบที่มีโครงสร้างซึ่งประกอบด้วยชุดสี 2 ถึง 4 ชุด เรียงลำดับตามที่กำหนด รหัสเหล่านี้ช่วยให้เซ็นเซอร์ตรวจจับภาพ VEX IQ AI สามารถจดจำรูปแบบสีที่กำหนดไว้ล่วงหน้าได้
รหัสสีมีประโยชน์อย่างยิ่งในการระบุวัตถุที่ซับซ้อน การจัดวางให้สอดคล้องกับองค์ประกอบของเกม หรือการสร้างเครื่องหมายเฉพาะสำหรับการนำทางอัตโนมัติ สามารถกำหนดค่ารหัสสีได้สูงสุด 8 รหัสในคราวเดียว

ตัวอย่าง
เมื่อเริ่มต้น
[Display if any objects matching the RED_BLUE code is detected.]
ทำตลอดไป
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
ล้างแถว [1] บนหน้าจอ
[Change the signature to any configured Color Code.]
รับข้อมูล [RED_BLUE v] จาก [AIVision1 v]
ถ้า <[AIVIsion1 v] พบวัตถุ?> แล้ว
พิมพ์ [Code detected!] บนหน้าจอ ▶
การตั้งค่า#
ตั้งค่าวัตถุ AI Vision รายการ#
บล็อกสแต็ก set AI Vision object item จะกำหนดว่าควรใช้รายการใดในชุดข้อมูล
ตั้งรายการวัตถุ [AIVision1 v] เป็น (1)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
รายการ |
หมายเลขของรายการในชุดข้อมูลที่จะใช้ |
ตัวอย่าง
เมื่อเริ่มต้น
[Display the largest detected AprilTag ID.]
ทำตลอดไป
รับข้อมูล [AprilTag IDs v] จาก [AIVision1 v]
ล้างแถว [1] บนหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ตั้งรายการวัตถุ [AIVision1 v] เป็น (จำนวนวัตถุ [AIVision1 v])
พิมพ์ (วัตถุ [AIVision1 v] [tagID v]) บนหน้าจอ ▶
ค่านิยม#
วัตถุ AI Vision มีอยู่จริง#
บล็อก Boolean AI Vision object exists จะรายงานว่าตรวจพบวัตถุใด ๆ ในชุดข้อมูลหรือไม่
จริง — ชุดข้อมูลประกอบด้วยวัตถุที่ตรวจพบ
เท็จ — ชุดข้อมูลนี้ไม่มีวัตถุใดๆ ที่ตรวจพบ
<[AIVision1 v] พบวัตถุ?>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
บล็อกนี้ไม่มีพารามิเตอร์ |
ตัวอย่าง
เมื่อเริ่มต้น
[Drive forward if an object is detected.]
ทำตลอดไป
รับข้อมูล [การจำแนก AI v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ขับ [ไปข้างหน้า v] เป็น [10] [มม. v] ▶
การนับวัตถุด้วย AI Vision#
บล็อกรายงาน AI Vision object count จะรายงานจำนวนวัตถุที่ตรวจพบในชุดข้อมูลเป็นจำนวนเต็ม
(จำนวนวัตถุ [AIVision1 v])
พารามิเตอร์ |
คำอธิบาย |
|---|---|
บล็อกนี้ไม่มีพารามิเตอร์ |
ตัวอย่าง
เมื่อเริ่มต้น
[Display the total amount of cubes, rings, and balls.]
ทำตลอดไป
ล้างแถว [1] บนหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
รับข้อมูล [การจำแนก AI v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
พิมพ์ (จำนวนวัตถุ [AIVision1 v]) บนหน้าจอ ▶
fine
รอ [0.5] วินาที
คุณสมบัติของวัตถุ AI Vision#
มีคุณสมบัติเก้าประการที่รวมอยู่ในแต่ละวัตถุ (แสดงด้านล่าง) ที่จัดเก็บไว้หลังจากใช้บล็อก รับข้อมูลวัตถุ
(วัตถุ [AIVision1 v] [ความกว้าง v])
ค่าคุณสมบัติทั้งหมด ยกเว้น tagID อธิบายตำแหน่งและขนาดของวัตถุที่ตรวจพบในมุมมองของเซ็นเซอร์ตรวจจับภาพ VEX IQ AI ณ ขณะที่ใช้บล็อก รับข้อมูลวัตถุ ค่าเหล่านี้วัดเป็นพิกเซล โดยอิงจากความละเอียด 320 x 240 พิกเซลของเซ็นเซอร์
พารามิเตอร์ |
คำอธิบาย |
|---|---|
คุณสมบัติ |
จะใช้คุณสมบัติใดของวัตถุที่ตรวจพบ: |
ความกว้าง#
คุณสมบัติ width จะรายงานความกว้างของวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 1 ถึง 320
(วัตถุ [AIVision1 v] [ความกว้าง v])
ตัวอย่าง
เมื่อเริ่มต้น
[Drive towards an object until its width is larger than 100 pixels.]
ทำตลอดไป
รับข้อมูล [การจำแนก AI v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ถ้า <(วัตถุ [AIVision1 v] [ความกว้าง v]) [math_less_than v] [100]> แล้ว
ขับ [ไปข้างหน้า v]
fine
มิฉะนั้น
หยุดขับ
ความสูง#
คุณสมบัติ height จะรายงานความสูงของวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 1 ถึง 240
(วัตถุ [AIVision1 v] [ความสูง v])
ตัวอย่าง
เมื่อเริ่มต้น
[Drive towards an object until its height is larger than 100 pixels.]
ทำตลอดไป
รับข้อมูล [การจำแนก AI v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ถ้า <(วัตถุ [AIVision1 v] [ความสูง v]) [math_less_than v] [100]> แล้ว
ขับ [ไปข้างหน้า v]
fine
มิฉะนั้น
หยุดขับ
เซ็นเตอร์เอ็กซ์#
คุณสมบัติ centerX จะแสดงค่าพิกัด x ของจุดศูนย์กลางของวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 0 ถึง 320
(วัตถุ [AIVision1 v] [centerX v])
ตัวอย่าง
เมื่อเริ่มต้น
[Turn slowly until an object is centered in front of the robot.]
ตั้งความเร็วเลี้ยวเป็น [30] [% v]
เลี้ยว [ขวา v]
ทำตลอดไป
รับข้อมูล [การจำแนก AI v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ถ้า <[140] [math_less_than v] (วัตถุ [AIVision1 v] [centerX v]) [math_less_than v] [180]> แล้ว
หยุดขับ
เซ็นเตอร์วาย#
คุณสมบัติ centerY จะแสดงค่าพิกัด y ของจุดศูนย์กลางของวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 0 ถึง 240
(วัตถุ [AIVision1 v] [centerY v])
ตัวอย่าง
เมื่อเริ่มต้น
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
ทำตลอดไป
รับข้อมูล [การจำแนก AI v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ถ้า <(วัตถุ [AIVision1 v] [centerY v]) [math_less_than v] [140]> แล้ว
ขับ [ไปข้างหน้า v]
fine
มิฉะนั้น
หยุดขับ
มุม#
คุณสมบัติ angle รายงานทิศทางของรหัสสีหรือรหัส AprilTag ที่ตรวจพบเป็นจำนวนเต็มในหน่วยองศาตั้งแต่ 0 ถึง 359
(วัตถุ [AIVision1 v] [มุม v])
ตัวอย่าง
เมื่อเริ่มต้น
[Slide left or right depending on how the Color Code is rotated.]
ทำตลอดไป
รับข้อมูล [RED_BLUE v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ถ้า <[50] [math_less_than v] (วัตถุ [AIVision1 v] [มุม v]) [math_less_than v] [100]> แล้ว
ขับ [ขวา v]
มิฉะนั้นถ้า <[270] [math_less_than v] (วัตถุ [AIVision1 v] [มุม v]) [math_less_than v] [330]> แล้ว
ขับ [ซ้าย v]
มิฉะนั้น
หยุดขับ
fine
มิฉะนั้น
หยุดขับ
ออริจินเอ็กซ์#
คุณสมบัติ originX รายงานค่าพิกัด x ของมุมบนซ้ายของกรอบล้อมรอบวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 0 ถึง 320
(วัตถุ [AIVision1 v] [originX v])
ตัวอย่าง
เมื่อเริ่มต้น
[Display if an object is to the left or the right.]
ทำตลอดไป
ล้างแถว [1] บนหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
รับข้อมูล [การจำแนก AI v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ถ้า <(วัตถุ [AIVision1 v] [originX v]) [math_less_than v] [160]> แล้ว
พิมพ์ [To the left!] บนหน้าจอ ▶
มิฉะนั้น
พิมพ์ [To the right!] บนหน้าจอ ▶
fine
รอ [0.5] วินาที
ออริจินวาย#
คุณสมบัติ originY รายงานค่าพิกัด y ของมุมบนซ้ายของกรอบล้อมรอบวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 0 ถึง 240
(วัตถุ [AIVision1 v] [originY v])
ตัวอย่าง
เมื่อเริ่มต้น
[Display if an object is close or far from the robot.]
ทำตลอดไป
ล้างแถว [1] บนหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
รับข้อมูล [การจำแนก AI v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ถ้า <(วัตถุ [AIVision1 v] [originY v]) [math_less_than v] [80]> แล้ว
พิมพ์ [Far!] บนหน้าจอ ▶
มิฉะนั้น
พิมพ์ [Close!] บนหน้าจอ ▶
fine
รอ [0.5] วินาที
แท็กไอดี#
คุณสมบัติ tagID รายงานหมายเลขประจำตัวของ AprilTag ID ที่ตรวจพบเป็นจำนวนเต็ม
(วัตถุ [AIVision1 v] [tagID v])
ตัวอย่าง
เมื่อเริ่มต้น
[Drive forward when AprilTag ID 0 is detected.]
ทำตลอดไป
รับข้อมูล [AprilTag IDs v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ถ้า <(วัตถุ [AIVision1 v] [tagID v]) [math_equal v] [0]> แล้ว
ขับ [ไปข้างหน้า v]
มิฉะนั้น
หยุดขับ
fine
รอ [0.5] วินาที
วัตถุ AI Vision คืออะไร?#
บล็อก AI Vision object is? จะส่งค่าบูลีนที่ระบุว่าวัตถุที่ตรวจพบตรงกับการจำแนกประเภทที่กำหนดหรือไม่
ถูกต้อง — รายการในชุดข้อมูลคือวัตถุเฉพาะนั้น
เท็จ — รายการในชุดข้อมูลไม่ใช่วัตถุเฉพาะนั้น
<วัตถุ [AIVision1 v] เป็น [BlueBall v]?>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
วัตถุ |
จะใช้ การจำแนกประเภท AI ใดในการเปรียบเทียบรายการนี้ |
ตัวอย่าง
เมื่อเริ่มต้น
[Display if a Blue Cube is detected.]
ทำตลอดไป
รับข้อมูล [การจำแนก AI v] จาก [AIVision1 v]
ล้างแถว [1] บนหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ถ้า <วัตถุ [AIVision1 v] เป็น [BlueCube v]?> แล้ว
พิมพ์ [Cube detected!] บนหน้าจอ ▶
รอ [0.5] วินาที
วัตถุ AI Vision คือ AprilTag ใช่หรือไม่?#
บล็อก AI Vision object is AprilTag? จะส่งค่าบูลีนเพื่อระบุว่าวัตถุที่ตรวจพบนั้นเป็น AprilTag ที่ตรงกับ ID ที่กำหนดหรือไม่
ถูกต้อง — วัตถุที่ตรวจพบคือ AprilTag ที่มี ID ที่ระบุไว้
เท็จ — วัตถุที่ตรวจพบไม่ใช่ AprilTag ที่มี ID ที่กำหนด
<วัตถุ [AIVision1 v] เป็น AprilTag [0]?>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
รหัสแท็กเดือนเมษายน |
หมายเลขประจำตัวที่จะใช้เปรียบเทียบกับ AprilTag ที่ตรวจพบ |
ตัวอย่าง
เมื่อเริ่มต้น
[Report if AprilTag 3 is detected.]
ทำตลอดไป
ล้างหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
รับข้อมูล [AprilTag IDs v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ถ้า <วัตถุ [AIVision1 v] เป็น AprilTag [3]?> แล้ว
พิมพ์ [That is 3!] บนหน้าจอ ▶
มิฉะนั้น
พิมพ์ [That isn't 3!] บนหน้าจอ ▶
fine
fine
รอ [0.1] วินาที
วัตถุ AI Vision คือ AprilTag ID ใช่หรือไม่?#
บล็อก AI Vision object is AprilTag ID? จะส่งค่าบูลีนที่ระบุว่า AprilTag ID ที่ตรวจพบตรงกับ ID ที่ระบุหรือไม่
ถูกต้อง — รหัส AprilTag คือตัวเลข
ไม่ถูกต้อง — รหัส AprilTag ไม่ใช่ตัวเลข
<[AIVision1 v] object is AprilTag ID [1] ?>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
หมายเลขประจำตัว AprilTag |
ตัวเลขที่จะนำไปเปรียบเทียบกับหมายเลข AprilTag ID ที่ตรวจพบ |
ตัวอย่าง:
เมื่อเริ่มต้น
[Report if AprilTag ID 3 is detected.]
ทำตลอดไป
ล้างหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
รับข้อมูล [AprilTag IDs v] จาก [AIVision1 v]
ถ้า <[AIVision1 v] พบวัตถุ?> แล้ว
ถ้า <[AIVision1 v] object is AprilTag ID [3] ?> แล้ว
พิมพ์ [That is 3!] บนหน้าจอ ▶
มิฉะนั้น
พิมพ์ [That isn't 3!] บนหน้าจอ ▶
fine
fine
รอ [0.1] วินาที