Положение тела в пространстве

Доброго времени суток!
У меня возникла задача - вычислить изменение положения тела (относительно его начального положения). GPS-модуль для этого не подойдёт, т. к. устройство будет использоваться преимущественно внутри здания. Решил использовать MPU6050 (он же GY-521), но его точность… оставляет желать лучшего. Недавно присмотрел BNO055, его цена колеблется от 1.5 до 15 тыс. руб.
Посоветуйте, пожалуйста, модуль, который включает в себя как минимум гироскоп, акселерометр и магнитометр, с помощью которого можно с приличной точностью (от 1 см до 1 мм) и скоростью определить координаты тела в пространстве, и где лучше всего такие вещи покупать/заказывать.
Заранее спасибо!

мой автопилот, када включается, и то такой точности не достигает)

GPS такой точности никогда не обеспечит даже на улице

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

1 лайк

Дважды проинтегрировав линейную составляющую ускорения? (без учёта ускорения свободного падения)

Код сможешь потом выложить? Интересно.

в какой именно системе координат?

Конечно, если определюсь, какой модуль приобрести…

Декартовой?

шутку понял.
ок, аксель выдал тебе 0,5м/с^2 в течение 1 секунды, потом -0,5м/с^2 в течение 1 секунды. направление вектора движения в выбранном декартовом пространстве ты как определишь, напиши формулу как ты ее в коде напишешь.

Ну аксель же выдаёт не одно значение ускорение, а три - для каждой из осей X, Y и Z. Насколько я понимаю, эти значения не что иное, как проекции вектора ускорения на оси. Так?

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

В данном случае, начало координат - положение датчика при его включении (по крайней мере, так работало с MPU6050). Оси, опять-таки, относительно начального положения.

Я чего-то не понимаю?

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

дальше надо будет решить проблемы с начальной привязкой, тем, что аксель не мгновенно выдает значения, тем, что ты не мгновенно их получишь, не мгновенно посчитаешь, с накоплением ошибки, присущей всем ИНС.

ага. физика старших классов.

Чем Земля (её поверхность) не инерциальная система отсчёта?

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

Я такого не писАл…

Я хочу вычислить изменение положения тела, об этом я написАл в первом посте. Началом координат условно является начальное положение тела. Его абсолютные координаты мне, конечно же, не известны, да и не нужны

По-моему мы отошли от темы подходящего датчика? (но я не против узнать что-либо новое))

отрицаешь очевидное - думай дальше сам. Ждем в платном разделе после фиаско.

Хорошо. Спасибо за оказанную помощь!

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