อัลกอริทึม SLAM จัดการกับสภาพแวดล้อมที่เปลี่ยนแปลงอย่างไร


13

ฉันกำลังทำพื้นฐานสำหรับโครงการและฉันมีคำถามเกี่ยวกับสถานะปัจจุบันของเทคนิคสแลม

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

หากวัตถุถูกวางไว้ในพื้นที่ว่างก่อนหน้านี้มันจะถูกตรวจจับและมีการเพิ่มคะแนน รุ่นที่ตามมาจะมีรูปทรงเรขาคณิตอธิบายวัตถุใหม่นี้

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


คำถามนี้ไม่ได้เกี่ยวอะไรกับการเรียนรู้ของเครื่อง
Josh Vander Hook

อาจจะไม่; ฉันไม่แน่ใจ 100% ว่าแท็กใดที่เหมาะสม แอพลิเคชันที่ฉันมีในใจดูเหมือนจะพอดี แต่บางทีอาจจะโดยไม่มีบริบทว่ามันเป็นบังคับน้อย ...
Anaximander

คำตอบ:


5

นั่นขึ้นอยู่กับว่า เนื่องจาก SLAM เป็นปัญหา (หรืออย่างน้อยเทคนิค) ไม่ใช่วิธีการแก้ปัญหาจึงไม่มีขั้นตอนวิธี SLAM ที่ชัดเจน คุณต้องตัดสินใจว่าจะเกิดอะไรขึ้นกับ "แผนที่" ของสภาพแวดล้อมและกำหนดว่าอัลกอริทึมของคุณควรจัดการสัญญาณชั่วคราว แต่นั่นเป็นการพูดนอกเรื่อง

แผนที่ถาวร:

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

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

  2. การเพิ่มวัตถุ เช่นเดียวกับข้างต้น

แผนที่ท้องถิ่น:

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

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

  2. Visual Slam ตรงนี้ มันเป็นตัวประมาณเดลต้า -P (การเปลี่ยนแปลงในท่าทาง) ไม่ใช่อัลกอริทึมการโลคัลไลเซชันตามแผนที่

  3. กล่าวโดยย่อตราบใดที่สิ่งต่าง ๆ ส่วนใหญ่ไม่เคลื่อนไหวในปัจจุบันมันไม่สำคัญว่าคุณจะเอาวัตถุออกเมื่อหุ่นยนต์ไม่ "มอง" ที่มัน

ตัวอย่าง

ทำเช่นนี้ เมื่อคุณอ่านกระดาษ SLAM ให้ตัดสินใจดังนี้:

  1. พวกเขาสร้างแผนที่จริงเหรอ?

  2. พวกเขาเป็นเพียงแค่การเก็บรายการคุณสมบัติและสถานที่?

  3. ถ้าเป็นเช่นนั้น "คุณสมบัติ" ไปในแผนที่? เส้นจุดคุณสมบัติภาพ?

  4. คุณลักษณะเหล่านี้มีแนวโน้มที่จะย้ายหรือไม่

  5. ถ้าเป็นเช่นนั้นพวกเขาจะจัดการกับสิ่งนั้นได้อย่างไร

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

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

โชคดีที่สแลมเป็นหัวข้อใหญ่


ขอบคุณ! คุณรู้เทคนิคใดบ้างที่ติดตามว่าวัตถุนั้น "ได้มา" และ "หลงทาง" หรือไม่? ฉันกำลังดูแอปพลิเคชันของชุดย่อยของอัลกอริทึม SLAM และพื้นที่หนึ่งที่น่าสนใจคือการระบุพื้นที่ "การเปลี่ยนแปลง" เช่นประตูและมุมที่เกิดขึ้นซึ่งวัตถุอาจปรากฏขึ้น แอปพลิเคชันนี้เปลี่ยนการวัดความน่าจะเป็นแบบเลือนตามปกติบนหัว - แทนที่จะมีวัตถุ "จาง" เมื่อมองไม่เห็นพื้นที่ที่ไม่ได้สังเกตเห็นจะค่อยๆเพิ่มค่าของพวกมันอย่างช้าๆเพื่อแสดงว่าเราไม่รู้ว่าอยู่ที่นี่เพราะเราไม่ได้มอง ควรระมัดระวังเมื่อย้ายเข้ามาในพื้นที่นี้
Anaximander

ยากกว่าวิธีอื่น วิธีเดียวที่จะทำอย่างถูกต้องคือการระบุวัตถุที่ไม่ซ้ำกัน ชอบใส่บาร์โค้ดกับพวกเขา มิฉะนั้นวัตถุ A อาจย้ายไปยังตำแหน่ง B หรืออาจเปลี่ยนเป็น A และ B ฯลฯ อ่านข้อมูลการทำแผนที่ความหมาย คุณต้องการอัลกอริทึมที่สามารถ "รับรู้" ว่าสิ่งเคลื่อนไหวเป็น "ประตู" จริง ๆ ซึ่งควรติดกับ "กำแพง" แต่เฉพาะเมื่อฉัน "อยู่ข้างใน" แต่สิ่งที่ "ภายใน" หมายถึงหุ่นยนต์อยู่แล้ว? ฉันคิดว่าคุณควรอ่านเพิ่มเติมและรายงานกลับ
Josh Vander Hook

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

ทบทวน วรรณกรรม ปัญหาดังกล่าวเกิดขึ้นจาก A) การเคลื่อนย้ายสิ่งของ B) การเคลื่อนไหวของหุ่นยนต์ C) หุ่นยนต์หลงทาง D) แผนที่ไม่ถูกต้อง แต่ละสิ่งทั้งสี่นั้นมีวิธีแก้ไขปัญหาที่ถูกต้อง 4 แบบ หากคุณไม่จัดการทั้ง 4 คุณจะสร้างแผนที่ที่ไม่ถูกต้องสมบูรณ์ นี่คือเหตุผลที่ SLAM ไม่ได้รับการแก้ไขและยังยากอยู่ อ่านและกลับมาพร้อมคำถามเฉพาะที่เกี่ยวข้องกับสิ่งที่คุณได้เรียนรู้
Josh Vander Hook

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