А давайте обсудим Arducopter - APM
Если да, то на какое расстояние достаточно их разнести ?
если рама карбон или слой фольги есть то жпс антена сверху рамы, телеметрийная снизу рамы - корпус экран
Но теперь имею какое то вращение по яву
увеличивайте ваш RATE_YAW_P, 0.2
по 10% за тест.
в каждом тесте завесьте аппарат попробуйте (осторожно. в безветрие) ткнуть рукой за луч чтоб провернулся по яву
при увеличении этого параметра он должен сильнее сопротивляться. как следствие перекачанный яв может сыграть злую шутку при задевании одной ногой на посадке - может давать столько газу что аппарат будет брыкаться и подпрыгивать
посмотрел видео,
судя по звуку на крайних кадрах в стабе отводите ручку исльно и бросаете аж звенит стик а коптер в сторону отклонения идет достаточно быстро, но он должен почти также быстро и возвращаться а он это делает как то вяловато.
пробуйте rate D по 5% от текущего значения увеличивать за каждый тест, но очень осторожно, не перепутайте десятые и сотые, D исчисляется в сотых долях
если рама карбон или слой фольги есть то жпс антена сверху рамы, телеметрийная снизу рамы - корпус экран
Спс ! поэкспериментирую…
Рама - обычная F450, антена и GPS висят на луче… попробую разнести на расстояние, если не поможет - буду пробовать Ваш вариант…
GPS LEA-6h, прошит последней прошивкой с QZSS и глонассом. Залит в него конфиг 3drublox.txt. 11-12 спутников ловит, HDOP 1.4 самый лучший достигался.
Подскажите, с этой прошивкой LEA-6h может пользоваться данными со спутников глонасс?
Наконец-таки мой АРМ и кавардокоптер начали слушаться 😃
АВД после прошивки ГПСа стал работать корректно.
Заметил одну особенность: Я выставил скорость перемещения коптера WPNAV_LOIT_SPEED = 700, это 25км/ч. Но, на практике оказалось, что это совсем не так. Надо умножать это значение, эдак, в 2 раза. На деле, коптер начинал разгоняться очень быстро (>40км/ч), впоследствии, получался очень большой крен и не понятные расколбасы.
Поставил значение WPNAV_LOIT_SPEED = 400, это 14.5км/ч. На деле получилось, около 25км/ч. Стало все норм.
Поигрались с фильтром акселя: INS_MPU6K_FILTER. Поставил 30Гц. Коптер стал гораздо эмм… лучше летать. Более отзывчивые и плавнее, комфортнее стало им управлять.
Вчера тестил АВД в разных местах поля и в разных положениях коптера 😃 - все работает.
Но, меня смущает, что как-то резко он газует моторчиками в режиме РТЛ. Ток прыгает от 8 до 20А (висение 12А). В ручном режиме, спокойно выставляю определенный газ и лечу. А тут явная перерегуляция.
Есть мысля покрутить ПИДы лойтера, но говорят, что их трогать нельзя…
Вот видео с включением РТЛов. По звуку очень хорошо слышна перегазовка.
Вот логи того полета, если кому интересно 😃
Посмотрел график вибраций. Хм… Мне кажется или по OZ вибрации, малость ни того? 😉
Странно. Я ставил скорость 500 (5 м /с) так вроде на глаз скорость 15-20 км/ч. Ставил 700 - быстрее, конечно, но не более 30 км/ч на глаз. (речь про миссию идет, я так понял)
Речь шла про возврат на базу 😃 Но, думаю, что это из одной оперы 😃
Не, у меня конкретно так разгонялся и заваливаться начинал… Бррр страшно смотреть было…
И при RTH также летел, как и при миссии. Особо высокой скорости не заметил.
Было один раз следующее. Отлетал пару миссий - на 4.5 км , потом на 2 км , но очень высоко - не было проблем. Потом пришла техника импортная, довольно крутые экскаватор и бульдозер - футбольное поле планировать ровнять. Причем в воскресение дело было. Явно колым. Просто своим ходом приехали - недалеко, похож где-то официально трудились. Так вот, отлетав прекрасно миссию, при возвращении как раз место посадки рядом с полем, где трактора трудились. Так вот , как же он заметался над ними! Такой скорости я еще не видел! Кружил и метался над ними (метров 30-50 отлеты) - ну точно за 50-60 км/ч. Взял на себя управление и посадил.
Думаю у этих тракторов были глушилки гпс включены какие-нибудь.
Уехали они - летал, лойтерил в том месте, где они были - проблем никаких больше не было.
Думаю у этих тракторов были глушилки гпс включены какие-нибудь.
Уехали они - летал, лойтерил в том месте, где они были - проблем никаких больше не было.
Может просто переотражение ? Если трактора крупные.
В машине GPS прилично гулять начинает когда между железными гаражами проезжаешь.
INS_MPU6K_FILTER. Поставил 30Гц. Коптер стал гораздо эмм… лучше летать. Более отзывчивые и плавнее, комфортнее стало им управлять
нет такого фильтра, у фильтра есть дискретные значения 5 , 10 , 20, 42 и еще каоето, они перечислены в описании параметра
Посмотрел график вибраций. Хм… Мне кажется или по OZ вибрации, малость ни того?
не должен летать с такими вибрациями, совсем.
Не знаю. Может и так. Но я в гаражном кооперативе летал (вернее висел в лойтере) минут по 30 2 раза. Новые батарейки испытывал и тренировал. Так тут у нас и автобусы огромные и погрузчики то и дело шлындали. Ничего. За час больше 1 метра не разу не сместился. Висел как прибитый. Только чуть иногда порывы несильного ветра парировал.
Хотя может просто стечение обстоятельств какое.
Но за примерно 50 серьезных вылетов (миссий я имею ввиду) один раз так носился не по делу. Все остальные миссии - как по рельсам. Даже в приличный ветер.
Согласен, я один раз пробовал с GPS с битой антенной.
Координаты ходили метров на 50.
Так он ездил туда сюда, но без фанатизма.
Я так понимаю параметр лойтер спид он превышать не должен.
сижу себе копаю код коррекции системы ориентации,
вижу ништяшную вещь.
как известно изначально AHRS писалась под самоль,
в коде заложено такое западло:
- if we are over 3*GPS_SPEED_MIN (which means 9m/s)
and our yaw error is over 60 degrees, which means very
poor yaw. This can happen on bungee launch when the
operator pulls back the plane rapidly enough then on
release the GPS heading changes very rapidly
github.com/diydrones/ardupilot/…/AP_AHRS_DCM.cpp строка 413
запало в том что самоль не может лететь задом с наземной скоростью более 9мс при ошибке в показаниях компаса и носа самолета более 60 градусов, даже в сильный ветер. поэтому в коде если такое случилось то значение курса переустанавливается не по компасу а по жпс.
такая ситуация - задали мы поведение в ртл не смотреть курсом сторону возврата а летать всегда передом к примеру на север.
нажали ртл - у него нос смотрит на сервер - курс 0 - знает что лететь на юг на курс 180, нагунулся назад и попер, набрал скорость 10 мс в секунду -
срабатывает проверка расхождение курса компаса и жпс больше 60 градусов, скорость больше 9мс - срабатывает самолетная логика что пора отключть компас потому что врет и считать что курс 180, юг,
курс начинает тянуть гироскоп отвечающий за хеадинг вместо правильного по компасу севера - на юг, аппарат вместо правильного направления назад начинает уходить в сторону.
кстати не столь давно в теме задавался вопрос почему в ртл сначала начал возвращаться правильно а потом рванул в сторону - вот он ответ.
потому что если поведение в ртл стоит не дефолтное что нужно сначала развернуться лицом домой а потом лететь и вдруг привысил наземную скорость 9 м/с - получаешь пируэт.
для себя сделал вывод, нужно не превышать наземную скорость 5мс даже в ветер если летишь не мордой вперед,
для авторежимов надо ставить поведение чтоб летел мордой вперед
Но теперь имею какое то вращение по яву
rcopen.com/forum/f123/topic233564/9303
Вот это может еще пригодится.
а ведь это вполне может быть. У мня тоже стоит, не разворочивать по курсу.
Я всегда ставлю лететь мордом вперед.
Летает даже когда компас врет и в лойтере унитазит.
Правда если летать по квадрату видно, что он то боком то передом летит 😃
Да ё-маё.
Вижу книгу, а в ней фигу.
365 if (use_compass()) {
…вырезал…
389 } else if (_flags.fly_forward && have_gps()) {тут пошло то, о чем говорится тут
428 }
Так что вся речь о полете, когда компаса нет.
для себя сделал вывод, нужно не превышать наземную скорость 5мс даже в ветер если летишь не мордой вперед,
для авторежимов надо ставить поведение чтоб летел мордой вперед
Так может расценить что это не фича и баг и сообщить разработчикам? Само собой, для текущей ситуации полезный совет! Но раз ветки кода разделены, по логике вещей, нужно и расчеты корректировать согласно тому, что многороторники это далеко не самолеты!
А у меня забивает на положение морды. Не разворачивает он её. Не помню уже за каким умыслом я не стал включать режим “мордой вперёд” 😃
Мне больше интересно, от куда могут ползти вибрации в плоскости Z? От пропов, виброперемещенмя и виброускорения, обычно, лежат в плоскости его вращения. Т.е. X и Y. Винты проверял - балансировка в норме.
Только, если провести балансировку системы “мотор+проп”, но ИМХО, не сильно улучшит картину…
Что посоветуете?
Зы. Лучи жёсткие, люминь. АРМ стоит на силиконовых стойках - амортизаторах.
Да ё-маё.
Вижу книгу, а в ней фигу.
точно, спс.
уже глаза слезятся от монитора.
по идее использование компаса для ахрс это не одно и тоже что он включен
в строке 351 функция
bool AP_AHRS_DCM::use_compass(void)
в ней со строки 336
// if the current yaw differs from the GPS yaw by more than 45
// degrees and the estimated wind speed is less than 80% of the
// ground speed, then switch to GPS navigation. This will help
// prevent flyaways with very bad compass offsets
int32_t error = abs(wrap_180_cd(yaw_sensor - _gps.ground_course_cd()));
if (error > 4500 && _wind.length() < _gps.ground_speed()*0.8f) {
if (hal.scheduler->millis() - _last_consistent_heading > 2000) {
// start using the GPS for heading if the compass has been
// inconsistent with the GPS for 2 seconds
return false;
}
тоесть компас может быть исключен из коррекции курса если аппарат летит задом наперед или даже боком …
зы: могу ошибаться, прошу не пинать
продолжаю нудеть
весьма звучный флаг как set_fly_forward “впередлеталка” по идее должен исключать коррекцию компаса жпс курсом
раньше флаг явно задавался при инициализации ahrs в основном коде ардукоптера и самолета
в крайней прошивке такого нет, есть упоминание в LogReader.cpp но не совсем понятно в какиз случаях эта установка вызыввается толи только при наличии телеметрии толь при чтении лога а может вообще всегда
в мастере у дидронов все есть
ArduPlane/setup.pde:300: ahrs.set_fly_forward(true);
ArduPlane/system.pde:466: ahrs.set_fly_forward(true);
ArduPlane/test.pde:435: ahrs.set_fly_forward(true);
ArduPlane/test.pde:496: ahrs.set_fly_forward(true);