Định vị một đàn robot


9

Tôi có một căn phòng 300cm x 300cm với trần cao 25cm (có hai mươi lăm cm). Nó chứa 50 robot có bánh xe nhỏ (khoảng 20 cm x 20 cm). Một máy tính trung tâm sẽ điều phối các chuyển động của robot, sử dụng mạng không dây để gửi lệnh vị trí cho chúng. Các robot sẽ thực hiện điều khiển vị trí vòng kín của riêng mình để tiết kiệm băng thông không dây. Các robot có bộ vi điều khiển ARM 32 bit. Chúng có cảm biến vị trí bánh xe, và khả năng điều khiển bánh xe chính xác.

Vấn đề: Các robot thực sự chưa thể làm điều này vì chúng không có cách nào để đo vị trí của chúng trong phòng.

Câu hỏi: Làm thế nào các robot có thể được cung cấp khả năng đo vị trí và hướng của chúng đến độ chính xác cao hơn ± 5 mm? Tôi đang tìm kiếm một giải pháp chính xác và mạnh mẽ, không bị ảnh hưởng bởi các ứng dụng và không yêu cầu PC có công suất cao trên mỗi robot. Bất cứ cảm biến nào là cần thiết để nội địa hóa đều có thể dễ dàng được thêm vào robot. Các bộ vi điều khiển có thể dễ dàng được thay đổi cho những bộ mạnh hơn nếu giải pháp nội địa hóa yêu cầu.


Những loại cảm biến nào mà robot có và loại sức mạnh tính toán nào?
DaemonMaker

1
@DaemonMaker - Đã thêm thông tin đó và cố gắng làm rõ câu hỏi.
Rocketmagnet

1
Đó là một bản cập nhật tốt @Rocketmagnet nhưng câu hỏi vẫn còn khá mở đã kết thúc. Có rất nhiều mánh khóe trong tài liệu bản địa hóa có thể có sẵn cho bạn tùy thuộc vào những gì robot của bạn có thể quan sát về bản thân, môi trường của chúng và nhau. Chẳng hạn, có rất nhiều công việc liên quan đến việc kết hợp niềm tin của nhiều robot để tăng độ chính xác cho bất kỳ niềm tin nào của robot. Điều này có thể đạt được bằng cách thêm một camera nhỏ và điểm đánh dấu fiducial cho mỗi robot và sẽ không làm tăng quá trình xử lý.
DaemonMaker

Do chẩm chặn xy dòng nhìn, hoặc z là tốt? Ví dụ, nếu bạn có các đường kẻ, tia laser hoặc gương trên trần nhà, robot thường có thể nhìn thấy chúng không?
James Waldby - jwpat7

@ jwpat7 - Vì trần nhà rất thấp và các robot thực tế chạm vào nó, về cơ bản không bao giờ có một đường ngắm theo hướng Z.
Rocketmagnet

Câu trả lời:


4

Một số ý tưởng nằm trên đỉnh đầu của tôi ... Nói chung, bạn có thể cho mỗi robot cảm nhận vị trí của riêng nó hoặc có một số loại hệ thống tìm thấy robot và gửi cho chúng thông tin về vị trí của chúng (hoặc kết hợp). Có thể sử dụng các vị trí robot khác để xác định vị trí của mình là một lựa chọn khác nếu chúng có thể giao tiếp. Bạn cũng có thể kết hợp thông tin cảm biến từ robot và các nguồn khác.

Quang

Bạn có thể mã hóa vị trí tuyệt đối hoặc vị trí tương đối trên sàn hoặc trần nhà. Một cảm biến trên robot có thể nhìn vào chúng. Một cảm biến giống như trong chuột quang của bạn có thể nhận được chuyển động tương đối khỏi hầu hết các bề mặt ngay cả khi không có bất kỳ mẫu nào. Có những con chuột kiểu cũ sử dụng lưới có hoa văn.

Bạn có thể có hai (hoặc nhiều) camera trên mỗi robot nhìn theo các hướng khác nhau, nếu các bức tường của căn phòng có đúng kiểu mẫu bạn có thể xác định vị trí của mình dựa trên hình ảnh. Một máy quay là một lựa chọn khác. Sự cản trở của máy ảnh bởi các robot khác có thể là một mối quan tâm.

Một mảng cảm biến hoặc máy ảnh trên sàn hoặc trần nhà có thể xác định vị trí của robot và sau đó bạn có thể gửi cho robot vị trí của chúng.

Một số loại cảm biến quang quay có thể định vị hướng của đèn hiệu quang (ví dụ: đèn LED).

Âm thanh

