Cách theo dõi vị trí robot


7

Tôi là một nhà nghiên cứu phần mềm, người lúc rảnh rỗi tôi cố vấn cho một nhóm người máy, giúp đỡ về phần mềm. Trong nhiều năm, tôi tiếp tục trở lại cùng một câu hỏi. Làm thế nào để xác định vị trí robot và hướng tới trong các cuộc thi của chúng tôi. Chúng tôi đã thử một số thứ với mức độ thành công / thất bại khác nhau. Bộ mã hóa trên các bánh xe truyền động, gia tốc kế, con quay hồi chuyển, v.v. Tôi nghĩ chắc chắn phải có một cách để thực hiện tất cả các phép đo này, và có được cái nhìn tổng hợp về vị trí và tiêu đề. Chúng tôi đang sử dụng bánh xe cơ khí trên robot đặc biệt này, vì vậy bộ mã hóa bánh xe không đặc biệt hữu ích. Tôi đã nhìn xung quanh và ở đó ' Có rất nhiều cuộc nói chuyện về định hướng sử dụng bậc bốn với phản ứng tổng hợp cảm biến bằng cách sử dụng các bảng tương tự, nhưng tôi không rõ làm thế nào để lấy phần tư và ước lượng và đưa ra khoảng cách x, y từ vị trí bắt đầu. Bây giờ cửa sổ thời gian của tôi cho các phép đo này là nhỏ, ~ 15 giây, nhưng tôi cần nó khá chính xác trong cửa sổ đó. Tôi sẵn sàng từ bỏ sử dụng IMU và thử một cái gì đó khác. Một ý tưởng là sử dụng chuột bóng USB để thử và theo dõi chuyển động của robot nhưng tôi chắc chắn rằng chuột sẽ bị đập quá nhiều dẫn đến tiếng ồn và kết quả không hợp lệ. Như một lưu ý phụ: trọng lượng cơ sở khoảng 2ft x 3ft của robot ở mức 120 lbs. Bất kỳ suy nghĩ hoặc đề nghị đánh giá cao. khoảng cách y từ vị trí bắt đầu. Bây giờ cửa sổ thời gian của tôi cho các phép đo này là nhỏ, ~ 15 giây, nhưng tôi cần nó khá chính xác trong cửa sổ đó. Tôi sẵn sàng từ bỏ sử dụng IMU và thử một cái gì đó khác. Một ý tưởng là sử dụng chuột bóng USB để thử và theo dõi chuyển động của robot nhưng tôi chắc chắn rằng chuột sẽ bị đập quá nhiều dẫn đến tiếng ồn và kết quả không hợp lệ. Như một lưu ý phụ: trọng lượng cơ sở khoảng 2ft x 3ft của robot ở mức 120 lbs. Bất kỳ suy nghĩ hoặc đề nghị đánh giá cao. khoảng cách y từ vị trí bắt đầu. Bây giờ cửa sổ thời gian của tôi cho các phép đo này là nhỏ, ~ 15 giây, nhưng tôi cần nó khá chính xác trong cửa sổ đó. Tôi sẵn sàng từ bỏ sử dụng IMU và thử một cái gì đó khác. Một ý tưởng là sử dụng chuột bóng USB để thử và theo dõi chuyển động của robot nhưng tôi chắc chắn rằng chuột sẽ bị đập quá nhiều dẫn đến tiếng ồn và kết quả không hợp lệ. Như một lưu ý phụ: trọng lượng cơ sở khoảng 2ft x 3ft của robot ở mức 120 lbs. Bất kỳ suy nghĩ hoặc đề nghị đánh giá cao. Tôi chắc chắn rằng con chuột sẽ bị đập quá nhiều dẫn đến tiếng ồn và kết quả không hợp lệ. Như một lưu ý phụ: trọng lượng cơ sở khoảng 2ft x 3ft của robot ở mức 120 lbs. Bất kỳ suy nghĩ hoặc đề nghị đánh giá cao. Tôi chắc chắn rằng con chuột sẽ bị đập quá nhiều dẫn đến tiếng ồn và kết quả không hợp lệ. Như một lưu ý phụ: trọng lượng cơ sở khoảng 2ft x 3ft của robot ở mức 120 lbs. Bất kỳ suy nghĩ hoặc đề nghị đánh giá cao.


Bạn đã thử một bộ lọc kalman?
Paul

Tôi đã đọc về các bộ lọc Kalman, nhưng chưa bao giờ viết một bộ lọc.
Michael Coss

