А давайте обсудим Arducopter - APM

Urdigor
Hyperion:

GPS LEA-6h, прошит последней прошивкой с QZSS и глонассом. Залит в него конфиг 3drublox.txt. 11-12 спутников ловит, HDOP 1.4 самый лучший достигался.

Подскажите, с этой прошивкой LEA-6h может пользоваться данными со спутников глонасс?

F_R

Наконец-таки мой АРМ и кавардокоптер начали слушаться 😃
АВД после прошивки ГПСа стал работать корректно.
Заметил одну особенность: Я выставил скорость перемещения коптера WPNAV_LOIT_SPEED = 700, это 25км/ч. Но, на практике оказалось, что это совсем не так. Надо умножать это значение, эдак, в 2 раза. На деле, коптер начинал разгоняться очень быстро (>40км/ч), впоследствии, получался очень большой крен и не понятные расколбасы.
Поставил значение WPNAV_LOIT_SPEED = 400, это 14.5км/ч. На деле получилось, около 25км/ч. Стало все норм.

Поигрались с фильтром акселя: INS_MPU6K_FILTER. Поставил 30Гц. Коптер стал гораздо эмм… лучше летать. Более отзывчивые и плавнее, комфортнее стало им управлять.

Вчера тестил АВД в разных местах поля и в разных положениях коптера 😃 - все работает.
Но, меня смущает, что как-то резко он газует моторчиками в режиме РТЛ. Ток прыгает от 8 до 20А (висение 12А). В ручном режиме, спокойно выставляю определенный газ и лечу. А тут явная перерегуляция.
Есть мысля покрутить ПИДы лойтера, но говорят, что их трогать нельзя…

Вот видео с включением РТЛов. По звуку очень хорошо слышна перегазовка.

Вот логи того полета, если кому интересно 😃

Посмотрел график вибраций. Хм… Мне кажется или по OZ вибрации, малость ни того? 😉

Andrey_d

Странно. Я ставил скорость 500 (5 м /с) так вроде на глаз скорость 15-20 км/ч. Ставил 700 - быстрее, конечно, но не более 30 км/ч на глаз. (речь про миссию идет, я так понял)

F_R

Речь шла про возврат на базу 😃 Но, думаю, что это из одной оперы 😃
Не, у меня конкретно так разгонялся и заваливаться начинал… Бррр страшно смотреть было…

Andrey_d

И при RTH также летел, как и при миссии. Особо высокой скорости не заметил.
Было один раз следующее. Отлетал пару миссий - на 4.5 км , потом на 2 км , но очень высоко - не было проблем. Потом пришла техника импортная, довольно крутые экскаватор и бульдозер - футбольное поле планировать ровнять. Причем в воскресение дело было. Явно колым. Просто своим ходом приехали - недалеко, похож где-то официально трудились. Так вот, отлетав прекрасно миссию, при возвращении как раз место посадки рядом с полем, где трактора трудились. Так вот , как же он заметался над ними! Такой скорости я еще не видел! Кружил и метался над ними (метров 30-50 отлеты) - ну точно за 50-60 км/ч. Взял на себя управление и посадил.

Думаю у этих тракторов были глушилки гпс включены какие-нибудь.
Уехали они - летал, лойтерил в том месте, где они были - проблем никаких больше не было.

RTemka
Andrey_d:

Думаю у этих тракторов были глушилки гпс включены какие-нибудь.
Уехали они - летал, лойтерил в том месте, где они были - проблем никаких больше не было.

Может просто переотражение ? Если трактора крупные.
В машине GPS прилично гулять начинает когда между железными гаражами проезжаешь.

alexeykozin
F_R:

INS_MPU6K_FILTER. Поставил 30Гц. Коптер стал гораздо эмм… лучше летать. Более отзывчивые и плавнее, комфортнее стало им управлять

нет такого фильтра, у фильтра есть дискретные значения 5 , 10 , 20, 42 и еще каоето, они перечислены в описании параметра

F_R:

Посмотрел график вибраций. Хм… Мне кажется или по OZ вибрации, малость ни того?

не должен летать с такими вибрациями, совсем.

Andrey_d

