Skocz do zawartości

Oczy robota


thelaguna

Pomocna odpowiedź

Kiedyś trzymając w ręku kartkę papieru, myślałem jak zrobić robota by sam sobie szukał informacji, tj bez odczytywania ich z komputera czy z pamięci.

Założyłem, że aby było to możliwe, robot musiałby mieć własne oczy.

Mając takie "oczy" albo raczej "macki" robot mógłby stosować różne algorytmy w celu ominięcia, podążania za, zaatakowania czy uciekania przed czymś.

Cczerwone punkty i linie to wskaźniki laserowe.

Program odczytuje pozycję punktów względem środka układu.

Z pitagorasów talesów i innych mądrych panów można obliczyć wszystko, odległość od przeszkody, kąt jej nachylenia, położenie i wiele innych.

w pierwszym wypadku, możnaby kazać robotowi skręcać w prawo dopóki punkt(wskaźnik) nie wróci do właściwej pozycji.

w drugim wszystko jest ok, i można nadal wykonywać podstawowy program, np szukanie celu czy poruszanie się.

w trzecim wypadku szybka zmiana pozycji wszystkich punktów oznacza dużą przeszkodę, np ścianę, robot miałby się cofnąć lub obracać podobnie jak w pkt 1

jest oczywiście dużo więcej możliwości, np umieszczenie gdzieś diody led, która oznaczałaby cel dla robota, tu także jest wiele opcji działania, np. skręcanie w lewo bądź w prawo aż współrzędna x punktu nie pokryje się z współrzędną x środkowego wskaźnika

(przykładowo dla robota na gąsienicach:)

object function jedzZaObiektem(object punkt) 
{ 
while(true) 
{ 
 if(punkt.position.x > 0) 
  { 
   lewySilnik(); // skręca w prawo
   czekaj(); 
  } 
 else
  { 
   prawySilnik(); // skręca w lewo
   czekaj(); 
  } 
 lewySilnik();   // patrz niżej
 prawySilnik(); // działają oba silniki
 czekaj(); 
} 
}

moim zdaniem jest to bardzo dobre rozwiązanie, gdy program nie otrzymuje z zewnątrz informacji o ewentualnych celach i przeszkodach tylko sam sobie bada teren.

Zmieniając ilość wskaźników można uprościć bądź uszczegółowić program i cały "zmysł wzroku".

Rozwiązanie jest bardzo proste, jednak odczyt danych z kamery wymaga dużej mocy obliczeniowej oraz rozważań wielu problemów jak dziury w podłożu mogące skutkować zniknięciem wskaźnika, niskie progi możliwe do pokonania, ściany czy nogi od stołu

Oczywiście zakładam że punkty będą widoczne na podłożu, nie biorę pod uwagę np luster.

Spodobał się temat? mam nadzieję że nie popełniłem jakiś rażących błędów.

Gdyby miał ktoś jakieś pytania albo sugestie, zapraszam.

  • Lubię! 1
Link do komentarza
Share on other sites

Ogólnie fajny pomysł, tylko jest właśnie problem z kamerą - przetworzenie sygnału z niej dla wielu jest poza zasięgiem. I zastanawiałeś się jak rozwiązać problem, kiesy napotka przeszkodę w kolorze i rozmiaru wskaźników? Robot dostanie 4 kropki i zgłupieje. 😕

Link do komentarza
Share on other sites

Oczywiście zakładam że punkty będą widoczne na podłożu, nie biorę pod uwagę np luster.

czyli na razie nie brałem pod uwagę takiej przeszkody, ale na pewno dało by się rozwiązać ten problem.

O! Wskaźniki zmieniają pozycję w jednej linii (oś Y), więc możnaby sprawdzić czy wskaźnik czerwony znajduje się +/- na tej linii, jeśli tak, to program zignorowałby wszystkie inne, w przeciwnym razie przypisałby dany wskaźnik jako główny i określiłby sytuację jako dziurę czy inną przeszkodę, zgodnie z podstawowym programem

w obydwu tych przypadkach jest jedno rozwiązanie - skręcaj aż problem nie zniknie i wskaźniki nie wrócą na swoją pozycję.

czyli dodatkowe kilkanaście - kilkadziesiąt linijek kodu.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

W praktyce pewnie nie jeden błąd sie pojawi 🙄

Niestety. Błędy zawsze były i będą, to proste i tanie rozwiązanie pozostawiające wiele do życzenia. Póki co nie ma sensu rozważać błędów których nie ma. Gdyby ktoś zbudował coś takiego na bieżąco musiałby rozbudowywać program.

Sam nie mam ani umiejętności ani warunków do zbudowania takiego "systemu wzrokowego", tak, to rozważania czysto teoretyczne.

Przy bardziej złożonym zadaniu potrzebny będzie dużo bardziej złożony system.

Sprawa oczu robota nie jest wcale nowa, jest często stosowana tylko że nie w taki sposób jaki ja podałem. Jeden z lepszych programów to ten sentry gun:

//Zdania zaczynamy od wielkich liter - poprawiłem 😉

Link do komentarza
Share on other sites

Ogólnie całkiem fajny pomysł z tym, niestety także nie mam potrzebnych materiałów żeby to wykonać. Zapewne byłoby także dużo problemów z wykryciem pewnych obiektów przez kamerke. Sam ruch łatwiej byłoby wykonać pewnie jak w tym Sentry Gun rodem z star wars, a jeszcze wykrywanie kolorów itp. to jest troche roboty.

Link do komentarza
Share on other sites

Mam zestaw Mindstorms lego, tak jest kamerka, która dzięki wbudowanej elektronice może śledzić obiekty o określonym kolorze.

Jak tylko rozkumam jak to się obsługuje, zrobię coś jak ten SENTRY i dam znać.

Link do komentarza
Share on other sites

No, ale jednak czujniki itp. nie są takie tanie do tego, jednak fajna rzecz to np. czujnik światła, za jego pomocą można zrobić światłoluba, linefollowera lub nawet robota który odczytuje specjalne znaki, ale to nie to samo co robotyka amatorska ;]

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.