วิธีสร้างแบบจำลองเสียงที่ไม่สามารถคาดเดาได้ในตัวกรองคาลมาน


9

พื้นหลัง:

ฉันกำลังใช้ตัวกรองคาลมานแบบง่าย ๆ ซึ่งประมาณทิศทางของหุ่นยนต์ หุ่นยนต์ติดตั้งเข็มทิศและเครื่องวัดการหมุนวน

ความเข้าใจของฉัน:

ฉันกำลังคิดที่จะเป็นตัวแทนของรัฐในฐานะเวกเตอร์ 2Dโดยที่คือทิศทางส่วนหัวในปัจจุบันและ คืออัตราการหมุนที่รายงานโดยเครื่องวัดการหมุนวน(x,x˙)xx˙

คำถาม:

  1. ถ้าความเข้าใจของฉันถูกต้องจะไม่มีระยะควบคุมในตัวกรองของฉัน จริงป้ะ? เกิดอะไรขึ้นถ้าฉันใช้รัฐเป็นเวกเตอร์ 1D ? ถ้าอย่างนั้นของฉันจะกลายเป็นคำควบคุมหรือไม่? วิธีการทั้งสองนี้จะให้ผลลัพธ์ที่แตกต่างกันหรือไม่u(x)x˙u
  2. อย่างที่เรารู้แหล่งกำเนิดเสียงหลักมาจากเข็มทิศเมื่อเข็มทิศอยู่ในสนามแม่เหล็กที่บิดเบี้ยว ที่นี่ฉันคิดว่าเสียงเสียนสำคัญน้อยกว่า แต่ความผิดเพี้ยนทางแม่เหล็กนั้นไม่สามารถคาดเดาได้ทั้งหมด เราจะสร้างแบบจำลองในตัวกรองคาลมานได้อย่างไร
  3. ในตัวกรองคาลมานสมมุติว่า "เสียงทั้งหมดเป็นสีขาว" จำเป็นหรือไม่ บอกว่าถ้าการกระจายเสียงของฉันเป็นการกระจาย Laplacian จริงฉันสามารถใช้ตัวกรองคาลมานได้หรือไม่? หรือฉันต้องเปลี่ยนไปใช้ตัวกรองอื่นเช่นตัวกรองแบบขยายคาลมานหรือไม่

คำตอบ:


6
  1. ฉันจะสร้างแบบจำลองนี้เป็นระบบหนึ่งรัฐ (x) โดยมีวงแหวนเป็นอินพุตควบคุม เสียงไจโรจะกลายเป็นเสียงอินพุตของรัฐเสียงเข็มทิศจะกลายเป็นเสียงการวัด ดังนั้นรูปแบบระบบของคุณจะกลายเป็นโดยที่คือการประมาณทิศทางของตัวกรองซึ่งคุณเปรียบเทียบกับทิศทางเข็มทิศเพื่อรับ Kalman ของคุณ ปรับปรุง
    θ˙^=ωgyro+w
    y^=x^
    y^
  2. การบิดเบือนสนามแม่เหล็กจะเป็นเรื่องยากเพราะถ้าคุณนั่งในที่ใดที่หนึ่งมันจะปรากฏเป็นระยะออฟเซ็ตคงที่ - ตัวกรองคาลมานจะไม่จัดการกับสิ่งนี้ ฉันค่อนข้างแน่ใจว่าคุณจะต้องแมปการบิดเบือนรับการอ้างอิงทิศทางแบบสัมบูรณ์ที่สองหรือเพียงแค่ยอมรับการบิดเบือน
  3. คุณกำลังสับสนเนื้อหาสเปกตรัมที่มีการกระจายความน่าจะเป็น หากเสียงเป็นสีขาวแสดงว่าตัวอย่างแต่ละตัวอย่างแยกออกจากกันอย่างสมบูรณ์ หากเสียงนั้นเป็น Laplacian แต่ละตัวอย่างจะเชื่อฟังการกระจาย Laplace ตัวกรองคาลมานไม่ชอบเสียงสี (แต่คุณสามารถจัดการกับสิ่งนั้นได้โดยเพิ่มสถานะ) ตัวกรองคาลมานเป็นเพียงตัวกรองที่ดีที่สุดโดยรวมเมื่อเสียงรบกวนของการกระจายแบบเกาส์เซียนและฟังก์ชั่นค่าใช้จ่ายเป็นผลรวมของกำลังสอง สำหรับเสียงรบกวนและฟังก์ชั่นค่าใช้จ่ายอื่น ๆ ตัวกรองที่ดีที่สุดอาจไม่ใช่แบบไม่เชิงเส้น แต่สำหรับฟังก์ชั่นค่าใช้จ่ายที่ไม่มีค่าเฉลี่ยเสียงสีขาวและผลรวมของกำลังสองตัวกรองคาลมานนั้นเป็นตัวกรองเชิงเส้นที่ดีที่สุด

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

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

