Làm thế nào để các thuật toán SLAM xử lý một môi trường thay đổi?


13

Tôi đang làm một số nền tảng cho một dự án và tôi có một câu hỏi về tình trạng kỹ thuật SLAM hiện tại.

Khi thiết bị được trang bị SLAM phát hiện đối tượng, vị trí của đối tượng đó sẽ được lưu trữ. Nếu bạn nhìn vào đám mây điểm mà thiết bị đang tạo, bạn sẽ thấy các điểm cho đối tượng này và các mô hình được tạo từ nó sẽ bao gồm hình học ở đây.

Nếu một đối tượng được đặt trong một không gian trống trước đó, nó sẽ được phát hiện và các điểm được thêm vào. Các mô hình tiếp theo sẽ có hình học mô tả đối tượng mới này.

Làm thế nào để thiết bị phản ứng nếu đối tượng đó bị loại bỏ? Theo như tôi đã thấy, các hệ thống SLAM sẽ có xu hướng để lại các điểm tại chỗ, dẫn đến hình học "ma". Có các thuật toán sẽ bỏ qua các điểm đơn độc gây ra bởi các tiếp điểm thoáng qua, nhưng các đối tượng vẫn đủ lâu để xây dựng một mô hình vững chắc sẽ vẫn còn trong bộ nhớ của thiết bị. Có bất kỳ hệ thống nào có khả năng phát hiện không gian bị chiếm đóng trước đó hiện đang trống không?


Câu hỏi này không liên quan nhiều đến học máy.
Josh Vander Hook

Có lẽ không; Tôi không chắc chắn 100% thẻ nào sẽ phù hợp. Ứng dụng tôi có trong tâm trí có vẻ phù hợp, nhưng có lẽ không có bối cảnh đó, nó ít được áp dụng ...
anaximander

Câu trả lời:


5

Điều đó phụ thuộc rất nhiều. Vì SLAM là một vấn đề (hoặc ít nhất là một kỹ thuật), không phải là một giải pháp, không có thuật toán SLAM dứt khoát. Về mặt ngữ nghĩa, bạn phải quyết định những gì diễn ra trên "bản đồ" môi trường và điều đó quyết định cách thuật toán của bạn sẽ xử lý các tín hiệu nhất thời (còn gọi là di chuyển). Nhưng đó là một sự lạc lõng.

Bản đồ thường trực:

Bản đồ vĩnh viễn nên chứa đủ thông tin để bản địa hóa bản thân đối với hình học đã biết. Thường được sử dụng trong các tòa nhà. Điển hình là con người có thể đọc được. Xem công việc của Willow-Garage. hoặc bất cứ điều gì của Thrun trong sách giáo khoa khá nổi tiếng của mình. Nếu bạn mất bản đồ này, bạn phải xây dựng lại theo thời gian.

  1. Loại bỏ các đối tượng. Có, đối tượng sẽ xuất hiện trong bản đồ tĩnh trong một thời gian. Nếu không có biện pháp nào được thực hiện để loại bỏ các đối tượng được phát hiện trước đó, thì nó sẽ tồn tại. Một biểu diễn dựa trên lưới 2D điển hình sẽ sử dụng mỗi ô lưới để biểu diễn xác suất của một đối tượng, vì vậy sau một thời gian, đối tượng sẽ "mờ dần".

  2. Thêm đối tượng. Giống như trên.

Bản đồ địa phương:

Trong thực tế, SLAM thường được sử dụng để bản địa hóa robot khi nó di chuyển và bản đồ không được lưu giữ vĩnh viễn (hoặc, nó được giữ vĩnh viễn mà chỉ sử dụng các tính năng Y gần nhất). Bản đồ địa phương là bất cứ điều gì robot cần biết để xác định cách di chuyển trong X phút cuối, trong đó X phụ thuộc vào ứng dụng. Nếu bạn mất bản đồ, bạn vẫn có thể bay tốt bằng cách sử dụng bất kỳ tính năng nào trong tầm nhìn ngay bây giờ.

  1. Các phương pháp hàng loạt như Điều chỉnh gói bằng các tính năng trực quan là một kỹ thuật rất phổ biến theo hướng này. Các tính năng có thể được giữ theo thời gian và thậm chí được xem xét lại, nhưng tính năng di chuyển chỉ là một tính năng không đáng tin cậy và nó sẽ bị bỏ qua khi cố gắng tìm ra robot đang ở đâu.

  2. Visual SLAM chính xác là thế này. Nó là một công cụ ước tính delta-P (thay đổi tư thế), không phải là thuật toán bản địa hóa dựa trên bản đồ.

  3. Nói tóm lại, miễn là hầu hết mọi thứ hiện không di chuyển, sẽ không có vấn đề gì nếu bạn loại bỏ một vật thể khi robot không "nhìn" vào nó.

Thí dụ

