DroneELT

Autorskie projekty naszych użytkowników

Moderatorzy: marbalon, moderatorzy2014, moderatorzy

oko
Posty: 919
Rejestracja: wtorek 22 paź 2013, 10:48
Lokalizacja: Warszawa

DroneELT

Post autor: oko »

Jest bardzo wstępna pierwsza wersja:

https://github.com/maciek252/DroneELT

na razie działa tylko na OrangeLRS Tx, transmituje wyłącznie otrzymane przez Mavlink przechylenie poprzeczne (parametr OSD_ROLL), bo tak jest łatwiej programować niż gdyby trzeba było mieć ważną pozycję GPS. Czy są jakieś polecane, łatwe w konfiguracji emulatory GPS na arduino albo komputer, które by generowały kod NMEA o pozycji podanej jako parametr?

Po ustaniu komunikatów Mavlink (szybkość 57600) DroneELT zaczyna nadawać wartość bezwzględną przechylenia na kanale PMR 6. Po przywróceniu Mavlinka przestaje, ale dopiero po nadaniu pełnej sekwencji. Trzy cyfry częsci całkowitej plus jedna ułamkowej (zawsze 0, bo ten parametr jest całkowity). Wyjście Tx portu szeregowego wysyła informacje testowe, jaka wartość parametru jest aktualnie odczytana albo zapamiętana.

Na OrangeLRS Rx przerobię, gdy tylko przyjdą te odbiorniki. Nie powinno być też problemu z implementacją na Eleres v2, który, jak wynika z pobieżnego przyjrzenia się płytce, jest bardzo zbliżony (różni się zaawansowanymi dzielnikami napięć, ale to nieistotne).

Próbowałem i na wersji 100mW, i 1W, ogólnie powinno być dobrze, chodząc z odbiornikiem PMR wokół domu słyszę na sporą odległość, jakie jest przechylenie pixhawka na biurku :) Na githubie są źródła, wersja binarna i zalążek dokumentacji. Muszę jeszcze pokombinować, jak to najlepiej mocować (w piance zapewne), jak zasilać i jak odseparować galwanicznie od reszty instalacji.
Awatar użytkownika
pawelsky
Posty: 9763
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: DroneELT

Post autor: pawelsky »

oko pisze:Czy są jakieś polecane, łatwe w konfiguracji emulatory GPS na arduino albo komputer, które by generowały kod NMEA o pozycji podanej jako parametr?
Np. GPS emulator od happykillmore (ktoras starsza wersja byla w pakiecie od konfiguratora RemzibiOSD).
szymon220997
Posty: 291
Rejestracja: wtorek 30 wrz 2014, 02:26
Lokalizacja: Opole

Re: DroneELT

Post autor: szymon220997 »

Nie wiem czy dobrze cię zrozumiałem, ale czy ty chcesz wgrać soft eleresa do olrs :-P
Awatar użytkownika
cebulator
Posty: 1432
Rejestracja: poniedziałek 10 wrz 2012, 08:16
Lokalizacja: Mielec

Re: DroneELT

Post autor: cebulator »

Źle zrozumiałeś, przeczytaj wszystko jeszcze raz.
Pozdrawiam Sławek

... jeśli nie wiesz co robić, nabieraj wysokości. Jeszcze nikt nie zderzył się z niebem...
oko
Posty: 919
Rejestracja: wtorek 22 paź 2013, 10:48
Lokalizacja: Warszawa

Re: DroneELT

Post autor: oko »

Testuję nową wersję, na odbiornik OrangeLRS i już z podawaniem współrzędnych geograficznych. Na razie podaje współrzędne z dokładnością do 5 miejsc po przecinku. Wpisałem zdekodowaną pozycję w google maps, oraz w zumi, i wyszło jakieś 20 metrów od balkonu na którym leżał GPS. Oczywiście przy moich uciekniętych dronach bym taką dokładność brał w ciemno! Ale liczę na więcej.

-na jaką w ogóle dokładność pozwala gps+glonass? Było 7 satelit. Zapewne na otwartej przestrzeni by było z 15 i lepsza dokładność?
-ile cyfr po przecinku podawać? 5 czy 6? Czy więcej niż 6 w ogóle ma sens? Ale nie w tym problem, bo już 4 cyfra się nie zgadza.
-na ile dokładnie są kalibrowane mapy google i zumi? A może są jakieś inne polecane pod tym kątem?
-i ogólnie jakie sugestie jeśli chodzi o jak najlepsze wykorzystanie gps?

Oczywiście tu będzie do dyspozycji także namierzanie pelengacyjne bliskiego zasięgu, ale najlepiej by było po prostu iść jak w dym :)
Awatar użytkownika
pawelsky
Posty: 9763
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: DroneELT

Post autor: pawelsky »

oko pisze:-na jaką w ogóle dokładność pozwala gps+glonass? Było 7 satelit. Zapewne na otwartej przestrzeni by było z 15 i lepsza dokładność?
Patrz sie nie na liczbe satelotow, ale na wartosci DOP (Dilution Of Precision) ktora jest zalezna nie tyle od ich liczby co od konfiguracji w przestrzeni.

W sprzyjajacych warunkach powinienes miec dokladnosc rzedu 2-3m CEP
oko
Posty: 919
Rejestracja: wtorek 22 paź 2013, 10:48
Lokalizacja: Warszawa

Re: DroneELT

Post autor: oko »

Słuszna uwaga, ten parametr jest nadawany w mavlinku:

<field type="uint16_t" name="eph">GPS HDOP horizontal dilution of position in cm (m*100). If unknown, set to: UINT16_MAX</field>

