DroneELT
Moderatorzy: marbalon, moderatorzy2014, moderatorzy
DroneELT
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.
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.
Re: DroneELT
Np. GPS emulator od happykillmore (ktoras starsza wersja byla w pakiecie od konfiguratora RemzibiOSD).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?
-
- Posty: 291
- Rejestracja: wtorek 30 wrz 2014, 02:26
- Lokalizacja: Opole
Re: DroneELT
Nie wiem czy dobrze cię zrozumiałem, ale czy ty chcesz wgrać soft eleresa do olrs
Re: DroneELT
Ź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...
... jeśli nie wiesz co robić, nabieraj wysokości. Jeszcze nikt nie zderzył się z niebem...
Re: DroneELT
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 :)
-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 :)
Re: DroneELT
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.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ść?
W sprzyjajacych warunkach powinienes miec dokladnosc rzedu 2-3m CEP
Re: DroneELT
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?
<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?
Re: DroneELT
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 pisze:<field type="uint16_t" name="eph">GPS HDOP horizontal dilution of position in cm (m*100). If unknown, set to: UINT16_MAX</field>
Re: DroneELT
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.
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.
Re: DroneELT
Popatrzylem sobie w kod pixhawka i zaleznie od modelu GPSa jest tu roznie: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?
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;
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
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);
Re: DroneELT
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.
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.
Re: DroneELT
Niestety nie, to nie jest zasieg w metrach.oko pisze:Czyżby to był zasięg w metrach?
Re: DroneELT
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?
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?