DZWON

Są tacy, którzy czytali tę wiadomość przed tobą.
Zapisz się, aby otrzymywać świeże artykuły.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać „Dzwon”?
Bez spamu

2GIS jest zarówno podręcznikiem, jak i takim, który działa bez dostępu do Internetu. Wystarczy wcześniej pobrać mapę wybranego miasta, a na Twoim telefonie pojawi się ogromna baza przydatnych informacji! Możesz pobrać 2 GIS na Androida za darmo w formacie apk, korzystając z bezpośredniego linku poniżej.

Aplikacja mobilna 2GIS w niczym nie ustępuje wersji na komputer stacjonarny i wie absolutnie wszystko o infrastrukturze miejskiej. Pokaże Ci jak dojechać do najbliższej stacji benzynowej, bankomatu czy kawiarni bez korków, pomoże znaleźć notariusza, fryzjera, aptekę, meczet, serwis samochodowy, centrum handlowe, sklep spożywczy czynny całą dobę. Dla turystów aplikacja zawiera przewodnik po mieście, który zna najciekawsze miejsca i najpopularniejsze obiekty.

Funkcje nawigatora 2 GIS dla Androida:
- 9 krajów i 330 rosyjskich miast: Moskwa, Jekaterynburg, Tiumeń, Nowosybirsk, Kazań, Perm, Lipieck, Iżewsk, Saratów, Krasnodar itp.;
- Stabilna praca bez Internetu i bez utraty funkcjonalności w roamingu, w samolocie, w metrze - wszędzie jest wyjście;
- Twórz trasy spacerowe korzystając z transportu publicznego (autobus, trolejbus, metro, tramwaj) z przesiadkami lub bez;
- Podczas jazdy samochodem brany jest pod uwagę rzeczywisty stan drogi, pokazując korki, fotoradary, progi zwalniające i średni czas podróży;
- Znajdź niezbędne informacje o konkretnym budynku, numerze domu, numerze telefonu do kontaktu, po której stronie znajduje się wejście;
- Wygodne filtry, wyszukiwanie według słów kluczowych i kategorii.

W przeciwieństwie do konwencjonalnych nawigatorów, dzięki 2 GIS na Androida otrzymujesz aktualną mapę Rosji i ogromny katalog z kontaktami, adresami i zdjęciami wielu budynków. Programiści aktualizują program co miesiąc, dodając najnowsze istotne informacje i dodając nowe funkcje. Na przykład od niedawna możesz porównać ceny usług taksówkowych i zamówić je od razu.

2GIS to jedna z najlepszych aplikacji na Androida, udostępniająca wygodne mapy geograficzne z danymi kontaktowymi firm i połączeniami komunikacyjnymi. Obsługiwanych jest wiele krajów na całym świecie, w tym nawet małe miasta i miasteczka, a program mobilny działa w trybie offline.

Aplikacja pomoże Ci, jeśli chcesz zbudować najbardziej optymalną trasę w nieznanym mieście, i również polecamy pobierz 2GIS jako dobry podręcznik z numerami telefonów, adresami i godzinami otwarcia firm lub organizacji. Aby korzystać z narzędzia bez połączenia z Internetem, wystarczy wcześniej załadować żądaną lokalizację do bazy danych. Możesz to zrobić bezpośrednio z aplikacji, nie napotkasz żadnych trudności. Ponadto program mobilny posiada nie tylko przejrzysty, przyjazny dla użytkownika interfejs, ale także zawiera wysokiej jakości i szczegółowe mapy z przejrzyście przedstawioną informacją wizualną. I będziesz mógł wyznaczyć trasę zarówno samochodem osobowym, jak i pieszo, a dodatkowo - rozkładem jazdy komunikacji miejskiej.