Bạn có thể có một vài đèn hiệu xung quanh phát ra tiếng kêu siêu âm. Nếu tất cả chúng được đồng bộ hóa (ví dụ độ trễ cố định giữa chúng) thì với vị trí của chúng, bạn có thể sử dụng thời gian tính toán chuyến bay để xác định vị trí của robot. Nhiều năm trước tôi đã làm việc với một máy số hóa siêu âm chính xác đến khoảng một mm trong khoảng cách khoảng một mét nên có vẻ như trong sân bóng. Tùy thuộc vào hình dạng của robot của bạn và cấu hình của các phản xạ và vật cản của bầy đàn có thể hoặc không thể là một vấn đề. Bạn sẽ cần phải thử nghiệm nhưng cảm giác ruột của tôi là với đủ đèn hiệu bạn có thể thực hiện tốt.

Công cụ tìm phạm vi siêu âm trên mỗi robot. (quay tròn?) Có thể ánh xạ khoảng cách đến các robot khác hoặc các bức tường.

Nếu bất kỳ điều nào trong số này nghe có vẻ thú vị, tôi có thể thử phát triển những ý tưởng đó xa hơn một chút.


Tôi thích phương pháp siêu âm. Tôi tự hỏi nếu tôi có thể gửi nó qua sàn để nó có thể đi mà không bị quấy rầy hoặc phản ánh bởi bầy đàn.
Rocketmagnet

@Rocketmagnet: Bạn có thể gửi nó qua sàn. Vấn đề là ghép đúng đầu dò thường được thực hiện bằng gel. Có lẽ sẽ là loại lộn xộn cho ứng dụng của bạn. Nếu không có khớp nối đúng, siêu âm sẽ chỉ bật ra khỏi bề mặt. Có lẽ các bánh xe của robot của bạn có thể làm điều đó.
Guy Sirton

@GuySirton Tôi muốn thực hiện phát hiện tiếng kêu siêu âm từ một thiết bị được phát ra từ một thiết bị khác. Tôi đang vật lộn để làm điều này bởi vì tất cả các thành phần tôi thấy có sẵn là các công cụ tìm phạm vi phát ra và phát hiện tiếng vang. Họ xuất ra phạm vi và rất khó để tách chúng thành các phần phát và nhận. Tôi cần gửi tín hiệu qua không khí. Bất kỳ con trỏ hoặc đề nghị? Cảm ơn!
Necromancer

@necromancer bạn sẽ có thể mua máy phát / máy thu, ví dụ như xem digikey.ca/product-detail/en/MA40S4R/490-7706-ND/4358146 và hơn thế nữa trong cùng thể loại ...
Guy Sirton

@GuySirton cảm ơn bạn rất nhiều. Một sự giúp đỡ lớn!
Necromancer

4

Nếu trần nhà là một bề mặt phẳng có thể nhìn thấy từ đỉnh của robot, bạn có thể đặt các sọc đánh dấu (hoặc một số mẫu fiducial đã biết khác) trên trần nhà đều đặn. Các sọc có thể là các vạch trắng hoặc đen hoặc băng phản chiếu hẹp, được phát hiện bằng cách sử dụng cảm quang trên đầu robot.

Nếu cảm biến vị trí bánh xe và điều khiển bánh xe chính xác đủ tốt để duy trì độ chính xác dữ liệu vị trí mong muốn khi robot di chuyển không quá khoảng cách d từ vị trí đã biết chính xác, các sọc (có thể là sọc trắng, sọc đen hoặc băng phản chiếu hẹp) có thể không cần phải được đặt xa hơn khoảng d / √2.

Phần mềm lập kế hoạch chuyển động có lẽ sẽ cần phải thích nghi. Nếu vị trí của robot luôn sai khi vượt qua một dải, hãy điều chỉnh tỷ lệ bộ mã hóa bánh xe của nó theo khoảng cách di chuyển; hoặc nếu một sọc sẽ được nhìn thấy nếu một chân du lịch chỉ dài hơn một chút, hãy mở rộng chân để băng qua sọc; hoặc di chuyển để hiệu chỉnh đối với một số sọc ngay trước bất kỳ thao tác nhạy cảm vị trí nào; hoặc thực hiện các thao tác nhạy cảm với vị trí tại điểm giao nhau.

Có khá nhiều mẫu fiducial có thể. Các sọc trực giao được đặt song song với trục x và y có lẽ là đơn giản nhất để tạo và làm việc với. Nhưng mắt bò, lông chéo, nêm, mã vạch và các mẫu khác cũng rất đáng để xem xét.


