วิธีจัดการกับ sonar crosstalk


10

หุ่นยนต์ของเรามีเซ็นเซอร์โซนาร์ 12 ตัวซึ่งมีลักษณะดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

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

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

ป้อนคำอธิบายรูปภาพที่นี่

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


ที่เกี่ยวข้องกับ: "หลายอัลตราโซนิก Rangefinder คำถาม" ฉันควรคัดลอกและวางคำตอบของฉันเองจากตรงนี้มาที่นี่หรือไม่?
David Cary

คำตอบ:


10

นี่เป็นปัญหาที่พบบ่อยและเป็นหนึ่งในปัญหาที่ยอดเยี่ยม Acoustic sensing เป็นสาขาที่ซับซ้อนในการศึกษาซึ่งเป็นส่วนสำคัญที่ใช้ในการคาดเดาเส้นทางที่คลื่นเสียงใช้ระหว่างการส่งและรับ ดังที่คุณได้สังเกตุว่าสมมติว่ามันตรงไปและกลับมาตรงๆจะให้ผลลัพธ์ที่แปลกในทางปฏิบัติ

ในการแก้ปัญหาคุณจะต้องใช้ระบบที่วางความถี่และ / หรือความยาวของเสียงที่ไม่ซ้ำกันในเซ็นเซอร์แต่ละตัว นี้สามารถนำไปสุดขั้วอย่างมีนัยสำคัญเช่น ความถี่กระโดดสุ่มหลอก Pulse Width Modulation การกำจัด Crosstalk ของ Sonar เซนเซอร์ในโทรศัพท์มือถือหุ่นยนต์

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

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

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


5

เซ็นเซอร์บางตัวเช่น Maxbotix MB1200 XL-MaxSonar-EZ0 มีระบบสายโซ่เดซี่ที่ติดตั้งในที่ซึ่งเซ็นเซอร์ตัวหนึ่งทริกเกอร์เซ็นเซอร์ตัวถัดไปเมื่อเสร็จสิ้นการวัด วิธีนี้คุณสามารถมีเซ็นเซอร์ N และตรวจสอบให้แน่ใจว่ามีเพียงหนึ่งเซ็นเซอร์เท่านั้นที่ยิงได้ในทันที โซลูชันนี้เรียบง่าย แต่เห็นได้ชัดว่าช่วยลดปริมาณข้อมูลที่คุณได้รับต่อหน่วยเวลาอย่างมาก โซลูชั่นของ Ian นั้นใกล้เคียงกับความเหมาะสมที่สุด


4