Nếu bạn có ~ 1600 đô la để chi tiêu, Thiết bị analog có IMU với Bộ lọc Kalman mở rộng được nhúng (Tôi không làm việc cho AD). liên kết
Matt Brown

Tôi nghĩ rằng bất kỳ con chuột nào cũng sẽ đo được loại chuyển động giống như chuột bóng. Có bất kỳ lý do cụ thể nó nên là một con chuột bóng? Một đèn LED màu đỏ có thể bị nhiễu ít hơn do chen lấn vật lý. Cả hai sẽ yêu cầu tiếp xúc vật lý (hoặc gần nó) với bề mặt đường. Chuột có thể giỏi dịch thuật tuyến tính, nhưng chúng có thể sẽ bỏ lỡ các chuyển động quay.
Bạch tuộc

Câu trả lời:


5

Cách ước tính vị trí của robot phụ thuộc vào mức độ bạn muốn ước tính vị trí của nó. Nếu bạn chỉ cần đoán sơ bộ, hãy thử đo hình, nó hoạt động tốt. Để có kết quả tốt hơn, bạn phải kết hợp nhiều cảm biến hơn. Đó là một quá trình gia tăng bao gồm rất nhiều phản ứng tổng hợp cảm biến, và đột nhiên, bạn đã xây dựng Bộ lọc Kalman mở rộng.

Theo tôi, cách tốt nhất là sử dụng từng cảm biến để hình thành ước tính của riêng nó. Sau đó, lấy trung bình trọng số của các ước tính kết quả. Các trọng số tương ứng với sự chắc chắn liên quan đến từng ước tính. Đây, về bản chất là Bộ lọc Kalman. Điều còn thiếu là làm thế nào để ước tính những điều chắc chắn. Đây là phần khó của KF. Hãy thử một số giá trị ad hoc như một khởi đầu. Bạn sẽ ngạc nhiên khi nó có thể hoạt động tốt như thế nào.

Điều này được giải quyết như là một câu hỏi hiệu trưởng đầu tiên trong bất kỳ sách giáo khoa robot chính và ngay cả ở đây, trên trang web này.

Trên trang web này, chúng tôi đã giải quyết nhiều câu hỏi liên quan đến vấn đề này.

và nhiều hơn nữa tôi đã bỏ lỡ.

Nhưng thành thật mà nói, đây là những cách tiếp cận nặng tay. Bạn phải hiểu những điều cơ bản (ví dụ vị trí ước tính từ hình học) để hiểu phần còn lại.


Ở cấp độ cao, tôi hiểu các vấn đề liên quan. Và đã thử điều này với các robot khác nhau. Chúng tôi đã có bộ mã hóa, tính toán tốc độ và quãng đường di chuyển nhưng thấy rằng sự trượt và đẩy từ các robot khác làm biến dạng mọi thứ. Chúng tôi đã thực hiện tích hợp kép của một gia tốc kế và nhận thấy lỗi gộp khá nhanh khiến giá trị trở nên vô dụng. Chúng tôi đã có một con quay hồi chuyển và tìm thấy sự trôi dạt của các thành phần tương đối rẻ tiền mà chúng tôi từng là một vấn đề. Vì vậy, tôi đã mua một cái gì đó đắt hơn một chút với hy vọng rằng nó có thể tốt hơn. Cảm ơn các liên kết, tôi sẽ xem
Michael Coss

1
Xin chào, tôi không có ý ám chỉ bạn đã không. Chỉ cần mỗi cảm biến đưa ra ước tính vị trí độc lập và thật ngạc nhiên, bằng cách kết hợp chúng, bạn có thể có được ước tính kết hợp tốt hơn ước tính tốt nhất. Đây là khái niệm cơ bản cần được sử dụng nếu không có cảm biến riêng lẻ nào đủ tốt.
Josh Vander Hook

Đồng ý, và là nguồn gốc của câu hỏi của tôi. Làm thế nào để hợp nhất chúng, và có được kết quả tốt hơn. Điểm mấu chốt là làm thế nào để lấy được mô hình chuyển động và ma trận hiệp phương sai là điều tôi không hiểu đầy đủ và tại sao tôi chưa bao giờ đi vào con đường thực hiện bộ lọc Kalman cho robot của chúng tôi. Thậm chí chỉ cần lấy một số mã sẽ không có ích nếu tôi không hiểu cách điều chỉnh mức tăng trên bộ lọc. Có một IMU có bộ lọc Kalman tích hợp có thể là một giải pháp tốt hơn. Tôi đã thấy một số lựa chọn thay thế khác cho Kalman, algo IMU / AHRS của Madgwick nhưng nó không giống như những gì tôi muốn
Michael Coss

