สารบัญ:

การเขียนโปรแกรมตามเหตุการณ์ใน FTC: 4 ขั้นตอน
การเขียนโปรแกรมตามเหตุการณ์ใน FTC: 4 ขั้นตอน

วีดีโอ: การเขียนโปรแกรมตามเหตุการณ์ใน FTC: 4 ขั้นตอน

วีดีโอ: การเขียนโปรแกรมตามเหตุการณ์ใน FTC: 4 ขั้นตอน
วีดีโอ: FTC Programming Part 4: Simple Autonomous 2024, พฤศจิกายน
Anonim
การเขียนโปรแกรมตามเหตุการณ์ใน FTC
การเขียนโปรแกรมตามเหตุการณ์ใน FTC

ในปีนี้ ทีมงานของเราได้ทำงานมากมายกับการพัฒนาซอฟต์แวร์ที่ขับเคลื่อนด้วยเหตุการณ์สำหรับหุ่นยนต์ของเรา โปรแกรมเหล่านี้ช่วยให้ทีมพัฒนาโปรแกรมอัตโนมัติได้อย่างแม่นยำและแม้กระทั่งเหตุการณ์ 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 ก็จะจัดการกับการประมวลผลเหตุการณ์ ซึ่งมักจะเกี่ยวข้องกับการเรียกใช้โค้ดที่เหตุการณ์มาจากการใช้ตัวแปรจากเหตุการณ์ ส่งต่อเพื่อจำลองเหตุการณ์ที่เคยทำมาก่อน

แนะนำ: