ฉันควรใช้อัลกอริธึมอะไรเพื่อสร้างสมดุลให้กับหุ่นยนต์สองล้อที่ใช้วัดการหมุนวน?


25

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


ฉันกำลังจะทำสิ่งนี้เช่นกัน คุณต้องใช้ตัวกรองคาลมานเพื่อกรองข้อมูลดิบของคุณ และใช้อัลกอริธึม PID เพื่อปรับแต่ง
Huzo

คำตอบ:


16

ตัวควบคุมที่ง่ายที่สุดคือตัวควบคุมป้อนกลับสถานะเชิงเส้น มี 4 สถานะที่แตกต่างกันซึ่งคุณต้องได้รับ เหล่านี้คือมุมเอียงอัตราการเอียงความเร็วและตำแหน่ง


LQR (linear quadratic regulator) เป็นวิธีการออกแบบกำไรเหล่านี้ (หลังจากได้รับการแสดงพื้นที่เชิงเส้นของระบบของคุณ) หากคุณไม่ได้เป็นตัวแทนของพื้นที่รัฐ (คุณอาจจะไม่) คุณสามารถได้รับสมการการเคลื่อนไหวและการวัดพารามิเตอร์ หากคุณไม่ได้เป็นตัวแทนพื้นที่ของรัฐคุณควรปรับกำไรด้วยตนเอง (โดยไม่ต้อง LQR หรือวิธีการอื่น ๆ เช่นการวางเสา )


ปรับจูนด้วยตนเอง:

สมมติว่ามุมเอียงตำแหน่ง / ความเร็วและแรงบิดของล้อนั้นถูกส่งต่อทั้งหมด (ถ้าเป็นบวก) คุณต้องได้มุมบวกและมุมเอียงรวมทั้งกำไรที่เพิ่มขึ้นจากตำแหน่งและความเร็ว

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

การควบคุมตำแหน่ง / ความเร็วจะควบคุมทั้งสองสถานะให้เป็นศูนย์ ในการควบคุมค่าอื่น ๆ คุณเพียงแค่ต้องการตัวควบคุมติดตามการอ้างอิงโดยแทนที่สถานะด้วยข้อผิดพลาดของพวกเขาก่อนที่จะป้อนเข้าไปในตัวควบคุมของคุณ (เช่นการอ้างอิงความเร็ว - ความเร็วปัจจุบัน)

การควบคุมการหันเหสามารถกระทำได้อย่างอิสระ (ด้วยความแตกต่างของแรงบิดล้อที่เพิ่มเข้ากับตัวควบคุมสมดุล / ความเร็ว / ตำแหน่งหลัก)


9

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


5

ตั้งแต่ผมไม่ทราบว่าทักษะของคุณในงานวิศวกรรมควบคุม / ทฤษฎีผมแนะนำให้คุณเริ่มต้นด้วยการควบคุม PID มันเป็นคอนโทรลเลอร์ที่เรียบง่ายและคุณจะพบกับการติดตั้งโค้ดจำนวนมาก ข้อเสียของ PID คือคุณอาจต้องเสียเวลาปรับพารามิเตอร์ด้วยตนเอง

หลายปีที่ผ่านมาฉันใช้มันเพื่อควบคุมหุ่นยนต์ Lego Mindstorm สองล้อซึ่งมีพื้นฐานมาจาก odometry และทำงานได้ดีพอ เพื่อให้มันเคลื่อนที่ไปรอบ ๆ คุณจะต้องเล่นกับคะแนนที่ตั้งไว้

แน่นอนในภายหลังคุณสามารถปรับปรุงคุณภาพของตัวควบคุม (ความเสถียรความทนทาน ฯลฯ ) โดยใช้กฎหมายควบคุมขั้นสูงเพิ่มเติมเช่น LQR ที่กล่าวถึงก่อนหน้านี้

โชคดี!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.