Unikalne cechy programu mobilnego:

  • Przystępne, przejrzyste mapy ze szczegółowymi informacjami o firmach miasta bez połączenia z Internetem: godziny otwarcia, kontakty, adresy i zdjęcia
  • Lokalizacja organizacji publicznych w pobliżu: kawiarni, restauracji, kin, sklepów, taksówek itp.
  • Budowa tras z uwzględnieniem każdego rodzaju transportu: metra, trolejbusu, autobusu, pociągu, a nawet autobusu rzecznego lub po prostu trasy pieszej
  • Nawigacja po największych centrach handlowych i supermarketach: schemat przedstawia plany pięter, toalety, strefy gastronomiczne i inne ważne informacje
  • Dane od organizacji usługowych: usługodawców, szpitali, biur mieszkaniowych itp.

    Dzięki temu nigdy nie zgubisz się nie tylko gdzieś na ulicy, nie przegapisz przystanku czy zakrętu, ale także będziesz mógł doskonale poruszać się wewnątrz budynków. Dlatego 2GIS na Androida Uważany jest za najlepszego nawigatora i odkrywcę, zdolnego przyćmić wszystkie inne zastosowania tego rodzaju. Narzędzie rozumie zapytania dosłownie, można nawet wpisać popularne nazwy, aplikacja i tak znajdzie to, czego potrzebujesz.

  • W 2GIS pojawiły się wskazówki głosowe na trasie. Teraz aplikacji można używać jako nawigatora: poprowadzi Cię do wejścia do organizacji, uwzględniając korki, płoty i otwarte mosty. Nawigator jest już dostępny na iOS i Windows Phone, a od 22 sierpnia - w nowej wersji 2GIS na Androida ze świeżym designem.

    Tryb nawigatora pomaga dotrzeć do miejsca optymalną trasą, biorąc pod uwagę sytuację na drodze. Na ekranie urządzenia wyświetlana jest dokładna trasa i odległość do kolejnego manewru, a podpowiedzi głosowe pozwalają nie odrywać kierowcy od drogi. Jeśli kierowca ominie zakręt, nawigator natychmiast zmieni trasę.

    „2GIS stale aktualizuje mapy i sieci drogowe. Znamy wiele wewnętrznych przejść, których domy są otoczone płotami, gdzie znajdują się wejścia i wejścia do organizacji. Nasz nawigator poprowadzi Cię dokładnie do wybranego wejścia.”

    Mówi Pavel Mochalkin, dyrektor działu badań i rozwoju 2GIS.

    Podobnie jak sama aplikacja, nawigator działa bez połączenia z Internetem we wszystkich miastach Rosji i WNP, w których dostępny jest 2GIS. Oblicza przybliżony czas podróży i pokazuje, o której godzinie użytkownik dotrze na miejsce. Uwzględnia korki, harmonogramy otwierania mostów i zamknięcia dróg, jeśli są znane. Jeśli można się tam dostać na dwa sposoby, nawigator zaproponuje wybór.

    Nawigator 2GIS działa na iPhone'ach z systemem iOS 8.0 i nowszym, Windows Phone 8.1 i nowszym. Aby z niego skorzystać należy zaktualizować 2GIS na swoim smartfonie lub pobrać go za darmo z AppStore lub Windows Store.

    „Ponieważ 2GIS na Androida miesięcznie odwiedza ponad 8 milionów użytkowników, nową wersję dla Androida będziemy udostępniać stopniowo, w ciągu kilku tygodni, począwszy od 22 sierpnia. To dłużej niż na innych platformach, bo poza pojawieniem się nawigatora w aplikacji na Androida całkowicie zmienia się design. Pierwszą możliwość pobrania zaktualizowanej wersji 2GIS otrzyma 5% losowych użytkowników Androida, którzy posiadają już poprzednią wersję. Potem kolejne 5% i kolejne. Jeśli chcesz już teraz korzystać z nowego 2GIS, możesz pobrać wersję beta w Google Play, wyszukując „2GIS beta”

    – relacjonuje Paweł Mocalkin.

    Opis zasady działania nawigatora 2GIS

    Nawigator 2GIS buduje ścieżkę do wejścia do wybranej organizacji i oferuje aż dwie optymalne opcje trasy (1 zdjęcie – przykład na Androidzie, 2 zdjęcia – przykład na iOS).

    Nawigator 2GIS uwzględnia korki i wyznacza trasę wokół nich (1 zdjęcie – przykład na Androidzie, 2 zdjęcia – przykład na iOS).


    Nawigator 2GIS prowadzi Cię po drodze, informuje, ile metrów później potrzebujesz na kolejny manewr i oblicza czas dotarcia do celu. Jeśli użytkownik zejdzie z zamierzonego kursu, nawigator natychmiast odbuduje trasę (1 zdjęcie – przykład na Androidzie, 2 zdjęcia – przykład na iOS).


    Nawigator 2GIS zna drogi w obrębie bloku i buduje trasę wokół ogrodzeń i barier bezpośrednio do pożądanego wejścia. Działa w trybie offline (1 zdjęcie – przykład na Androidzie, 2 zdjęcia – przykład na iOS).


    Na wszystkich smartfonach opartych na systemie Android 4.1 i nowszych wersjach 2GIS w nowej odsłonie i z nawigatorem będzie dostępny już na początku września.

    Często podróżujesz po naszym ogromnym i bardzo pięknym świecie? Jeśli tak, zalecamy pobranie 2GIS: podręcznika i nawigatora dla Androida. Dzięki tej aplikacji nigdy się nie zgubisz i bez problemu znajdziesz odpowiednie miejsce. Ponadto możesz otworzyć kilka miast nie tylko w kraju, w którym mieszkasz, ale także poza jego granicami. Wielu już zdało sobie sprawę, że program to nie tylko podręcznik, ale także fajny nawigator, z którego chciałoby korzystać wielu mieszkańców naszej planety. Dzięki tej aplikacji możesz bez problemu pracować w taksówce, bo wszystkie ulice są tu zakorkowane i znalezienie ich zajmuje bardzo mało czasu.Dzięki aplikacji możesz w ciągu zaledwie kilku minut dostać się z jednego punktu miasta do drugiego kilka minut. Ponadto dowiesz się o czasie podróży, sprawdzisz numer telefonu wybranej firmy, a nawet inne ważne informacje. Nie każda aplikacja oferuje tak rozbudowane funkcje użytkownika. Możesz pobrać 2GIS: podręcznik i nawigator dla systemu Android całkowicie bezpłatnie i w dowolnym momencie. Program można pobrać zarówno na urządzenie mobilne, jak i na tablet.

    Przejdź się po dowolnym mieście

    Wyjątkowość tego programu polega na tym, że nie wymaga on Internetu. Musisz pobrać program, zainstalować go, pobrać kilka map różnych miast lub krajów na raz, a następnie po prostu wybrać miasto i żądane miejsca. Dzięki aplikacji bez problemu zbudujesz optymalną trasę. Z punktu A do punktu B można dostać się samochodem, pieszo lub komunikacją. Wszystkie niezbędne informacje znajdują się w aplikacji i najprawdopodobniej dla wielu osób będą istotne.Co ciekawe, aplikacja udostępnia szczegółowe mapy, na których narysowane są wszystkie ulice, sklepy, parki czy inne placówki. Wszelkie centra biznesowe będą prezentowane nawet na piętrach. Kto by pomyślał, że któryś z programistów wpadnie na pomysł stworzenia tak fajnego programu. Teraz jest to możliwe pobierz 2GIS: podręcznik i nawigator dla Androida i zacznij z niego korzystać. Twórcy dołączyli sporo map, więc odnalezienie odpowiedniego miasta nie będzie dla Was trudne. Możesz być w dowolnym kraju, ale nadal będziesz musiał korzystać z jednego programu, bo wszystko jest tutaj. Aplikacja okazała się wygodna, podoba się wielu osobom. Mamy nadzieję, że na pewno pomoże również Tobie. Wypróbuj i zostaw swoją opinię na temat tego programu dla Androida.

    Aplikacja 2GIS ma teraz nawigator. Nauczyliśmy się „jeździć” po torze, wydawać polecenia głosowe, automatycznie zmieniać trasę, obliczać czas podróży, prowadzić użytkownika do wejścia do budynku lub organizacji, biorąc pod uwagę płoty i barierki – a wszystko to w uczciwym środowisku offline . Już od dawna uwzględniamy korki (o ile nie wymagają internetu), otwarte mosty i zamknięte ulice. Na razie nasz nawigator zawiera wymagane minimum. Nieco później nauczymy go ostrzegać o zbyt dużych prędkościach, progach zwalniających i fotoradarach, ustawiać tryb nocny i ustawiać opcjonalne trasy po drogach płatnych i gruntowych. Aby z niego skorzystać należy zaktualizować 2GIS na swoim smartfonie lub pobrać go z AppStore lub Windows Store. Dla Androida aktualizacja wydawana jest stopniowo, począwszy od 22 sierpnia (dostępna będzie dla wszystkich odbiorców już we wrześniu).

    A dzisiaj opowiemy Wam, jak nawigator 2GIS przewiduje pozycję samochodu i płynnie przesuwa strzałkę po trasie. Przecież to jakość prowadzenia użytkownika po trasie decyduje o ergonomii interfejsu każdego nowoczesnego nawigatora, łatwości orientacji na ziemi i terminowości manewrów.

    W większości przypadków kierowca samochodu zmuszony jest do ciągłego monitorowania drogi, dlatego nawet szybkie spojrzenie na ekran urządzenia z programem nawigacyjnym powinno wystarczyć, aby uzyskać jak najdokładniejszą i najszybszą informację o swoim położeniu względem trasę i otaczające ją obiekty. Ta pozornie prosta funkcjonalność wymaga rozwiązania wielu problemów technicznych, aby ją wdrożyć. Rozważymy niektóre z nich.

    Znacznik GPS i trasa

    Aby wskazać lokalizację użytkownika na mapie, wielu nawigatorów (i nasz nie był wyjątkiem) używa specjalnego znacznika GPS w postaci grotu strzałki lub po prostu trójkąta, który intuicyjnie wskazuje kierunek ruchu. Dodatkowo znacznik musi być dobrze widoczny na mapie, więc jego kolor zazwyczaj bardzo różni się od tła, dodatkowo zarysowane są krawędzie itp.

    W najprostszym przypadku możesz wyświetlić pozycję urządzenia na ziemi, odczytując współrzędne z czujnika GPS i umieszczając znacznik w odpowiednim miejscu na mapie. Już tu stajemy przed pierwszym problemem – błędem pomiaru, który nawet w warunkach dobrego sygnału może z łatwością sięgać 20–30 metrów.

    Aby odpowiedzieć na częste pytanie „Gdzie jestem?” Ta metoda wyświetlania będzie wystarczająca, szczególnie jeśli narysujesz także okrąg dokładności wokół znacznika o promieniu równym oszacowaniu błędu. Jednak do nawigacji trzeba wymyślić coś lepszego, bo kierowca poruszający się ulicą miasta raczej nie zadowoli się znacznikiem GPS umieszczonym w sąsiednim domu lub, co gorsza, na jakimś przecznicy.

    W rozwiązaniu problemu pomaga zbudowana przez program trasa do punktu docelowego i zawsze obecna w skrypcie nawigacyjnym. Za pomocą kilku trików możemy „przyciągnąć” punkt na mapie do trasy, niwelując część błędu pomiaru czujnika GPS. W pierwszym przybliżeniu przyciąganie można uznać za rzut punktu na linię trasy. Uwzględnienie niuansów, a także metod wykrywania zjazdu z trasy niestety wykracza poza zakres tego artykułu.

    Przyjmując wskazaną technikę przyciągania, możemy abstrahować od dwuwymiarowych współrzędnych geograficznych (szerokość-długość geograficzna lub dowolne inne) i przejść do współrzędnej jednowymiarowej - przemieszczenia względem początku trasy mierzonego np. w metrach. To przejście upraszcza zarówno modele teoretyczne, jak i obliczenia wykonywane na urządzeniach użytkowników.

    Wyświetlanie geolokalizacji w czasie

    Dyskretny charakter danych otrzymywanych z czujnika GPS to kolejny problem przy wdrażaniu prowadzenia użytkownika po trasie. W idealnym przypadku współrzędne są aktualizowane raz na sekundę. Rozważmy kilka opcji wyświetlania geopozycji w czasie i wybierzmy tę najbardziej odpowiednią dla naszych zadań.

    1. Najprościej jest natychmiastowo przyciągnąć do trasy po otrzymaniu każdego nowego odczytu z czujnika i wyświetlić odpowiednią lokalizację na mapie. Wśród zalet warto zwrócić uwagę na wyjątkową łatwość wdrożenia, wysoką w pewnym sensie dokładność (w końcu tutaj po prostu wyświetlamy dane satelitarne bez dokonywania w nich większych zmian) i minimalną złożoność obliczeniową. Główną wadą jest to, że znacznik w tym przypadku nie porusza się po mapie w zwykłym znaczeniu, ale „teleportuje się” z punktu do punktu. W głównym scenariuszu nawigacji kamera (wirtualny obserwator to termin z zakresu grafiki komputerowej) jest podłączona do znacznika GPS, więc takie teleportacje prowadzą do gwałtownego „przewijania” mapy po trasie i w efekcie do dezorientacji kierowcy, szczególnie przy dużych prędkościach, gdy Samochód pokonuje znaczną odległość pomiędzy odczytami geopozycji. Naszym celem jest pomóc użytkownikowi, a nie dezorientować go, więc ta wada już wystarczy, aby wykluczyć tę opcję z rozważań.

    Jedynym sposobem na uniknięcie dezorientacji jest płynne przesuwanie znacznika GPS, bez „teleportacji”, co oznacza, że ​​trzeba go przesuwać znacznie częściej, niż przychodzą odczyty geopozycji. Aby zapewnić taki ruch, należy w jakiś sposób obliczyć punkty pośrednie pomiędzy rzeczywistymi odczytami z czujnika i wykorzystywać je do czasu otrzymania kolejnego odczytu. Warto zwrócić szczególną uwagę na specyficzne podejście do obliczania tych punktów pośrednich, ponieważ ostatecznie będzie to miało ogromny wpływ na ogólną ergonomię programu nawigacyjnego.

    2. Drugi sposób wyświetlania lokalizacji użytkownika wiąże się z najbardziej oczywistym podejściem do generowania punktów pośrednich - interpolacją pomiędzy ostatnimi rzeczywistymi odczytami GPS. Chodzi o to, aby na określony czas przesuwać znacznik od przedostatniej próbki do ostatniej, obliczając punkty pośrednie z wymaganą częstotliwością za pomocą jednej ze znanych funkcji matematycznych (najprostszą opcją jest interpolacja liniowa). Korzystanie z nawigatora w ten sposób jest znacznie wygodniejsze, ale ma też wady.

    Jednym z najbardziej nieszkodliwych jest konieczność wcześniejszego ustawienia czasu interpolacji. Ustawienie tej wartości na jedną sekundę będzie działać dobrze tylko w idealnym przypadku wspomnianym powyżej, gdy jest to czas, jaki upłynie pomiędzy odczytami GPS. Jeśli upłynie mniej czasu, nie ma to znaczenia, możesz po prostu zacząć przechodzić z bieżącej pozycji do nowego celu. Jeśli jednak będzie więcej, znacznik będzie musiał stać w miejscu i czekać na nowe współrzędne z czujnika, chociaż samochód użytkownika może w tym czasie być w ruchu.

    Jest poważniejszy problem. W momencie nadejścia nowej próbki znacznik znajduje się w najlepszym przypadku w poprzednim rzeczywistym punkcie. Z punktu widzenia użytkownika wprowadzamy kolejny błąd pozycjonowania, którego wielkość jest nie mniejsza niż odległość przebyta przez samochód w czasie pomiędzy odczytami. Przy prędkości 100 km/h wartość ta sięga prawie 28 metrów, co w połączeniu z możliwym błędem pomiaru sprawia, że ​​informacje dostarczane użytkownikowi, delikatnie mówiąc, są niewiarygodne.

    Moglibyśmy zrobić ogromny znacznik GPS i zasłonić nim jedną czwartą ekranu, starannie maskując niedociągnięcia opisanej metody pozycjonowania, ale pójście na bezpośrednie fałszerstwo byłoby brakiem szacunku dla użytkowników i nas samych. Dokładność i aktualność wyświetlanych danych jest nie mniej ważnym kryterium przy opracowywaniu nawigatora niż zewnętrzne piękno i płynność ruchu.

    3. Biorąc pod uwagę pojawiające się wymagania dotyczące dokładności pozycjonowania, warto zauważyć, że obecnie mamy obowiązek, na krótko przed pojawieniem się nowego odczytu GPS, umieścić znacznik w punkcie jak najbliżej tego nowego odczytu. To znaczy, w skrócie, patrzeć w przyszłość, choćby tylko na krótki czas. Chociaż obecnie sytuacja ludzkości wygląda bardzo źle wraz z wynalezieniem wehikułu czasu, wciąż jest dla nas ratunek. Ruch samochodu jest bezwładny, więc prędkość i kierunek jego ruchu nie mogą zmienić się natychmiastowo, a jeśli tak, to możemy spróbować z pewną dokładnością przewidzieć, gdzie znajdzie się użytkownik w przedziale pomiędzy ostatnią pozycją odniesienia a przyszłością. Jeśli uda nam się sprawić, że błąd prognozy w większości przypadków będzie mniejszy niż błąd drugiej metody, to znacznie ułatwimy życie użytkownikom naszych nawigatorów.

    Ten rodzaj prognozowania w naukach ścisłych nazywa się ekstrapolacją. Tą drogą będziemy podążać, próbując opracować trzecią metodę prowadzenia po trasie, spełniającą wszystkie wymienione powyżej kryteria. Następnie będziemy musieli zastosować bardziej formalny język prezentacji, ponieważ będziemy mówić o modelach matematycznych.

    Prowadzenie po trasie z ekstrapolacją pozycji

    Wspomniano już wcześniej, że dzięki przyciągnięciu geopozycji użytkownika do trasy nawigacji możemy przejść od dwuwymiarowych współrzędnych geograficznych do jednowymiarowych współrzędnych – przesunięcia względem początku trasy (dla ścisłości omówimy dalej używać terminu „offset” bez wyjaśnienia).

    Przypomnijmy sobie dane, które do nas docierają i wprowadźmy dla nich oznaczenie:

    Odczyty rzeczywistych przemieszczeń uzyskane poprzez przeciągnięcie pozycji GPS do linii trasy;
    - czas przybycia odpowiednich próbek przemieszczenia.
    W tym miejscu kończy się lista danych wejściowych. Będziesz musiał wycisnąć z nich jak najwięcej przydatnych informacji.

    Docelowo musimy zbudować funkcję ekstrapolacji przemieszczeń, która będzie zbliżona do rzeczywistej dynamiki samochodu, a jednocześnie zapewni płynny ruch znacznika GPS na całej naszej trasie (jego długość nie będzie miała na nic wpływu, gdyż zakończenie trasa jest przetwarzana osobno, więc warunkowo uznamy trasę za nieskończoną). Aby zapewnić dobrą płynność wizualną, warunek gładkości będzie wystarczający, to znaczy ani położenie, ani prędkość znacznika nie powinny zmieniać się gwałtownie. Inaczej mówiąc, funkcja musi być ciągła wraz ze swoją pierwszą pochodną (dalej w czasie) w całym obszarze definicji.

    Zauważmy, że każda próbka rzeczywistego przemieszczenia niesie ze sobą znacząco nowe informacje o ruchu. Na przykład, jeśli samochód jechał równomiernie przez długi czas, a następnie zaczął przyspieszać, nawigator będzie mógł „poczuć” przyspieszenie dopiero wraz z nadejściem kolejnego odliczania. Ponieważ nie możemy patrzeć w przyszłość przez dłuższy czas, wszystkie napływające nowe odczyty GPS będą w ogólnym przypadku zmieniać zachowanie pożądanej funkcji, co nie pozwala nam określić jej w jednym wyrażeniu analitycznym. Zamiast tego spróbujmy zdefiniować funkcję fragmentarycznie. Aby to zrobić, rozwiążmy najpierw prostszy problem.

    Bezpośrednia ekstrapolacja fragmentaryczna

    Skonstruujmy funkcję ekstrapolacji przemieszczeń tak, aby po dziesiątej próbce jej wartości przewidywały rzeczywistą lokalizację użytkownika na wystarczający czas przed przybyciem dziesiątej próbki. Wszystkie przydatne dane jakie posiadamy to sekwencja zliczeń do – włącznie, wraz z czasem otrzymania każdego z nich.

    Pamiętając o skończonych różnicach zauważamy, że mamy możliwość oszacowania prędkości samochodu w tym momencie dzieląc długość odcinka pomiędzy ostatnim i przedostatnim przemieszczeniem przez odpowiedni przedział czasu:


    , gdzie jest oszacowaniem prędkości na podstawie próbek i jest pochodną funkcji ekstrapolacji, którą staramy się skonstruować.

    Podobnie dla pochodnych wyższego rzędu – przyspieszenia, szarpnięcia itp.:


    Jak widać z tych wzorów, aby otrzymać estymację coraz wyższych pochodnych przemieszczenia, należy uwzględniać coraz większą liczbę próbek poprzedzających aktualną: do wyznaczenia prędkości potrzebne są dwie próbki, do przyspieszenia - trzy, dla palanta - cztery itd. Z jednej strony, im bardziej dynamiczne charakterystyki ruchu uwzględnimy w naszej prognozie, tym większą uzyskamy zdolność modelowania; z drugiej strony przydatne informacje zawarte w coraz „starszych” lekturach dramatycznie tracą na aktualności. Przykładowo to, że minutę temu jechaliśmy z prędkością 30 km/h, w niczym nam w tym momencie nie pomoże: od tego momentu mogliśmy kilka razy przyspieszyć, zwolnić, a nawet zatrzymać się. Z tego powodu szacunki coraz wyższych pochodnych przemieszczenia coraz bardziej oddalają się od rzeczywistości; ponadto udział błędu obliczenia pewnej pochodnej w ogólnym modelu analitycznym przemieszczenia również wzrasta wraz ze wzrostem rzędu tej pochodnej. Jeśli tak, to zaczynając od pewnego rzędu, charakterystyki dynamiczne oszacowane na podstawie różnic skończonych, zamiast udokładniać, tylko zepsują nasz model.

    Z testów w warunkach rzeczywistych wynika, że ​​szacowanie szarpnięć, zwłaszcza w przypadku „przeciętnej” jakości sygnału GPS, jest już na tyle złe, że powoduje więcej szkody niż pożytku. Z drugiej strony, na szczęście, najczęstszymi scenariuszami dynamiki samochodu są ruch spoczynkowy, ruch jednostajny i ruch jednostajny, opisane równaniami wielomianowymi odpowiednio 0, 1 i 2 stopnia w czasie.

    Okazuje się, że kwadratowy model ruchu jednostajnie zmiennego będzie nam w zupełności wystarczający do opisania większości sytuacji drogowych, a do tego wystarczy nam mniej więcej wysokiej jakości oszacowań charakterystyk dynamicznych – prędkości i przyspieszenia. Pamiętając szkolny kurs fizyki, możemy już z grubsza sporządzić wyrażenie analityczne dla pożądanej funkcji ekstrapolacji:


    Pozostał już tylko jeden krok: dziedzina definicji zaczyna się od momentu czasu, dlatego wygodniej jest liczyć czas w obliczeniach od tego samego momentu.

    W efekcie funkcja przyjmie postać:


    Niezwykłą cechą tej funkcji jest jej gładkość w całym zakresie definicji, co, jak wspomniano wcześniej, zostało uwzględnione w sformułowaniu naszego problemu.

    Weźmy teraz z urządzenia kilka próbek przemieszczeń rzeczywistych i spróbujmy je ekstrapolować w każdym odstępie czasu (choć zostało to już wcześniej ustalone, w momencie nadejścia próbki od razu przejdziemy do kolejnej funkcji, ponieważ ma ona nowsze dane):

    Zastrzegamy, że dla przejrzystości dane zostały pobrane przy stosunkowo niskiej jakości sygnale GPS, jednak sytuacja na rysunku jest całkiem realna i może spotkać każdego użytkownika.

    Gładkość każdego wielomianu ekstrapolacyjnego jest doskonale widoczna w odpowiednim przedziale czasu, ale problem polega na tym, że na skrzyżowaniach przedziałów ogólna szara krzywa wykazuje nieciągłości, czasami bardzo zauważalne.

    Nazwijmy wielkość luki w tym momencie błędem ekstrapolacji. Rzeczywiście, to właśnie ta wartość pokazuje, jak niedokładna jest każda z naszych prognoz pod koniec swojego przedziału czasowego. Wartość błędu można obliczyć za pomocą następującego wyrażenia:


    Niestety, nie jesteśmy w stanie zredukować błędu do zera zmieniając same funkcje, gdyż równałoby się to stuprocentowej trafności wizji przyszłości. Oznacza to, że aby rozwiązać nasz początkowy problem konstruowania pojedynczej funkcji, będziemy musieli w jakiś sposób „skleić” ze sobą wielomiany ekstrapolacji fragmentarycznej, czyli skorygować błędy powstające na połączeniach.

    Metoda korekcji błędów

    Zgodnie z wybraną powyżej notacją możemy nieformalnie powiedzieć, że w momencie pojawienia się nowej referencji jesteśmy w punkcie , tj. przesunięty względem położenia rzeczywistego o wielkość błędu zgromadzonego przez poprzedni wielomian ekstrapolacji.

    Z jednej strony z punktu widzenia zgodności danych podanych użytkownikowi z rzeczywistością najlepszym sposobem skorygowania błędu byłoby rozbicie funkcji w punkcie startu kolejnego wielomianu, ale nie możemy tego zrobić, ponieważ w tym przypadku ponownie „teleportujemy” znacznik na mapie i zdezorientujemy kierowcę.

    Oczywiście, jeśli chwilowa zmiana wartości jest niedopuszczalna, korekcja błędów zajmie niezerowy czas. Oczywiste jest również, że zaleca się zakończenie korekcji błędów przed nadejściem kolejnego zliczania, aby zapobiec kumulacji błędów.

    Ze względu na stochastyczny charakter odstępów czasowych pomiędzy odczytami przesunięć, nie jest możliwe wiarygodne określenie dokładnego czasu korekcji. Dlatego w pierwszym przybliżeniu ustalimy czas korekcji błędu w postaci jakiejś stałej wartości, której konkretną wartość dobierzemy w przyszłości eksperymentalnie.

    Mówiąc ponownie w nieformalnym języku, aby poprawić błąd, musisz płynnie „powrócić” z punktu do kolejnego wielomianu ekstrapolacyjnego - krzywej.

    Aby opisać proces korekcji błędów, wygodnie jest wprowadzić poszczególne funkcje korekcyjne w taki sposób, aby w danym momencie odpowiadająca im funkcja korekcyjna przyjmowała wartość , a począwszy od chwili, gdy stała się ona równa zeru:


    Jeśli dodamy taką funkcję korekcyjną z odpowiednim wielomianem interpolacyjnym, wówczas w kluczowych punktach zapewnimy korekcję błędu przesunięcia:
    Nazwijmy skorygowaną funkcję przemieszczenia sumą wielomianu ekstrapolacyjnego i odpowiadającej mu funkcji korekcyjnej:
    Należy pamiętać, że dzięki opisanym powyżej właściwościom funkcji korekcyjnych uzyskaliśmy bardzo ważną właściwość funkcji - są one już „zszyte offsetem”, czyli tzw. nie toleruj przerw w punktach:
    Zbiór skorygowanych funkcji mógłby udawać pożądany model przemieszczenia, zdefiniowany w każdym czasie, gdyby nie jedna okoliczność: pomimo braku nieciągłości przemieszczenia w punktach, pochodne tego zbioru funkcji w ogólnym przypadku są nadal nieciągłe.

    W szczególności interesuje nas nieciągłość pierwszej pochodnej – prędkości, ponieważ w wymaganiach początkowych zawarty jest warunek uniwersalnej gładkości, tj. warunek powszechnej ciągłości prędkości. Biorąc to pod uwagę, należy rozszerzyć wymagania dotyczące funkcji korekcyjnych, aby „zszyć” także pochodne funkcji skorygowanych:


    Równanie to jest warunkiem gładkości zbioru skorygowanych funkcji. Podstawiając definicję dostosowanych funkcji po obu stronach równania, otrzymujemy
    Wspomnieliśmy wcześniej, że po upływie czasu korekty funkcja korekcyjna przyjmuje wartości zerowe. Dodajmy jeszcze jedno wymaganie do funkcji korekcyjnej - niech jej pochodna również po upływie czasu korekty przyjmie wartości zerowe:
    Następnie, zakładając, że czas korekcji jest zawsze mniejszy niż odstęp między próbkami, możemy założyć, że w momencie przybycia kolejnej próbki pochodna funkcji korekcyjnej będzie już wynosić zero. Następnie wracając do warunku gładkości, otrzymujemy:
    Wyraźmy to stąd:

    Zauważ, że jest to oszacowanie prędkości dokonane na podstawie różnic skończonych, podstawmy to:


    Prawa strona reprezentuje błąd ekstrapolacji prędkości – różnicę pomiędzy prędkością uzyskaną z poprzedniego wielomianu ekstrapolacji a „rzeczywistym” odczytem prędkości. Teraz możemy zestawić warunki brzegowe dla funkcji korekcyjnych:
    Można je opisać takimi słowami: trzeba znaleźć funkcję korekcyjną, aby:
    • na początku przedziału korekcyjnego jego wartość pokrywała się z błędem ekstrapolacji przemieszczenia;
    • na początku przedziału korekcyjnego wartość jego pochodnej pokrywała się z błędem ekstrapolacji prędkości;
    • na końcu przedziału korekcyjnego i dalej wartość samej funkcji i jej pochodnej wynosiła zero.

    Wybieranie funkcji korekcji błędów

    Warto zauważyć, że bardzo trudno jest uzyskać jedno wyrażenie analityczne dla funkcji korekcyjnych, które dokładnie spełniałoby powyższe cztery warunki. Problem leży w tej części dziedziny definicji, która następuje po upływie czasu korekty - trzeba osiągnąć zerowe wartości funkcji i jej pochodnej na całej pozostałej części osi liczbowej. Dla uproszczenia problemu dziedzinę definicji pożądanego wyrażenia analitycznego funkcji korekcyjnej sprowadzimy do przedziału korekcyjnego , a po jego górnej granicy wartość funkcji i jej pochodną uznamy za trywialnie zerową (na szczęście przy poziomie kodu programu mamy taką możliwość dzięki obecności oddziałów).

    Formalnie, biorąc pod uwagę tę technikę, funkcja korekcji odcinkowej jest pewnym wyrażeniem na przedział korekcji i stałą 0 poniżej, jednak jeśli w punkcie zostaną spełnione warunki brzegowe, nie będzie nieciągłości ani w samej funkcji korekcyjnej, ani w jej pierwsza pochodna. Ponieważ nieciągłości wyższych pochodnych nas nie interesują (nie zepsują płynności pożądanej funkcji), w przyszłości nie będziemy wspominać o zerowym „ogonie” funkcji korekcyjnej, a warunki brzegowe przeformułujemy w wygodniejsza forma:


    Oznaczmy błąd ekstrapolacji prędkości przez:
    Teraz musimy zdefiniować wyrażenie analityczne dla . Ze względu na wymagania ergonomiczne programu, oprócz warunków brzegowych, konieczne jest, aby funkcja korekcyjna miała jak najmniej skrajności i załamań w okresie korekcji - tak, aby znacznik GPS nie „drgał”.

    Najprostszą funkcją spełniającą te wymagania jest ponownie wielomian - wielomian o minimalnym możliwym stopniu w czasie (teoretycznie wśród funkcji elementarnych na przykład sinus ma również podobne cechy, ale obliczenie jego wartości jest droższe pod względem czasu procesora ).

    Ponieważ warunki brzegowe są układem czterech nietrywialnych równań, minimalny stopień wielomianu zapewniający wystarczającą parametryzację funkcji korekcyjnej jest trzecim. Biorąc pod uwagę, że konstruując wyrażenie analityczne, wygodniej jest liczyć czas od momentu pierwszego zliczenia (dokładnie tak jak w definicji), wymagany wielomian będzie miał postać:


    Podstawiając to wyrażenie do układu warunków brzegowych i rozwiązując je ze względu na stałe i , otrzymujemy następujące wartości:
    W rezultacie, jeśli w opisany sposób zdefiniujemy funkcje korekcyjne, to skorygowane funkcje łączą się w jedną, zawsze gładką funkcję ekstrapolacyjną. Nie będziemy podawać pełnego wyrażenia ze względu na jego uciążliwość.

    Uwaga: ostatnia niedokładność pozostała w założeniu przy wyborze czasu korekty - nasze rozumowanie opierało się na założeniu, że zawsze będzie mniej niż odstęp między odczytami:


    Miłą cechą skonstruowanego modelu jest to, że wystarczy tak dobrać, aby nie przekroczył on średniego czasu między próbkami: jeśli poszczególne odstępy są mniejsze niż , to część błędu, której nie zdążyliśmy skorygować, zbyt krótki odstęp zostanie skorygowany w jeden z poniższych sposobów. Aby to zrobić, wystarczy obliczyć błąd ekstrapolacji nie ze zwykłej funkcji ekstrapolacji, ale z skorygowanej:
    Poniższy rysunek przedstawia przykładowy wykres końcowej funkcji ekstrapolacji zbudowany na danych rzeczywistych:

    Problem formalny rozwiązany, otrzymana krzywa spełnia wszystkie podane warunki i wygląda całkiem nieźle. Można na tym odpocząć, ale cechy świata rzeczywistego stwarzają pewne trudności dla skonstruowanego wyidealizowanego systemu.

    Przyjrzyjmy się niektórym z nich bardziej szczegółowo, zastrzegając, że wszystkie podjęte poniżej decyzje są implementowane bezpośrednio w kodzie programu poza modelem matematycznym.

    Dostosowanie modelu matematycznego do warunków rzeczywistych

    Zakaz ruchu znacznika w przeciwnym kierunku

    Na ostatnim wykresie widać, że w niektórych przypadkach funkcja zaczyna spadać, nawet jeśli według rzeczywistych pomiarów użytkownik jedzie po trasie wyłącznie do przodu. Dzieje się tak, gdy nasza prognoza znacznie zawyża prędkość ruchu. Z drugiej strony, w rzeczywistości samochód jedzie w przeciwnym kierunku tylko z dwóch powodów: kierowca faktycznie wrzucił bieg wsteczny i ruszył z powrotem (bardzo rzadki przypadek) lub zawrócił.

    W przypadku zawrócenia sytuacja na drodze zmienia się znacząco, co wymaga przebudowy trasy nawigacji; jest to odrębny temat i nie mieści się w zakresie tego artykułu.

    Jeśli bezpośrednio skorzystamy z wyników ekstrapolacji pozycji, to ze wszystkich ruchów znacznika w kierunku początku trasy znikająca mniejszość będzie odpowiadała rzeczywistemu ruchowi samochodu w tym samym kierunku. W związku z tym zdecydowano się na całkowity zakaz cofania się znacznika bez zmiany trasy, aby nie wprowadzać użytkowników w błąd.

    Tak rygorystyczny warunek jest trudny do opisania w języku matematycznym, ale stosunkowo łatwo można go zaimplementować w kodzie programu. Na początek weźmy pod uwagę dyskretny charakter czasu modelu – ze względu na specyfikę funkcjonowania komputerów wyniki ekstrapolacji i tak otrzymamy w określonych, wybranych punktach czasu.

    Jeśli tak, to nie będzie trudno zadbać o to, aby ekstrapolowane przemieszczenie nie zmniejszyło się: wystarczy porównać nową uzyskaną wartość z poprzednią, a jeśli bieżąca okaże się mniejsza, to zastąpić ją poprzednią jeden. Pomimo pozornej prymitywności tej techniki, nie będziemy zakłócać płynności funkcji ekstrapolacyjnej, ponieważ aby zacząć poruszać się wstecz wzdłuż gładkiej funkcji, należy najpierw całkowicie się zatrzymać.
    W przyszłości tryb działania, podczas którego będziemy zastępować matematycznie poprawne wartości starszymi, aby zapobiec cofaniu się, będzie nazywany trybem wymuszonego zatrzymania.

    Błędy ekstrapolacji są zbyt duże, a odstępy między próbkami zbyt długie

    Pomimo tego, że w pewnym sensie skonstruowaliśmy funkcję jakościową, czasami błędy ekstrapolacji mogą osiągnąć niedopuszczalne wartości. W takich przypadkach program powinien zaprzestać prób poprawiania błędów standardowymi sposobami. Inna sytuacja, w której ekstrapolowane dane tracą na znaczeniu, ma miejsce, jeśli z jakiegoś powodu nowy odczyt offsetowy nie nadchodzi zbyt długo – zdolność modelowania drastycznie spada od czasu otrzymania ostatniego odczytu. Aby uniknąć przekraczania granicy między próbami prognozowania a bezwstydnymi kłamstwami, poleganie na modelu zwykle kosztuje nie więcej niż trzy sekundy.

    Dla uproszczenia pierwszą sytuację negatywną nazwiemy niekorygowanym błędem przemieszczenia, a drugą niekorygowanym błędem czasu.

    Z każdym z tych typów błędów możemy pracować na dwa sposoby:

    • Wejdź w wyżej wymieniony tryb wymuszonego zatrzymania. Zaletą tego podejścia jest zachowanie płynnego przemieszczania się znacznika geopozycji na mapie terenu. Jednak im dłużej jesteśmy w trybie wymuszonego zatrzymania, tym gorzej informujemy użytkownika o jego prawdziwej lokalizacji;
    • Natychmiast teleportuj znacznik GPS do ostatniej lokalizacji referencyjnej. Tutaj wręcz przeciwnie, poświęcamy ergonomię na rzecz rzetelności przekazywanych użytkownikowi informacji.
    W naszym zastosowaniu wybrano pierwszą metodę, ponieważ szczególną uwagę przywiązuje się do płynności ruchu.

    Tryb przedłużonego wymuszonego zatrzymania

    Każde wejście w tryb wymuszonego zatrzymania wiąże się z generowaniem mniej dokładnych danych o lokalizacji w celu uniemożliwienia cofania się znacznika GPS. Aby nie wprowadzać użytkownika w błąd w szczególnie niesprzyjających przypadkach, nasz model został dodatkowo wyposażony w możliwość przerwania trybu wymuszonego zatrzymania poprzez „teleportację” znacznika do ostatniej rzeczywistej pozycji po określonym czasie, niezależnie od powodu wejścia tryb (matematyczny wynik ekstrapolacji lub niekorygowane błędy przesunięcia/czasu). W tym momencie nawet płynność ruchów trzeba poświęcić na rzecz „resztek” celności.

    wnioski

    W wyniku przeprowadzonych prac udało nam się ulepszyć prowadzenie po trasie tak, aby zapewnić dobrą równowagę pomiędzy dokładnością przekazywanych danych, a wizualną ergonomią ich wyświetlania. Użytkownik będzie czuł się całkiem komfortowo, zwłaszcza gdy otrzyma wysokiej jakości dane z czujnika GPS dzięki dobremu sygnałowi.

    Opisany system ekstrapolacji można wykorzystać w innych zastosowaniach wykorzystujących geolokalizację. Tam, gdzie nie istnieje pojęcie trasy, a co za tym idzie przemieszczenia względem jej początku, model matematyczny ze skalara jednowymiarowego można uogólnić na wielowymiarowy wektor wektorowy. Zaimplementowanie samego modelu w kodzie nie stanowi problemu w żadnym z popularnych języków programowania – wymaga jedynie prostych operacji arytmetycznych.

    Jeśli chodzi o dalsze ścieżki rozwoju, warto zwrócić uwagę na wspomniany na początku artykułu błąd pomiaru w „surowych” danych pozycyjnych z czujnika. Jeśli już próbujemy skorygować błędy w naszych prognozach, to walka z błędami pomiarowymi jest oddzielnym poziomem pracy na przyszłość, trudnym, ale nie mniej interesującym z tego powodu. Korzyści z potencjalnego sukcesu na tym polu dla dokładności wyświetlanych informacji są nie do przecenienia.

    Tagi: Dodaj tagi

    DZWON

    Są tacy, którzy czytali tę wiadomość przed tobą.
    Zapisz się, aby otrzymywać świeże artykuły.
    E-mail
    Nazwa
    Nazwisko
    Jak chcesz przeczytać „Dzwon”?
    Bez spamu