Lokalizowanie roju robotów


9

Mam pokój o wymiarach 300 x 300 cm z sufitem o wysokości 25 cm (tak, dwadzieścia pięć centymetrów). Zawiera 50 małych robotów kołowych (około 20 cm x 20 cm). Komputer centralny będzie koordynował ruchy robotów, wykorzystując sieć bezprzewodową do wysyłania im poleceń pozycji. Roboty wykonają własną kontrolę pozycji w zamkniętej pętli, aby zaoszczędzić przepustowość sieci bezprzewodowej. Roboty mają 32-bitowe mikrokontrolery ARM. Posiadają czujniki położenia kół i zdolność do dokładnego sterowania kołami.

Problem: Roboty nie mogą tego jeszcze zrobić, ponieważ nie mają możliwości zmierzenia swojej pozycji w pomieszczeniu.

Pytanie: W jaki sposób robotom można nadać zdolność pomiaru ich pozycji i orientacji z dokładnością lepszą niż ± 5 mm? Szukam dokładnego i solidnego rozwiązania, na które nie mają wpływu okluzje i nie wymaga komputera o dużej mocy na każdym robocie. Wszystkie czujniki niezbędne do lokalizacji można łatwo dodać do robotów. Mikrokontrolery można łatwo zmienić na mocniejsze, jeśli wymaga tego rozwiązanie lokalizacyjne.


Jakie czujniki mają roboty i jaką moc obliczeniową?
DaemonMaker

1
@DaemonMaker - Dodał tę informację i próbował wyjaśnić pytanie.
Rocketmagnet

1
To dobra aktualizacja @Rocketmagnet, ale pytanie jest nadal dość otwarte. W literaturze lokalizacyjnej jest wiele sztuczek, które mogą być dostępne w zależności od tego, co twoje roboty mogą zaobserwować o sobie, swoim otoczeniu i sobie nawzajem. Na przykład jest wiele pracy związanej z łączeniem przekonań wielu robotów w celu zwiększenia dokładności przekonań danego robota. Można to osiągnąć przez dodanie do każdego robota małej kamery i znacznika odniesienia i nie zwiększyłoby to znacznie przetwarzania.
DaemonMaker,

Czy okluzje blokują linię widzenia Xy, czy też Z? Na przykład, jeśli masz na suficie linie, lasery lub lustra, czy roboty zazwyczaj je zobaczą?
James Waldby - jwpat7

@ jwpat7 - Ponieważ sufit jest tak niski, a roboty praktycznie go dotykają, w zasadzie nigdy nie ma linii wzroku w kierunku Z.
Rocketmagnet

Odpowiedzi:


4

Kilka pomysłów z mojej głowy ... Ogólnie rzecz biorąc, każdy robot może albo wyczuć swoją pozycję, albo jakiś system znaleźć roboty i wysłać im informacje o ich pozycji (lub kombinacji). Ewentualnie użycie innych pozycji robota do zlokalizowania siebie to kolejna opcja, jeśli mogą się komunikować. Możesz także łączyć informacje z czujników z robotów i innych źródeł.

Optyczny

Możesz zakodować pozycję bezwzględną lub względną na podłodze lub suficie. Czujnik robota może na nie patrzeć. Czujnik podobny do tego w myszy optycznej może poruszać się względnie na większości powierzchni nawet bez żadnego wzoru. Były myszy w starszym stylu, które używały wzorzystej siatki.

Możesz mieć dwie (lub więcej) kamer na każdym robocie, patrząc w różnych kierunkach, jeśli ściany pokoju mają odpowiedni wzór, możesz określić swoją lokalizację na podstawie zdjęć. Wirująca kamera to kolejna opcja. Problemem może być zasłonięcie kamery przez inne roboty.

Matryca czujników lub kamera w podłodze lub suficie może zlokalizować roboty, a następnie możesz wysłać roboty ich lokalizację.

Jakiś wirujący czujnik optyczny, który może zlokalizować kierunek optycznego światła ostrzegawczego (np. Dioda LED).

Dźwięk

