Jak zrobić „niewidocznego robota po linii”?


10

Chciałbym zbudować robota podążającego wirtualną ścieżką (Niewidoczna ścieżka jak „czarna linia na białej powierzchni” itp.).

Jestem po prostu entuzjastycznie widząc filmy science fiction, które pokazują, że roboty niosą towary i materiały w zatłoczonym miejscu. I tak naprawdę nie podążają za fizyczną linią. Wyczuwają przeszkody, głębokość itp.

Chciałbym zbudować jednego takiego robota, który podąża określoną (wirtualną) ścieżką od punktu A do B.

Próbowałem kilku rzeczy:

  1. Za pomocą magnetycznego czujnika „efektu Halla” na robocie i drutu przewodzącego prąd (pod stołem). Problem polegał na tym, że sąsiedztwo czujnika Halla jest tak małe (<2 cm), że bardzo trudno jest ocenić, czy robot znajduje się na linii, czy poza nią. Nawet użycie szeregu magnesów nie mogło rozwiązać tego problemu, ponieważ mój stół ma grubość 1 cala. Więc ten pomysł się powiódł: P

  2. Używanie farby ultrafioletowej (na linii) i stosowanie diod UV na robocie jako czujnikach. To da więcej ruchu zygzakowatemu robotowi. A ze względu na potencjalne zagrożenia związane ze stosowaniem źródła światła UV nawet ten pomysł się nie powiódł: P

W końcu pomyślałem o umieszczeniu kamery na górze i zastosowaniu algorytmów przetwarzania obrazu, aby zobaczyć, czy robot jest na linii, czy się rozchodzi.

Czy jest jakieś lepsze rozwiązanie niż to? Naprawdę szukam kreatywnych i prostych rozwiązań. :)


Czy znasz czujniki sonaru i SLAM i powiązane tematy? Często roboty nie podążają określoną ścieżką i „wykrywają” przeszkody za pomocą czujników, takich jak sonar, budują mapę, a następnie wykorzystują algorytmy planowania ścieżki, aby znaleźć swoją drogę.
Shahbaz

Dzięki za odpowiedź :) Tak, znam się na czujnikach ultradźwiękowych i sonarowych ... tak naprawdę chcę, aby mój robot poruszał się z punktu A do punktu B na określonej ścieżce, a także na stole (3 stopy powyżej poziom gruntu) ... A budowanie mapy w tym środowisku jest naprawdę skomplikowaną sprawą ... Więc jakieś sugestie?
Nitin,

4
Byłem w trakcie odpowiadania na to pytanie, ale zauważyłem, że zadajesz 2 sprzeczne rzeczy. Przez „niewidzialną linię” masz na myśli „linię, która nie jest widoczna gołym okiem, np. Linię zdefiniowaną przez sygnały magnetyczne lub UV ”, czy masz na myśli „linię, która istnieje praktycznie - w obrębie robota - w oparciu o dokąd chce się udać i jakie przeszkody wyczuwa po drodze? ” Innymi słowy: czy rysujesz linię, którą podąża robot, czy też robot ją narysował?
Ian

Cześć, chcę autonomicznego robota, który powinien nawigować sam z jednego punktu do drugiego. Aby to zrobić, potrzebuje linii lub ścieżki odniesienia. Robot śledzący linię jest najprostszym rozwiązaniem, ale szukam zaawansowanego i solidnego rozwiązania. I może to być coś w rodzaju linii niewidocznej gołym okiem lub wirtualnej linii stworzonej przez robota. Robot nie rysuje linii, po prostu podąża. inaczej mówiąc, linia (wirtualna) jest zdefiniowana przeze mnie. Przynajmniej „przetwarzanie obrazu” może być rozwiązaniem, jeśli cokolwiek innego nie działa. Ale szukam prostych rozwiązań :)
Nitin

@ nitin, być może powinieneś unikać używania terminów takich jak „nawiguj samodzielnie”, ponieważ automatycznie oznacza to, że ścieżka jest niezdefiniowana i robot musi ją znaleźć. To, czego chcesz, wydaje się być robotem, który podąża za linią i nie ma możliwości znalezienia własnej drogi, jeśli nie otrzyma wskazówek.
Shahbaz,

Odpowiedzi:


3

Istnieje wiele możliwych sposobów rozwiązania tego problemu i wszystkie one zależą od dostępnego materiału i wiedzy konstruktora robota.

W skrócie, kryteria są następujące:

  1. Robot musi dostać się z punktu A do B podążając z góry określoną ścieżką.
  2. Wybrana ścieżka nie może przebiegać wzdłuż linii widocznej dla ludzkiego oka.

