วันอังคารที่ 25 มีนาคม พ.ศ. 2557

ทักษะการหมุนรอบบอลของหุ่นยนต์แตะฟุตบอล

    ทักษะหนึ่งของหุ่นยนต์แตะฟุตบอล คือ ความสามารถในการหมุนตัวรอบบอลได้ ด้วยเหตุผลเมื่อหุ่นยนต์เข้าถึงบอลแล้ว หากตำแหน่งของหุ่นยนต์ ไม่เหมาะสมที่จะแตะบอลไปที่ประตู เพราะตัวหุ่นยนต์ไม่ตรงกับตำแหน่งประตู จึงต้องมีการหมุนตัวไปหาประตู แต่การหมุนตัวไปหาประตู บอลจะต้องยังคงอยู่ระหว่างตัวหุ่นยนต์กับประตู เมื่อหมุนไปตรงประตูจะแตะบอลได้ทันที


 


การหมุนด้วยการเซตท่าคงที่
    ในการหมุนรอบบอลนั้น สามารถที่จะกำหนดท่าทางการหมุนได้ แต่จากที่พบถ้าเป็นการกำหนดท่าทางการหมุนของหุ่นยนต์ เมื่อหุ่นยนต์หมุนไปแล้ว ตำแหน่งของตัวหุ่นยนต์กับบอลโดยมากจะไม่ตรงกันหรือระยะห่างเปลี่ยนไป ทำให้หุ่นยนต์ต้องปรับตัวใหม่อีกครั้ง เหตุผลที่เมื่อหมุนไปแล้วไม่ตรง เพราะพื้นสนามและแรงกำลังของหุ่นยนต์เปลี่ยนแปลงไป เพราะฉะนั้นการเซตท่าการหมุนจึงไม่เหมาะสม

การหมุนด้วยการคำนวณการหมุน
    ในการทดลองนี้ได้ ใช้วิธีการหมุนโดยการคำนวณค่าระยะห่างระหว่างบอลกับตัวหุ่นยนต์ไปพร้อม ๆ กันกับท่าการหมุนเริ่มต้นและปรับเปลี่ยนการหมุนให้เหมาะสมได้ตลอดเวลาของการ หมุน





การทดลองครั้งที่ 1. ศึกษาและเซตท่าการหมุนเริ่มต้น
    การทดลองนี้จะเป็นการศึกษาเรื่องการเคลื่อนที่ของหุ่นยนต์ในลักษณะเป็นวงกลมก่อน ว่าทำได้อย่างไร พารามิเตอร์ที่เกี่ยวข้องกับการหมุนตัวของหุ่นยนต์มีอะไรบ้าง

ผลการทดลองที่ได้
    เราจะได้ค่าพารามิเตอร์แต่ละตัวที่ใช้ในการหมุนของตัวหุ่นยนต์


การทดลองครั้งที่ 2. การทดลองหมุนรอบบอล
    โดยการคำนวณเพื่อรักษาระยะห่างระหว่างตัวหุ่นยนต์กับบอลให้มีระยะห่างที่คงที่และสม่ำเสมอตลอดเวลาของการหมุน

ผลการทดลองที่ได้
   เราจะได้การหมุนของตัวหุ่นยนต์ที่รักษาระยะห่างของตัวหุ่นยนต์ได้ตลอดเวลาของการหมุน


การทดลองครั้งต่อไป (ครั้งที่ 3.) การหาค่าแฟกเตอร์ที่เหมาะสม
    การทดลองครั้งนี้ จะเป็นการหาค่าแฟกเตอร์ ที่เหมาะสม เพื่อที่จะให้หุ่นยนต์สามารถเคลื่อนที่รอบบอลได้อย่างแม่นยำและรวดเร็ว โดยคงความสามารถในการรักษาระยะห่างระหว่างหุ่นยนต์กับบอลได้อย่างคงที่ และสามารถปรับตำแหน่งระยะห่างของตัวหุ่นยนต์กับบอลได้ตลอดเวลาที่ต้องการ

หมายเหตุ DARwIn-OP ได้รับการสนับสนุนจากบริษัท INEX

วันอาทิตย์ที่ 2 มีนาคม พ.ศ. 2557

GameController สำหรับหุ่นยนต์แตะฟุตบอล


การแข่งขันหุ่นยนต์แตะฟุตบอลนั้น หุ่นยนต์จะต้องมีความสามารถในการทำงานแบบอัตโนมัติ และจะมีซอฟต์แวร์มาควบคุมการทำงานเพื่อบอกสถานะของเกมส์การแข่งขันในขณะนั้น ที่เรียกว่า Game Controller ดังรูปที่ 1. โดยที่โปรแกรมดังกล่าวจะให้ข้อมูลข่าวสารของเกมส์การแข่งขั้นทั้งหมด เช่น หุ่นยนต์อยู่ในสถานะการเริ่มต้น ความพร้อม ติดตั้งระบบ เล่น เป็นต้น
รูปที่ 1. Game Controller

 โดยหลัก ๆ แล้วหุ่นยนต์จะเน้นรับข้อมูล ตามรูปที่ 2 เป็นหลัก ซึ่งเป็นข้อมูลสำคัญ(หัวใจ) เพราะเป็นข้อมูลที่บอกว่า หุ่นยนต์ควรเริ่มต้นเล่นหรือหยุดเล่นได้หรือยัง
 
รูปที่ 2. การส่งสถานะการทำงานของเกมคอนโทรลเลอร์ระหว่างการแข่งขัน

ซอร์สโค้ดที่มาพร้อมกับตัวดาร์วินโอพี ยังไม่ได้ให้ซอร์สโค้ดที่เกี่ยวข้องกับการรับข้อมูลของเกมส์คอนโทรลเลอร์ ซึ่งจะส่งข้อมูลผ่าน Network มาในรูปแบบโปรโตคอล UDP ในส่วนการรับข้อมูลนี้ หากเราใช้ดาร์วินโอพีก็คงต้องพัฒนาขึ้นมาเอง แต่ในซอร์สโค้ดของดาร์วินโอพี จะให้ซอร์สโค้ดที่เกี่ยวข้องกับการติดต่อในรูปแบบ TCP/IP มาให้ในตัวอย่าง โปรแกรมซอร์สโค้ด roboplus ที่ใช้ในการเชื่อมต่อระหว่าง DARwIn-OP กับโปรแกรม Roboplus เราสามารถใช้ซอร์สโปรแกรมนี้เป็นแนวทางในการศึกษาได้ หรือจะให้ง่ายกว่านั้นให้ศึกษาการเขียนโปรแกรมติดต่อ network udp จากอินเตอร์เน็ตจะมีตัวอย่างง่าย ๆ ให้ศึกษามากมาย ลองดูครับไม่ใช่เรื่องยากสำหรับการรับข้อมูลจาก GameController