วิธีการกำหนดตำแหน่งจากไจโรสโคปและอินพุต accelerometer?


33

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


3
ฟังดูเหมือนว่าโพสต์บล็อกนี้ฉันสะดุดเมื่อเช้าวันนี้: starlino.com/imu_kalman_arduino.html ฉันไม่ได้เชื่อมต่อกับเว็บไซต์นั้นเพียงแค่คิดว่ามันเกี่ยวข้องกับสิ่งที่คุณถาม
JustJeff

1
ชุดบทเรียนวิธีการใช้งานและเซ็นเซอร์ accelerometer อินเตอร์เฟซสามารถพบได้ในบทความนี้ intorobotics.com/ที่นี่มีแบบฝึกหัดสำหรับการวัด 2 แกน
Ezu

คำตอบ:


16

นี่คือบทแนะนำเกี่ยวกับการใช้เมทริกซ์โคไซน์ทิศทางสำหรับ IMU: http://gentlenav.googlecode.com/files/DCMDraft2.pdf

ดูหน้า ArduIMU: http://code.google.com/p/ardu-imu/wiki/Theory

นี่คือโครงการโอเพ่นซอร์สสองสามตัวที่ทำสิ่งนี้ การอ่านรหัสควรให้เบาะแส:

http://code.google.com/p/gluonpilot/source/browse/trunk/Firmware/#Firmware/rtos_pilot%3Fstate%3Dclosed

http://code.google.com/p/sf9domahrs/


8

ตัวกรองคาลมานเป็นเวทมนตร์ชนิดหนึ่งที่ทำงานอย่างลึกลับ :)

ฉันเริ่มด้วยตัวกรองดิจิทัลก่อน อธิบายอย่างดีสำหรับการเริ่ม และเข้าใจได้ง่าย ตัวกรองแบบง่ายเหล่านี้ทำงานได้ดีสำหรับการหมุนและระยะห่างของระบบใด ๆ เพียงแค่ต้องปรับความแม่นยำและอัตราส่วนการตอบสนองโดยการทดลอง เคล็ดลับคือ [ความแม่นยำ = 1 - การตอบสนอง]

ให้มันลอง.

จากนั้นเพื่อทำความเข้าใจเกี่ยวกับตัวกรองคาลมานคุณจะต้องทำสิ่งต่อไปนี้:

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

และต้องแชร์ถ้าคุณเจออะไรแบบนี้


7

... บูรณาการความเร่งสองครั้งเพื่อให้ได้ตำแหน่ง

ในทางทฤษฎี (หากคุณมีเซ็นเซอร์และการวัดที่สมบูรณ์แบบ) คุณสามารถทำได้ แต่ในทางปฏิบัติคุณไม่สามารถทำได้ ปัญหาคือว่า accelerometer จะมีแรงคงที่ 1G ที่เกิดจากแรงโน้มถ่วงเมื่อวัตถุนอนนิ่ง (ศูนย์ G ในกรณีที่ตกลงมาอย่างอิสระ) แต่สิ่งนี้ไม่ได้วัดว่าเท่ากับ 1.00000000 ... G เมื่อเคลื่อนย้ายวัตถุคุณจะมีเวกเตอร์เป็นผลรวมของแรงโน้มถ่วง 1G และความเร่งจากการเคลื่อนที่ (ซึ่งโดยทั่วไปจะเล็กกว่า 1G) และการวัดของคุณจะสะสมเสียงรบกวนมากเกินไปเมื่อเวลาผ่านไปเพื่อเป็นประโยชน์ถ้าคุณพยายามรวมการวัด ความเร่งลบด้วยแรงโน้มถ่วง 1G


6

ฉันเริ่มสร้างรูปสี่เหลี่ยมเกือบ 6 เดือนที่ผ่านมามีปัญหามากมายกับการหามุมที่ถูกต้อง :)

ก่อนอื่นคุณควรลองใช้งานนำเสนอนี้ - http://web.mit.edu/scolton/www/filter.pdf มันครอบคลุมจริงๆและอาจช่วยให้คุณได้แนวคิดที่ดีขึ้นเกี่ยวกับสิ่งที่คุณต้องการมันค่อนข้างหลอกลวง สำหรับฉัน.

ฉันเดาว่ามันขึ้นอยู่กับคุณมาก แต่การใช้ตัวกรองคาลมานนั้นไม่จำเป็นต้องมีความรู้ในวิชาคณิตศาสตร์ทฤษฎีระบบและฟิสิกส์ในกรณีนี้ แต่ต้องการความรู้เกี่ยวกับโหลดซีพียู ในกรณีที่คุณคำนึงถึงการใช้งานสมมติว่า Atmega328 โอเวอร์คล็อกที่ 16Mhz คุณอาจมีปัญหาในการใช้ตัวกรองชนิดนี้ มันจะมีประสิทธิภาพมากถ้าคุณใช้ DSP เพื่อให้คุณกรองสัญญาณผ่านต่ำตามมาตรฐาน

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

ทั้งหมดที่ดีที่สุดคือแดน


ลิงก์ของคุณเสียชีวิต ฉันขุดบิตและพบเอกสารอีกครั้ง: googledrive.com/host/0B0ZbiLZrqVa6Y2d3UjFVWDhNZms/filter.pdfอย่างน้อยก็น่าจะเหมือนกันบางทีคุณอาจจะต้องตรวจสอบอีกครั้ง
จอห์น

อ๋อมันเป็นตรง :) เดียวกัน
แดน

ลิงก์ตายอีกครั้ง :(
KyranF

@KyranF คิดว่าฉันพบมันอีกครั้ง :) portal.ts-muenchen.de/Dateien/filter.pdf
ด่าน

@ แดนนี่เป็นเอกสารเดียวกับที่ฉันใช้ในการออกแบบเฟิร์มแวร์เมื่อฉันสร้างมินิเซกเวย์กลับมาที่เดียว youtu.be/zOFlJJj8pPA
KyranF

1

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

  1. บทนำของตัวกรองคาลมาน
  2. กล่องเครื่องมือนำทางหุ่นยนต์ CAS
  3. กล่องเครื่องมือการนำทางเฉื่อยแบบโอเพ่นซอร์ส
  4. รหัสที่มาของโครงการเกี่ยวกับการนำทาง

จำกัด เฉพาะชื่อเสียงของฉันฉันมีสิทธิ์โพสต์ลิงก์น้อยกว่า 2 ลิงก์ ดังนั้นอีกสองฉันต้องการโพสต์ดังต่อไปนี้:


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