เตรียมพร้อมสำหรับ Vision Data Challenge - C++
กล่องเครื่องมือสำหรับครู
-
วัตถุประสงค์ของกิจกรรมนี้
Vision Sensor ให้ข้อมูลหลากหลายที่สามารถนำไปใช้ในโครงการได้ คำสั่ง Sensing ช่วยให้ผู้ใช้สามารถทำการถ่ายสแนปช็อตของโครงการ ตัดสินใจว่าวัตถุนั้นมีอยู่หรือไม่ ตัดสินใจว่ามีอยู่จำนวนเท่าใด กำหนดพิกัด X และ Y ศูนย์กลางของวัตถุภายในสแนปช็อตของ Vision Sensor และกำหนดความกว้างและความสูงของวัตถุเป็นพิกเซลภายในสแนปช็อต กิจกรรมนี้จะแนะนำคำแนะนำที่เกี่ยวข้องทั้งหมดที่จำเป็นสำหรับการรวบรวมข้อมูลนั้นในการเตรียมพร้อมสำหรับ Vision Data Challenge
ต่อไปนี้เป็นโครงร่างของ Vision Data Challenge ของ Rethink:
-
ทบทวนชุดข้อมูลสมบูรณ์ที่รวบรวมจากคำสั่งการตรวจจับของเซ็นเซอร์วิชั่น
-
กรอกข้อมูลชุดข้อมูลบางส่วนที่รวบรวมจาก Vision Sensor เกี่ยวกับสแนปช็อตที่แตกต่างกัน
-
สร้างชุดข้อมูลโดยอิงจากสแนปช็อตและคำแนะนำการตรวจจับของเซ็นเซอร์วิชั่น
คำแนะนำการตรวจจับของเซ็นเซอร์วิชั่น
VEXcode V5 มีคำสั่งการตรวจจับสำหรับเซ็นเซอร์วิชั่น สองอันแรกคุณได้ใช้ในส่วน Play แล้วเพื่อถ่ายภาพและตรวจสอบว่าวัตถุนั้นมีอยู่หรือไม่
ในรูปด้านล่าง คุณจะเห็นว่าภาพสแน็ปช็อต ได้จับภาพสแน็ปช็อต GREENBOX ไว้ วัตถุ GREENBOX ได้รับการระบุในสแน็ปช็อต ดังนั้นคำตอบว่าวัตถุนี้มีอยู่จริงหรือไม่ก็คือ TRUE
มาดูคำสั่งการตรวจจับอื่นๆ เหล่านี้และสิ่งที่ค่าต่างๆ บอกกับเรา

