Pavouk Hiwonder
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Re: Pavouk Hiwonder
Jako to přepočítávání na stupně náklonu je pro člověka ... programu bohatě stačí hodnoty 0-255 ... prostě zjisti jakou hodnotu získáváš při 15° náklonu a to pavoučkovi bude bohatě stačit. Ušetříš tím spoustu strojového času.
Re: Pavouk Hiwonder
A taky to tak dělám , ale chci to pochopit proč to jednou počítá stupně a jednou je rozsah 0-255. Když budu potřebovat výstup ve stupních tak jsem nahraný. Myslím že se hádají knihovny. Pokusím se matematicky převádět ty hodnoty 0-255 na srozumitelné hodnoty.
Re: Pavouk Hiwonder
To že se nějaké dvě knihovny jmenujou stejně a poskytují stejně pojmenované funkce, ještě neznamená, že obsahují stejný kód a že ty funkce budou vracet stejné výsledky (pokud je to jiné číslo verze, nemusí to sedět, nemluvě o tom, pokud je to ze dvou různých zdrojů).
A navíc i pokud obsahují stejný kód, tak je stejně můžou ovlivnit i ostatní knihovny okolo.
A i kdyby ne, tak nastavení kompilace do toho taky má co mluvit.
Takže tady se s tím dá dost experimentovat a podívat se, co se vlastně překládá v tom pavoučkovi a co se překládá v tom jen tak.
A nebo to prostě vzít jako podivnost, kterou nechceš řešit a napsat si konverzi z 0..255 na stupně, kterou budeš používat všude a jednou podmínkou v překladu si vybereš, jestli to přepočítává (v pavoučkovi), nebo jen vrcí argument (v jen tak programu).
A navíc i pokud obsahují stejný kód, tak je stejně můžou ovlivnit i ostatní knihovny okolo.
A i kdyby ne, tak nastavení kompilace do toho taky má co mluvit.
Takže tady se s tím dá dost experimentovat a podívat se, co se vlastně překládá v tom pavoučkovi a co se překládá v tom jen tak.
A nebo to prostě vzít jako podivnost, kterou nechceš řešit a napsat si konverzi z 0..255 na stupně, kterou budeš používat všude a jednou podmínkou v překladu si vybereš, jestli to přepočítává (v pavoučkovi), nebo jen vrcí argument (v jen tak programu).
Re: Pavouk Hiwonder
Ačkoliv se zdá nelogické a nemožné mít v programu deklarované dvě funkce se stejným jménem, je to zcela reálné. Nadává se tomu přetěžování funkcí a umí to člověku docela i zamotat hlavu.
Re: Pavouk Hiwonder
Asi máš pravdu. Vyzkoušel jsem různé knihovny "MPU6050" a pokaždé to dělá něco jiného. Na zbláznění.
Obecně tyto knihovny používají stejné funkce:
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
accelgyro.getAcceleration(&ax, &ay, &az);
Nějak jsem nerozpoznal rozdíl ve výpisu naměřených dat. Chci zatím používat jen X a Y ale mám dojem že mi tam dělá pěkný bordel ta osa Z. Hlavně při pohybu pavoučka - jakoby při velkém zrychlení pohybu vyhodnotil překročení i v osách X nebo Y (o těch cca 20°)a zastaví se. Ale to mi docela nabourává plynulý pohyb.
A co je nejhorší že to musím testovat systémem plazením se za pavoučkem a sledovat displej co vypisuje, ale stejně je to tak rychle že to ani nevidím.
A pořád nevím na co je ta knihovna "Math".
Obecně tyto knihovny používají stejné funkce:
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
accelgyro.getAcceleration(&ax, &ay, &az);
Nějak jsem nerozpoznal rozdíl ve výpisu naměřených dat. Chci zatím používat jen X a Y ale mám dojem že mi tam dělá pěkný bordel ta osa Z. Hlavně při pohybu pavoučka - jakoby při velkém zrychlení pohybu vyhodnotil překročení i v osách X nebo Y (o těch cca 20°)a zastaví se. Ale to mi docela nabourává plynulý pohyb.
A co je nejhorší že to musím testovat systémem plazením se za pavoučkem a sledovat displej co vypisuje, ale stejně je to tak rychle že to ani nevidím.
A pořád nevím na co je ta knihovna "Math".
Re: Pavouk Hiwonder
Hodnoty, které se vypisují na displej si ukládej do paměti a pak si je vypiš např. přes sériovou linku (s doplňkem Excelu to lze načítat rovnou do tabulky).
Pohyb lze stabilizovat použitím Kalmanova filtru, který se obecně používá k predikci pohybu, za situace, kdy dochází k dočasnému výpadku dat nebo např. nelze dočasně sledovat pohyb objektu, který je na chvíli zakryt jiným objektem v popředí.
Re: Pavouk Hiwonder
Díky Caster,
prozatím se to snažím vyřešit jednodušší metodou a to tak že po velmi krátký čas sesbírám např. 5 hodnot a udělám průměr. Až pak vyhodnotím náklon. Výsledky jsou o něco lepší ale ještě to není ono. Sem tam ještě vyhodnocuje velký náklon a stopne se.
Výpis hodnot mám i na Serial monitor (všechno ok) - ale jen když ho držím v ruce tak to funguje (připojení jen přes usb, takže nejedou serva), když běhá po zemi (bez usb) tak už ne !
Něco bližšího o tom kalmanově filtru by nebylo ?
prozatím se to snažím vyřešit jednodušší metodou a to tak že po velmi krátký čas sesbírám např. 5 hodnot a udělám průměr. Až pak vyhodnotím náklon. Výsledky jsou o něco lepší ale ještě to není ono. Sem tam ještě vyhodnocuje velký náklon a stopne se.
Výpis hodnot mám i na Serial monitor (všechno ok) - ale jen když ho držím v ruce tak to funguje (připojení jen přes usb, takže nejedou serva), když běhá po zemi (bez usb) tak už ne !
Něco bližšího o tom kalmanově filtru by nebylo ?
Re: Pavouk Hiwonder
Já bych si udělal ukládání na SD kartu s časem, na pavouka bych dal provizorní LEDku, která by na začátku výrazně zablikala a pak blikla třeba co 5 sekund (a zapsala se do logů) a natáčel bych pavouka na kameru se zapnutým vypisováním času do obrazu.
Pak bych mohl přesně porovnat logy s pohybem na kameře. Pokud by kamera ještě navíc čitelně zachycovala ten LCD display, tak by se to dalo ještě víc vylepšit.
Nebo na mobil, nebo tak něco, stejně jako když jsi ho dával na youtube
Jo a ta Math tam klidně mohla zůstat po nějakém ladění, kdy byla potřeba a pak ji nikdo nevyhodil, i když už potřeba nebyla. Takové věci se taky stávají. Ale pokud se program vejde do paměti, tak je to celkem jedno, prostě se při uploadu nahrává o sekundu déle. (A ještě bych se podíval, jestli se z ní neberou nějaké konstanty jako pi a podobně.
Pak bych mohl přesně porovnat logy s pohybem na kameře. Pokud by kamera ještě navíc čitelně zachycovala ten LCD display, tak by se to dalo ještě víc vylepšit.
Nebo na mobil, nebo tak něco, stejně jako když jsi ho dával na youtube
Jo a ta Math tam klidně mohla zůstat po nějakém ladění, kdy byla potřeba a pak ji nikdo nevyhodil, i když už potřeba nebyla. Takové věci se taky stávají. Ale pokud se program vejde do paměti, tak je to celkem jedno, prostě se při uploadu nahrává o sekundu déle. (A ještě bych se podíval, jestli se z ní neberou nějaké konstanty jako pi a podobně.
Re: Pavouk Hiwonder
Podívej se na příklad kódu KalmanFilter_MPU6050.ino
Mpu6050 kalman library problem
Tohle jsem před pár lety zkoušel v OpenCV
simple-opencv-kalman-tracker
Podívej se na youtube video.
Kalman filtering demo
Tady se podívej na obrázek, jak ten Kalman funguje
Kalman Filter Implementation (Tracking mouse position)
Použití Kalmanova filtru pro vektorové řízení tahu rakety (na to se chystám):
TVC Rocket Flight software coding. MPU6050 kalman filter code
Re: Pavouk Hiwonder
- takže k čemu slouží knihovna "Math" se nedozvím
Gilhad - to už je jak sci-fi - kamery, sd paměť, logy, apod.... a přitom taková blbost jednoduchý gyroskop a tolik problémů.
Gilhad - to už je jak sci-fi - kamery, sd paměť, logy, apod.... a přitom taková blbost jednoduchý gyroskop a tolik problémů.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host