Możesz mieć kilka latarni wokół emitujących ćwierkania ultradźwiękowe. Jeśli wszystkie są zsynchronizowane (np. Ustalone opóźnienie między nimi), to biorąc pod uwagę ich lokalizację, można użyć obliczenia czasu lotu, aby określić pozycję robota. Wiele lat temu pracowałem z digitizerem ultradźwiękowym, który był dokładny do około mm na dystansie około metra, więc wydaje się, że jest na boisku. W zależności od kształtu robota i konfiguracji roju odbicia i przeszkody mogą, ale nie muszą stanowić problemu. Trzeba by eksperymentować, ale mam przeczucie, że przy wystarczającej liczbie sygnałów nawigacyjnych można uzyskać dobrą wydajność.

Dalmierze ultradźwiękowe na każdym robocie. (wiruje?) Może odwzorować odległość do innych robotów lub ścian.

Jeśli którykolwiek z nich brzmi interesująco, mogę spróbować rozwinąć te pomysły nieco dalej.


Lubię metodę ultradźwiękową. Zastanawiam się, czy mógłbym wysłać go przez podłogę, aby mógł podróżować bez przeszkód i odbicia od roju.
Rocketmagnet

@Rocketmagnet: Możesz wysłać go przez podłogę. Problem polega na prawidłowym sprzężeniu przetwornika, co zwykle odbywa się za pomocą żelu. Prawdopodobnie byłby trochę niechlujny dla twojej aplikacji. Bez odpowiedniego sprzężenia ultradźwięki po prostu odbiłyby się od powierzchni. Być może koła robota mogłyby załatwić sprawę.
Guy Sirton,

@ GuySirton Chcę zaimplementować wykrywanie ćwierknięć ultradźwiękowych z urządzenia emitowanego z innego urządzenia. Walczę o to, ponieważ wszystkie dostępne komponenty to dalmierze, które emitują i wykrywają echo. Wyprowadzają zasięg i trudno jest je rozdzielić na części emitujące i odbierające. Muszę wysłać sygnały drogą powietrzną. Wszelkie wskazówki lub sugestie? Dzięki!
nekromanta

@necromancer powinieneś być w stanie kupić nadajniki / odbiorniki np zobaczyć ten digikey.ca/product-detail/en/MA40S4R/490-7706-ND/4358146 i więcej w tej samej kategorii ...
Guy Sirton

@GuySirton dziękuję bardzo. duża pomoc!
nekromanta,

4

Jeśli sufit jest płaską powierzchnią widoczną z wierzchołków robotów, możesz umieszczać na nim paski znaczników (lub inne znane wzory) na suficie w regularnych odstępach czasu. Paski mogą być białymi lub czarnymi liniami lub wąską taśmą odblaskową, wykrywaną za pomocą fotosensorów na robotach.

Jeśli czujniki położenia koła i dokładne sterowanie kołem są wystarczająco dobre, aby utrzymać pożądaną dokładność danych lokalizacji, gdy robot przesunął się nie dalej niż odległość d od dokładnie znanej pozycji, paski (które mogą być białymi paskami, czarnymi paskami lub wąską taśmą odblaskową) może być konieczne umieszczenie nie dalej niż około d / apart2 od siebie.

Oprogramowanie do planowania ruchu prawdopodobnie musiałoby się dostosować. Jeśli pozycja robota jest stale niepoprawna, gdy przecina pasek, dostosuj jego stosunek liczby enkoderów kół do przebytej odległości; lub jeśli pasek byłby widoczny, gdyby nóżka podróżna była tylko nieco dłuższa, wyciągnij nogę, aby przeciąć pasek; lub przejdź do kalibracji względem kilku pasków tuż przed operacjami zależnymi od pozycji; lub wykonuj operacje wrażliwe na pozycję w punkcie przecięcia pasów.

Możliwa jest całkiem duża różnorodność wzorów. Prostopadłe paski ułożone równolegle do osi x i y są prawdopodobnie najłatwiejsze do utworzenia i pracy z nimi. Ale warto też wziąć pod uwagę bycze oczy, celowniki, kliny, kody kreskowe i inne wzory.


