Activity

Единый протокол

2 Mikele_P
все датчики 3-x осевые. Широко используется фильтр Калмана (ну про него наверно только ленивый не знает) и сейчас стал популярен альфа-бета фильтр (комплиментарный фильтр). Но это так сказать не мой путь, у меня должна быть новизна😁

Для серьезного приложения гироскопов (ДУС) должно быть не менее чем по 2 группы на ось в разных масштабах измерений с перекрытием в рабочей зоне, чтоб охватывать диапазон по-шире. И для уменьшения искожений не менее чем по два в группе в одном масштабе. Даже от двух погрешность по дрейфу падает, если не изменяет память, в 4-8 раз. (синергетический эффект)

ну вот это так сказать и пытаюсь реализовать, если дадите источники, где такое было написано, буду благодарен.

А фильтровать ИМХО лучше уже разработанным алгоритмом.(не помню как звать на вскидку. найду – отпишусь. или тут подскажут.) там идет преобразование не из углов, а из векторов.

это похоже на алгоритмы расчёта углов через кватернионы, но это не алгоритмы фильтрации, а расчёт углов.

данные этого вектора весово смешиваются с данными от 3-х осевого акселерометра – корректируют. Пробовал. Если точно измерить ДУС, то при резких скачках угловой скорости достаточно точно определяет крен и тангаж. А вот курс – “плывет” по шуму ДУСа. Еще по той же схеме туда можно (опционально) замешивать данные от 3-х осевого компаса. Тогда и курс держать будет на ура. Данные вектора легко преобразуются в углы.

а это в простом варианте и есть альфа-бетта фильтр, в сложном “какой-то” фильтр Калмана.

2RedSun
Я почитал Вашу ссылку и смотрю есть много протоколов

  • Supported Auto-Pilot Protocols
  • ArduPilot Legacy (ASCII)
  • ArduPilot Mega Binary
  • MatrixPilot (UavDevBoard)
  • AttoPilot
  • MAVlink
  • FY21AP II
  • Gluonpilot

Какой из них максимально востребованный?

Единый протокол

2Yahen, всё верно говорите насчёт bluetooth и съёма данных с гироскопа. Данная проблема решена. Я вывожу по uart, а там через xbee и меня всё устраивало до поры. Пока мне не попались приложения GCS, подал туда свои циферки, но он то их не понимает. Тут и встал вопрос о унифицированном протоколе вывода. Чтобы все понимали мои показания. Вот и спрашиваю.

2 Mikele_P

Можете сказать, что именно измеряете? По моим подсчетам – 3 цифры угловых скоростей с Гироскопа и 3 цифры с ДЛУ. (еще максимум 3 цифры с электронного компаса)

у меня на борту:
4 акселерометра, 2 гироскопа, 3 магнитометра и gps=)) Каждый ДУС, аксель имеют свою полосу пропускания и масштабные коэффициенты, характеристики. Поскольку плата будет использоваться в разных условиях, хочу посмотреть как каждый датчик будет себя вести и по прицепу избыточности уже фильтровать.

Единый протокол

Я вот и написал, что сделано всё в Simulink, тоесть 80 процентов кода, написал Matlab 😒
Поскольку не особо умею программировать, вот и спрашиваю тех кто это знает или сталкивался с этим. Под online имею ввиду вывод телеметрии на экран ноутбука в время полёта/езды/проведения экспериментов.
Насчёт ссылок, читал. Понял что для интеграции данного протокола не обязательно его как бы программировать, а достаточно header библиотеку подцепить вот здесь это написано.

Единый протокол

Добрый день. Я пишу диссертацию по теме инерциальной навигации, за счёт “сложных алгоритмов” добиваюсь чтобы показания на выходе с инерциальных mems датчиков были менее шумными и т.д. Вообщем это не суть, я просто описал чем занимаюсь, чтобы потом не было вопросов. И так результат моих двухгодичных исследований это плата stm32f4discovery на борту которой 4 инерциальных датчика и вот недавно допилил GPS. Ничего особенного, но всё это чудо спроектировано и запрограммированно в Matlab Simulink. На выходе платы по uart “стримится” 2 координаты (c gps), и 12 измерений с IMU (в будущем будет 3 угла и 2 координаты). Да это всё классно такие циферки бегут по экранчику, могу писать на карту, но хочется online и чтобы красиво. Начал хотеть красиво и параллельно искать, что так может. Вывод GCS. Но как я понял они принимают данные по какому-то протоколу. Оказался mavlink. А теперь внимание вопрос.

Из всего вышеописанного многие уже поняли, что програмить я особо не умею. Но мне нужно чтобы моя платка могла общаться с другими gcs системами. Внедрять mavlink протокол в свою плату задача для меня не посильная, сроки поджимают, а я могу потрать много времени на его реализацию. Я просто начал читать, а там стока букавок. Самое быстрое не спортивное решение это наверное, взять какой-то APM, и на него уже подавать значения с моей плата, а он уже будет это всё конвертировать в mavlink.

Как мою плату научить выдавать сигнала на понятном языке для всех gcs?