А давайте обсудим Arducopter - APM
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);
Всем привет.
А никто не пробовал подключить телеметрию с АРМ через приемник с телеметрией? У него есть Rx Tx и на передатчике они есть, насколько я понял, если телеметрийный UART1 подать на приемник, то с передатчика на земле можно будет снимать все показания через Mission Planner?
А никто не пробовал подключить телеметрию с АРМ через приемник с телеметрией?
Спасибо, интересно. Но я имел ввиду вообще без участия пульта - снять телеметрию с Rx Tx приемника и через USB UART переходник подать на комп в МР. Как считаете возможно ли это, может кто-то делал?
снять телеметрию с Rx Tx приемника и через USB UART
Приемник он ведь на коптере, нет? А мишен планер он на земле? Как вы их собрались коннектить по уарт? Или я что-то не понимаю в этой жизни? 😉
Как считаете возможно ли это, может кто-то делал?
Думаю возможно. Направление я задал. У FrSky порт на 9600 работает, учтите это.
Поигрались с фильтром акселя: INS_MPU6K_FILTER. Поставил 30Гц. Коптер стал гораздо эмм… лучше летать. Более отзывчивые и плавнее, комфортнее стало им управлять
хотелось бы побольше узнать про этот параметр,какое значение оптимальное и на что влияет?до сих пор думал что это параметр отвечает только за разное отображение кривых вибраций в терминале
Приемник он ведь на коптере, нет?
Телеметрийный приёмник FrSky работает на приём и на передачу.
Приемник он ведь на коптере, нет? А мишен планер он на земле? Как вы их собрались коннектить по уарт? Или я что-то не понимаю в этой жизни? 😉
Приемник на коптере подключается к АРМ, а передатчик на земле через УАРТ к компу.
Попробую - отпишусь.