Theo tôi, cách tốt nhất là sử dụng từng cảm biến để hình thành ước tính của riêng nó. Sau đó, lấy trung bình trọng số của các ước tính kết quả. Các trọng số tương ứng với sự chắc chắn liên quan đến từng ước tính. Đây, về bản chất là Bộ lọc Kalman. Điều còn thiếu là làm thế nào để ước tính những điều chắc chắn. Đây là phần khó của KF. Hãy thử một số giá trị ad hoc như một khởi đầu. Bạn sẽ ngạc nhiên khi thấy nó có thể hoạt động tốt như thế nào.
Josh Vander Hook

4

Tôi không được phép bình luận, vì vậy tôi phải thêm một câu trả lời. Theo vị trí, bạn có nghĩa là vị trí trong không gian (tọa độ X, Y) hoặc hướng (độ nghiêng, v.v.)?

Nếu vị trí, bạn có thể sử dụng các giá trị gia tốc và tích hợp gia tốc để có được quãng đường di chuyển, mặc dù điều này khá không chính xác. Chúng tôi đã cố gắng thực hiện điều này cho một quad quad, và độ lệch do lỗi là khá lớn.

Bạn có thể sử dụng gia tốc kế với con quay hồi chuyển cùng với bộ lọc Kalman để có ý tưởng tốt hơn về việc robot đã di chuyển được bao xa theo mỗi hướng. Đây là một cuộc thảo luận trước đây về chủ đề này.

Độ nghiêng bạn có thể tính trực tiếp từ các giá trị gia tốc (nhưng lọc chúng, thậm chí bộ lọc FIR sẽ hoạt động tốt).

Tiêu đề bạn có thể nhận được từ con quay hồi chuyển và / hoặc từ kế. Con quay hồi chuyển phát hiện vòng quay, vì vậy hãy chắc chắn rằng nó ở đâu đó gần trung tâm robot của bạn (hoặc bất cứ nơi nào có trục quay).

Tôi hy vọng điều đó sẽ giúp. Tôi phải đi dạy, nhưng tôi sẽ quay lại sau một tiếng nữa và thêm một số thông tin.


Tôi đã xem xét nhiều tài liệu khác nhau về các bộ lọc Kalman và đây dường như là câu trả lời chung cho việc giảm tiếng ồn trong gia tốc kế, nhưng tôi chưa bao giờ viết mã cho bộ lọc như vậy và tôi không chắc bắt đầu tích hợp bộ lọc khác vào đâu cảm biến. Không khó để thấy rằng chỉ cần tích hợp gia tốc kế hai lần sẽ khá khủng khiếp trong môi trường ồn ào, đầy rung động của robot của chúng tôi. Tương tự như vậy, tôi nghĩ rằng việc đưa các cảm biến khác vào tài khoản sẽ giảm lỗi, giả sử hiệu chuẩn khi bắt đầu. Chủ yếu chúng ta chỉ cần tọa độ x, y và một tiêu đề định hướng.
Michael Coss

@MichaelCoss: Có rất nhiều phần mềm có sẵn để triển khai các bộ lọc kalman cho bạn. Khó khăn chính đối với người mới làm quen là phát triển một mô hình chuyển động phù hợp và đặc trưng cho hiệp phương sai trong mô hình cảm biến.
Paul

@MichaelCoss, có mã Arduino có sẵn trực tuyến cho Kalman. Đây là một cuộc thảo luận tốt đẹp về việc điều chỉnh một Kalman. mã Arduino cho con quay hồi chuyển + gia tốc kế và hướng dẫn ở đây . Bạn có thể gặp nhiều may mắn hơn nếu bạn xem các bộ lọc Kalman cho mã quad quad - nó khá phổ biến.
Mewa

@MichaelCoss, cũng để tính toán tiêu đề bằng từ kế , tuy nhiên tôi nghĩ động cơ & độ nghiêng trong robot của bạn sẽ ảnh hưởng đến độ chính xác của phép đo này. Trong trường hợp đó, bạn có thể muốn sử dụng gia tốc kế để đo xem robot có cân bằng không (hiệu chỉnh nó đến một mức nào đó), sau đó điều chỉnh chỉ số từ kế của bạn theo đó.
Mewa
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.