Smalltim OSD and autopilot (часть 2)
Без логики приоритетов, была-бы неопределенность.
Хи-кикс! Показательнейший пример, это когда я решил приземлиться в пяти километрах от места старта, а ограничение по удалению и высоте забыл снять…
В итоге после нескольких попыток, при которых АП упорно бил меня по рукам и вытаскивал самик на целевую высоту, я перехитрил его посадкой в два приема. С целевой высоты резкое пикирование до включения АП. При этом сразу включаю режим принудительного отключения. До отработки этой команды АП успевает перевести самик в горизонтальный полет с небольшим набором высоту. К этому моменту АП вынужден был отключиться и до следующего его включения у меня оставалось примерно 2 - 3 секунды чтобы притереться в траву. Получилось… Самым неприятным в этой ситуации было то, что АП сразу же закладывал вираж в сторону базы, а заходить на посадку курсом на базу я сразу не допетрил.
При этом сразу включаю режим принудительного отключения. До отработки этой команды АП успевает перевести самик в горизонтальный полет с небольшим набором высоту. К этому моменту АП вынужден был отключиться и до следующего его включения у меня оставалось примерно 2 - 3 секунды чтобы притереться в траву.
Угу. 😃 Строго говоря неопределенность свзязанная с работой управляющего канала по “команде”, а не по “состоянию” - это плохо. И от нее надо избавляться. Мы все знаем почему так сейчас сделано (что-бы навесить на управляющий канал команды телеметрии), но это по сути “баг, а не фича”. И от него надо уходить. Управляющий канал должен однозначно опеределять состояние модели, по крайней мере в режиме полностью ручного управления никаких других логик включения АП, кроме потери РУ работать не должно.
То есть, из опыта Андрея, следует, что никаких приоритетов нет, а есть последовательное перебирание всех условий работающих на данный момент.
Кстати, Андрей, я не могу понять зачем ты используешь включение АП по дальности и т.п… Разьве не проще самому в нужный момент включить АП.
То есть, из опыта Андрея, следует, что никаких приоритетов нет, а есть последовательное перебирание всех условий работающих на данный момент.
Кстати, Андрей, я не могу понять зачем ты используешь включение АП по дальности и т.п… Разьве не проще самому в нужный момент включить АП.
Это хорошо помогает не увлечься разглядыванием достопримечательностей вдали от себя 😃.
Зная среднюю высоту высотных помех в районе полета, задаем ее с небольшим запасом и не опасаемся в них впечататься. На практике, много раз уже пригождалось и функцию считаю очень полезной. Другое дело, что для всяческих рекордных полетов автопилоту нужно оставлять только пропадание связи.
А на счет приоритетов лучше расскажет автор. Потому как здесь все сильно запутанно: автопилот призван фактически устранить ошибки/самоуверенность человеческого фактора, при этом оставляя этому самому фактору достаточно полномочий. О как завернул!
>А на счет приоритетов лучше расскажет автор.
Все условия автовключения АП проверяются последовательно, если условие выстреливает, то выставляется флаг включения этого условия.
Если после проверки условий хотя бы один флаг активен, то выставляется флаг включения АП. Но АП в этот момент еще не включается.
После проверки условий проверяется состояние управляющего канала. Если есть связь и управляющий канал стоит в положении принудительного выключения, то флаг включения АП сбрасывается.
После всех этих проверок идет на проверку флаг включения АП. Если он активен, то АП включается.
Проблема есть одна: при активных некоторых флагах включения АП и при управляющем канале в состоянии принудительного выключения АП это принудительное выключение не всегда срабатывает четко.
Я перепроверю логику.
Вопрос скорее к Тимофею, но если кто-то знает ответ, то буду благодарен за помощь.
Время от времени возникают проблемы при доступе к разделам в контрольной панели. То есть при нажатии на “Прочитать” панель подвисает с ожиданием данных от автопилота, но затем данные так и не считываются.
При “Прочитать все настройки из памяти” выдаёт :
Что может быть причиной такого поведения? После перепрошивки flick-ом вроде работает, но потом через несколько включений/выключений и корректировки настроек, опять начинают проявляться проблемы с чтением/записью.
Тимофей, есть ли у тебя какая-нибудь баг-трекинг система? Может стоит завести и открыть доступ для заведения подобных проблем.
Спасибо.
У меня вопрос к Тимофею.
Я честно признаюсь, не дочитал весь форум про автопилот. По этому, извиняюсь заранее, если такой вопрос поднимался.
Насколько я понял, в вашем автопилоте реализовано ограничение на максимальную высоту подъёма самолёта. Есть или планируется ли Вами функция ОГРАНИЧЕНИЯ НА МИНИМАЛЬНУЮ ВЫСОТУ СНИЖЕНИЯ самолёта. Поясню:
было бы очень удобно (мне лично) поднять самолёт в воздух, щёлкнуть свободным каналом управления, после чего автопилот, контролируя высоту по барометру (или ещё как-то) не даёт самолёту снизиться ниже запрограммированного уровня. Таким образом, я мог бы, взлетев, отдать управления ребёнку или другу и пойти пить пиво 😃)) , не боясь, что они грохнут тушку.
Такая функция есть называется Включение АП При потере высоты на растоянии *Расстояние > 500 м, Высота < 100 м*
Такая функция есть называется Включение АП При потере высоты на растоянии *Расстояние > 500 м, Высота < 100 м*
Эм… немного не понял, тоесть если самолёт будет ближе 500 метров, то автопилот не включится и он весело воткнётся в землю?!
Я немного о другом: хотелось бы включать этот режим (запрет снижения скажем ниже 15 метров) в ручную с пульта. Чтобы пока режим активен, самолёт нельзя было уронить неумелыми действиями.
тоесть если самолёт будет ближе 500 метров, то автопилот не включится и он весело воткнётся в землю?!
Ну, можно в условии и ноль дистанции поставить. Вот только с посадкой может получиться напряженка… 😎
------
Не, ноль не ставится, нужно хотя бы 1м задать…
А чтобы сесть в таком варианте мне нужно будет подать напряжение с делителя на вход бародатчика, чтобы автопилот думал, что он летит высоко 😃
Ну теоретически можно, хотя это изврат в крайней форме…
Просто, если в девайсе уже реализован перехват управления при снижении\подъёме, и автопилот реально сможет быстро поймать самолёт и вывести его в горизонтальный полёт, то добавление включения этого режима вручную по идее не должно вызвать серьёзных затруднений… (ну мне так кажется)
Прошу ответить автора, сможет ли он в будущем сделать такую функцию… если Тимофей учтёт моё маленькое пожелание в следующей прошивке, то я чтобы время не терять закажу железку щас и буду ждать прошивку…
Прошу понять правильно, я собираюсь купить автопилот, чтобы без ущерба для нервной системы дать друзьям порулить самиком… мне-то он особо и не нужен.
… в догонку ещё такой вопрос:
с Вашим автопилотом будет работать ваша старая плата OSD?! Ну она такая… не заводского производства…
Её можно прошить последней прошивкой и подключить к автопилоту?!
Сергей, эту фичу в АП вводить не надо. Поставьте автовключение на удалении >1м и высоте <100м и будет то, что надо. И высота, и расстояние выставляются какие угодно.
Запретить же автовключение АП можно будет, удерживая крутилку/рычаг передатчика на управляющем канале в положении принудительного выключения АП.
Старую плату телеметрии к АП подключить без паяльника проблематично. Но можно обменять с доплатой на новую.
Время от времени возникают проблемы при доступе к разделам в контрольной панели.
Алексей, это не проблемы с памятью АП. Все настройки АП хранит во внешней энергонезависимой памяти и подгружает в оперативную память при старте.
При изменении настроек из Контрольной панели сбрасывает их в энергонезевисимую память и сразу переподгружает.
Скорее всего, проблемы именно с коммуникацией по USB. Попробуйте закрыть все процессы, жрущие ресурсы USB, типа USB ТВ тюнера и т.д.
Еще попробуйте перед подключением к ПК отключить плату телеметрии и подать питание на АП от батареи.
Если симптомы пропадут, то я прав в своих предположениях и после этого смогу дать совет, как избавиться от таких проблем окончательно.
Боюсь, по диапазонам не совпадают. Регуль иногда пытается определить диапазон при включении, распознав ненулевой газ.
Вообщем не удалось пока победить данный эффект. Пробовал другой регуль подключить, тоже самое получается. На прошлом облёте поставил в КП газ 70% но всё равно видимо мало, на 50% двиг вообще вставал.
Кстати на базу он разворачивается и даже ходит по кругу, а вот по тангажу непонятки, клюет носом а потом синусоидальные движения вверх-вниз и как правило теряет высоту в итоге. Попробую конечно уменьшить “Допустимый тангаж”, если конечно я правильно понимаю логику. Ну и не совсем понятно, какие настройки должны быть в ветке “Система стабилизации/ориентации” при отсутствии пиро.
Ещё если сегодня получится полетать, попробую камеру на хвост направить, посмотреть как рули отрабатывают в режиме включения АП.
а вот по тангажу непонятки, клюет носом а потом синусоидальные движения вверх-вниз и как правило теряет высоту в итоге. Попробую конечно уменьшить “Допустимый тангаж”, если конечно я правильно понимаю логику
Думаю надо уменьшать чувствительность по тангажу и резкость выхода на заданную высоту. Допустимый тангаж работает только с пирогоризонтом, то есть у Вас не работает - от того и дискретность по РВ (как я и предполагал).
Вопрос скорее к Тиму, так как только создатель наверное знает всю логику заложенную в АП. А как должен вести себя АП, если даётся команда например на крен или тангаж, а горизонт всё время по нулям? Сегодняшний полёт не внёс ясность в мою голову по поводу логики.
Кстати и с логом непонятки. Второй раз скачиваю после полётов, конвертирую и ничего на гугл-планете не вижу, как будто и не летал вовсе.
Кстати и с логом непонятки. Второй раз скачиваю после полётов, конвертирую и ничего на гугл-планете не вижу, как будто и не летал вовсе.
А при конвертации с какам параметром конвертируете -t или -r ?,
у меня большой лог не корректно конвертировался , открыв в текстовом редакторе вырезал интересующий кусок по дате времени GPS и свободно сконвертировал , делайте через командную строку тогда можно посмотреть после конвертации отчет об ошибках.
-r , пробовал вырезать из файла только по дате, что то не очень получилось. Попробую ещё раз конечно. Но просмотрщик логов нормальный наверное Тиму надо сделать.
Можно ли выложить куда-нибудь логи, которые не конвертятся или выдают ошибки?
Посмотреть бы, что там не так.
Вот этот файл
> Вот этот файл
Переделал, выложил тут .
Было три проблеммы:
- очень большой номер отсчета 1.8млрд. это 10лет непрерывной записи с частотой 5Гц., обрезалось все, что больше 1млрд., теперь не обрезается совсем
- в некоторых строчках вместо числа написано NaN, теперь заменяется нулем
- высота иногда 4млрд., теперь обрезается все, что больше 30км.
Если надо нарисовать только часть лога, то можно указывать какие отсчеты использовать: номера из первой колонки через черточку, несколько интервалов - через запятую, без пробелов
smt2kml.exe -n начало1-конец1,начало2-конец2[,…] -r … -o …
Из лога получилась такая картинка