สารบัญ:
- ขั้นตอนที่ 1: การเขียนโปรแกรมตามเหตุการณ์คืออะไร
- ขั้นตอนที่ 2: ลอจิกโฟลว์ของการเขียนโปรแกรมตามเหตุการณ์
- ขั้นตอนที่ 3: ผู้สร้างกิจกรรม
- ขั้นตอนที่ 4: ตัวประมวลผลเหตุการณ์
วีดีโอ: การเขียนโปรแกรมตามเหตุการณ์ใน FTC: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ในปีนี้ ทีมงานของเราได้ทำงานมากมายกับการพัฒนาซอฟต์แวร์ที่ขับเคลื่อนด้วยเหตุการณ์สำหรับหุ่นยนต์ของเรา โปรแกรมเหล่านี้ช่วยให้ทีมพัฒนาโปรแกรมอัตโนมัติได้อย่างแม่นยำและแม้กระทั่งเหตุการณ์ tele-op ที่ทำซ้ำได้ เนื่องจากการทำงานของซอฟต์แวร์นั้นซับซ้อน เราจึงตัดสินใจแบ่งปันความรู้ที่เราได้รับจากการพัฒนาโค้ดที่ขับเคลื่อนด้วยเหตุการณ์สำหรับหุ่นยนต์ FTC
ขั้นตอนที่ 1: การเขียนโปรแกรมตามเหตุการณ์คืออะไร
โดยทั่วไปแล้ว โปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์ตาม Techopedia คือการพัฒนาโปรแกรมที่ตอบสนองต่ออินพุตของผู้ใช้ ในแง่นี้ หลายโปรแกรมได้รับการพิจารณาตามเหตุการณ์ ซึ่งรวมถึงโปรแกรม tele-op ของทีม ซึ่งอาศัยอินพุตจากตัวควบคุมที่ควบคุมโดยมนุษย์เพื่อดำเนินการใดๆ อย่างไรก็ตาม ในแง่ของงานที่ทีมของเราทำ การเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์เป็นเรื่องเกี่ยวกับการสร้างซอฟต์แวร์จากอินพุตต่างๆ กล่าวคือ เราบันทึกเหตุการณ์ตามอินพุตของตัวควบคุมและเซ็นเซอร์ จากนั้นเราสามารถจัดคิวเหตุการณ์เหล่านี้และใช้ไฟล์เพื่อเรียกใช้เหตุการณ์ที่บันทึกไว้อีกครั้ง
วิธีการพัฒนาโปรแกรมสำหรับหุ่นยนต์ของเรานี้มีข้อดีหลายประการ:
- ช่วยให้เราสามารถสร้างโปรแกรมอัตโนมัติได้อย่างแม่นยำ เนื่องจากเรากำลังสร้างซอฟต์แวร์แบบเรียลไทม์ขณะดำเนินการ ค่าเซ็นเซอร์ที่รวบรวมและใช้งานจะมีความแม่นยำมาก เนื่องจากมาจากเหตุการณ์ดั้งเดิมโดยตรง
- ช่วยให้เราสร้างโปรแกรมอัตโนมัติได้อย่างรวดเร็ว การสร้างโปรแกรมอัตโนมัติทำได้ง่ายเพียงแค่บันทึกชุดเหตุการณ์และปรับเหตุการณ์ตามความจำเป็น
- ช่วยให้เราสามารถสร้างกระบวนการอัตโนมัติสำหรับ tele-op สำหรับการดำเนินการซ้ำใน tele-op การเขียนโปรแกรมตามเหตุการณ์ช่วยให้เราสามารถบันทึกการกระทำเหล่านี้และกำหนดเหตุการณ์ให้กับปุ่มในระหว่างช่วงเวลาการแข่งขันที่ควบคุมโดยคนขับ เหตุการณ์อัตโนมัติเหล่านี้สามารถได้รับอิทธิพลจากเซ็นเซอร์เพื่อให้สามารถดำเนินการได้อย่างแม่นยำ
ขั้นตอนที่ 2: ลอจิกโฟลว์ของการเขียนโปรแกรมตามเหตุการณ์
ข้อมูลต่อไปนี้แสดงถึงโฟลว์เชิงตรรกะของโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์: สีแดงแสดงถึงการสร้างเหตุการณ์ และสีน้ำเงินแสดงถึงการเรียกของเหตุการณ์ สำหรับการสร้างเหตุการณ์ ลำดับของอินพุตจะถูกนำเข้ามาผ่านการกระทำของหุ่นยนต์และบันทึกเป็นเหตุการณ์ เหตุการณ์เหล่านี้ถูกเขียนลงในไฟล์ สำหรับการเรียกเหตุการณ์ ไฟล์นั้นจะถูกอ่าน และอินพุตจะถูกส่งไปยังตัวประมวลผลเหตุการณ์เพื่อเปลี่ยนรหัสไฟล์เป็นการกระทำของโรบ็อต
ขั้นตอนที่ 3: ผู้สร้างกิจกรรม
ผู้สร้างเหตุการณ์ใช้เพื่อบันทึกการกระทำหรือ "เหตุการณ์" ตามเซ็นเซอร์และปุ่มต่างๆ ขณะที่โรบ็อตดำเนินการในสนาม คลาสผู้สร้างเหตุการณ์กำลังสร้างเหตุการณ์สำหรับแต่ละการกระทำเหล่านั้นแบบขนาน โดยอ้างอิงเหตุการณ์ที่จัดอยู่ในคลาสเหตุการณ์ หลังจากสร้างแล้ว กิจกรรมจะถูกวางในคิวของเหตุการณ์ในคลาสเหตุการณ์: เหตุการณ์แรกจะอยู่ที่จุดสูงสุด จากนั้นเหตุการณ์ที่สองจะอยู่ที่จุดสูงสุดและผลักเหตุการณ์ใดๆ ที่อยู่ใต้เหตุการณ์นั้นลงมา และสิ่งนี้จะดำเนินต่อไปจนกว่าโปรแกรมจะหยุด เมื่อโปรแกรมหยุดทำงาน เหตุการณ์จะถูกส่งไปยังไฟล์รูปแบบที่มนุษย์สามารถอ่านได้ เช่น ไฟล์ JSON ไฟล์นี้สามารถใช้เพื่อปรับปรุงกิจวัตรอัตโนมัติได้ดีขึ้น
โค้ดตัวอย่างด้านบนตั้งค่าพารามิเตอร์สำหรับเหตุการณ์ ซึ่งในกรณีนี้เป็นการเลี้ยวโดยใช้เซ็นเซอร์ IMU จากนั้นเราจัดคิวเหตุการณ์ลงในคิวกิจกรรม สุดท้าย เราตัดทอนเหตุการณ์ ซึ่งโดยพื้นฐานแล้วการรีเซ็ตกิจกรรม เพื่อให้เราสามารถใช้เพื่อจัดคิวกิจกรรมในอนาคต
ขั้นตอนที่ 4: ตัวประมวลผลเหตุการณ์
คลาสเหตุการณ์ใช้ไฟล์ที่มนุษย์สามารถอ่านได้ซึ่งสร้างขึ้นในคลาสตัวสร้างเหตุการณ์และทำทุกอย่างที่แต่ละเหตุการณ์ในคิวบอกให้ทำโดยการเรียกเมธอดที่สรุปไว้ในคลาสตัวประมวลผลเหตุการณ์ คลาสตัวประมวลผลเหตุการณ์จะบอกหุ่นยนต์ว่าต้องเล่นเหตุการณ์ใดซ้ำ ไม่ว่าจะเป็นเหตุการณ์ "ขับไปข้างหน้า" ง่ายๆ หรือเหตุการณ์ที่ซับซ้อนที่เต็มไปด้วยระยะทาง การเลี้ยว และการยิงกราด โปรเซสเซอร์จะเล่นซ้ำเหตุการณ์ใดๆ ที่ได้รับ กระบวนการนี้มีประโยชน์มากในระหว่างการทำงานอัตโนมัติ เนื่องจากทีมสามารถบันทึกเซ็นเซอร์และการดำเนินการ Tele-Op ก่อนจับคู่ จากนั้นจึงเล่นซ้ำเหตุการณ์แบบอัตโนมัติ กระบวนการนี้เรียกว่า Memory Replay ซึ่งช่วยให้โปรแกรมอัตโนมัติสามารถกำหนดค่าได้ 100% ผ่านไฟล์เดียว เมื่อสร้างผู้สร้างเหตุการณ์และผู้ประมวลผลแล้ว ทีมงานก็สามารถเปลี่ยนกิจวัตรอัตโนมัติผ่านไฟล์ที่มนุษย์อ่านได้
ตัวอย่างข้างต้นเริ่มต้นด้วยการตรวจสอบไฟล์ JSON สำหรับเหตุการณ์ จากนั้นตรวจสอบเหตุการณ์นั้นโดยใช้คำสั่ง case เพื่อดูว่าเป็นเหตุการณ์ประเภทใด ในกรณีนี้ เป็นการเลี้ยวโดยใช้เซ็นเซอร์ IMU เมื่อสามารถบอกได้ว่าเป็นการเลี้ยวโดยใช้เหตุการณ์ IMU ก็จะจัดการกับการประมวลผลเหตุการณ์ ซึ่งมักจะเกี่ยวข้องกับการเรียกใช้โค้ดที่เหตุการณ์มาจากการใช้ตัวแปรจากเหตุการณ์ ส่งต่อเพื่อจำลองเหตุการณ์ที่เคยทำมาก่อน
แนะนำ:
การสร้างหุ่นยนต์ FTC โดยใช้วิธีการที่ไม่ใช่แบบดั้งเดิม: 4 ขั้นตอน
การสร้างหุ่นยนต์ FTC โดยใช้วิธีการที่ไม่ใช่แบบดั้งเดิม: หลายทีมที่เข้าร่วมใน FIRST Tech Challenge จะสร้างหุ่นยนต์ของตนโดยใช้ชิ้นส่วน TETRIX ซึ่งแม้จะใช้งานได้ง่าย แต่ก็ไม่อนุญาตให้มีเสรีภาพหรือวิศวกรรมอุตสาหการที่ยิ่งใหญ่ที่สุด ทีมงานของเราตั้งเป้าหมายที่จะหลีกเลี่ยงส่วน TETRIX
หุ่นยนต์อุตสาหกรรมสำหรับอุตสาหกรรม Técnicas De Cableado FTC - กลยุทธ์และข้อดี: 4 ขั้นตอน
Técnicas De Cableado Industrial Para Robots FTC - Métodos และ Consejos: Muchos รองรับ FTC confían en las técnicas y herramientas de cableado para configurar la electrónica para sus robots. การคว่ำบาตรบาป, estos métodos y materiales básicos no bastarán para requisitos de cableado más avanzados. Ya sea que su eq
Sản Xuất Robot FTC Sử Dụng Phương Pháp Phi Truyền Thống: 4 ขั้นตอน
Sản Xuất Robot FTC Sử Dụng Phương Pháp Phi Truyền Thống: Nhiều đội tham gia trong FTC chế tạo หุ่นยนต์ của họ bằng các bộ phận TETRIX, mặc dù ngễ ệ dụ dụ dụ dụ Đội của chúng tôi đã đặt mục tiêu để tránh TETRIX, tạo ra một robot từ đầu và sử dụng “triết lý thiết k
La Fabricación De Robots Del FTC Usando Métodos No Tradicionales: 4 ขั้นตอน
La Fabricación De Robots Del FTC Usando Métodos No Tradicionales: Muchos equipos que participan en el First Tech Challenge construyen sus robots utilizando piezas de TETRIX que, aunque sean fáciles de trabajar, no permiten libertad o sin ingeniería. Nuestro equipo ha hecho nuestro objetivo de ev
เทคนิคการเดินสายไฟอุตสาหกรรมสำหรับหุ่นยนต์ FTC - วิธีการและเคล็ดลับ: 4 ขั้นตอน
เทคนิคการเดินสายไฟอุตสาหกรรมสำหรับหุ่นยนต์ FTC - วิธีการและคำแนะนำ: ทีม FTC จำนวนมากใช้เทคนิคการเดินสายพื้นฐานและเครื่องมือในการตั้งค่าอุปกรณ์อิเล็กทรอนิกส์สำหรับหุ่นยนต์ของตน อย่างไรก็ตาม วิธีการและวัสดุพื้นฐานเหล่านี้จะไม่เพียงพอสำหรับข้อกำหนดในการเดินสายขั้นสูง ไม่ว่าทีมของคุณจะใช้เซ็นเซอร์ขั้นสูงหรือไม่