Вычисление скорости(да, с погрешностями, хотя бы для начала) с показаний акселерометра в виде G

unabletoluxury
Offline
Зарегистрирован: 18.05.2018

Значит прикрутил я к Arduino Uno инерциальный измерительный модуль Polulu AltIMU 10 v4, через последовательный порт передал дефлотные значения, нарисовал графики по осям, и хочу перевести те значения в скорость(м/с), пожалуйста дайте мне правильное направления, а именно куда и как двигаться для достижения своих нужд, я понимаю что это бесмысленно пытаться делать что-то подобное, ибо погрешности, пренебрегайте этим, спасибо)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Сэр когда-нибудь слышал такое слово как "интеграл"?

unabletoluxury
Offline
Зарегистрирован: 18.05.2018

слышал и работал с ними, ток в саму суть не углублялся

unabletoluxury
Offline
Зарегистрирован: 18.05.2018

я тут наткнулся на ресурс/я в курсе что надо интегрировать, но каким образом не знаю/ http://www.chrobotics.com/library/accel-position-velocity / у меня датчик выдает значения в единице g в рамках от -16 до 16, можешь меня направить в правильное русло, ато я во всем этом уже совсем заблудился.

Logik
Offline
Зарегистрирован: 05.08.2014

Направляю. Через равные малые промежутки получайте показания и накапливайте их сумму. Она и будет скорость с точностью до коэффициентов. Но затея скорей пустая, точности значения скорости не получить, будет дрейф значения из-за систематических погрешностей.

unabletoluxury
Offline
Зарегистрирован: 18.05.2018

Delay у меня 70, и как понять сумму?

Logik
Offline
Зарегистрирован: 05.08.2014

Математика 1 класс «Слагаемые - Сумма»

unabletoluxury
Offline
Зарегистрирован: 18.05.2018

Т.е ты хочешь сказать, мне нужно суммировать накопленные значения в виде G, не представляю как из этого извлечь скорость в м/c

unabletoluxury
Offline
Зарегистрирован: 18.05.2018

А есть у тебя пример подобной реализации?

Logik
Offline
Зарегистрирован: 05.08.2014

//не представляю как из этого извлечь скорость в м/c

Я ж писал "с точностью до коэффициентов". Накопленая сумма будет пропорциональна скорости. А для м/с нужно коэффициент пропорциональности  посчитать.

unabletoluxury
Offline
Зарегистрирован: 18.05.2018

Имеется ли формула для этого подсчета?

nik182
Offline
Зарегистрирован: 04.05.2015

Да имеется. В datasheet на ваш акселерометр. Называется чувствительность. Вольты пересчитываются в ускорение. Ускорение в скорость. Если единицы измерения не попутать, то получится.

unabletoluxury
Offline
Зарегистрирован: 18.05.2018

Спасибо, сейчас попробую)

unabletoluxury
Offline
Зарегистрирован: 18.05.2018

Что-то я не нашел ничего подобного,

https://www.pololu.com/file/0J703/LSM303D.pdf

nik182
Offline
Зарегистрирован: 04.05.2015

У вас i2c интерфейс. Выдает не вольты а оцифрованное значение. Таблица 3, LA_So. В зависимости от установки диапазона выдает мили g на один разряд. Множите полученную цифру на этот коэффициент, получаете ускорение. В мили 9.8 м/с/с. 

unabletoluxury
Offline
Зарегистрирован: 18.05.2018

полученное значение на 9,8 м/c/c ?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Молодой человек. Над вами глумятся и совершенно справедливо.

Вы хоте получить "формулу" уравнения движения.

В общем случае - это сложная математическая задача с применением методов статистики, дифференциального исчисления, матриц, тригонометрии и еще черт-его-знает чего.

На сайте вашего "полулу" есть много программ для разных сред исполнения. В сети есть много вариантов для полетных контроллеров квадрокоптеров. В двух словах не рассказать об уравнениях движения твердого тела, центре скоростей, фильтре Калмана и т.д. и т.п.

--------

В очень ограниченном случае, если тело сохраняет ориентацию, то есть не поворачивается, можно просто интегрировать компоненты ускорения. В этом случае можно полагать неподвижные и подвижные орты совпадающими. Без фильтрации по априорной информации  (типа фильтра Калмана) будет накапливаться ошибка. Ее можно "сбросить" кнопкой, указывающей что тело в "покое".

Численное интегрирование гуглите по названию. В "детском" случае такого грубого упрощения, можно интегрировать даже "прямоугольниками", хотя лучше - трапециями, вычислений на одно сложение больше. ;)

unabletoluxury
Offline
Зарегистрирован: 18.05.2018

Окей, ясно спасибо

nik182
Offline
Зарегистрирован: 04.05.2015

Почему сразу: глумятся? Как абсолютно точно сказал Влад для прямолинейного движения достаточно интегрирования и регулярного сброса в ноль в состоянии покоя.   

Logik
Offline
Зарегистрирован: 05.08.2014

wdrakula пишет:

Без фильтрации по априорной информации  (типа фильтра Калмана) будет накапливаться ошибка. 

Ошибка тут будет полюбому. Хоть с фильтром, хоть без. Сам метод интегрирования плох, он именно накапливает, даже мизерную ошибку. Потому определять скорость, а непреведи господи, координату по измереному ускорению избегают везде где можна. А если нельзя, на ПЛ например,  то ставят гироскоп размером с автомобиль.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Логик! Ты вот умный ведь, да? Эта железка, про которую ТС спрашивал - она для квадрокоптеров. В ней трехосевой гироскоп, акселерометр и магнитометр, плюс датчик давления. Верю, что ты понимаешь: если все ее  данные правильно обработать, то будет "и ванна и кофа и какава с чаем"?

То есть эта железка с обработкой даст все нужные показания для авионики: скорость векторно, углы курса тангажа и крена, скороподъемность и еще много полезного. А если добавить ГПС, то прям праздник начнется... ;)

И да, слово "интегрирование" в математике означает не только собственно интерграл по Риману, но и просто решение дифференциальных уравнений, причем как аналитически так и численно.

И да, "фильтр Калмана" это не способ фильтрации ;) ;) ;),  а метод решения задачи определения состояния динамической системы по неполным, неточным, дискретным данным, с учетом априорной информации (типа закономерностей и ограничений системы).

То есть именно он и используется в полетном контроллере квадрокоптера и справляется с точным определением скорости и координаты.

(Квадрокоптер "Почты России" - не предлагать!)