Новая система от Смаллтим - SwiftAI Next Generation - автопилот+телеметрия+ИМУ

jusupoff
AlexSneg:

тогда самолет не будет лететь по той траектории

Поддерживаю, в другом АП, которым пользуюсь, движение на базу вполне предсказуемо:
Самолет доворачивает нос на базу до тех пор, пока курс не будет в точку старта. При этом курс берется с данных GPS. И при существенном боковом ветре самолет летит по прямой на базу (курс по GPS соответсвует направлению в точку старта), но нос самолета может быть повернут градусов на 15 в сторону от базы, т.е. летит с компенсациеЙ скольжения и редактирует курс непосредственно в полете. Лично мне такой алгороитм кажется более надежным - в каком бы положении самолет не оказался от внешнего воздействия - он всегда сможет продолжить полет на базу по кратчайшему пути, а не выходить на ранее заложенную треакторию.

KBV
AlexSneg:

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

Естественно будет лететь по дуге, вернее даже не по дуге, а скорее параллельно прямой. Только если он будет целиться в конечную точку- то удаление (от прямой) может быть сотни метров, а так всего несколько единиц. Большая разница)
И что еще важнее, по высоте тоже самое.

jusupoff

Так зачем лететь по дуге, когда можно лететь по прямой и в каждый конкретный момент компенсировать скольжение?
Вопрос - если при движении самолета на базу по картинке, предствленной smalltim, в середине пути боковой ветер сместит самолет в сторону, куда он полетит? на базу, или развернется перпендикулярно базе и будет пытаться занять положение на ранее проложенной линии?

smalltim
AlexSneg:

А если хочется именно по нарисованной, тогда саму промежуточную точку надо тащить перед носом самолета

Так и сделано.

jusupoff:

полет на базу по кратчайшему пути

Полет на базу по кратчайшему пути - отрезок прямой линии. По ней и летит Зеленый.

jusupoff:

И при существенном боковом ветре самолет летит по прямой на базу (курс по GPS соответсвует направлению в точку старта), но нос самолета может быть повернут градусов на 15 в сторону от базы, т.е. летит с компенсациеЙ скольжения и редактирует курс непосредственно в полете.

Так действовал старый АП.
Алгоритм Зеленого в грубых деталях точно такой же, и по доворачиванию носа из-за ветра, и т.д., только летит он не на базу, а в упреждающую точку.

KBV
smalltim:

в упреждающую точку

Я думал он летит по старому алгоритму, но в промежуточную точку. А он упреждение делает?😃

smalltim

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

KBV:

Я думал он летит по старому алгоритму

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

jusupoff:

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

В условиях идеально равномерного по силе и направлению ветра это будет прямая. В других условиях - набор дуг разной степени кривизны.

jusupoff:

Вопрос - если при движении самолета на базу по картинке, предствленной smalltim, в середине пути боковой ветер сместит самолет в сторону, куда он полетит? на базу, или развернется перпендикулярно базе и будет пытаться занять положение на ранее проложенной линии?

Полетит в точку, находящуюся на отрезке прямой впереди от самолета на расстоянии, определенном параметром “Упреждение по траектории” в Контрольной Панели.

Oliver

Тим, а можно разбавить тему про курсы и точки вопросом из хотелок? Далеко ли (глубоко ли) хотелка про ограничения ускорений в маневрах? Есть тут у меня аппаратик, 2м из потолочки. Такой няшка, беленький легонький летученький, но сцк такой нежный, чуть перетяни ему ручку и крулушки дугой, того и гляди жмянкнут… и вот как бы было неплохо, поставить ограничение на максимальную перегрузку, что бы если чо - то чтоб не ага…

smalltim

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

ubd

А как АП измеряет направление ветра? Каким образом? Ещё датчики стоят?

smalltim

Математикой. См. google wind triangle в качестве простейшего варианта например. Ну и плюс у меня помимо этого добавлено всякое.

smalltim

С датчика тока. Подумать совсем лень?

AlexSneg
smalltim:

Математикой. См. google wind triangle в качестве простейшего варианта например. Ну и плюс у меня помимо этого добавлено всякое.

Ок, верю, что у тебя все правильно вычисляется (хотя, судя по клипам и тому, что ОСД показывает, есть у меня сомнения). Но я бы на твоем месте дал возможность пользователям выбрать, лететь домой только по GPS курсу или при помощи упреждающего, вычисленного курса. И надеюсь, ты сделал защиту от дурака, когда компас устойчиво криво и разнообразно показывает что то кривое в полете. ИМХО, автовозврат должен работать просто, как топор и не использовать те датчики, без которых спокойно можно обойтись. А вот полет по точкам, тут да - желательно именно держать нужную траекторию, тут уже и компас и сложная математика в помощь.