Vì vậy, làm điều này. Khi bạn đọc một tờ giấy SLAM, hãy quyết định như sau:

  1. Họ thực sự đang xây dựng một bản đồ?

  2. Có phải họ chỉ giữ một danh sách các tính năng và vị trí?

  3. Nếu vậy, "tính năng" nào đi trên bản đồ? Đường, điểm, đặc điểm hình ảnh?

  4. Những tính năng này có khả năng di chuyển?

  5. Nếu vậy, làm thế nào họ có thể xử lý đó?

  6. Cuối cùng, nhiễu cảm biến thường "trông" giống như các tính năng di chuyển. Làm thế nào để họ xử lý tiếng ồn cảm biến? Bởi vì điều này thường sẽ xác định những gì xảy ra với các tính năng di chuyển.

Bạn sẽ nhận được một câu trả lời khác nhau cho mỗi bài viết / tác giả / cuốn sách / ứng dụng. Nói tóm lại, chúng thường bị bỏ qua vì chúng không giúp robot bản địa hóa nhiều và có thể tránh được bằng cách chỉ cần một vài công cụ lập kế hoạch đường dẫn cấp thấp chỉ sử dụng thông tin địa phương.

Chúc may mắn, slam là một chủ đề rất lớn.


Cảm ơn! Bạn có biết bất kỳ kỹ thuật nào theo dõi các đối tượng đã "thu được" và "bị mất" không? Tôi đang xem xét các ứng dụng của một tập hợp các thuật toán loại SLAM và một lĩnh vực quan tâm là xác định các khu vực "chuyển tiếp" như cửa ra vào và các góc bị che khuất nơi các vật thể có thể xuất hiện. Ứng dụng này biến số liệu xác suất mờ dần thông thường trên đầu - thay vì có các vật thể "mờ dần" khi khuất tầm nhìn, các khu vực không quan sát dần dần tăng giá trị của chúng để biểu thị rằng chúng ta không biết những gì ở đây vì chúng ta đã nhìn gần đây, vì vậy chúng ta nên thận trọng khi di chuyển vào không gian này.
anaximander

Cách khó hơn. Cách duy nhất để làm điều này một cách chính xác là xác định duy nhất các đối tượng. Giống như, đặt một mã vạch trên chúng. Mặt khác, đối tượng A có thể đã di chuyển đến vị trí B hoặc có thể A và B bị tráo đổi, v.v. Đọc lên ánh xạ ngữ nghĩa. Bạn cần một thuật toán có thể "nhận ra" rằng những thứ chuyển động thực sự là "cánh cửa" nên được gắn vào "bức tường" nhưng chỉ khi tôi "bên trong" nhưng "bên trong" có nghĩa gì với robot? Tôi nghĩ bạn nên đọc thêm và báo cáo lại.
Josh Vander Hook

Vâng, ý tưởng ở đây là vượt qua vấn đề ngữ nghĩa bằng cách nhấn mạnh "đây là một lĩnh vực mà tôi luôn thấy những thứ không có ở đó trước đó, hoặc ngừng nhìn thấy những thứ ở đó". Rất có thể, khu vực này là một loại chuyển tiếp - cửa, hộp, cửa sổ, góc khuất. Cái nào trong số chúng ta đang làm việc ít quan trọng hơn; đây hoàn toàn là để tránh va chạm, vì vậy chúng tôi muốn tránh tất cả các khu vực này. Tương tự như vậy, chúng ta không đặc biệt cần biết đối tượng nào là đối tượng; chỉ có điều là có một sự thay đổi đáng kể trong tổng số không gian bị chiếm dụng bởi Stuff.
anaximander

Ôn tập. Văn chương. Một vấn đề như vậy phát sinh từ A) Công cụ di chuyển. B) robot di chuyển. C) Robot bị lạc. D) bản đồ không chính xác. Mỗi trong số 4 điều đó có 4 giải pháp đúng khác nhau. Nếu bạn không xử lý cả 4, bạn sẽ xây dựng các bản đồ hoàn toàn không chính xác. Đây là lý do tại sao SLAM không được giải quyết, và vẫn còn khó. Đọc lên và trở lại với các câu hỏi cụ thể liên quan đến những gì bạn đã học.
Josh Vander Hook

1
Đó là những gì tôi đang làm; tôi càng đọc, danh sách những thứ cần đọc càng dài! Đây là câu hỏi đầu tiên trong số rất nhiều câu hỏi mà tôi đọc được nêu ra. Xin lỗi vì đã mở rộng câu hỏi phần nào trong các bình luận; Tôi đã không nhận được nhiều phản hồi và SLAM là một chủ đề rất lớn ... bạn dường như biết bạn đang nói về điều gì nên tôi hy vọng tôi có thể nhận được một vài gợi ý. Tôi có các tài liệu lập bản đồ ngữ nghĩa trong danh sách của mình, nhưng có một vài thứ khác tôi cần đọc làm nền tảng cho điều đó ... Dù sao, tôi đoán bây giờ nó đã trở lại việc đọc.
anaximander
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.