ตัวกรองคาลมานขยายโดยใช้แบบจำลองการเคลื่อนที่เชิงมิติ


14

ในขั้นตอนการคาดการณ์ของ EKF Localization จะต้องดำเนินการเชิงเส้นและ (ดังที่กล่าวไว้ในProbabilistic Robotics [THRUN, BURGARD, FOX]หน้า 206) Jacobian matrix เมื่อใช้แบบจำลองการเคลื่อนที่ด้วยความเร็ว

[xyθ]=[xyθ]+[v^tω^t(sinθ+sin(θ+ω^tΔt))v^tω^t(cosθcos(θ+ω^tΔt))ω^tΔt]

คำนวณเป็น

GT=[10υtωt(cosμt1,θ+cos(μt1,θ+ωtΔt))01υtωt(sinμt1,θ+sin(μt1,θ+ωtΔt))001]{bmatrix}

ทำแบบเดียวกันนี้หรือไม่เมื่อใช้โมเดลการเคลื่อนที่ Odometry (อธิบายไว้ในหนังสือเล่มเดียวกันหน้า 133) โดยที่การเคลื่อนที่ของหุ่นยนต์ใกล้เคียงกับการหมุน , การแปล\ hat {\ delta}และ a การหมุนครั้งที่สอง\ hat {\ delta} _ {rot2} ? สมการที่สอดคล้องกันคือ:δ^rot1δ^δ^rot2

[xyθ]=[xyθ]+[δ^cos(θ+δ^rot1)δ^sin(θ+δ^rot1)δ^rot1+δ^rot2]{bmatrix}

ในกรณีที่ชาวจาโคเบียนเป็น

GT=[10δ^sin(θ+δ^rot1)01δ^cos(θ+δ^rot1)001]{bmatrix}

เป็นการดีที่จะใช้แบบจำลองการเคลื่อนที่ของ odometry แทนความเร็วสำหรับการแปลหุ่นยนต์เคลื่อนที่หรือไม่?


ฉันเชื่อว่าคำ d_y / d_theta ของคุณควรเป็นค่าบวกมากกว่าค่าลบ (เช่นควรเป็น + \ hat {\ delta} cos (θ + \ hat {\ delta} _ {rot1}))
rcv

คำตอบ:


9

คุณได้ถามคำถามสองข้อ ในขณะที่ฉันตีความพวกเขาพวกเขา:

  1. จำเป็นหรือไม่ที่จะต้องสร้างโมเดลการเคลื่อนที่เชิงโอเมตริกเชิงเส้นสำหรับใช้กับตัวกรองคาลมาน (EKF) แบบขยาย?
  2. เป็นการดีกว่าถ้าใช้แบบจำลองการเคลื่อนที่ของ odometry แทนแบบจำลองการเคลื่อนที่ด้วยความเร็ว

เกี่ยวกับคำถามที่ 1 คำตอบสั้น ๆ คือ "ใช่" การรับประกันตัวกรองคาลมาน (KF) จะใช้กับระบบเชิงเส้นเท่านั้น เราจัดระบบที่ไม่ใช่เชิงเส้นให้เป็นแนวตรงโดยหวังที่จะรักษาการรับประกันเหล่านั้นไว้สำหรับระบบที่ไม่ใช่เชิงเส้น ในความเป็นจริงการทำให้องค์ประกอบที่ไม่ใช่เชิงเส้นเป็นเส้นตรง (เช่นโมเดลการเคลื่อนไหวและ / หรือโมเดลการสังเกต) เป็นสิ่งที่ทำให้แตกต่างจาก KFs และ EFK

เกี่ยวกับคำถามที่ 2 ดร. Thrun ให้เหตุผลในหน้า 132 ของ Probabilistic Robotics ว่า "[p] ประสบการณ์เชิงกลยุทธ์แสดงให้เห็นว่า odometry ในขณะที่ยังผิดพลาดมักจะแม่นยำกว่าความเร็ว" อย่างไรก็ตามฉันจะไม่ตีความคำแถลงนี้เป็นข้อโต้แย้งในการแทนที่ตัวแบบความเร็ว หากคุณมีทั้งข้อมูลความเร็วและข้อมูลเชิงมิติดังนั้นโดยทั่วไปควรใช้ทั้งแหล่งข้อมูล


ทางเลือกอีกทางหนึ่งสำหรับการปรับให้เป็นเชิงเส้นของเทย์เลอร์ก็คือ Unscented KF: seas.harvard.edu/courses/cs281/papers/unscented.pdf
Alex Kreimer

2

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


ในหนังสือเล่มนี้แบบจำลองถือเป็นปัญหาเกี่ยวกับจลนศาสตร์ดังนั้นฉันคิดว่ามันเป็นแบบจำลองที่ดีสำหรับปัญหาการจำลอง
CroCo

2

สำหรับคำถามแรกของคุณ: "ใช้แบบจำลอง Odometry motion เหมือนกันหรือไม่?" คำตอบคือใช่

EKF นั้นค่อนข้างเหมือนกับของ KF ด้วยการเพิ่มขั้นตอนการทำให้เป็นเส้นตรง สิ่งที่คุณทำให้เป็นเส้นตรงที่นี่คือโมเดลการเคลื่อนที่

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

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

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