AI Vision#
การแนะนำ#
เซ็นเซอร์ AI Vision ของหุ่นยนต์เขียนโค้ด VEX AIM ตรวจจับและติดตามวัตถุ สี และรหัส AprilTag ทำให้หุ่นยนต์สามารถวิเคราะห์สภาพแวดล้อม ติดตามวัตถุ และตอบสนองตามข้อมูลภาพที่ตรวจพบได้
เซ็นเซอร์ AI Vision มีความละเอียด 320×240 พิกเซล จุดกำเนิด (0, 0) อยู่ที่มุมบนซ้าย ทำให้จุดศูนย์กลางของเซ็นเซอร์อยู่ที่ (160, 120) ดังแสดงในแผนภาพด้านล่าง:

ด้านล่างนี้คือรายการของบล็อกทั้งหมด:
การดำเนินการ — ควบคุมฟีด AI Vision และบันทึกข้อมูลวัตถุ
AI Vision viewer on screen — เปิดใช้งานหรือปิดใช้งานฟีด AI Vision สดบนหน้าจอของหุ่นยนต์
รับข้อมูลวัตถุ — บันทึกข้อมูลสำหรับลายเซ็นเฉพาะ เช่น สีที่กำหนดค่าไว้ วัตถุที่ฝึกฝนไว้ล่วงหน้า หรือรหัส AprilTag
การตั้งค่า — ปรับแต่งว่าวัตถุที่ตรวจพบใดบ้างที่จะสามารถเข้าถึงได้
ตั้งค่ารายการวัตถุ AI Vision — เลือกวัตถุเฉพาะจากรายการวัตถุที่ตรวจพบ
ค่าที่ส่งคืน — แสดงการมีอยู่ การจำแนกประเภท และคุณสมบัติของวัตถุ
มีวัตถุ — ตรวจสอบว่าหุ่นยนต์กำลังถือวัตถุที่ตรวจพบอยู่หรือไม่
วัตถุ AI Vision มีอยู่ — รายงานว่าตรวจพบวัตถุหรือไม่
AI Vision object is — ตรวจสอบว่าวัตถุที่ตรวจพบตรงกับการจำแนกประเภทที่ระบุหรือไม่
วัตถุ AI Vision คือ AprilTag ID — ตรวจสอบว่า AprilTag ID ที่ตรวจพบตรงกับ ID ที่ระบุหรือไม่
จำนวนวัตถุ AI Vision — รายงานจำนวนวัตถุที่ตรวจพบ
คุณสมบัติของวัตถุ AI Vision — รายงานรายละเอียดต่างๆ เช่น:
การกระทำ#
โปรแกรม AI Vision บนหน้าจอ#
บล็อก AI Vision viewer on screen ใช้สำหรับเปิดหรือปิดการแสดงภาพ AI Vision แบบเรียลไทม์บนหน้าจอของหุ่นยนต์ เมื่อเปิดใช้งาน หน้าจอจะแสดงข้อมูลเซ็นเซอร์แบบเรียลไทม์ ป้องกันไม่ให้ภาพหรือข้อความอื่นๆ ปรากฏขึ้น หากต้องการแสดงเนื้อหาอื่นๆ ให้ใช้บล็อกนี้เพื่อซ่อนภาพที่แสดง
AI Vision [แสดง v] ผู้ชมบนหน้าจอ
พารามิเตอร์ |
คำอธิบาย |
|---|---|
สถานะ |
ควบคุมการแสดงข้อมูลบนหน้าจอของหุ่นยนต์: แสดง จะแสดงข้อมูล ขณะที่ ซ่อน จะซ่อนข้อมูลออกจากหน้าจอ |
ตัวอย่าง
เมื่อเริ่มต้น
[View the AI Vision Sensor's feed for five seconds.]
AI Vision [แสดง v] ผู้ชมบนหน้าจอ
รอ [5] วินาที
AI Vision [ซ่อน v] ผู้ชมบนหน้าจอ
รับข้อมูลวัตถุ#
บล็อกสแต็ก รับข้อมูลวัตถุ จะกรองข้อมูลจากเฟรมของเซ็นเซอร์ AI Vision ให้เหลือเพียงลายเซ็นเดียว ซึ่งเป็นคำอธิบายที่บันทึกไว้ของสิ่งที่เซ็นเซอร์สามารถจดจำได้ เช่น วัตถุที่ได้รับการฝึกฝนล่วงหน้า รหัส AprilTag หรือสีหรือรหัสสีที่กำหนดค่าไว้
ต้องกำหนดค่าสีและรหัสสีในโปรแกรม AI Vision Utility ก่อน จึงจะสามารถใช้งานกับบล็อกนี้ได้
ชุดข้อมูลจัดเก็บวัตถุที่เรียงลำดับจากขนาดใหญ่ที่สุดไปเล็กที่สุดตามความกว้าง โดยเริ่มต้นที่ดัชนี 0 คุณสมบัติของวัตถุแต่ละชิ้นสามารถเข้าถึงได้โดยใช้บล็อก AI Vision object property หากไม่พบวัตถุที่ตรงกัน ระบบจะรายงานชุดข้อมูลว่างเปล่า
รับข้อมูล [ลูกบอลกีฬา v] จาก AI Vision
พารามิเตอร์ |
คำอธิบาย |
|---|---|
ลายเซ็น |
กรองชุดข้อมูลเพื่อให้มีเฉพาะข้อมูลที่มีลายเซ็นที่กำหนดเท่านั้น ลายเซ็นที่ใช้ได้คือ:
|
ตัวอย่าง
เมื่อเริ่มต้น
[Move forward if a sports ball is detected.]
ทำตลอดไป
รับข้อมูล [ลูกบอลกีฬา v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
เคลื่อนที่ [ไปข้างหน้า v] เป็น [10] [มม. v] ▶
ลายเซ็นสี#
ลายเซ็นสี คือสีเฉพาะที่เซ็นเซอร์ AI Vision สามารถจดจำได้ ลายเซ็นเหล่านี้ช่วยให้เซ็นเซอร์ตรวจจับและติดตามวัตถุตามสีของวัตถุนั้น เมื่อกำหนดค่าลายเซ็นสีในโปรแกรม AI Vision Utility แล้ว เซ็นเซอร์จะสามารถระบุวัตถุที่มีสีเฉพาะนั้นในขอบเขตการมองเห็นได้
ลายเซ็นสีถูกใช้ในบล็อก รับข้อมูลวัตถุ เพื่อประมวลผลและตรวจจับวัตถุสีแบบเรียลไทม์

ตัวอย่าง
เมื่อเริ่มต้น
[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] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
พิมพ์ [Color signature detected!] บนหน้าจอ ▶
รหัสสี#
รหัสสีคือรูปแบบที่มีโครงสร้างซึ่งประกอบด้วยชุดสี 2 ถึง 4 ชุด เรียงลำดับตามที่กำหนด เมื่อตั้งค่ารหัสสีในโปรแกรม AI Vision Utility แล้ว เซ็นเซอร์จะสามารถจดจำรูปแบบสีที่กำหนดไว้ล่วงหน้าได้
รหัสสีมีประโยชน์อย่างยิ่งในการระบุวัตถุที่ซับซ้อน การจัดเรียงให้สอดคล้องกับองค์ประกอบของเกม หรือการสร้างเครื่องหมายเฉพาะสำหรับการนำทางอัตโนมัติ

ตัวอย่าง
เมื่อเริ่มต้น
[Display if any objects matching the BlueRed code is detected.]
ทำตลอดไป
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
ล้างแถว [1] บนหน้าจอ
[Change the signature to any configured Color Code.]
รับข้อมูล [BlueRed v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
พิมพ์ [Color code detected!] บนหน้าจอ ▶
การตั้งค่า#
ตั้งค่าวัตถุ AI Vision รายการ#
บล็อกสแต็ก set AI Vision object item จะกำหนดว่าควรใช้รายการใดในชุดข้อมูล
ตั้งรายการวัตถุ AI Vision เป็น (1)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
รายการ |
หมายเลขของรายการในชุดข้อมูลที่จะใช้ |
ตัวอย่าง
เมื่อเริ่มต้น
[Display the width of the smallest detected object.]
ทำตลอดไป
รับข้อมูล [สินค้าทั้งหมด v] จาก AI Vision
ล้างแถว [1] บนหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
ถ้า <AI Vision พบวัตถุ?> แล้ว
ตั้งรายการวัตถุ AI Vision เป็น (จำนวนวัตถุ AI Vision)
พิมพ์ (วัตถุ AI Vision [ความกว้าง v]) บนหน้าจอ ▶
ค่านิยม#
มีวัตถุ#
บล็อกบูลีน has object รายงานว่าหุ่นยนต์ตรวจพบวัตถุกับ Kicker ในปัจจุบันหรือไม่
จริง — หุ่นยนต์มีวัตถุนั้นอยู่แล้ว
เท็จ — หุ่นยนต์ไม่มีวัตถุนั้นอยู่
<มี [ลูกบอลกีฬา v]? :: custom-ai-vision>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
วัตถุ |
วัตถุที่จะตรวจจับโดยใช้ตัวเตะของหุ่นยนต์:
|
ตัวอย่าง
เมื่อเริ่มต้น
[Kick when the robot has a sports ball.]
ทำตลอดไป
ถ้า <มี [ลูกบอลกีฬา v]? :: custom-ai-vision> แล้ว
เตะวัตถุ [กลาง v]
วัตถุ AI Vision มีอยู่จริง#
บล็อกบูลีน AI Vision object exists รายงานว่าตรวจพบวัตถุในชุดข้อมูลหรือไม่
จริง — ชุดข้อมูลประกอบด้วยวัตถุที่ตรวจพบ
เท็จ — ไม่พบวัตถุใดๆ
<AI Vision พบวัตถุ?>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
บล็อกนี้ไม่มีพารามิเตอร์ |
ตัวอย่าง
เมื่อเริ่มต้น
[Move forward if a sports ball is detected.]
ทำตลอดไป
รับข้อมูล [ลูกบอลกีฬา v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
เคลื่อนที่ [ไปข้างหน้า v] เป็น [10] [มม. v] ▶
วัตถุ AI Vision คือ#
บล็อก Boolean AI Vision object is จะรายงานว่าวัตถุที่ตรวจพบตรงกับการจำแนกประเภทที่กำหนดหรือไม่
จริง — รายการในชุดข้อมูลคือวัตถุเฉพาะนั้น
เท็จ — รายการในชุดข้อมูลไม่ใช่วัตถุเฉพาะนั้น
<วัตถุ AI Vision เป็น [ลูกบอลกีฬา v]?>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
วัตถุ |
ควรเปรียบเทียบสิ่งของนี้กับวัตถุใด:
|
ตัวอย่าง
เมื่อเริ่มต้น
[Display if a sports ball is detected.]
ทำตลอดไป
รับข้อมูล [สินค้าทั้งหมด v] จาก AI Vision
ล้างแถว [1] บนหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
ถ้า <AI Vision พบวัตถุ?> แล้ว
ถ้า <วัตถุ AI Vision เป็น [ลูกบอลกีฬา v]?> แล้ว
พิมพ์ [Sports ball detected!] บนหน้าจอ ▶
รอ [0.5] วินาที
วัตถุ AI Vision คือ AprilTag ID#
บล็อกบูลีน AI Vision object is AprilTag ID จะรายงานว่า AprilTag ID ที่ตรวจพบตรงกับ ID ที่ระบุหรือไม่
ถูกต้อง — รหัส AprilTag คือตัวเลข
ไม่ถูกต้อง — รหัส AprilTag ไม่ใช่ตัวเลข
<AI Vision object is AprilTag ID [1] ?>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
รหัสแท็กเดือนเมษายน |
ตัวเลขที่จะนำไปเปรียบเทียบกับหมายเลข AprilTag ID ที่ตรวจพบ |
การนับวัตถุด้วย AI Vision#
บล็อกรายงาน AI Vision object count จะรายงานจำนวนวัตถุที่ตรวจพบในชุดข้อมูลเป็นจำนวนเต็ม
จำนวนวัตถุ AI Vision
พารามิเตอร์ |
คำอธิบาย |
|---|---|
บล็อกนี้ไม่มีพารามิเตอร์ |
ตัวอย่าง
เมื่อเริ่มต้น
[Display the amount of sports balls and barrels.]
ทำตลอดไป
ล้างแถว [1] บนหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
รับข้อมูล [สินค้าทั้งหมด v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
พิมพ์ (จำนวนวัตถุ AI Vision) บนหน้าจอ ▶
fine
รอ [0.5] วินาที
คุณสมบัติของวัตถุ AI Vision#
มีคุณสมบัติเก้าประการที่รวมอยู่ในแต่ละวัตถุ (แสดงด้านล่าง) ที่จัดเก็บไว้หลังจากใช้บล็อก รับข้อมูลวัตถุ
วัตถุ AI Vision [ความกว้าง v]
ค่าคุณสมบัติทั้งหมด ยกเว้น tagID อธิบายถึงตำแหน่ง ขนาด การวางแนว หรือทิศทางของวัตถุที่ตรวจพบ ณ ขณะที่ใช้บล็อก get object data ค่าเหล่านี้วัดเป็นพิกเซลหรือองศา โดยอิงตามความละเอียด 320 x 240 พิกเซลของเซ็นเซอร์

พารามิเตอร์ |
คำอธิบาย |
|---|---|
คุณสมบัติ |
ควรใช้คุณสมบัติใดของวัตถุที่ตรวจพบ: |
ความกว้าง#
คุณสมบัติ width จะรายงานความกว้างของวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 1 ถึง 320
หมายเหตุ: ค่าพิกเซลสัมพันธ์กับระบบพิกัดของเซ็นเซอร์ ดู แผนภาพในบทนำ เพื่อเป็นข้อมูลอ้างอิง
วัตถุ AI Vision [ความกว้าง v]

ตัวอย่าง
เมื่อเริ่มต้น
[Move towards a blue barrel until its width is larger than 100 pixels.]
ทำตลอดไป
รับข้อมูล [ถังสีน้ำเงิน v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
ถ้า <(วัตถุ AI Vision [ความกว้าง v]) [math_less_than v] [100]> แล้ว
เคลื่อนที่ [ไปข้างหน้า v]
fine
มิฉะนั้น
หยุดการเคลื่อนที่ทั้งหมด
ความสูง#
คุณสมบัติ height จะรายงานความสูงของวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 1 ถึง 240
หมายเหตุ: ค่าพิกเซลสัมพันธ์กับระบบพิกัดของเซ็นเซอร์ ดู แผนภาพในบทนำ เพื่อเป็นข้อมูลอ้างอิง
วัตถุ AI Vision [ความสูง v]

ตัวอย่าง
เมื่อเริ่มต้น
[Move towards a blue barrel until its height is larger than 100 pixels.]
ทำตลอดไป
รับข้อมูล [ถังสีน้ำเงิน v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
ถ้า <(วัตถุ AI Vision [ความสูง v]) [math_less_than v] [100]> แล้ว
เคลื่อนที่ [ไปข้างหน้า v]
fine
มิฉะนั้น
หยุดการเคลื่อนที่ทั้งหมด
เซ็นเตอร์เอ็กซ์#
คุณสมบัติ centerX จะแสดงค่าพิกัด x ของจุดศูนย์กลางของวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 0 ถึง 320
หมายเหตุ: ค่าพิกเซลสัมพันธ์กับระบบพิกัดของเซ็นเซอร์ ดู แผนภาพในบทนำ เพื่อเป็นข้อมูลอ้างอิง
วัตถุ AI Vision [centerX v]

ตัวอย่าง
เมื่อเริ่มต้น
[Turn slowly until a blue barrel is centered in front of the robot.]
ตั้งความเร็วเลี้ยวเป็น [30]%
เลี้ยว [ขวา v]
ทำตลอดไป
รับข้อมูล [ถังสีน้ำเงิน v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
ถ้า <[140] [math_less_than v] (วัตถุ AI Vision [centerX v]) [math_less_than v] [180]> แล้ว
หยุดการเคลื่อนที่ทั้งหมด
เซ็นเตอร์วาย#
คุณสมบัติ centerY จะแสดงค่าพิกัด y ของจุดศูนย์กลางของวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 0 ถึง 240
หมายเหตุ: ค่าพิกเซลสัมพันธ์กับระบบพิกัดของเซ็นเซอร์ ดู แผนภาพในบทนำ เพื่อเป็นข้อมูลอ้างอิง
วัตถุ AI Vision [centerY v]

ตัวอย่าง
เมื่อเริ่มต้น
[Move towards a blue barrel until its center y-coordinate is more than 140 pixels.]
ทำตลอดไป
รับข้อมูล [ถังสีน้ำเงิน v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
ถ้า <(วัตถุ AI Vision [centerY v]) [math_less_than v] [140]> แล้ว
เคลื่อนที่ [ไปข้างหน้า v]
fine
มิฉะนั้น
หยุดการเคลื่อนที่ทั้งหมด
ออริจินเอ็กซ์#
คุณสมบัติ originX รายงานค่าพิกัด x ของมุมบนซ้ายของกรอบล้อมรอบวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 0 ถึง 320
หมายเหตุ: ค่าพิกเซลสัมพันธ์กับระบบพิกัดของเซ็นเซอร์ ดู แผนภาพในบทนำ เพื่อเป็นข้อมูลอ้างอิง
วัตถุ AI Vision [originX v]

ตัวอย่าง
เมื่อเริ่มต้น
[Display if an orange barrel is to the left or the right.]
ทำตลอดไป
ล้างแถว [1] บนหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
รับข้อมูล [ถังสีส้ม v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
ถ้า <(วัตถุ AI Vision [originX v]) [math_less_than v] [160]> แล้ว
พิมพ์ [To the left!] บนหน้าจอ ▶
มิฉะนั้น
พิมพ์ [To the right!] บนหน้าจอ ▶
fine
รอ [0.5] วินาที
ออริจินวาย#
คุณสมบัติ originY รายงานค่าพิกัด y ของมุมบนซ้ายของกรอบล้อมรอบวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 0 ถึง 240
หมายเหตุ: ค่าพิกเซลสัมพันธ์กับระบบพิกัดของเซ็นเซอร์ ดู แผนภาพในบทนำ เพื่อเป็นข้อมูลอ้างอิง
วัตถุ AI Vision [originY v]

ตัวอย่าง
เมื่อเริ่มต้น
[Display if an orange barrel is close or far from the robot.]
ทำตลอดไป
ล้างแถว [1] บนหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
รับข้อมูล [ถังสีส้ม v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
ถ้า <(วัตถุ AI Vision [originY v]) [math_less_than v] [80]> แล้ว
พิมพ์ [Far!] บนหน้าจอ ▶
มิฉะนั้น
พิมพ์ [Close!] บนหน้าจอ ▶
fine
รอ [0.5] วินาที
การหมุน#
คุณสมบัติ การหมุน จะรายงานทิศทางของรหัส AprilTag หรือรหัสสีที่ตรวจพบเป็นจำนวนเต็มในหน่วยองศาตั้งแต่ 0 ถึง 359
วัตถุ AI Vision [การหมุน v]

ตัวอย่าง
เมื่อเริ่มต้น
[Slide left or right depending on how the Color Code is rotated.]
ทำตลอดไป
รับข้อมูล [Red_Blue v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
ถ้า <[50] [math_less_than v] (วัตถุ AI Vision [การหมุน v]) [math_less_than v] [100]> แล้ว
เคลื่อนที่ [ขวา v]
มิฉะนั้นถ้า <[270] [math_less_than v] (วัตถุ AI Vision [การหมุน v]) [math_less_than v] [330]> แล้ว
เคลื่อนที่ [ซ้าย v]
มิฉะนั้น
หยุดการเคลื่อนที่ทั้งหมด
fine
มิฉะนั้น
หยุดการเคลื่อนที่ทั้งหมด
แบริ่ง#
คุณสมบัติ ทิศทาง จะรายงานระยะห่างของวัตถุจากจุดศูนย์กลางของมุมมองของเซ็นเซอร์ AI Vision ไปทางซ้ายหรือขวาเป็นองศา ค่า 0 หมายถึงอยู่ตรงกลาง ค่าบวกหมายถึงวัตถุอยู่ทางขวา และค่าลบหมายถึงวัตถุอยู่ทางซ้าย
เมื่อเริ่มต้น
[Keep the blue barrel directly in front of the robot.]
ตั้งความเร็วเลี้ยวเป็น [40]%
ทำตลอดไป
รับข้อมูล [ถังสีน้ำเงิน v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
ถ้า <(วัตถุ AI Vision [ทิศทาง v]) [math_greater_than v] [5]> แล้ว
เลี้ยว [ขวา v]
มิฉะนั้นถ้า <(วัตถุ AI Vision [ทิศทาง v]) [math_less_than v] [-5]> แล้ว
เลี้ยว [ซ้าย v]
มิฉะนั้น
หยุดการเคลื่อนที่ทั้งหมด
แท็กไอดี#
คุณสมบัติ tagID รายงานหมายเลขประจำตัวของ AprilTag ID ที่ตรวจพบเป็นจำนวนเต็ม
วัตถุ AI Vision [tagID v]
ตัวอย่าง
เมื่อเริ่มต้น
[Move forward when AprilTag ID 0 is detected.]
ทำตลอดไป
รับข้อมูล [AprilTag ID 0 v] จาก AI Vision
ถ้า <AI Vision พบวัตถุ?> แล้ว
เคลื่อนที่ [ไปข้างหน้า v]
fine
หยุดการเคลื่อนที่ทั้งหมด