Автопилот Arduplane - открытое ПО
а что тут обсуждать? в ардуплейне прописана логика в случае отстуствия приема сигнала жпс самолет вместо ртл входит в режим кружения и постепенно под воздействием ветра сносится из зоны действия глушилки, после возврата жпс фикса включается ртл
отлично! вот это и хотелось обсудить. а так же то, почему это не указано в доках.
последнее время глушат уже везде. так что это более чем актуальный вопрос.
возможно затерялось в ходе переписывания документации
github.com/ArduPilot/ardupilot/…/ArduPlane.cpp#L73…
case CIRCLE: // we have no GPS installed and have lost radio contact // or we just want to fly around in a gentle circle w/o GPS, // holding altitude at the altitude we set when we // switched into the mode
при сбросе параметров сбрасывается и ориентация компаса и откалиброванные офсеты, при низких пидах стабилизация может работать не так заметно как при изначально настроенных, в свежих прошивках канал радио для управления режимами у самолета может быть выбран иной чем по дефолту, его тоже можно сбросить при сбросе натроек.
Думал об этом, но против этой версии говорит то, что был момент в поле, когда он вроде как-бы отвис, и все заработало. Но после перезагрузки - опять перестали моды переключаться, и газ стал активен (как будто я сделал арминг), хотя я его не делал.
Прошивка, 3.3, вот та где пофиксили NMEA. Мозг - APM HK Pilot Mini 2.72. Вспомнил кстати одну вещь - давно не стирал логи. Может с этим как-то связано, и с тем, что этот mini APM какой-нибудь урезанный, по сравнению с полноразмерным.
П.С.: Трекинг GPS этот мозг пишет как-то странно, выборочно… То вообще GPS-трекинга не запишет (создаст пустой лог-файл), то запишет например только полёт в одной флай-моде. А других - как будто не было. Мне говорили, что это из-за того, что там все уменьшено. Ну значит, буду в следующий раз брать 32х-битник Вашей, Алексей разработки, ну или на крайняк Пиксрэйсер или Пиксхавк.
да логи в апм вообще никакие по размеру, кажись даже с минимальным логированием каждые полчаса начинают затирать себе хвост, незнаю как в мини, но и в нормальном датафлешь малюсенькая.
в этом плане конечно 32 битные контроллеры рулез
Что-то я всё таки не пойму про trim_auto. Для чего нужно и на что он влияет в случае самолёта? Для коптеров утверждается, что меняется ahrs_trim_x и ahrs_trim_y, т.е. подстраивается горизонт платы по крену и тангажу. Но там немного другой алгоритм использования этого режима. А вот для самолёта ничего толком не нашёл.
По идее принцип должен быть тот же. Если это так, то я не понимаю, каким образом тримы рулей могут быть переведены в углы установки платы? Ведь после переключения режима из ручного в автомат сами по себе тримы на аппе никуда не пропадают. Допустим оттриммировали мы канал в ручном режиме, переключились в FBWA, ну запишется трим куда-то в мозг, но аппа же все равно будет слать на борт центральное положение стика со смещением от нуля, насколько трим стоит. Или контроллер теперь будет считать это нулём аппы и начнёт работать от него? Но тогда рушится предположение о корректировке ahrs_trim_x и ahrs_trim_y через trim_auto.
Позавчера в штиль провёл эксперимент. Замечено было ранее, что модель в автомате потихоньку отклоняется от курса влево, хотя в ручнике такого нет (простой аппарат, 1,5м размах, элероны и РВ, руддера нет, положительное V на ушах). Записал значения ahrs_trim_x и ahrs_trim_y, поставил trim_auto = 1. Запустил, ещё раз проверил прямолинейность в ручнике, перевёл в автомат, эффект ухода с курса не ушёл. В автомате триммером крена (три щелчка вправо) добился прямолинейного полёта, перевёл в ручной режим, получил правый крен (вполне ожидаемо), вернул обратно в автомат, летит прямо. Поставил в RTL, обновил в MP параметры, обнаружил, что значения ahrs_trim_x и ahrs_trim_y не изменились (ahrs_trim_x типа -0,00801, т.е. -0,5гр). Вернул триммер крена взад, ещё раз перещёлкнул режимы, отклонение от курса в автомате вернулось, зато в ручнике теперь опять летит прямо. Опять поставил в RTL, снова обновил в MP параметры, ahrs_trim_x и ahrs_trim_y опять не изменились.
Вот и не понимаю, зачем нужен этот trim_auto в самолётной прошивке. Может у кого есть более глубокие познания?
ИМХО и в коптере не нужен. за пару минут все тримы вручную регулируются.
согласно доке авто трим в самолете регулирует не коректировку углов установки полетного контроллера а значения трим для каналов серв.
я бы не стал этого делать
ardupilot.org/plane/docs/parameters.html?highlight…
т.е. у серв есть рабочий диапазон определенный мин-трим-макс
например 1000мс -1500мс -2000мс
трим может изменить пропорцию 1000 - 1600 - 2000
серво трим имеет смысл изменять только в случаях когда отклонение руля вверх и вниз сильно отличаются по воздействию, при этом трим имеет смысл приблизить к более чувствительному положению с тем чтобы ослабить воздействие
ИМХО и в коптере не нужен. за пару минут все тримы вручную регулируются.
согласно доке авто трим в самолете регулирует не коректировку углов установки полетного контроллера а значения трим для каналов серв.
я бы не стал этого делать
ardupilot.org/plane/docs/parameters.html?highlight…
Это (по ссылке) я читал, и пока не увидел инфо про коптеры, как-то всё было понятно. Но возможность подстроить горизонт платы управления не подбором цифр в ahrs_trim параметрах, а прямо в полёте, очень уж заманчивой показалась. То есть вы хотите сказать, что этого сделать нельзя и auto_trim нужен только для того, чтобы автопилот принял текущие значения тримов за нулевые при стиках в нейтралях и перестал оценивать их как управляющее воздействие пилота?
т.е. у серв есть рабочий диапазон определенный мин-трим-макс
например 1000мс -1500мс -2000мс
трим может изменить пропорцию 1000 - 1600 - 2000
серво трим имеет смысл изменять только в случаях когда отклонение руля вверх и вниз сильно отличаются по воздействию, при этом трим имеет смысл приблизить к более чувствительному положению с тем чтобы ослабить воздействие
А вот тут что-то не понял. Поясните, пожалуйста. Как-то выпадает из стройного предположения, что тримы через trim_auto надо передать контроллеру в качестве новых нулевых точек.
А вот тут что-то не понял.
как бы разное “усиление” для участков от середины до минимума и от середины до максимума с перемещением положения этой середины
а фактически на стике нейтраль 1500мс, на выходе на серву 1600мс за счет этого руль в ином положении
стик отклоним чуть вверх 1550 а серва уйдет на 1625 (1600 + нечто меньшее чем 50, допустим 25) за счет того что отклонение пропорционально диапазонам.
а если стик вниз то на входе 1450 а на выходе 1500 (1600 - нечто большее чем 50 , к примеру еще 50) точно считать лень.
как бы разное “усиление” для участков от середины до минимума и от середины до максимума с перемещением положения этой середины
а фактически на стике нейтраль 1500мс, на выходе на серву 1600мс за счет этого руль в ином положении
стик отклоним чуть вверх 1550 а серва уйдет на 1625 (1600 + нечто меньшее чем 50, допустим 25) за счет того что отклонение пропорционально диапазонам.
а если стик вниз то на входе 1450 а на выходе 1500 (1600 - нечто большее чем 50 , к примеру еще 50) точно считать лень.
Что-то я никогда с таким не сталкивался, всегда всё линейно в обе стороны. Даже не представляю, как такое может быть.
коллеги, 100500 страниц нет сил читать, пару вопросов: рулится только рудер на максимальном газу, если газ в 0, то уже не рулится ничего, в миссионпланере все рули на входе отрабатываются, а вот на выходе нет, куда копать? при включении ручного режима, сразу преключается в CIRC 😃 наведите на источник проблемы
Класс. А как вы поняли, что переключились в ручной режим? Я бы обнулил настойки и заново все перекалибровал.
понял очень просто, на экране MANU, через пол секунды CIRC, попробую сбросить настройки, спасибо
Такое впечатление, что АП думает, что у вас фейлсейф сработал.
Вчера пытался глянуть что у меня с вибрацией, но не смог загрузить лог с АРМа. Через модем в МР не получается ,а до USB в моём самолёте добираться проблемно. Подскажите пожалста, в принципе, эта операция выполняется с модема, или нужно вытаскивать USB ?
Такое впечатление, что АП думает, что у вас фейлсейф сработал.
Как вариант, если уровень газа в фэйлсэйве ошибочно установлен в районе максимума, например стоит 1920 вместо 920, то пока стик газа на максимум не задвинуть, аппарат будет в фэйлсэйве.
Как вариант, если уровень газа в фэйлсэйве ошибочно установлен в районе максимума, например стоит 1920 вместо 920, то пока стик газа на максимум не задвинуть, аппарат будет в фэйлсэйве.
а элероны и руль высоты?
или нужно вытаскивать USB ?
Насколько я помню, только через USB.
Вообще, если правильно сделана калибровка переключателя режимов, то Мануал включается всегда при нижнем положении переключателя/крутилки.
Может в этом вопрос.
Насколько я помню, только через USB.
Я то же только такую информацию нашёл. Сделаю дырочку в правом боку 😉)
Я логи качаю с АПМ только по блютусу, не вижу причин, почему нельзя скачать по модему, это одно и то же по сути.