Algorytm wyliczania mocy dla silników w QCopterze

0

Przydługawy wstęp (można przejść do drugiego akapitu ;)
Posiadam układ CC3D atom, który służy do sterowania silnikami w QCopterze na podstawie odebranych informacji o chcianej mocy, pochyleniu, wychyleniu i obrotowi. Łączy się go z transmitterem i nawet 5 letnie dziecko może złożyć latający pojazd. W moim jednak przypadku informacje te dostarczam z przeze mnie zaprogramowanego procesora. 4-kanałowym PWM-em steruję throttle/Y/P/R. Wszystko niby działa, niczym nie muszę się przejmować - po prostu wysyłam sygnał do układu, gdzie chcę lecieć, JEDNAK takie rozwiązanie komplikuje cały układ (dodatkowy moduł CC3D), zwiększa wagę, wielkość, cenę i lekko ogranicza. Stąd zależy mi bardzo na pozbyciu się go i tutaj dochodzimy do clue:

Potrzebuję algorytm, który jest używany w QCopterach do wyliczania mocy silników tak, aby pojazd leciał w zadanym kierunku. Podaję:
Dane wejściowe:

  • Dane z żyroskopu/akcelerometra/kompasu/świętego Piotra
  • Kierunek jaki chcę osiągnąć: 20st Yaw, 10st Pitch, -30st Roll, 50% Throttle
    Dane wyjściowe:
    4 wartości odpowiadające mocy każdego z silników (np. w skali 1-100)

Znalazłem jeden, ale źle wylicza (lub ja nie potrafię go poprawnie obsłużyć/przystosować), stąd zależy mi na możliwie najprostszym do implementacji

Język C/C++ system Linux

0

Nie ma tu miejsca na wykład. Zacznij od słowa kluczowego: filtr Kalmana . Dalej już jakoś pójdzie...

0

Gdzie tu odpowiedź na moje pytanie? Raczej filtr Kalmana to nie algorytm przyjmujący 4 dane wejściowe, a taki potrzebuję. Za dużo już się męczyłem bez rezultatów, żeby rozkminiać coś, co gdzieś jest pewnie dostępne i łatwo implementowalne

0

Najłatwiej zlecić napisanie gotowca. Chodź to skomplikowana sprawa, więc pewnie kilka tyś zł. i ktoś się poświęci w tej nieprzyjemnej matematyce, gdzie jak spierdzielisz to .... będzie nieciekawie.

0

Odpowiadacie po to, żeby nabić posty, czy żeby przekazać użyteczną informację? Pytam się o bibliotekę do wyliczania mocy silników na podstawie zadanych parametrów to jeden wyskakuje z filtrem kalmana, a drugi, żebym zlecił komuś jej zrobienie za kilka tysięcy, mimo że lata po świecie z milion QCopterów na opensourcowych (ale bardzo dedykowanych) oprogramowaniach. Znalazłem dla Arduino chociażby drone flight controller, czy quadcopter-master, jednak coś źle robię i błędnie wylicza. Za pewne coś źle przepisałem pod mój system, ale są jak widać dostępne bez płacenia cieśli tysięcy cebulionów

Potrzebuję łatwo implementowalnej biblioteki/funkcji/łatewa przyjmującej Y, P, R, Throttle oraz dane z żyroskopu i dostaję 4 wartości silników. Trochę bardziej skomplikowana też oczywiście będzie mile widziana

0

I co, uznajesz, że filtr Kalmana na którym opiera się cytując Wikipedię "automatyka, robotyka, elektronika, teoria sterowania, przetwarzanie sygnałów, inżynieria dźwięku i obrazu, rzeczywistość rozszerzona i wiele innych" to nie jest użyteczna informacja dla kogoś, kto chcąc uzyskać opisane sterowanie silnikami koniec końców na niego natrafi? Myślisz, że co będzie siedziało w tej magicznej bibliotece o którą się dopytujesz?
A jak sam piszesz nie umiesz napisać samemu to się nie dziw, że za napisanie zaawansowanego programu stawka będzie poważniejsza, to nie gotowiec dla studenciaków na zaliczenie.

0

Po co mam pisać coś, co zostało miliony razy napisane i zaimplementowane? To nie projekt na magisterkę, że na jeden problem mogę poświęcić miesiąc.
Tak więc jakby ktoś miał/znał/widział bibliotekę przyjmującą w/w parametry i zwracającą w/w wyniki to będę wdzięczny

0

No to gógle w dłoń i szukaj. No chyba, że pośród z nas jest tu jakiś zapaleniec modelarz, i z miejsca będzie w stanie odpowiedzieć. W sumie, to coś tam zdaje się @Marooned i @furious programming dłubali przy zdalnie sterowanych samochodzikach, może zatem będą mogli udzielić jakiś wskazówek.

0

@Marooned na pewno wie o wiele więcej na ten temat ode mnie, dlatego że ja co prawda dłubię przy modelu, jednak póki co przy całej jego konstrukcji. Elektroniki jeszcze nie programowałem – to zrobię na samym końcu, jak już wszystkie podzespoły będą osadzone i gotowe do używania.

Tyle że mój model ma tylko jeden silnik DC do napędu, a to nijak ma się do problemu OP – mogę go sterować w sumie byle jak, byle się kręcił w dobrym kierunku. ;)

1

To są całkiem spore algorytmy, w których główne skrzypce grają słowa kluczowe: PID, (wspomniany) filtr Kalmana, ewentualnie filtr komplementarny, quaterniony.
Może rzuć okiem na open source http://ardupilot.org/ ? Obsługuje wszelkie rodzaje pojazdów (w tym wielowirnikowce), jest otwarty, w necie jest tona dyskusji, diagramów zagnieżdżonych pętli PID etc etc.
To na tyle rozległy temat, że jednym wątkiem tego nikt nie ogarnie raczej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1