+1 Mặc dù tôi đã đọc câu trả lời của bạn trước khi đăng bài của tôi, tôi vẫn đăng khá nhiều câu trả lời tương tự về các lễ hội ... Tôi đổ lỗi cho việc thiếu ngủ.
ThomasH

@ThomasH, cảm ơn! Tôi cho rằng OP đã không bình chọn bất kỳ câu trả lời nào, tất cả đều cung cấp một số thông tin hữu ích.
James Waldby - jwpat7

4

Khoảng cách thấp giữa đỉnh robot và trần nhà thực sự hạn chế các lựa chọn của bạn. Có vẻ như không thể có được một cái nhìn tổng quan tập trung của toàn bộ căn phòng và làm việc từ đó.

Tôi không chắc bạn đang nói về loại 'phòng' nào và bạn có thể sử dụng nó bao nhiêu, nhưng nó có thể là một lựa chọn để đặt các điểm đánh dấu trên trần nhà thay vì các robot. Với khoảng cách ngắn, bạn sẽ phải lấp đầy hoàn toàn trần nhà bằng các điểm đánh dấu nhỏ có thể quan sát hoàn toàn bằng camera hướng lên trên mỗi robot, mặc dù bạn có thể đặt camera này thấp hơn trên robot, nói giữa bánh trước và sau ở hai bên, để cho bạn góc nhìn rộng hơn. Nhưng thách thức lớn nhất là in đủ các dấu hiệu riêng biệt để tạo thành toàn bộ trần nhà.

Ngoài ra, có thể hiểu được thiết bị trên sàn có nhiều thẻ RFID, miễn là bạn có thể tìm thấy các đầu đọc có phạm vi đủ nhỏ (AFAIK, đầu đọc RFID sẽ chỉ cho bạn biết rằng một thẻ nhất định nằm trong phạm vi chứ không phải ở đâu). Trình đọc RFID Phidgets đã có một phạm vi khoảng. 3 inch, vì vậy trừ khi bạn bản địa hóa bằng cách xem nhóm thẻ nào bạn có thể quan sát (nếu có thể quan sát nhiều thẻ cùng một lúc - bạn có thể nói tôi không có kinh nghiệm làm việc thực tế với RFID không?), Bạn phải thử nghiệm với nhận các thẻ nhỏ hơn và 'che chắn' chúng ở một mức độ từ người đọc, để chúng không thể được đọc ngoài phạm vi rất gần.

Tất cả trong tất cả có vẻ như một thách thức khó khăn nhưng rất thú vị. Nếu nó là cho công việc, tôi giả sử bạn không thể cho chúng tôi biết mục đích của dự án, nhưng nó chắc chắn nghe hấp dẫn :)


Cảm ơn câu trả lời. Thật khó chịu, có quá ít tôi có thể tiết lộ về dự án đến nỗi khiến cho việc đặt câu hỏi trở nên rất khó khăn.
Rocketmagnet

Tôi đã nghĩ giống như vậy. Bể bơi có cờ màu ở trên và dòng bên dưới để chỉ cho người bơi vị trí của anh ta trong làn của anh ta trong hồ bơi. Cùng một khái niệm nhưng 2 trục thay vì một.
zbest

3

Nếu không có hệ thống cha mẹ , bạn có thể sử dụng hệ thống camera được hiệu chỉnh để đọc các điểm đánh dấu được đặt trên đầu của robot.

  1. Đặt máy ảnh tốt nhất bạn có thể nhận được xung quanh môi trường. Tôi sử dụng máy quay web $ 20 từ amazon.com
  2. Sử dụng các công cụ hiệu chỉnh của OpenCV để hiệu chỉnh máy ảnh.
  3. Đặt điểm đánh dấu lên trên các robot
  4. Các máy ảnh biết vị trí tương đối của chúng trong môi trường, vì vậy bằng cách sắp xếp các vị trí đánh dấu, chúng có thể xuất chính xác vị trí và hướng của các điểm đánh dấu.

Giống như những gì các nhà nghiên cứu đã làm trong bài báo này (xem trang 16)

Tuy nhiên, như những người khác đã lưu ý, nếu trần nhà rất thấp, bạn sẽ không có tầm nhìn tốt đến đỉnh của robot và bạn sẽ gặp khó khăn khi sử dụng phương pháp này.


Cảm ơn câu trả lời. Vấn đề với bất cứ điều gì như Vicon là số lượng tắc lớn xảy ra khi bạn có 50 robot bao quanh một căn phòng có trần thấp như vậy. Tôi nghĩ rằng làm cho loại giải pháp này là không thể.
Rocketmagnet
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.