เป็นไปได้ไหมที่จะใช้เซ็นเซอร์อัลตราโซนิคหลายตัวกับหุ่นยนต์ตัวเดียว? ใช่: "การใช้หลาย Sonar เซนเซอร์"

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

  • Ping เพียงหนึ่งตัวแปลงสัญญาณในแต่ละครั้งโดยไม่สนใจตัวแปลงสัญญาณอื่น ๆ ทั้งหมดในขณะที่รอ "Ghost echoes" จากตัวแปลงสัญญาณปัจจุบันจะตายลงก่อนที่จะส่งสัญญาณตัวถัดไป นี่เร็วกว่าการหมุนทรานสดิวเซอร์เดี่ยวแบบกลไก บางทีนี่อาจจะเร็วพอเว้นแต่หุ่นยนต์ของคุณจะพุ่งชนสิ่งต่าง ๆ ด้วยความเร็วของเสียง
  • ใช้ตัวส่งสัญญาณหรือตัวรับมุมลำแสงที่ค่อนข้างแคบ (หรือทั้งสองอย่าง) ต่อเซ็นเซอร์และเพิ่มมุมจากเซ็นเซอร์หนึ่งไปยังเซ็นเซอร์ถัดไปดังนั้นเซ็นเซอร์หนึ่งไม่ได้ยินเสียงสะท้อนจากอีกเซ็นเซอร์หนึ่ง (เว้นแต่วัตถุที่อยู่ด้านหน้าของเครื่องแปลงสัญญาณ ) - เซ็นเซอร์ทำมุมที่แตกต่างกันเหมือนกับมุมของลำแสง อนิจจาใบนี้ "จุดบอด" ระหว่างตัวแปลงสัญญาณที่วัตถุไม่สามารถมองเห็นได้โดยตัวแปลงสัญญาณใด ๆ
  • การรวมกันบางอย่าง - เช่นเพิ่มมุมจากเซ็นเซอร์หนึ่งไปอีกเซ็นเซอร์หนึ่งเซ็นเซอร์เพียงได้ยินเสียงก้องจาก 2 ประเทศเพื่อนบ้าน (ประมาณครึ่งมุมแสง) จากนั้นสลับไปมาระหว่างการ ping แม้แต่ทรานสดิวเซอร์
  • ตัวแปลงสัญญาณแต่ละตัวทำงานที่ความถี่แตกต่างกัน อนิจจาทรานสดิวเซอร์อัลตร้าโซนิคราคาประหยัดทั้งหมดที่มีข้อยกเว้นเล็กน้อยจะได้รับการปรับแต่งเพื่อสะท้อนที่ 40 kHz เมื่อฟังสัญญาณที่หลากหลายตัวแปลงสัญญาณเหล่านี้จะสามารถ "ได้ยิน" สัญญาณที่อยู่ภายในไม่กี่ kHz ของ 40 kHz เท่านั้น คุณจะต้องสมดุล (a) ยิ่งห่างจาก 40 kHz ที่คุณใช้กับตัวแปลงสัญญาณที่ออกแบบมาสำหรับ 40 kHz ยิ่งมีความไวน้อยกว่าดังนั้นคุณจึงต้องการความถี่ "ค่อนข้างใกล้" ถึง 40 kHz; และ (a) ยิ่งความถี่ทั้งหมดอยู่ใกล้กันมากเท่าไหร่ก็ยิ่งยากที่จะแยกแยะระหว่างความถี่เหล่านั้นได้มากขึ้นเท่านั้นดังนั้นคุณจึงต้องการชุดความถี่ที่กระจาย "ค่อนข้างห่างกัน" ฉันไม่รู้ว่ามีการประนีประนอมที่ดีหรือไม่ - ถ้าไม่คุณติดอยู่กับ (c) ใช้เซ็นเซอร์ราคาแพงที่ปรับไปตามความถี่อื่นเซ็นเซอร์ "ไวด์แบนด์วิดท์"ไม่ได้ปรับตามความถี่เฉพาะ
  • ใช้การกำหนดเวลาการส่งสัญญาณต่าง ๆ เพื่อตัดทอนเสียงสะท้อนของผี สมมติว่าคุณส่งสัญญาณจากด้านซ้ายหน่วงเวลา 2 ms (ไม่มากพอที่จะปล่อยให้เสียงสะท้อนตาย) จากนั้นส่งจากทางขวา ... หลังจากเสียงสะท้อนดังกล่างตายลงแล้วส่งจากทางซ้ายล่าช้า 3 ms จากนั้นส่งจาก ทางขวา. หากผู้รับที่ถูกต้องได้รับเสียงสะท้อนย้อนหลัง 5 มิลลิวินาทีในภายหลังทั้งสองครั้งคุณอาจมั่นใจได้เลยว่ามันเป็นเสียงสะท้อนที่แท้จริง หากผู้รับที่ถูกต้องได้รับเสียงสะท้อนย้อนหลัง 5 มิลลิวินาทีในครั้งแรก 6 วินาทีต่อมาในครั้งที่สองก็อาจเป็นผีจากตัวรับสัญญาณด้านซ้าย (มีเทคนิค "สเปกตรัมการแพร่กระจาย" ที่ซับซ้อนมากขึ้นสำหรับการแยกเครื่องส่งสัญญาณจำนวนมากทั้งหมดโดยใช้ความถี่เดียวกันในเวลาเดียวกัน)
  • รวมสัญญาณจากเครื่องรับทั้งหมด หากคุณมีเครื่องส่งสัญญาณกลางหนึ่งเครื่องที่ส่งสัญญาณไปทุกทิศทาง (หรือเทียบเท่าคุณมีเครื่องส่งสัญญาณชี้ไปทุกทิศทางและคุณส่งสัญญาณทั้งหมดในเวลาเดียวกัน) และเสียงแรกที่คุณได้รับจะกลับไปที่เครื่องรับด้านซ้ายก่อน ผู้รับจะได้ยินเสียงก้อง) คุณรู้ว่าสิ่งกีดขวางที่ใกล้ที่สุดอยู่ใกล้กับทางด้านซ้ายมากกว่าด้านขวา (มีเทคนิค "phased array" ที่ซับซ้อนมากขึ้นซึ่งรวมสัญญาณจากเครื่องรับทั้งหมดและยิ่งเทคนิค "beamforming" ที่ซับซ้อนยิ่งขึ้นสำหรับการปรับเวลาการส่งสัญญาณเล็กน้อยของเครื่องส่งสัญญาณทั้งหมด)

PS: คุณเคยเห็น"Infrared vs. Ultrasonic - สิ่งที่คุณควรรู้" ?

(ใช่ฉันเคยพูดเรื่องนี้มาก่อนแล้วในเวลา "Multiple Range Range คำถาม" )

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