Автопилот Arduplane - открытое ПО

Роман1971

У меня надпись иногда проскакивает DISARMED. И это то в полете! Видимо отуда же ноги растут.

Glinco

Коллеги. Надпись - это ОСД. Я и спросил - где в протоколе АПМ передает строковые команды? Я не нашел.
Возможно, он отдает неверный статус, который ОСД тупо показывает по коду.

schs
Glinco:

А подскажите, где именно в прошивке АПМ/библиотеке МавЛинка хранятся эти строки? Я в описании протокола нашел исключительно коды. Никакого текста.

Разбираться сейчас с прошивкой пикса лениво.
По протоколу

mavlink.io/en/messages/common.html
Посмотрите на этой страничке команды в которых передаются текстовые поля, искать по char[
К примеру.

STATUSTEXT ( #253 )

Status text message. These messages are printed in yellow in the COMM console of QGroundControl. WARNING: They consume quite some bandwidth, so use only for important status and error messages. If implemented wisely, these messages are buffered on the MCU and sent only at a limited rate (e.g. 10 Hz).
Field NameTypeValuesDescriptionseverityuint8_tMAV_SEVERITYSeverity of status. Relies on the definitions within RFC-5424.textchar[50]
Status text message, without null termination character

Glinco

Посмотрю для саморазвития. Спасибо.

kasatka60

Есть apm 2.6 и прошивка arduplane 3.4. Там можно ли как-то настроить газ в зависимости от угла атаки?

Glinco

Так это наоборот, угол от газа.

alexeykozin
Glinco:

Так это наоборот, угол от газа.

да.
github.com/ArduPilot/ardupilot/…/Attitude.cpp#L114

микс не работает в мануале,
работает в стабе и авторежимах, добавляет тангаж при увеличении газа
у некоторых моделей изза специфики установки мотора (задний толкающий винт выше оси самолета, с выкосом) при увеличении газа создается сила, прижимающая вниз и требуется дополнительный тангаж

kasatka60
Glinco:

А чем определите угол атаки?

Полетный контроллер определяет.

alexeykozin
kasatka60:

Полетный контроллер определяет.

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

измеряется или рассчитывается в зависимости от наличия пито воздушная скорость
в авторежимах рассчитывается целевой тангаж и крен
в зависимости от текущей воздушной скорости и заданной круизной считается требуемый газ
вот такой вот примитивный алгоритм

Glinco
kasatka60:

Полетный контроллер определяет.

АПМ и другие автопилоты не могут определить угол атаки. Для этого нужен спец датчик, который определяет направление обтекания планера.
Погрешность бародатчика, а также постоянное изменение положения самолета в воздухе не даст расчитать угол атаки крыла.
Если вы про тангаж, то это другое дело. 😃

У нас была идея сделать датчик угла атаки, как на Сушках. Такой горизонтальный флюгер. Но самолеты настолько маленькие, что реализовать очень сложно.
Нужна машина от трех метров.

AndreyI

Подскажите пожалуйста, есть ли в последней версии Arduplane, возможность настроить что бы в RTL самолет до дома шел на высоте включения RTL (если она выше заданной) и начинал снижаться только по прилету в точку?

alexeykozin

ALT_HOLD_RTL: RTL altitude

Target altitude above home for RTL mode. Maintains current altitude if set to -1. Rally point altitudes are used if plane does not return to home.

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

AndreyI

Это немного не то. Надо что бы самолет возвращался на той высоте, на которой включили RTL, и по прилету, снижался на целевую высоту для кружения. А указанный параметр как я понимаю, и задает эту высоту.

Необходимый вариант возврата реализован в ArduCopter, но тут я не вижу похожих параметров…

khomyakk

Это тоже не совсем правильно. Были видео по этому поводу. Залетает самолет за гору, включается возврат домой и вот встреча с землёй.
Подняться на высоту возврата и потом домой - тоже не всегда вариант. Для подьёма самолету нужно пространство, а его может не быть. Наверное поэтому и пошли на компромисс.

Glinco

Вы пытаетесь впихнуть в гражданский девайс алгоритмы Калибров.

AndreyI
khomyakk:

Это тоже не совсем правильно. Были видео по этому поводу. Залетает самолет за гору, включается возврат домой и вот встреча с землёй.

Алгоритмов возможного возврата домой, может быть действительно масса. И какой то универсальной алгоритм придумать просто не реально. Но в том же ардукоптере реализовали несколько вариантов и есть возможность выбрать необходимый вариант под свой стиль полетов. Я думал что в самолетной версии прошивки, то же есть какая то гибкость настройки этого алгоритма.

Tarrok

Всем доброго дня! Подскажите такой момент… летаю на апм 3.1 мини. сегодня немного полетал, в процессе очередного полета сел аккум, на сколько было возможно подтянул самоль к себе, но посадка получилась немного жестковата, хотя в целом все нормально оказалось, но после этого апм стал вести себя некорректно, при подключении свежего аккума горит только индикатор питания. Индикатор арминга загорается только в момент подачи питания, гаснет и больше не загорается. Все сервы улетают в крайние положения и ни на что не реагируют. Ни на пульт, ни если самоль взять в руки и покачать.

schs
Tarrok:

Все сервы улетают в крайние положения и ни на что не реагируют. Ни на пульт, ни если самоль взять в руки и покачать.

Отключить все сервы и проверить питание. Возможно серва подгорела и сажает.

Glinco

Владельцам АПМ/Пикса и аппы типа Тараниса или чего-то на ОпенТХ.
Вчера пытался выставить ФС на аппе так же, как я делал на Дево10. Там для ФС можно выставить канал газа в -125 единиц, что дает импульс 975 мс., на который и настраивается АПМ для перехода в круг и далее в РТЛ.
Но в ОпенХТ, стоящем в Jumper T16, нельзя выставить канал ниже -100.
Как тогда настроить ФС так, чтобы дать знать контроллеру про ФС? Можно конечно каналу режима полета выставить значение, устанавливающие РТЛ, но это кривое решение.
Ибо не даст реализовать короткий ФС с постановкой в круг.