A jak z tego skorzystać? Przechowywać ostatnich N próbek, i np nadawać tę która miała najmniejszy HDOP, albo nadawać kilka ostatnich z informacją o HDOPie?
Awatar użytkownika
pawelsky
Posty: 9763
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: DroneELT

Post autor: pawelsky »

oko pisze:<field type="uint16_t" name="eph">GPS HDOP horizontal dilution of position in cm (m*100). If unknown, set to: UINT16_MAX</field>
No tu jest akurat male pomieszanie pojec, bo DOP jest bezwymiarowe, wiec nie mozna go podawac w metrach. Mysle ze tutaj raczej chodzilo o odpowiednik np. hAcc/vAcc w uBloxach czy EHPE/EVPE w SiRFach.
oko
Posty: 919
Rejestracja: wtorek 22 paź 2013, 10:48
Lokalizacja: Warszawa

Re: DroneELT

Post autor: oko »

Czyli to jest jakoś przeskalowane na odległości? Na ile jest to dokładne i czy MinimOSD albo DroidPlanner wyświetla te parametry? A HDOP/VDOP?

Zrobię nadawanie na przykład 5 ostatnich próbek, zamiast nadawać to samo niech DroneELT nadaje kilka ostatnich pozycji, zawsze to zabezpieczenie gdyby któraś z nich okazała się dokładniejsza niż ostatnia. No i jakaś informacja o przebiegu ostatniej fazy lotu.
Awatar użytkownika
pawelsky
Posty: 9763
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: DroneELT

Post autor: pawelsky »

oko pisze:Czyli to jest jakoś przeskalowane na odległości? Na ile jest to dokładne i czy MinimOSD albo DroidPlanner wyświetla te parametry? A HDOP/VDOP?
Popatrzylem sobie w kod pixhawka i zaleznie od modelu GPSa jest tu roznie:

Dla uBloxa

Kod: Zaznacz cały

_gps_position->eph = (float)_buf.payload_rx_nav_pvt.hAcc * 1e-3f;
_gps_position->epv = (float)_buf.payload_rx_nav_pvt.vAcc * 1e-3f;
Dla MTK

Kod: Zaznacz cały

_gps_position->eph = packet.hdop / 100.0f; // from cm to m
_gps_position->epv = _gps_position->eph; // unknown in mtk custom mode, so we cheat with eph
Dla Ashtech (cokolwiek to jest)

Kod: Zaznacz cały

_gps_position->eph = sqrtf(static_cast<float>(lat_err) * static_cast<float>(lat_err) + static_cast<float>(lon_err) * static_cast<float>(lon_err));
_gps_position->epv = static_cast<float>(alt_err);
Czyli w kazdym przypadku jest to tak naprawde co innego. Mysle ze najlepiej bedzie po prostu podawac ten parametr jak jest, z zalozeniem ze im mniejsza wartosc tym bardziej mozna ufac pozycji.
oko
Posty: 919
Rejestracja: wtorek 22 paź 2013, 10:48
Lokalizacja: Warszawa

Re: DroneELT

Post autor: oko »

Zrobiłem wersję z 5 ostatnimi ważnymi próbkami i podawaniem parametru EPH. Jego wartość była 391 albo 392 przy 6 satelitach (znowu z balkonu, ze słabą ekspozycją), a pokazane miejsca blisko siebie tak z 30-40 metrów od pixhawka. Czyżby to był zasięg w metrach? Jeśli tak, to informacja całkiem przydatna, trzeba przejść kółko wokół wskazanego miejsca. Muszę zrobić więcej testów dla lepszych próbek.

Tak czy inaczej, urządzenie wydaje się nadawać do testów ze zrzucaniem w bombie z HK :) Trzeba tylko opracować sposób jego bezpiecznego opakowania. Najlepiej by chyba było opakować poszczególne elementy w piankę 3D z otworami, to do plastikowego pudełka, i to jeszcze owinięte w płaską piankę? Na pewno nie może być wtyczki zasilającej włożonej do kątowych (EDIT: nie-kątowych, niestety) złączy Orange, to łatwo będzie wyrwane.

Pakiet 2-celowy nano-tech 0.850 Ah, OpenLRS Rx i mały UBEC bez kabli ważą 76 gram.
Awatar użytkownika
pawelsky
Posty: 9763
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: DroneELT

Post autor: pawelsky »

oko pisze:Czyżby to był zasięg w metrach?
Niestety nie, to nie jest zasieg w metrach.
oko
Posty: 919
Rejestracja: wtorek 22 paź 2013, 10:48
Lokalizacja: Warszawa

Re: DroneELT

Post autor: oko »

W nowej wersji informacje o pozycji będą mogły pochodzić zarówno z mavlinka, jak i z oddzielnego GPS. Będzie on mógł być podłączony do portu szeregowego (automatycznie zostanie wykryte, czy tu jest mavlink, czy NMEA) albo do I2C, i wtedy będą 2 GPSy.

Sygnał zacznie być nadawany przy zaniku mavlinka (o ile był obecny) albo przy wykryciu braku przemieszczania się. I mam pytanie o to ostatnie. Jakie przyjąć kryteria, że nie ma ruchu? Jest przecież rozrzut pozycji nawet przy leżącym w jednym miejscu odbiorniku, no i pojawiają się od czasu do czasu zupełnie bezsensowne próbki. Będę tu kombinować, ale może są jakieś wypróbowane kryteria? Wartości średnie? Tendencje? Powiązanie z HDOP? Eliminowanie wartości skrajnych w oknie czasowym? Korzystać z pozycji, z prędkości, czy z jednego i drugiego?
ODPOWIEDZ