baychi

Вот вот. Почти слово в слово вчера убеждал Тимофея, что автовозврат должен быть как можно прямее и проще. Иначе это будут лишние нервы и седые волосы. 😃

ubd

С датчика тока.

??? Мне кажется это очень приблизительно и не точно…

Вот вот. Почти слово в слово вчера убеждал Тимофея, что автовозврат должен быть как можно прямее и проще. Иначе это будут лишние нервы и седые волосы.

+1
Я хотел написать, что сильно много сложностей…

Oliver
smalltim:

Сделано. При превышении заранее заданной в КП воздушной скорости

Нет, Тим, я другое имею ввиду. Летим (во, блин, повезло) вертикально вниз, включаем АП, АП видит, что летим вниз (еще небыстро, не успели разогнаться или парашют какой), соотв. надо дернуть вверх, пока не поздно. Дергаем вверх - и получаем этот… когнитивный диссонанс. Или мы должны указать такую воздушную скорость, резко встав поперек которой мы 100% не оторвем ничего (она, очевидно, будет совсем небольшой) или все же дело не только в воздушная скорости. Хотя мне кажется, что де-та я туплю.

KBV

Включил. Светодиоды горят не так, как в документации- 4й моргает, хотя должен обозначать наличие видеосигнала (которого нет) 😃
3 и 4 местами перепутаны?

smalltim
AlexSneg:

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

АП летит по ГПС курсу и держит нужную траекторию именно по ГПС координатам. Компас в задачах навигации не участвует вообще. То есть ВООБЩЕ. Компас участвует в вычислении скорости и направлении ветра и помогает IMU. Убить навигацию неисправным компасом невозможно. Более того, убить или повесить сам АП неисправным компасом невозможно. Как только на любой из шин I2C получается затык, АП моментально заводит шину “с толкача” и переинициализирует все датчики на шине, на всё-про все пара миллисекунд.

Как только АП видит, что компас показывает лажу, а это проверяется элементарно и мониторится непрерывно, то АП отключает помощь компаса IMU.

Oliver:

Летим (во, блин, повезло) вертикально вниз, включаем АП, АП видит, что летим вниз (еще небыстро, не успели разогнаться или парашют какой), соотв. надо дернуть вверх, пока не поздно. Дергаем вверх - и получаем этот… когнитивный диссонанс.

Дык в ручном или стабилизации ставим маленькие расходы на плоскостях и радуемся. А АП говорим что максимальная воздушная скорость 40кмч и он перейдя из ручного или стаба в любой из авторежимов будет рулить модель, разогнанную тобой в ручном режиме, нежно-нежно, и одновременно всеми правдами и неправдами будет гасить скорость (тангаж подтягивать вверх, выпускать закрылки, газ в 0).

KBV:

Включил. Светодиоды горят не так, как в документации- 4й моргает, хотя должен обозначать наличие видеосигнала (которого нет)
3 и 4 местами перепутаны?

Борис, перепроверю , как я пронумеровал светодиоды, вечером и поправлю мануал. Спасибо за наводку!

AlexSneg
smalltim:

Компас в задачах навигации не участвует вообще. То есть ВООБЩЕ

А, ну тогда ОК. То есть, просто смотришь на сколько мы отклонились в сторону от желаемой траектории в каждый момент времени и даешь какой-то угол дополнительный для выхода на нее? Именно поэтому кажется, что курс гуляет, а на самом деле ты просто пытаешься выровнять по заранее намеченной траектории?

smalltim
AlexSneg:

А, ну тогда ОК. То есть, просто смотришь на сколько мы отклонились в сторону от желаемой траектории в каждый момент времени и даешь какой-то угол дополнительный для выхода на нее?

Нет, crosstrack error я хоть и считаю, но не использую. Немного по-другому, но эффект внешне как раз такой.

AlexSneg:

Именно поэтому кажется, что курс гуляет, а на самом деле ты просто пытаешься выровнять по заранее намеченной траектории?

И это, и моя (неудачная) попытка скомпенсировать лаг GPS по отдаче текущего курса более хитро, чем в старом АП. Сейчас вернул компенсацию лага курса по GPS именно такую, как была в старом АП.

vasia
smalltim:

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

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