+1 Mimo, że przeczytałem twoją odpowiedź przed wysłaniem mojej, wciąż napisałem prawie taką samą odpowiedź na temat powierników ... Obwiniam brak snu.
ThomasH

@ThomasH, dzięki! Jestem zaskoczony PO nie głosował się którykolwiek z odpowiedziami, z których wszystkie zapewniają pewne użyteczne informacje.
James Waldby - jwpat7

4

Mała odległość między górą robota a sufitem naprawdę ogranicza twoje opcje. Wydaje się, że uzyskanie scentralizowanego przeglądu całego pokoju i pracy jest prawie niemożliwe.

Nie jestem pewien, o jakim „pokoju” mówisz i ile możesz go oprzyrządować, ale opcją może być umieszczenie znaczników na suficie zamiast robotów. Biorąc pod uwagę niewielką odległość, będziesz musiał prawie całkowicie wypełnić sufit małymi znacznikami, które można całkowicie obserwować za pomocą skierowanej w górę kamery na każdym robocie, chociaż możesz być w stanie ustawić tę kamerę niżej na robocie, powiedzmy między przednie i tylne koła po obu stronach, aby zapewnić szerszy kąt widzenia. Jednak największym wyzwaniem byłoby wydrukowanie wystarczającej liczby wyraźnych znaczników, aby instrumentować cały sufit.

Alternatywnie można wyobrazić sobie podłogę z dużą ilością tagów RFID, pod warunkiem, że można znaleźć czytniki, które mają wystarczająco mały zasięg (AFAIK, czytniki RFID powiedzą tylko, że określony tag jest w zasięgu, a nie tam, gdzie jest). Czytnik RFID Phidgets ma już zasięg ok. 3 cale, więc jeśli nie zlokalizujesz, sprawdzając, którą grupę tagów możesz obserwować (jeśli możliwe jest obserwowanie wielu tagów jednocześnie - czy możesz powiedzieć, że nie mam rzeczywistego doświadczenia w pracy z RFID?), Musisz eksperymentować z pobieranie mniejszych znaczników i „osłanianie” ich do pewnego stopnia przed czytnikiem, aby nie można było ich odczytać inaczej niż z bardzo bliskiej odległości.

Podsumowując, wydaje się to trudne, ale bardzo interesujące wyzwanie. Jeśli jest do pracy, zakładam, że nie możesz powiedzieć nam o celu projektu, ale na pewno brzmi intrygująco :)


Dziękuję za odpowiedź. Frustrujące jest to, że tak niewiele mogę ujawnić na temat projektu, że bardzo trudno było zadać pytanie.
Rocketmagnet

Myślałem to samo. Baseny mają kolorowe flagi powyżej i linie poniżej, aby wskazać pływakowi jego położenie na swojej linii w basenie. Ta sama koncepcja, ale 2 osie zamiast jednej.
zkent

3

Jeśli nie ma mowy o systemie vicon , możesz użyć systemu skalibrowanych kamer do odczytu znaczników umieszczonych na robotach.

  1. Umieść najlepsze kamery, które możesz ominąć. Korzystam z kamer internetowych o wartości 20 USD z amazon.com
  2. Użyj narzędzi kalibracyjnych OpenCV do kalibracji kamer.
  3. Umieść znaczniki na robotach
  4. Kamery znają swoje względne pozycje w środowisku, więc triangulując pozycje znaczników, mogą dokładnie wyprowadzić pozycję i orientację znaczników.

Coś w stylu tego, co ci badacze zrobili w tym artykule (patrz strona 16)

Jednak, jak zauważyli inni, jeśli sufit jest bardzo niski, nie będziesz miał dobrej widoczności na górę robotów i będziesz miał trudności z użyciem tej metody.


Dziękuję za odpowiedź. Problem z czymkolwiek takim jak Vicon polega na ogromnej okluzji, która występuje, gdy 50 robotów tłoczy się w pokoju o tak niskim suficie. Myślę, że to uniemożliwia takie rozwiązanie.
Rocketmagnet
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.