Не знаю. Может и так. Но я в гаражном кооперативе летал (вернее висел в лойтере) минут по 30 2 раза. Новые батарейки испытывал и тренировал. Так тут у нас и автобусы огромные и погрузчики то и дело шлындали. Ничего. За час больше 1 метра не разу не сместился. Висел как прибитый. Только чуть иногда порывы несильного ветра парировал.
Хотя может просто стечение обстоятельств какое.

Но за примерно 50 серьезных вылетов (миссий я имею ввиду) один раз так носился не по делу. Все остальные миссии - как по рельсам. Даже в приличный ветер.

RTemka

Согласен, я один раз пробовал с GPS с битой антенной.
Координаты ходили метров на 50.
Так он ездил туда сюда, но без фанатизма.
Я так понимаю параметр лойтер спид он превышать не должен.

alexeykozin

сижу себе копаю код коррекции системы ориентации,
вижу ништяшную вещь.
как известно изначально AHRS писалась под самоль,
в коде заложено такое западло:

  1. 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мс даже в ветер если летишь не мордой вперед,
для авторежимов надо ставить поведение чтоб летел мордой вперед

ENGINEERUS

а ведь это вполне может быть. У мня тоже стоит, не разворочивать по курсу.

RTemka

Я всегда ставлю лететь мордом вперед.
Летает даже когда компас врет и в лойтере унитазит.
Правда если летать по квадрату видно, что он то боком то передом летит 😃

strizhmax

Да ё-маё.
Вижу книгу, а в ней фигу.

365 if (use_compass()) {
…вырезал…
389 } else if (_flags.fly_forward && have_gps()) {тут пошло то, о чем говорится тут
428 }

Так что вся речь о полете, когда компаса нет.

starfair
alexeykozin:

для себя сделал вывод, нужно не превышать наземную скорость 5мс даже в ветер если летишь не мордой вперед,
для авторежимов надо ставить поведение чтоб летел мордой вперед

Так может расценить что это не фича и баг и сообщить разработчикам? Само собой, для текущей ситуации полезный совет! Но раз ветки кода разделены, по логике вещей, нужно и расчеты корректировать согласно тому, что многороторники это далеко не самолеты!

F_R

А у меня забивает на положение морды. Не разворачивает он её. Не помню уже за каким умыслом я не стал включать режим “мордой вперёд” 😃
Мне больше интересно, от куда могут ползти вибрации в плоскости Z? От пропов, виброперемещенмя и виброускорения, обычно, лежат в плоскости его вращения. Т.е. X и Y. Винты проверял - балансировка в норме.
Только, если провести балансировку системы “мотор+проп”, но ИМХО, не сильно улучшит картину…

Что посоветуете?

Зы. Лучи жёсткие, люминь. АРМ стоит на силиконовых стойках - амортизаторах.

alexeykozin
strizhmax:

Да ё-маё.
Вижу книгу, а в ней фигу.

точно, спс.
уже глаза слезятся от монитора.

по идее использование компаса для ахрс это не одно и тоже что он включен
в строке 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;
}
тоесть компас может быть исключен из коррекции курса если аппарат летит задом наперед или даже боком …
зы: могу ошибаться, прошу не пинать

alexeykozin

продолжаю нудеть
весьма звучный флаг как set_fly_forward “впередлеталка” по идее должен исключать коррекцию компаса жпс курсом
раньше флаг явно задавался при инициализации ahrs в основном коде ардукоптера и самолета
в крайней прошивке такого нет, есть упоминание в LogReader.cpp но не совсем понятно в какиз случаях эта установка вызыввается толи только при наличии телеметрии толь при чтении лога а может вообще всегда

strizhmax

в мастере у дидронов все есть
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);

zveruga

Всем привет.
А никто не пробовал подключить телеметрию с АРМ через приемник с телеметрией? У него есть Rx Tx и на передатчике они есть, насколько я понял, если телеметрийный UART1 подать на приемник, то с передатчика на земле можно будет снимать все показания через Mission Planner?

strizhmax
zveruga:

А никто не пробовал подключить телеметрию с АРМ через приемник с телеметрией?


Пойдет?