การประมาณค่าสถานะที่เหมาะสมโดย Dan Simon, Wiley 2006 คือ - ในความคิดของฉัน - การรักษาที่เข้มข้นและชัดเจนมากในเรื่องของตัวกรองคาลมานและพี่น้องชายที่มีความซับซ้อนมากขึ้น (H-infinity, ขยายคาลมาน บน Baysian และการกรองอนุภาค) มันจะไม่บอกวิธีนำไปใช้กับปัญหาการนำทางเช่นนี้ แต่ความสนุกในชีวิตจะอยู่ที่ไหนถ้าปัญหาทั้งหมดได้รับการแก้ไข หากคุณไม่สามารถติดตามคณิตศาสตร์ในหนังสือของ Simon คุณควรถามตัวเองว่าคุณจะสามารถใช้ตัวกรองคาลมานในแบบที่ชาญฉลาดได้หรือไม่


+1 สำหรับตัวกรองเสริมสำหรับแอปพลิเคชันนี้ดูเหมือนจะเหมาะสมกว่า หนังสือแดนไซม่อนก็ดีมากเช่นกัน บทความนี้เป็นการแนะนำตัวกรองคาลมานที่ดี (โดยผู้เขียนคนเดียวกัน) masys.url.tw/AU/2013SP/OpenCV/0513/kalman-dan-simon.pdf
ddevaz

@ddevaz ใช่ฉันจริง ๆ แล้วตอนนี้ใช้ตัวกรองเสริม แต่ปัญหาคือมันไม่ได้ผลลัพธ์ที่ดีมาก ดังนั้นฉันจึงคิดที่จะเปลี่ยนเป็นตัวกรอง "ที่ซับซ้อนกว่านี้" ...
การพนัน Sibbs

ฉันเห็น. ฉันได้แก้ไขคำตอบของฉันเพื่อรวมเนื้อหาอ้างอิงบางส่วนเกี่ยวกับการใช้งานตัวกรองคาลมานกับไจโรเครื่องเร่งความเร็วและเครื่องวัดสนามแม่เหล็ก
ddevaz

3
  1. จะไม่มีคำว่าอินพุตควบคุม คุณควรใช้ (x, xdot) เป็นเวกเตอร์สถานะของคุณเพื่อกำหนดตัวกรองคาลมานอย่างถูกต้อง

  2. แหล่งที่มาหลักของเสียงเป็นเข็มทิศและวัดการหมุนวน เสียงหมุนและดริฟท์มีความสำคัญ มันเป็นความรักความท้าทายที่จะเอาชนะการบิดเบือนแม่เหล็กทั่วไป แต่มีเทคนิคการชดเชย

  3. สมมติฐานของค่าศูนย์หมายถึงเสียงการกระจายตัวแบบหลายตัวแปรปกติเป็นสิ่งที่จำเป็น แต่เสียงสีขาวเป็นเพียงกรณีพิเศษของเรื่องนี้ สำหรับตัวกรองคาลมานขยายข้อสันนิษฐานนี้ยังคงต้องเป็นจริง คุณสามารถมองเข้าไปในประเภทอื่น ๆ ของตัวกรอง ( กรองฝุ่นละออง , กรองคาลมาน unscented )

การออกแบบ / การนำตัวกรองคาลมานไปใช้งาน:

การใช้อัลกอริทึมฟิวชั่นของเซ็นเซอร์สำหรับการตรวจจับทิศทางแบบสามมิติด้วยเซ็นเซอร์เฉื่อย / แม่เหล็ก


ดังนั้นฉันไม่สามารถออกจาก KF เพื่อจัดการกับความผิดเพี้ยนทางแม่เหล็กที่คาดเดาไม่ได้ใช่มั้ย ฉันควรจะทิ้งค่าที่ผิดเพี้ยนก่อนแล้วจึงปล่อยให้ KF จัดการกับสัญญาณรบกวนของเซ็นเซอร์ ขวา?
การพนัน Sibbs

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