W zależności od długości ścieżki użycie koderów może być wystarczające. Należy jednak zauważyć, że z powodu niedokładności fizycznej dryf sprawia, że ​​odometria (co nazywamy koderami do pomiaru odległości) jest niepraktyczna na duże odległości. Jest to jednak łatwe na krótkich dystansach i należy to przynajmniej rozważyć.

Jeśli odległość jest zbyt duża dla samej odometrii, należy rozważyć użycie czujnika do pomiaru zwojów (na przykład żyroskopu lub kompasu ). Zwoje zwykle wprowadzają najwięcej błędów w odometrii (pomiar wzdłuż linii prostej nie ma zbyt dużego błędu), więc użycie czujnika do zwojów może czasami sprawić, że odometria jest realnym rozwiązaniem.

Jeśli odometria lub odometria + wyczuwalne toczenie nie działa, możemy być kreatywni. Jeśli chcesz, aby robot podążał ścieżką złożoną głównie z prostych odcinków, możesz umieścić diody podczerwieni w danych punktach na stole i pozwolić robotowi wyczuć te diody i podjechać szeregowo do każdego punktu.

Jednak nadal pozostawia to jakieś wizualne oznaczenie na stole (choć może być do pewnego stopnia ukryte) i byłoby wspaniale móc się bez tego obejść. Innym podejściem byłoby użycie wskaźników laserowych świecących równolegle do powierzchni stołu, ale kilka cali nad stołem. Robot może użyć fotorezystora do wykrycia, kiedy przechodzi przez laser, a to może dać mu znać, kiedy skręcić.

Podsumowując, myślę, że odometria powiększona o czujnik kąta jest prawdopodobnie najlepszym wyborem dla twojego robota, przynajmniej w sposób, w jaki go opisałeś. Być może będę w stanie wymyślić więcej opcji, ale to wszystko, co teraz widzę.

Ciekawe - dlaczego chcesz, aby linia była niewidoczna? Wiedząc, dlaczego może otworzyć więcej możliwości.


Wielkie dzięki @anorton :) :) Czujniki „odometrii” + „jak żyroskop czy kompas”: - Bulls-eye;) Jestem pewien, że to na pewno będzie trening. W porównaniu z technikami przetwarzania obrazu wydaje się to dość łatwe. Tak, mam rozwiązanie, dziękuję :) Zaktualizuję Cię wraz z postępem projektu i innymi wyzwaniami.
Nitin,

Nawiasem mówiąc, głównym celem uczynienia linii niewidocznym było - „Czarna linia na powierzchni i robot podążający za linią” to teraz podstawowa wiedza na temat robotyki. I odkryłem, że na poziomie przemysłowym nie jest to doceniane. Ludzie potrzebują wysoce zaawansowanego i inteligentnego robota do wykonywania swojej pracy. Pracowałem więc nad tym projektem, aby zbudować robota o większej stabilności i odporności. Robot, który nie jest łatwy do włamania. Innymi słowy, zwykła osoba nie powinna znać technologii stojącej za robotem :)
Nitin

2

Anki używa czujników optycznych w swoich samochodach-zabawkach do wdrażania obserwatorów linii. Czujniki optyczne są czułe w zakresie podczerwieni. Fakt, że linie nie są widoczne, można łatwo wyjaśnić: linie są pokryte czarnym kolorem, który jest przezroczysty w zakresie podczerwieni. Paliogen black L 86 lub Paliogen black S 84 firmy BASF to takie kolory. Jeśli umieścisz kody kreskowe wzdłuż linii, możesz nawet uzyskać absolutne informacje o położeniu z czujników optycznych.


0

Mam krótką odpowiedź na twoje pytanie. Dotyczy to tylko robota z obsługą ROS. Można to zrobić na wiele sposobów, ale tak właśnie to zrobiłem. Użyłem ROS i Kuka Youbot. Może to być dowolny robot korzystający z ROS. Bardzo dobrze jest znać ROS, jeśli planujesz być w robotyce.

Użyj ROS Następnie użyj GMapping, aby zmapować swoje środowisko. Przykład pokoju lub korytarza i zapisz mapę. Następnie za pomocą RVIZ podaj pozycję celu na mapie.


0

Cóż, nie potrzebujesz do tego żadnej linii. Jedyne, czego prawdopodobnie potrzebujesz, to współrzędne globalne. jeśli umieścisz robota w polu zdefiniowanym przez globalne współrzędne i zastosujesz proste reguły fizyki newtonowskiej, robot może przejść z jednego punktu do drugiego. Na podstawie jego aktualnej lokalizacji dowie się o obecnym kącie skrętu, pożądanym kącie skrętu i współrzędnych bramki (zwanych również „pozami”). Gdy nadasz robotowi prędkość, zacznie przesuwać się w kierunku współrzędnych celu. W każdej iteracji ponownie obliczy swoją pozę i dokona korekt w razie potrzeby.

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.