ArduCopter Mega: порт на обычную Arduino (тестим)
Для просто удержания курса, компас не нужен. Режим Stabilize работает так как вы описали. При отклонении YAW, коптер поворачивается и запоминается новый курс. Теперь при отклонении “вперед” коптер полетит уже в новом направлении.
Теперь режим Simple - вот тут уже необходим компас, т.к. мы должны знать где север/юг. При взлете, запоминается куда направлен нос, и при нажатии “вперед”, коптер летит в эту сторону. В отличии от Stabilize, вращая по YAW - вы не меняете направление “вперед”. Поэтому в Simple mode можно легко лететь вперед и при этом вращатся вокруг своей оси (коптера ессесно).
Подробнее о режимах полета, читайте тут: code.google.com/p/arducopter/wiki/AC2_ModeSwitch
Я думаю что в Stabilize коптер должен работать так:
При попадании стика YAW в область около нуля коптер должен запоминать текущий курс. Далле в алгоритм коррекции YAW вносится поправка пропорциональная отклонению от запомненного курса, которая и возвращает его всегда к курсу. По аналогии с тем как аксели всегда возвращают его в горизонт. При таком алгоритме летай сколько хочешь не отклоняя YAW - нос останется на месте.
Пока не все это совпадает с практикой. Кто нибудь знает как оно там внутри задумано?
Ну и второй непонятный момент. Как компас работает а Loiter? Судя по моему эксперименту - хз как. Повораичваю коптер рукой на 90 градусов - нос не возвращает, получается долговременного запоминания курса нет?
- к этому начинает пилить вбок, получается что и новый курс не учитывается, а пытается использовать для возврата старый?
В принципе… На этот вопрос сможет ответить только разраб… Только их давно в теме не видно. Или забили, или в сезон постоянно летают… Да и новых версий что-то давно не видно в SVN. Может внатуре забили… Хез.
Понятно, что если подуплить в исходники - то можно и допилить это. Только вот из имеющейся у меня инфы, кажется, что лучше от этого не будет.
Как не нужен? Вы же сами писали.
Направление коптера определяется в первую очередь по гироскопу и только медленная корректировка происходит по компасу. Быстрые вращения отслеживаются гирами, поэтому вы могли не заметить, что компас съезжает при газе, если его долго держать, то он повернется.
Ранее у меня был коптер на KK2.0, там только гиры и аксели. Соответственно при активном пилотаже приходилось периодически подправлять нос, так как гиры не всегда правильно его возвращали.
Тут же появился компас по которому можно держать нос хоть год.
Притом на ардукоптере пишут что есть параметр AHRS_YAW_P:
expose a new parameter AHRS_YAW_P to control how fast the compass controls the heading. The default is 0.2, which should be good for most users (this was mostly added for ArduCopter users)
Разработчиков ArduCopter’a тут отродясь не было. 😉 Ищите их на DIYDrones
Я занимаюсь только портированием под другое железо, весь основной функционал неизменен и я туда не лезу. По факту, я даже не летал с прошлого лета, не до этого сейчас.
Я занимаюсь только портированием под другое железо, весь основной функционал неизменен и я туда не лезу.
Ах, вот оно чо, ну тогда извините.
Будем искать )))
Разработчиков ArduCopter’a тут отродясь не было. 😉 Ищите их на DIYDrones
Я занимаюсь только портированием под другое железо, весь основной функционал неизменен и я туда не лезу. По факту, я даже не летал с прошлого лета, не до этого сейчас.
Ага, т.е. Ваше творение - это как раз уте либы, которые в стандартной ардуине мы заменяем на Мегапиратовские? А грубо говоря исходники в папке arducopter = 100% совпадение с самим ардукоптером?
Тогда вопрос: если взять скажем последний ArduCopter, и откомпилить с Вашими либами - должно получится? Или все-таки какие-то изменения в Ardu вносятся, и могут быть какие-то баги которые проявятся потом?
Интересно было бы попробовать. Просто сам по образованию программист, хотя и в совершенно другой области (веб).
А грубо говоря исходники в папке arducopter = 100% совпадение с самим ардукоптером?
Не 100% но близко. Взять и просто слить не получится. В пирате например другая последовательность инициализации датчиков. Но все что отвечает за полет (AHRS, режимы полета и т.п.) все совпадает на 100%.
Подключил двухосевой подвес. При включении питания в процессе инициализации контроллера его перекашивает по обоим осям до упора. После инициализации выравнивается и отрабатывает наклоны как положено. Контроллер AIOP 1.0 прошивка R300. С этими перекосами можно что нибудь поделать?
нельзя, т.к. при инициализации на PWM выходы идет минимальный сигнал.
Я думаю что в Stabilize коптер должен работать так:
При попадании стика YAW в область около нуля коптер должен запоминать текущий курс. Далле в алгоритм коррекции YAW вносится поправка пропорциональная отклонению от запомненного курса, которая и возвращает его всегда к курсу.
Именно так. Так есть в Multiwii например.
В Loiter он должен держать позицию. Что и делает весьма неплохо. Никакой разницы куда вы его повернёте рукой.
Подключил двухосевой подвес. При включении питания в процессе инициализации контроллера его перекашивает по обоим осям до упора. После инициализации выравнивается и отрабатывает наклоны как положено. Контроллер AIOP 1.0 прошивка R300. С этими перекосами можно что нибудь поделать?
Если не секрет - а зачем с этим что-то делать? В воздухе подвес врядли кто будет включать/выключать. А то, что до арминга еще его чуть переклинит - совершенно безразлично как-бы…
В loiter он тоже должен держать курс? Тогда после поворота рукой он должен возвращаться - чего не происходит.
В loiter он тоже должен держать курс? Тогда после поворота рукой он должен возвращаться - чего не происходит.
Я не знаю должен ли. Но в Loiter в этом нет необходимости.
Именно так. Так есть в Multiwii например.
А мне кажется не так, попробуйте рукой повернуть его в стабе или в альтхолде - сначала посопротивляется, а потом смирится с новым направлением носа. Запоминал бы курс - вернулся бы к старому положению и через час.
А мне кажется не так, попробуйте рукой повернуть его в стабе или в альтхолде - сначала посопротивляется, а потом смирится с новым направлением носа.
Я и говорю - так есть в Multiwii например. Но в Megapirate не так почемуто…
AHRS_YAW_P пробовал от 0.1 до 1 - никакой разницы не вижу… 😦
Если не секрет - а зачем с этим что-то делать?
По конструкции подвеса получается, что при включении серва по roll тянет подвес до упора в балку. Серву жалко.
Залил прошивку MegaPirateNG 2.9 R7 (ArduCopter 2.9.1), плата AIO v1.1, Mission Planner 1.2.45
-
как производить установку горизонта? при подключении через юсб все калибруется нормально, наклоняем коптер по инструкциям планнера.
через телеметрию(3ДР), в отличие от старых версий прошивок и планнеров, теперь выставить горизонт не удается - плата зависает. что делать -
Не работает сонар…
А подскажите пожалуйста как можно изменить дефолтные лимиты отклонения в 45 градусов в стаб режиме? Хочу понизить чувствительность стиков. Или это можно сделать как-то по другому?
Хочу понизить чувствительность стиков.
А не проще на аппаратуре? Хоть расходами, хоть кривыми, хоть экспонентами.
Народ, кто-нить сталкивался с такой штукой:
- На плате AIOP v1 настроил - летало (stabilize/alt hold/loiter). Что бы летало нормально - уменьшал P до 0,0937
- Поставил пришедшую ко мне плату AIOP v2 (от rctimer) + новый GPS (с eeprom) + 3dr radio. Зашил точно с такими же настройками (Y6 hexa), только поставил #define на датчики AIOPV2. Прошивал той же Megapirate 2.8R3.
После этого точно так же калибранул радио, компас, аксель. Все вроде ок, в мишен планере все нормально определяло где низ, где верх, восток/север и т.д. Настроил полетные режимы как и на старой плате. Поставил новую плату вместо старой, на то же место, точно так же подключил движки и т.д.
Поставил в новой плате P на такую же величину 0,0937 (по дефолту было 0,175). Больше ничего не менял в ПИДах.
При попытке взлететь - переворот “вверх тормашками”. Попытка еще раз взлететь - еще раз переворот и -1 пропеллер. Такое впечатление было (взлетал в stabilize, как обычно) - что плата не выравнивала особо аппарат при взлете. На старой плате - все было ок. Перепроверил потом еще раз подключение моторов - все нормально.
Вопрос: что за нафиг? Оно что, для каждой платы совершенно разные ПИДы могут быть? Конструкция аппарата не менялась, только электроника. Версия прошивки - из той же папки…