เหตุใดฉันจึงต้องใช้ตัวกรองคาลมาน


61

ฉันกำลังออกแบบยานพาหนะทางอากาศที่ไม่มีคนขับซึ่งจะมีเซ็นเซอร์หลายประเภท:

  • มาตรความเร่ง 3 แกน
  • ไจโรสโคปแบบ 3 แกน
  • เครื่องวัดสนามแม่เหล็ก 3 แกน
  • เซ็นเซอร์ขอบฟ้า
  • จีพีเอส
  • อัลตราซาวนด์ที่หันหน้าลง

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

คำตอบ:


52

คุณทำเชื่อมต่อเซ็นเซอร์ทั้งหมดเหล่านี้โดยตรงไปยังไมโครคอนโทรลเลอร์ ตัวกรองคาลมานไม่ใช่ตัวกรองอิเล็กทรอนิกส์เช่นตัวกรอง LRC ที่อยู่ระหว่างเซ็นเซอร์และไมโครคอนโทรลเลอร์ ตัวกรองคาลมานเป็นตัวกรองทางคณิตศาสตร์ที่ใช้เป็นรูทีนซอฟต์แวร์ภายในไมโครคอนโทรลเลอร์

เซ็นเซอร์ที่คุณระบุไว้ให้ไมโครคอนโทรลเลอร์ 14 หรือ 15 หมายเลขดิบทุกครั้งที่มีการอัปเดตทั้งหมด

เมื่อฉันบินเครื่องบินเล็ก ๆ สิ่งที่ฉันอยากรู้คือตำแหน่งและทิศทางของมันและระยะทางที่มันอยู่เหนือพื้นดิน - ตัวเลข 7 ตัว

ฉันต้องการบางอย่างที่ให้เลข 7 กับฉัน

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

อย่างใดฉันจะต้องลดจำนวนดิบ 14 หรือ 15 ที่ฉันมีซึ่งบางครั้งเท่านั้นที่ได้รับการปรับปรุงเป็น (โดยประมาณ) ตัวเลข 7 ที่ฉันต้องการจริงๆ

ดังที่ Josh ชี้ให้เห็นมีวิธีการเฉพาะกิจหลายวิธีในการแปลงตัวเลขดิบเหล่านั้นเป็นข้อมูลที่ใช้งานได้ รูทีนใด ๆ ที่แปลง 15 หมายเลขเป็น 7 หมายเลขสามารถอธิบายได้ว่าเป็น "ตัวกรอง"

คุณไม่จำเป็นต้องใช้ตัวกรองที่ดีที่สุด แต่คุณจะใช้ตัวกรองบางประเภท - นั่นคือสิ่งที่แปลงจากข้อมูลดิบจำนวน 15 รายการที่คุณได้รับ (โดยประมาณ) ตัวเลข 7 ตัวที่คุณต้องการ

คาลมานกรองมีเงื่อนไขบางอย่างที่ "เหมาะสม" กรองวิธีที่ดีที่สุดของการแปลงว่าข้อมูลดิบให้เป็นหมายเลข 7 ที่ผมต้องการ

การทำงานในส่วนของคุณใช้ตัวกรองคาลมานน้อยกว่าที่คนอื่นได้เขียนและดีบั๊กแล้วกว่าจะเขียนตัวกรองอื่น ๆ ตั้งแต่เริ่มต้น debug มันและทำการเพิ่มสิ่งต่าง ๆ ลงไปเรื่อย ๆ จนกว่ามันจะใช้งานได้ - ตัวกรองที่จะ กลายเป็นสิ่งที่ไม่เหมาะสมอย่างหลีกเลี่ยงไม่ได้


28

คำตอบสั้น ๆ ที่น่ารังเกียจคือ คำตอบที่ดีกว่าคือตัวอย่าง: เมื่อ accellerometers ของคุณบอกว่าคุณอยู่ห่างจากแนวตั้ง 10 องศา แต่ไจโรของคุณบอกว่าคุณไม่ได้หมุนจากแนวตั้งและสนามแม่เหล็กของคุณกำลังรายงานค่าชดเชย 30 องศาจากทิศเหนือ แต่ไจโรของคุณบอกว่า 32 องศา .. หัวข้อและการเอียงปัจจุบันคืออะไร

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


1
คำตอบที่ฉันกำลังมองหา "จะเกิดอะไรขึ้นถ้าฉันไม่ใช้ตัวกรองคาลมาน" ขอบคุณ!
Manav Kataria

22

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

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


8

คุณสามารถใช้ตัวกรองอนุภาคได้เช่นกัน สำหรับบทนำเบื้องต้นเกี่ยวกับตัวกรองอนุภาคคุณสามารถดูวิดีโอของศาสตราจารย์ทรัญในการเขียนโปรแกรมหุ่นยนต์รถ

http://www.youtube.com/watch?v=H0G1yslM5rc

http://www.youtube.com/watch?v=QgOUu2sUDzg

ตัวกรองอนุภาคมีความทนทานมากขึ้นและมีโอกาสน้อยกว่ามากที่ข้อผิดพลาดในการปิดลูปซึ่งมักเกิดขึ้นในขณะที่ใช้ EKF

วิดีโออธิบายการทำงานของตัวกรองอนุภาค


โดยทั่วไปแล้วคำตอบที่มีไม่เกินลิงก์ไม่ต้องการ หากคุณสามารถเขียนย่อหน้าหนึ่งหรือสองบนส่วนสำคัญของวิดีโอที่จะดี ..
Manishearth

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

8

ตัวกรองคาลมานเป็นอัลกอริทึมที่ใช้กันทั่วไปใน UAVs เพื่อรวมการวัดเซ็นเซอร์หลาย ๆ ตัวเข้าด้วยกันเพื่อให้การประเมินตำแหน่งและ / หรือทิศทางของ UAV ที่ "ดีที่สุด" ตัวอย่างเช่นตัวกรองคาลมานสามารถหลอมรวมการวัดความเร่ง accelerometer, ไจโรและแมกเนโตมิเตอร์ด้วยการประมาณค่าความเร็วเพื่อประมาณค่าการเอียงและระยะห่างของ UAV

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

บทความนี้ยังเชื่อมโยงไปยังรหัส Matlab ที่ใช้อัลกอริทึมการประมาณค่าสถานะ Kalman Filter UAV ที่อธิบายไว้

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