- คำสั่ง object count บอกให้เราทราบว่ามี GREENBOX object กี่ตัวในสแน็ปช็อต ที่นี่ตรวจพบเพียง 1 แห่ง
- ค่า X ตรงกลางบอกเราว่าวัตถุ GREENBOX อยู่ทางซ้ายหรือทางขวาของจุดศูนย์กลางของหุ่นยนต์ โปรดจำไว้ว่าควรติดตั้งเซนเซอร์วิชั่นไว้ตรงกลางของหุ่นยนต์โดยให้หันไปข้างหน้า ดังนั้น มุมมองของสแน็ปช็อตจึงเท่ากับมุมมองของหุ่นยนต์
- หากจุดศูนย์กลาง X มากกว่า 157.5 วัตถุจะอยู่ทางขวาของจุดศูนย์กลางของหุ่นยนต์
- ถ้าจุดศูนย์กลาง X น้อยกว่า 157.5 วัตถุจะอยู่ทางซ้ายของจุดศูนย์กลางของหุ่นยนต์
- ค่า Y ตรงกลางจะบอกให้เราทราบว่า GREENBOX สูงกว่าหรือต่ำกว่าจุดศูนย์กลางของหุ่นยนต์
- หากจุดศูนย์กลาง Y มากกว่า 105.5 วัตถุนั้นจะต่ำกว่าจุดศูนย์กลางของหุ่นยนต์
- ถ้าจุดศูนย์กลาง Y น้อยกว่า 105.5 วัตถุจะสูงกว่าจุดศูนย์กลางของหุ่นยนต์
- ค่าความกว้างและความสูงบอกเราว่า GREENBOX อยู่ห่างจากหุ่นยนต์แค่ไหน
- วัตถุที่มีขนาดเท่ากันจะมีความกว้างและความสูงมากขึ้นเมื่อเข้าใกล้หุ่นยนต์
กล่องเครื่องมือสำหรับครู
-
ทำไมต้องอ่านหนังสือเล่มนี้?
ข้อมูลวิธีใช้ใน VEXcode V5 ยังให้ข้อมูลเกี่ยวกับคำสั่งด้วย แต่ที่นี่ ข้อมูลที่รวบรวมจะถูกกำหนดบริบทตามที่ข้อมูลแจ้งให้ผู้ใช้ทราบโดยเฉพาะเกี่ยวกับอ็อบเจ็กต์ในสแนปช็อต
หมายเหตุ:
-
ค่า centerX และ centerY ของสแนปช็อตทั้งหมดจะถูกใช้เพื่อกำหนดว่าวัตถุจะอยู่ทางซ้าย/ขวาหรืออยู่เหนือ/ใต้จุดศูนย์กลางของหุ่นยนต์ คำนวณได้โดยการหารจำนวนพิกเซลทั้งหมดบนแกนนั้นด้วย 2 (เช่น ศูนย์กลาง X ของสแน็ปช็อต = 315 / 2 = 157.5)
เราสามารถถือว่าจุดศูนย์กลางของหุ่นยนต์เป็นจุดเดียวกับจุดศูนย์กลางของภาพรวมของเซ็นเซอร์วิชั่น เนื่องจากควรติดตั้งเซ็นเซอร์วิชั่นไว้ที่กึ่งกลางของหุ่นยนต์และหันไปข้างหน้า ตำแหน่งของเซนเซอร์วิชั่นบนโครงสร้างของหุ่นยนต์และองศาที่เซนเซอร์วิชั่นอาจเอียงลงต้องนำมาพิจารณาเมื่อตัดสินตำแหน่งของวัตถุเทียบกับจุดศูนย์กลางของหุ่นยนต์ (หรือเซนเซอร์วิชั่น)
-
ค่า Y จะเพิ่มขึ้นตามลำดับภายในสแน็ปช็อต ให้แน่ใจว่านักเรียนเข้าใจสิ่งนี้ก่อนที่จะดำเนินการส่วนถัดไป
ค่าศูนย์กลาง X และค่าศูนย์กลาง Y คำนวณได้อย่างไร?
ค่าจะถูกคำนวณตามพิกัดภายในสแนปช็อต ความกว้างและความสูงของวัตถุได้รับการคำนวณไว้แล้ว
เซ็นเซอร์วิชั่นติดตามค่า X และ Y ของมุมซ้ายบนของวัตถุ ด้านล่างนี้พิกัดดังกล่าวคือ (84, 34)

ค่าศูนย์กลาง X และศูนย์กลาง Y สามารถคำนวณได้จากพิกัดของมุมซ้ายบน (84, 34) และค่าความกว้าง (W 140) และความสูง (H 142) ที่ให้ไว้
- ศูนย์X = 140/2 + 84 = 154
- centerX = ครึ่งหนึ่งของความกว้างของวัตถุที่เพิ่มไปยังพิกัด X ด้านซ้ายสุด
- จุดศูนย์กลางY = 142/2 + 34 = 105
- centerY = ครึ่งหนึ่งของความสูงของวัตถุที่เพิ่มไปยังพิกัด Y บนสุด
กล่องเครื่องมือสำหรับครู
-
ปิดท้ายหน้านี้
ให้แน่ใจว่านักเรียนเข้าใจคณิตศาสตร์ที่เกี่ยวข้องกับการหาค่าจุดศูนย์กลาง X และค่าศูนย์กลาง Y พวกเขาจะต้องใช้มันเพื่อกิจกรรมในหน้าถัดไป
ถามว่าค่า (84, 34) และ (W 140, H 142) เกี่ยวข้องกับพิกัดที่ระบุไว้ที่มุมของสแนปช็อตอย่างไร นักเรียนควรตระหนักว่าภาพสแนปช็อตทั้งหมดจะถูกแมปลงในระนาบพิกัดตามจำนวนพิกเซล ค่า X มีช่วงตั้งแต่ 0 ถึง 315 (กว้าง 316 พิกเซล) และค่า Y มีช่วงตั้งแต่ 0 ถึง 211 (สูง 212 พิกเซล) พิกัดและขนาดของวัตถุจะขึ้นอยู่กับจำนวนพิกเซลที่วัตถุใช้ตามแกนเหล่านั้น