Специальные цены   новые товары
Закрытая тема
Показано с 1 по 16 из 16

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

Тема раздела Новичкам в категории Cамолёты - Общий; Добрый день. Я пишу диссертацию по теме инерциальной навигации, за счёт "сложных алгоритмов" добиваюсь чтобы показания на выходе с инерциальных ...

  1. #1

    Регистрация
    14.08.2013
    Адрес
    Москва
    Возраст
    50
    Сообщений
    5

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

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

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


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

  2.  
  3. #2

    Регистрация
    18.01.2013
    Адрес
    Минск, беларусь
    Возраст
    44
    Сообщений
    841
    Записей в дневнике
    7
    Хм... Вы точно этим занимаетесь? Или только изучаете почву? Как бы гугл по фразе Cortex Mavlink дает ссылки на нужные библиотеки и примеры использования. Вобще-то это несложная типовая задача Тот же ардупилот именно так и делает. Он как раз на кортексе. И, кстати, причем тут онлайн?

  4. #3

    Регистрация
    14.08.2013
    Адрес
    Москва
    Возраст
    50
    Сообщений
    5
    Я вот и написал, что сделано всё в Simulink, тоесть 80 процентов кода, написал Matlab
    Поскольку не особо умею программировать, вот и спрашиваю тех кто это знает или сталкивался с этим. Под online имею ввиду вывод телеметрии на экран ноутбука в время полёта/езды/проведения экспериментов.
    Насчёт ссылок, читал. Понял что для интеграции данного протокола не обязательно его как бы программировать, а достаточно header библиотеку подцепить вот здесь это написано.

  5. #4

    Регистрация
    20.03.2008
    Адрес
    Кемерово
    Возраст
    42
    Сообщений
    336
    Записей в дневнике
    14
    Цитата Сообщение от utya1988 Посмотреть сообщение
    Я пишу диссертацию по теме инерциальной навигации. И так результат моих двухгодичных исследований.
    Да... Не споро... Я так понял за оставшийся год нужно сделать "прорыв"? Тяжко будет. Я примерно на вашем же месте топчусь пол года. Но да меня никто не стегает. Сам для себя делаю.

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

    Цитата Сообщение от utya1988 Посмотреть сообщение
    Да это всё классно такие циферки бегут по экранчику, могу писать на карту, но хочется online и чтобы красиво.
    AdruIMU_test. Данные получает по COM-порту. Там где-то описание текстового формата для данных визуализации.

    Цитата Сообщение от utya1988 Посмотреть сообщение
    Из всего вышеописанного многие уже поняли, что програмить я особо не умею. Но мне нужно чтобы моя платка могла общаться с другими gcs системами. Внедрять mavlink протокол в свою плату задача для меня не посильная, сроки поджимают, а я могу потрать много времени на его реализацию. Я просто начал читать, а там стока букавок.
    Да. Диссер -- не диплом. И если уж связались с микроконтроллером, то придется букафки учить, аднака... Хотя бы язык C для МК.

    Цитата Сообщение от utya1988 Посмотреть сообщение
    Самое быстрое не спортивное решение это наверное, взять какой-то APM, и на него уже подавать значения с моей плата, а он уже будет это всё конвертировать в mavlink. Как мою плату научить выдавать сигнала на понятном языке для всех gcs?
    Не знаю, даже, помогут ли вам тут... А что за зверь-то такой GCS? А то мож я уже свою поделку под нее перетачивать начну.

  6.  
  7. #5

    Регистрация
    18.01.2013
    Адрес
    Минск, беларусь
    Возраст
    44
    Сообщений
    841
    Записей в дневнике
    7
    Цитата Сообщение от utya1988 Посмотреть сообщение
    Под online имею ввиду вывод телеметрии на экран ноутбука в время полёта/езды/проведения экспериментов.
    Хм.... вариантов - куча. Последовательный интерфейс, последовательный интерфейс через USB, USB Host, Bluetooth, Wifi. Это то, что навскидку
    Я, например, в своих поделках на блютус подсел. Плата около полутора грамм весит и пару долларов. И проводов не нужно к компьютеру, голова не болит, подключай хоть к планшету хоть к буку. И дальность в несколько метров как раз. Из "ничего не нужно кроме кабеля" - USB, либо последовательный интерфейс через USB.
    Как бы с этого обычно вообще начинают знакомство с МК. Меня смущает то, что с гироскопа Вы осилили снять показания, а на компьютер передать - нет. Как-бы задачи несоизмеримые по сложности.

  8. #6

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

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

  9. #7

    Регистрация
    11.03.2004
    Адрес
    Москва
    Возраст
    46
    Сообщений
    997
    Вот здесь лежат сырцы первого Ардупилота. В файле GCS_Standard_text.pde прописан интерфейс для наземной станции. Вот здесь лежит сама наземная станция. Читайте документацию и аккуратно настраивайте - все заведется. Внимательно посмотрите, в каких единицах передаются данные.
    Удачи !

  10.  
  11. #8

    Регистрация
    20.03.2008
    Адрес
    Кемерово
    Возраст
    42
    Сообщений
    336
    Записей в дневнике
    14
    Цитата Сообщение от utya1988 Посмотреть сообщение
    4 акселерометра, 2 гироскопа, 3 магнитометра
    Одноосевых или трехосевых? По-моему для самолета маловато будет 2 гира. Осей-то три. Читал про систему фильтрации (что-то на английском языке. исследования проводили). Для серьезного приложения гироскопов (ДУС) должно быть не менее чем по 2 группы на ось в разных масштабах измерений с перекрытием в рабочей зоне, чтоб охватывать диапазон по-шире. И для уменьшения искожений не менее чем по два в группе в одном масштабе. Даже от двух погрешность по дрейфу падает, если не изменяет память, в 4-8 раз. (синергетический эффект)
    А фильтровать ИМХО лучше уже разработанным алгоритмом.(не помню как звать на вскидку. найду -- отпишусь. или тут подскажут.) там идет преобразование не из углов, а из векторов. Данные от гироскопа (угловые скорости по 3-м осям) помножаются на время между замерами и дают приблизительное смещение вектора направленного на землю. данные этого вектора весово смешиваются с данными от 3-х осевого акселерометра -- корректируют. Пробовал. Если точно измерить ДУС, то при резких скачках угловой скорости достаточно точно определяет крен и тангаж. А вот курс -- "плывет" по шуму ДУСа. Еще по той же схеме туда можно (опционально) замешивать данные от 3-х осевого компаса. Тогда и курс держать будет на ура. Данные вектора легко преобразуются в углы.
    У меня один трехосевой ГИР и ДЛУ в одном флаконе. Компаса нет. Но мне пока крен-тангажа хватает чтоб помучиться и курс, скорее всего, я буду ровнять по ГПСу.

  12. #9

    Регистрация
    14.08.2013
    Адрес
    Москва
    Возраст
    50
    Сообщений
    5
    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
    Какой из них максимально востребованный?

  13. #10

    Регистрация
    20.03.2008
    Адрес
    Кемерово
    Возраст
    42
    Сообщений
    336
    Записей в дневнике
    14
    Цитата Сообщение от utya1988 Посмотреть сообщение
    похоже на алгоритмы расчёта углов через кватернионы
    Точно так. Просто слово это умное забыл.

    Цитата Сообщение от utya1988 Посмотреть сообщение
    Широко используется фильтр Калмана и сейчас стал популярен альфа-бета фильтр
    Альфа-бета -- ИМХО туповат. Идея, конечно хорошая, но это попытка сгладить значения за счет статистики. А в нашем случае, когда оно должно жить сейчас, т.е. он-лайн -- оно не канает. Сглаживая оно угробляет точность. Да и Кальман не безгрешен. И его пробовал. Коррекция одних данных через другие -- более эффективна.
    Уж лучше делать массивы датчиков. И по данным большого массива получать более точные данные по угловым скоростям. А значит, интегрируя по времени (время между замерами считать) получать данные по углам. (хотя уж лучше получать вектора)
    Или, как вариант "совмещать ужа с ежом". У вас куча ДЛУ. В одной из книг читал, что если их разнести от ЦТ на некоторое расстояние, то можно с некоторой точностью по разности сил вычислять углы смещения. Конечно это было писано для кораблей. Но если усложнить, то и для систем вращающихся в трехмере покатит. А значит смешав их через кватернионы с данными простого ДЛУ и ГИРов можно добиться усреднения и устранения "плывунов". Хотя, думаю, идея уже не нова.

    Цитата Сообщение от utya1988 Посмотреть сообщение
    если дадите источники, где такое было написано
    Извините. Я-то диссер на эту тему не пишу... Источники, увы, не сохранил. Просто принял к сведению и держу в голове.

  14. #11
    ADF
    ADF вне форума

    Регистрация
    03.01.2004
    Адрес
    Томск
    Возраст
    35
    Сообщений
    12,573
    Записей в дневнике
    19
    Кватернионы - слово то какое хитрое. Сейчас давно не выпендриваются, говорят: матрицы, вектора...

  15. #12

    Регистрация
    18.01.2013
    Адрес
    Минск, беларусь
    Возраст
    44
    Сообщений
    841
    Записей в дневнике
    7
    Цитата Сообщение от ADF Посмотреть сообщение
    Сейчас давно не выпендриваются, говорят: матрицы, вектора...
    Хм... как бы матрицы это одно, векторы - другое а кватернион - третье.

  16. #13
    ADF
    ADF вне форума

    Регистрация
    03.01.2004
    Адрес
    Томск
    Возраст
    35
    Сообщений
    12,573
    Записей в дневнике
    19
    Все - частный случай матрицы, такшто нефик.

  17. #14

    Регистрация
    18.01.2013
    Адрес
    Минск, беларусь
    Возраст
    44
    Сообщений
    841
    Записей в дневнике
    7
    Цитата Сообщение от ADF Посмотреть сообщение
    Все - частный случай матрицы, такшто нефик
    Так можно и натуральные числа к матрицам свести. Тоже типа частный случай

  18. #15
    ADF
    ADF вне форума

    Регистрация
    03.01.2004
    Адрес
    Томск
    Возраст
    35
    Сообщений
    12,573
    Записей в дневнике
    19
    Ну совсем уж в крайности я думаю не стоит бросаться.
    А про то, о чем речь - там матричная математика. Перемножение матриц, сложение матриц, транспонирование, нормализация и т.п. И для краткости весь этот зоопарк матрицами зовут, и классы (в языках программирования) - сплошь обзывают matrix.

  19. #16

    Регистрация
    11.03.2004
    Адрес
    Москва
    Возраст
    46
    Сообщений
    997
    Цитата Сообщение от Mikele_P Посмотреть сообщение
    Или, как вариант "совмещать ужа с ежом". У вас куча ДЛУ. В одной из книг читал, что если их разнести от ЦТ на некоторое расстояние, то можно с некоторой точностью по разности сил вычислять углы смещения. Конечно это было писано для кораблей. Но если усложнить, то и для систем вращающихся в трехмере покатит.
    Подозреваю, что речь шла не про измерение углов, а про измерение угловых ускорений, из которых углы получаются двойным интегрированием. Уж лучше честный ДУС, благо их есть и незадорого :-)

    Цитата Сообщение от utya1988 Посмотреть сообщение
    2RedSun
    Я почитал Вашу ссылку и смотрю есть много протоколов
    Какой из них максимально востребованный?
    Вам оно для чего ? Если хочется получать красивые картинки из наземки, то достаточно любого, который эта самая наземка понимает. Творение ХеппиКилмора понимает почти все из Вашего списка. Родной для нее ArduPilot Legacy (ASCII). Я Вам прислал ссылку на код, который этот протокол реализует. Вполне достаточно для экспериментов...
    Сырцы, реализующие другие протоколы, придется выковыривать из других проектов. Это вполне реально, я как-то приживил к ардупилоту глюоновскую наземку. Требует аккуратности и понимания того, что делаешь.
    Последний раз редактировалось RedSun; 20.08.2013 в 02:46.

Закрытая тема

Похожие темы

  1. Протокол DSM2 в аппаратуре Spektrum
    от Boroda-msk в разделе Аппаратура радиоуправления
    Ответов: 7
    Последнее сообщение: 10.07.2013, 02:35
  2. Мощный радиомодуль XBee Pro 868 - 315 мВт встроенный протокол
    от Sony в разделе Полеты по камере, телеметрия
    Ответов: 2
    Последнее сообщение: 12.05.2013, 00:28
  3. Куплю Алюминевую рулевую трапецию Tamiya CC-01, G- комплект, единые шрусы задний мост
    от auto220 в разделе Барахолка. Автомодели - комплектующие
    Ответов: 0
    Последнее сообщение: 13.01.2013, 14:07
  4. Ответов: 3
    Последнее сообщение: 28.11.2012, 17:39

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения