มีคนถามมาเกี่ยวกับหุ่นลิฟท์ที่ผมโพสไว้ ว่ามันใช้กล้องยังไง และคิดว่าอีกหลายๆคนคงยังไม่เคยทำ ผมก็เลยขอสาธิตวิธีการใช้กล้องเบื้องต้นใน robolab นะครับ
อันนี้จะเป็นการใช้กล้องเป็น sensor จับสีในภาพ
เริ่มกันเลยนะครับ เปิด inventor lv4 ขึ้นมา จากนั้น ไปที่ menu project >> vision center
( vision center นี้เป็นฟังก์ชั่น สำหรับจัดการเรื่อง computer vision ใน robolab ครับ )
เมื่อเปิด vision center ขึ้นมา จะเป็นหน้าตาแบบนี้นะครับ

จากนั้นเลือกที่ define sensor ก็จะได้หน้านี้ขึ้นมานะครับ

คลิ๊กที่แถบสีเทาใต้ภาพ จะเป็นการเลือกสี สมมุติว่าเลือกสีแดงขึ้นมา
และทางด้านขวาของภาพให้เลือกเป็น pixel average
เสร็จแล้วกดที่เครื่องหมายถูกขวาล่างทำการตั้งชื่อแล้ว ok
จะกลับมาที่หน้า vision center
ติ๊กเครื่องหมายถูกที่ container สีแดง จากนั้นให้เลือก sensor ที่เราสร้างขึ้นมาเมื่อกี้ ตรง choose camera sensor type
ตรง connection speed ให้เลือกเต็มไปเลยจะได้ไวๆ (ถ้าแบบครี่งนึงจะช้าลงหน่อย แต่สามารถ capture ภาพได้ )
ถ้าอยากดูภาพจากกล้องด้วย sensor ที่เราเลือกเป็น container ที่เราใช้ ตรง PLANE เมื่อทำเสร็จแล้วก็จะเป็นประมาณภาพนี้นะครับ

สังเกตุหลัง container จะมีตัวเลขอยู่ นั่นคือค่าของ container ขณะนั้น เป็นค่าสีที่ได้จากกล้อง (ค่านี้ขึ้นอยู่กับการ define sensor ของเรา)
เรียบร้อยสำหรับการ setup vision center ทีนี้ก็จะเป็นการโปรแกรม
การใช้ camera นั้น ใน robolab จะมีคำสั่งให้ใช้อยู่แล้ว เช่น
structure -> fork -> camera sensor fork
wait for -> wait for increase/decrease in camera sensor เป็นต้น
จากนั้นก็ใช้ modifier เป็น container ที่เราเลือกใน vision center (ถ้าทำตามด้านบน ก็คือ สีแดง)
เรียบร้อย จากนั้น จะใช้กล้องให้หุ่นมันทำอะไรก็ลองเขียนกันดูนะครับ
ตัวอย่างโปรแกรม

อันนี้จะเป็นโปรแกรมของหุ่น door sentry ก็คือ ถ้ามีวัตถุสีแดงผ่านกล้องเข้ามาจะเปิดประตูให้เข้า ถ้าไม่ใช้ จะดัง ปิ๊ดๆๆ ไม่เปิดประตูให้
เมื่อเขียนโปรแกรมเสร็จ setup vision center เรียบร้อย ก็ทำการรันได้เลย
เมื่อรันแล้วจะขึ้นหน้าจอ vision center ให้เราควบคุม
ที่นี้เป็นเรื่องของ hardware ก็คือ สมมุติว่ากล้องที่ใช้ เป็น usb ก็ต้องต่อเข้ากับเครื่อง และเครื่องต้อง connect กับ RCX หรือ NXT ด้วย (ไม่ว่าจะเป็น IR usb หรือ bluetooth) เพื่อให้ เครื่อง process ภาพ แล้วส่งค่าของ container ที่ได้ ไปยัง controller
ถ้าเป็นหุ่นที่เคลื่อนที่ได้แล้วใช้ IR คงวุ่นน่าดู
นี่ก็เป็นเพียงตัวอย่างเล็กๆน้อยๆนะครับ เรื่องของ computer vision ยังมีอีกมากมาย เช่น ให้หุ่น detect ว่ามีวัตถุ อยู่ตรงไหน หรือ วัตถุมีลักษณะอย่างไร อะไรประมาณนี้
การใช้ computer vision สำหรับหุ่น RCX หรือ NXT นั้นไม่ได้มีแค่ใน robolab นะครับ วันหลังจะลองหาของใหม่มาครับ
3 การตอบรับ so far ↓
นิรนาม // สิงหาคม 11, 2007 ที่ 11:35 am
..
HeeSon // มีนาคม 12, 2008 ที่ 5:17 pm
เราเพิ่งไปทำมาเลยหุ่นยนต์rololabเนี่ย
สนุกๆแต่ว่ามันก้มีขั้นตอนเยอะนะ
กว่าจะเลี้ยวหรือหมุนแต่ละครั้งได้
แต่มันก้ฝึกสมองได้มากเลยหละ
^^
ชอบsencerแสงที่สุด
มัด // กันยายน 29, 2008 ที่ 4:41 am
อยากทราบวิธีใช้ บลูทูธ ช่วยตอบด้วย
ขอตัวอย่างการเขียนโปรแกรมครับ