Obecnie udacity oferuje bezpłatny kurs online Programowanie robota samochodowego, który uczy, jak Google robi to dla swoich samochodów. Zasadniczo używają GPS do ogólnego pozycjonowania wraz z zapisanymi mapami i wykrywaniem widzenia do lokalizacji z dużą dokładnością. Oprogramowanie wykorzystuje filtry cząstek stałych.
Możesz to zrobić z samym GPS, jeśli użyjesz bardzo drogiego różnicowego sprzętu GPS używanego przez geodetów, ale nie byłoby to opłacalne. Jak sugerujesz, jeśli używasz kilku tanich nadajników (być może Xbee?), Możesz łatwo zmierzyć odległość z niezwykle wysoką dokładnością, przesyłając impuls i mierząc czas potrzebny na podróż z nadajnika robota do zdalny repeater i powrót. To jest jak RADAR, tyle że zamiast odbić sygnał od powierzchni pasywnej, jest on wysyłany z powrotem przez stacjonarne transpondery.
EDYCJA: Odkąd Kevin został do mnie wezwany, być może lepiej wyjaśnię ;-) (Dobra zabawa, mam najwyższy szacunek dla Kevina i ma rację, że nie przedstawiłem wystarczających szczegółów, aby pokazać, jak zaimplementuj to).
Dokładny pomiar opóźnienia propagacji między dwoma punktami wymaga przede wszystkim dwóch rzeczy: 1) Prosta ścieżka sygnału, ponieważ odbicia powodują zniekształcenia. 2) Niektóre elementy elektroniczne na obu końcach wykorzystujące zsynchronizowane zegary i możliwość pomiaru odstępów czasu z wymaganą precyzją.
Zsynchronizowane zegary są stosunkowo łatwe, ponieważ stacja odbiorcza może czerpać swój zegar z sygnału przesyłanego przez drugą stację. Jest to standardowa synchroniczna transmisja danych z odzyskiwaniem zegara.
Oto artykuł Pomiar opóźnienia propagacji w dwukierunkowym łączu danych 1,25 Gb / s, w którym łatwo uzyskują tego rodzaju dokładność na kawałku światłowodu o długości 10 km. Mówią: „Powinno być w stanie zsynchronizować ~ 1000 węzłów z dokładnością poniżej nanosekundy na długości do 10 km”.
W tej uwadze opisano metodę określania przesunięcia czasowego między dwoma węzłami. Węzły te są połączone za pomocą dwukierunkowego dwukanałowego kanału komunikacji szeregowej punkt-punkt o kodowaniu 8B / 10B, jak na przykład 1000BASE-X (Gigabit Ethernet). Przesunięcie czasowe określa się przez pomiar opóźnienia propagacji za pomocą sygnału znacznika. Sygnał jest wysyłany z urządzenia nadrzędnego do węzła podrzędnego iz powrotem przy użyciu funkcji serializatora / deserializatora (SerDes) w układach FPGA (Virtex-5). Odzyskany zegar w węźle slave jest wykorzystywany jako zegar nadawczy slave, więc cały system jest synchroniczny. W przypadku szeregowego kanału komunikacyjnego 1,25 Gb / s opóźnienie jest znane z rozdzielczością pojedynczego przedziału czasowego (tj. 800 ps). Rozdzielczość tę można dodatkowo zwiększyć przez pomiar zależności fazowej między zegarem nadawczym i odbiorczym węzła głównego. Wykazano, że technika ta działa na pojedynczym włóknie o długości 10 km, używanym przy dwóch długościach fal, aby ułatwić dwukierunkowe połączenie punkt-punkt między węzłem głównym a węzłem podrzędnym.
również
Pierwsza konfiguracja testowa została zbudowana w celu zweryfikowania zasady pomiaru opóźnienia propagacji między nadajnikiem a odbiornikiem przy użyciu zakodowanego szeregowego kanału komunikacyjnego działającego z prędkością 3,125 Gb / s. Nadajnik i odbiornik znajdują się w układach FPGA na dwóch oddzielnych płytkach rozwojowych. Ta pierwsza konfiguracja testowa wykazała, że wykonalne jest zmierzenie opóźnienia propagacji dla światłowodu 100 km z rozdzielczością jednego przedziału czasowego (tj. 320 ps przy 3,125 Gb / s).
UŻYTE WYPOSAŻENIE:
Zestaw testowy składa się z dwóch płyt rozwojowych ML507 Xilinx [7]. Virtex-5 FPGA jest zamontowany na każdej płycie. Jedna płytka rozwojowa ML507 jest oznaczona jako węzeł nadrzędny, a druga jako węzeł podrzędny. Master i slave są połączone za pomocą nadajników-odbiorników SFP (small form factor plug) i 10 km światłowodu, tworząc dwukierunkowe łącze. Zastosowano pojedyncze włókno, które działa na podwójnej długości fali.
Oczywiście ta szczególna konfiguracja jest przesadą w przypadku większości projektów robotyki hobbystycznej, ale można ją łatwo odtworzyć w domu, ponieważ wykorzystuje ona gotowe płyty programistyczne i nie wymaga żadnych specjalnych talentów, aby działać. W przypadku robota łączem byłoby radio, a nie kabel światłowodowy. Być może może to być nawet łącze podczerwieni jak pilot do telewizora, chociaż podejrzewam, że na zewnątrz w jasnym słońcu może to być problematyczne. W nocy może działać świetnie!