คำถามติดแท็ก kalman-filter

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

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

2
วิธีการหลอมข้อมูลเชิงเส้นและเชิงมุมจากเซ็นเซอร์
ทีมของฉันและฉันกำลังตั้งค่าหุ่นยนต์กลางแจ้งที่มีตัวเข้ารหัสIMUเชิงพาณิชย์และGPSเซ็นเซอร์หุ่นยนต์มีไดรฟ์ถังพื้นฐานดังนั้นเครื่องเข้ารหัสจะจัดหาเห็บเพียงพอจากล้อซ้ายและขวา IMU แสดงการหมุน, พิทช์, หันเหและการเร่งความเร็วเชิงเส้นใน x, y และ z เราสามารถเพิ่ม IMU อื่น ๆ ในภายหลังซึ่งจะให้ความซ้ำซ้อน แต่ยังสามารถให้อัตราการหมุนมุมและพิสัยได้เพิ่มเติม GPS เผยแพร่พิกัด x, y และ z ทั่วโลก การรู้ตำแหน่งและหัวเรื่องของหุ่นยนต์จะเป็นประโยชน์สำหรับหุ่นยนต์ในการแปลและแผนที่สภาพแวดล้อมในการนำทาง ความเร็วของหุ่นยนต์อาจเป็นประโยชน์สำหรับการตัดสินใจการเคลื่อนไหวที่ราบรื่น มันเป็นหุ่นยนต์ภาคพื้นดังนั้นเราจึงไม่สนใจแกน z มากเกินไป หุ่นยนต์ยังมีเซ็นเซอร์lidarและกล้องดังนั้นการหมุนและระยะพิทช์จะเป็นประโยชน์สำหรับการแปลงข้อมูล lidar และกล้องเพื่อให้ได้แนวที่ดีขึ้น ฉันกำลังพยายามหาวิธีหลอมตัวเลขทั้งหมดเหล่านี้เข้าด้วยกันในวิธีที่ใช้ประโยชน์จากความแม่นยำของเซ็นเซอร์ทั้งหมดอย่างเหมาะสม ตอนนี้เรากำลังใช้ตัวกรองคาลมานเพื่อสร้างการประมาณ[x, x-vel, x-accel, y, y-vel, y-accel]ด้วยเมทริกซ์การเปลี่ยนแปลงอย่างง่าย: [[1, dt, .5*dt*dt, 0, 0, 0], [0, 1, dt, 0, 0, 0], [0, …

3
วิธีการที่ดีในการปรับสัญญาณรบกวนกระบวนการในตัวกรองคาลมานคืออะไร
ส่วนใหญ่แล้วการปรับการฝึกอบรมตัวกรองสัญญาณรบกวนคาลมานนั้นเกิดจากการลองผิดลองถูกหรือความรู้ในโดเมน มีวิธีที่มีหลักการสำหรับปรับพารามิเตอร์ตัวกรองคาลมานทั้งหมดหรือไม่

2
ขั้นตอนการอัปเดต EKF-SLAM, Kalman Gain กลายเป็นเอกพจน์
ฉันใช้ EKF สำหรับ SLAM และฉันมีปัญหากับขั้นตอนการอัปเดต ฉันได้รับคำเตือนว่า K เป็นเอกพจน์rcondประเมินnear eps or NaNว่า ฉันคิดว่าฉันได้ติดตามปัญหาของการผกผันของ Z มีวิธีคำนวณ Kalman Gain โดยไม่ย้อนกลับคำสุดท้ายหรือไม่? ฉันไม่ 100% บวกนี้เป็นสาเหตุของปัญหาที่เกิดขึ้นดังนั้นฉันได้ยังใส่ทั้งหมดของฉันรหัสที่นี่ จุดเข้าหลักคือ slam2d function [ x, P ] = expectation( x, P, lmk_idx, observation) % expectation r_idx = [1;2;3]; rl = [r_idx; lmk_idx]; [e, E_r, E_l] = project(x(r), x(lmk_idx)); E_rl = …

2
เมทริกซ์ความแปรปรวนร่วมใน EKF?
ฉันกำลังดิ้นรนกับแนวคิดของเมทริกซ์ความแปรปรวนร่วม ตอนนี้ความเข้าใจของฉันสำหรับ ,และอธิบายถึงความไม่แน่นอน ตัวอย่างเช่นสำหรับมันอธิบายถึงความไม่แน่นอนของค่าของ x ตอนนี้คำถามของฉันเกี่ยวกับ sigmas ที่เหลือพวกเขาเป็นตัวแทนอะไร? มันหมายความว่าอะไรถ้าพวกมันเป็นศูนย์ ฉันสามารถตีความได้ว่าถ้าเป็นศูนย์หมายความว่าฉันไม่มีความไม่แน่นอนเกี่ยวกับค่าของ xΣ=⎡⎣⎢σxxσyxσθxσxyσyyσθyσxθσyθσθθ⎤⎦⎥Σ=[σxxσxyσxθσyxσyyσyθσθxσθYσθθ] \Sigma = \begin{bmatrix} \sigma_{xx} & \sigma_{xy} & \sigma_{x \theta} \\ \sigma_{yx} & \sigma_{yy} & \sigma_{y \theta} \\ \sigma_{\theta x} & \sigma_{\theta y} & \sigma_{\theta \theta} \\ \end{bmatrix} σx xσxx\sigma_{xx}σYYσYY\sigma_{yy}σθ θσθθ\sigma_{\theta \theta}σx xσxx\sigma_{xx}σx xσxx\sigma_{xx} หมายเหตุฉันกำลังอ่านหลักการเคลื่อนไหวหุ่นยนต์ - ทฤษฎีอัลกอริทึมและการใช้งานโดย Howie Choset และ …

3
ตัวกรองคาลมานขยายโดยใช้แบบจำลองการเคลื่อนที่เชิงมิติ
ในขั้นตอนการคาดการณ์ของ 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⎤⎦⎥⎥⎥[xyθ]′=[xyθ]+[v^tω^t(−sinθ+sin(θ+ω^tΔt))v^tω^t(cosθ−cos(θ+ω^tΔt))ω^tΔt]\begin{bmatrix} x \\ y \\ \theta \end{bmatrix}' = \begin{bmatrix} x \\ y \\ \theta \end{bmatrix} + \begin{bmatrix} \frac{\hat{v}_t}{\hat{\omega}_t}(-\text{sin}\theta + \text{sin}(\theta + \hat{\omega}_t{\Delta}t)) \\ \frac{\hat{v}_t}{\hat{\omega}_t}(\text{cos}\theta - \text{cos}(\theta + \hat{\omega}_t{\Delta}t)) \\ \hat{\omega}_t{\Delta}t \end{bmatrix} คำนวณเป็น GT=⎡⎣⎢⎢100010υtωt(−cosμt−1,θ+cos(μt−1,θ+ωtΔt))υtωt(−sinμt−1,θ+sin(μt−1,θ+ωtΔt))1⎤⎦⎥⎥GT=[10υtωt(−cosμt−1,θ+cos(μt−1,θ+ωtΔt))01υtωt(−sinμt−1,θ+sin(μt−1,θ+ωtΔt))001]G_{T}= \begin{bmatrix} 1 & 0 …

1
คำจำกัดความที่คลุมเครือของตัวกรองคาลมานข้อผิดพลาด (ทางอ้อม)
ฉันสับสนกับคำว่า "ตัวกรองคาลมานทางอ้อม" หรือ "ตัวกรองคาลมานข้อผิดพลาด" หมายถึงอะไร คำจำกัดความที่เป็นไปได้มากที่สุดที่ฉันพบคือในหนังสือของ Maybeck [1]: ดังที่ชื่อระบุไว้ในการกำหนดพื้นที่ทั้งหมด (โดยตรง) สถานะรวมเช่นตำแหน่งยานพาหนะและความเร็วนั้นเป็นตัวแปรสถานะในตัวกรองและการวัดคือเอาต์พุต INS accelerometer และสัญญาณแหล่งภายนอก ในการกำหนดพื้นที่ข้อผิดพลาด (ทางอ้อม) ข้อผิดพลาดในตำแหน่งและความเร็วที่ระบุของ INS- เป็นตัวแปรที่ประมาณไว้และการวัดแต่ละครั้งที่นำเสนอต่อตัวกรองคือความแตกต่างระหว่าง INS และแหล่งข้อมูลภายนอก 20 ปีต่อมา Roumeliotis และคณะ ใน [2] เขียน: การสร้างแบบจำลองที่ยุ่งยากของยานพาหนะเฉพาะและการมีปฏิสัมพันธ์กับสภาพแวดล้อมแบบไดนามิกนั้นหลีกเลี่ยงได้โดยการเลือกการสร้างแบบจำลองวงแหวนแทน สัญญาณไจโรปรากฏในสมการของระบบ (แทนการวัด) ดังนั้นการกำหนดปัญหาต้องใช้แนวทางกรองคาลมานทางอ้อม (สถานะผิดพลาด) ฉันไม่เข้าใจส่วนที่เป็นตัวหนาตั้งแต่ Lefferts และคณะ ใน [3] เขียนเร็วกว่านี้มาก: สำหรับยานอวกาศอิสระการใช้หน่วยอ้างอิงเฉื่อยเป็นแบบจำลองการแทนที่ช่วยให้หลีกเลี่ยงปัญหาเหล่านี้ จากนั้นดำเนินการต่อเพื่อแสดงตัวแปรต่าง ๆ ของ EKF โดยใช้การสร้างแบบจำลองวงแหวนที่มีคำสั่งตัวกรองคาลมานอย่างชัดเจนตามคำจำกัดความของเมย์เบ็ค: รัฐเท่านั้นประกอบไปด้วยทัศนคติควอเทอเนียนและอคติไจโร ในความเป็นจริงไม่มี INS แยกต่างหากซึ่งมีข้อผิดพลาดในการประเมินด้วยตัวกรอง Kalman …

3
วิธีการหมุนความแปรปรวนร่วม?
ฉันกำลังทำงานกับ EKF และมีคำถามเกี่ยวกับการแปลงเฟรมพิกัดสำหรับเมทริกซ์ความแปรปรวนร่วม สมมติว่าฉันได้รับการวัด( x , y, z, r o l l , p i t c h , yW )(x,y,z,roll,pitch,yaw)(x, y, z, roll, pitch, yaw) ด้วยเมทริกซ์ความแปรปรวนร่วม 6x6 ที่สอดคล้องกัน คCC. วัดนี้และคCC จะได้รับในกรอบพิกัดบางส่วน G1G1G_1. ฉันต้องเปลี่ยนการวัดเป็นเฟรมพิกัดอื่นG2G2G_2. การแปลงค่าการวัดนั้นเป็นเรื่องเล็กน้อย แต่ฉันก็ต้องเปลี่ยนความแปรปรวนร่วมของมันด้วยใช่ไหม? การแปลระหว่างG1G1G_1 และ G2G2G_2ควรไม่เกี่ยวข้อง แต่ฉันยังคงต้องหมุน หากฉันถูกต้องฉันจะทำอย่างไร สำหรับพันธมิตรระหว่างxxx, Yyyและ Zzzความคิดแรกของฉันคือการใช้เมทริกซ์การหมุนสามมิติเพียงอย่างเดียว แต่ใช้ได้กับเมทริกซ์ย่อย 3x3 ภายในเมทริกซ์ความแปรปรวนร่วม 6x6 เต็มรูปแบบ ฉันจำเป็นต้องใช้การหมุนเดียวกันกับบล็อกทั้งสี่หรือไม่

1
เหตุใดฉันจึงควรใช้ EKF แทน UKF
ตัวกรองคาลมานที่ไม่ได้รวมกันนั้นเป็นตัวแปรหนึ่งของตัวกรองคาลมานขยายซึ่งใช้การสร้างเส้นตรงที่แตกต่างกันโดยอาศัยการแปลงชุดของ "ซิกม่าพอยต์" แทนการขยายอนุกรมเทย์เลอร์ลำดับแรก UKF ไม่ต้องการใช้คอมพิวเตอร์ Jacobians สามารถใช้กับการแปลงแบบไม่ต่อเนื่องและที่สำคัญที่สุดคือแม่นยำกว่า EKF สำหรับการแปลงแบบไม่เชิงเส้น ข้อเสียเดียวที่ฉันพบคือ "EKF มักจะเร็วกว่า UKF เล็กน้อย" (Probablistic Robotics) เรื่องนี้ดูเหมือนจะไม่สำคัญสำหรับฉันและความซับซ้อนเชิงซีมของพวกเขาดูเหมือนจะเหมือนกัน เหตุใดทุกคนจึงยังคงชอบ EKF มากกว่า UKF ฉันคิดถึงข้อเสียที่สำคัญของ UKF หรือไม่?

2
ตัวกรองคาลมานเสริมด้วยเลเซอร์สแกน + แผนที่ที่รู้จัก
ขณะนี้ฉันกำลังทำงานในโครงการสำหรับโรงเรียนที่ฉันจำเป็นต้องใช้ตัวกรองคาลมานเพิ่มเติมสำหรับหุ่นยนต์จุดด้วยเครื่องสแกนเลเซอร์ หุ่นยนต์สามารถหมุนได้ด้วยรัศมีวงเลี้ยว 0 องศาและขับไปข้างหน้า การเคลื่อนไหวทั้งหมดเป็นแบบเชิงเส้นเป็นชิ้น ๆ (ไดรฟ์, หมุน, ขับ) เครื่องจำลองที่เราใช้ไม่รองรับการเร่งความเร็วการเคลื่อนที่ทั้งหมดเป็นแบบทันที นอกจากนี้เรายังมีแผนที่ที่รู้จัก (ภาพ png) ที่เราต้องทำการแปลเราสามารถทำการติดตามรอยในภาพเพื่อจำลองการสแกนด้วยเลเซอร์ คู่ของฉันและฉันสับสนเล็กน้อยเกี่ยวกับรูปแบบการเคลื่อนไหวและเซ็นเซอร์ที่เราจะต้องใช้ จนถึงตอนนี้เรากำลังจำลองสถานะเป็นเวกเตอร์ ( x , y, θ )(x,Y,θ)(x,y,\theta). เราใช้สมการการปรับปรุงดังนี้ void kalman::predict(const nav_msgs::Odometry msg){ this->X[0] += linear * dt * cos( X[2] ); //x this->X[1] += linear * dt * sin( X[2] ); //y this->X[2] += angular …

2
วิธีสร้างแบบจำลองเสียงที่ไม่สามารถคาดเดาได้ในตัวกรองคาลมาน
พื้นหลัง: ฉันกำลังใช้ตัวกรองคาลมานแบบง่าย ๆ ซึ่งประมาณทิศทางของหุ่นยนต์ หุ่นยนต์ติดตั้งเข็มทิศและเครื่องวัดการหมุนวน ความเข้าใจของฉัน: ฉันกำลังคิดที่จะเป็นตัวแทนของรัฐในฐานะเวกเตอร์ 2Dโดยที่คือทิศทางส่วนหัวในปัจจุบันและ คืออัตราการหมุนที่รายงานโดยเครื่องวัดการหมุนวน( x ,x˙)(x,x˙)(x, \dot{x})xxxx˙x˙\dot{x} คำถาม: ถ้าความเข้าใจของฉันถูกต้องจะไม่มีระยะควบคุมในตัวกรองของฉัน จริงป้ะ? เกิดอะไรขึ้นถ้าฉันใช้รัฐเป็นเวกเตอร์ 1D ? ถ้าอย่างนั้นของฉันจะกลายเป็นคำควบคุมหรือไม่? วิธีการทั้งสองนี้จะให้ผลลัพธ์ที่แตกต่างกันหรือไม่ยูuu( x )(x)(x)x˙x˙\dot{x}ยูuu อย่างที่เรารู้แหล่งกำเนิดเสียงหลักมาจากเข็มทิศเมื่อเข็มทิศอยู่ในสนามแม่เหล็กที่บิดเบี้ยว ที่นี่ฉันคิดว่าเสียงเสียนสำคัญน้อยกว่า แต่ความผิดเพี้ยนทางแม่เหล็กนั้นไม่สามารถคาดเดาได้ทั้งหมด เราจะสร้างแบบจำลองในตัวกรองคาลมานได้อย่างไร ในตัวกรองคาลมานสมมุติว่า "เสียงทั้งหมดเป็นสีขาว" จำเป็นหรือไม่ บอกว่าถ้าการกระจายเสียงของฉันเป็นการกระจาย Laplacian จริงฉันสามารถใช้ตัวกรองคาลมานได้หรือไม่? หรือฉันต้องเปลี่ยนไปใช้ตัวกรองอื่นเช่นตัวกรองแบบขยายคาลมานหรือไม่

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

2
นำทาง Quadrotor สู่เป้าหมาย
ฉันกำลังทำงานกับควอดโรเตอร์ ฉันรู้ตำแหน่งของมัน -ที่ซึ่งฉันต้องการไป - ตำแหน่งเป้าหมายและจากนั้นฉันคำนวณเวกเตอร์ - เวกเตอร์หน่วยที่จะพาฉันไปยังเป้าหมายของฉัน:aaabbbccc c = b - a c = normalize(c) เนื่องจาก quadrotor สามารถเคลื่อนที่ในทิศทางใดก็ได้โดยไม่มีการหมุนสิ่งที่ฉันพยายามทำคือ หมุนโดยมุมเอียงของหุ่นยนต์ccc แยกออกเป็นองค์ประกอบx,yx,yx, y ส่งพวกเขาไปยังหุ่นยนต์เป็นมุมม้วนและระดับเสียง ปัญหาคือว่าถ้าหันเหเป็น 0 °± 5 แล้วก็ใช้งานได้ แต่ถ้าหันไปใกล้ +90 หรือ -90 มันจะล้มเหลวและหันไปทิศทางที่ผิด คำถามของฉันคือฉันขาดอะไรบางอย่างชัดเจนที่นี่?
9 quadcopter  uav  navigation  slam  kinect  computer-vision  algorithm  c++  ransac  mobile-robot  arduino  microcontroller  machine-learning  simulator  rcservo  arduino  software  wifi  c  software  simulator  children  multi-agent  ros  roomba  irobot-create  slam  kalman-filter  control  wiring  routing  motion  kinect  motor  electronics  power  mobile-robot  design  nxt  programming-languages  mindstorms  algorithm  not-exactly-c  nxt  programming-languages  mindstorms  not-exactly-c  raspberry-pi  operating-systems  mobile-robot  robotic-arm  sensors  kinect  nxt  programming-languages  mindstorms  sensors  circuit  motion-planning  algorithm  rrt  theory  design  electronics  accelerometer  calibration  arduino  sensors  accelerometer 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.