Доброго времени суток!
У меня возникла задача - вычислить изменение положения тела (относительно его начального положения). GPS-модуль для этого не подойдёт, т. к. устройство будет использоваться преимущественно внутри здания. Решил использовать MPU6050 (он же GY-521), но его точность… оставляет желать лучшего. Недавно присмотрел BNO055, его цена колеблется от 1.5 до 15 тыс. руб.
Посоветуйте, пожалуйста, модуль, который включает в себя как минимум гироскоп, акселерометр и магнитометр, с помощью которого можно с приличной точностью (от 1 см до 1 мм) и скоростью определить координаты тела в пространстве, и где лучше всего такие вещи покупать/заказывать.
Заранее спасибо!
мой автопилот, када включается, и то такой точности не достигает)
GPS такой точности никогда не обеспечит даже на улице
расскажи, как ты собрался измерять величину линейного перемещения (мм и см это меры длины) с помощью этих приборов, измеряющих соответственно угловое ускорение, линейное ускорение и вектор магнитного поля?
Дважды проинтегрировав линейную составляющую ускорения? (без учёта ускорения свободного падения)
Код сможешь потом выложить? Интересно.
в какой именно системе координат?
Конечно, если определюсь, какой модуль приобрести…
Декартовой?
шутку понял.
ок, аксель выдал тебе 0,5м/с^2 в течение 1 секунды, потом -0,5м/с^2 в течение 1 секунды. направление вектора движения в выбранном декартовом пространстве ты как определишь, напиши формулу как ты ее в коде напишешь.
Ну аксель же выдаёт не одно значение ускорение, а три - для каждой из осей X, Y и Z. Насколько я понимаю, эти значения не что иное, как проекции вектора ускорения на оси. Так?
на какие оси, где начало координат? еще усложним: как ты в этих же координатах задаешь начальное положение?
В данном случае, начало координат - положение датчика при его включении (по крайней мере, так работало с MPU6050). Оси, опять-таки, относительно начального положения.
Я чего-то не понимаю?
система координат должна быть инерциальной, т.е. либо стационарной точкой за пределами отслеживаемого тела, либо связана с телом которое движется прямолинейно и равномерно, иначе можно в какой-то момент в результате вычислений получить скорость вышек скорости света в нашей вселенной. Твое тело двигается с ускорением (без ускорения его не ввести из состояния покоя), и не может быть использовано в этом качестве.
дальше надо будет решить проблемы с начальной привязкой, тем, что аксель не мгновенно выдает значения, тем, что ты не мгновенно их получишь, не мгновенно посчитаешь, с накоплением ошибки, присущей всем ИНС.
ага. физика старших классов.
Чем Земля (её поверхность) не инерциальная система отсчёта?
ты вроде не тупой, почитай, ты сам написал, что начало координат в датчике, а датчик на двигающемся хаотично предмете.
Я такого не писАл…
Я хочу вычислить изменение положения тела, об этом я написАл в первом посте. Началом координат условно является начальное положение тела. Его абсолютные координаты мне, конечно же, не известны, да и не нужны
По-моему мы отошли от темы подходящего датчика? (но я не против узнать что-либо новое))
отрицаешь очевидное - думай дальше сам. Ждем в платном разделе после фиаско.
Хорошо. Спасибо за оказанную помощь!
Не получить по причине того, что интегрирование очень не любит ошибок исходных данных, а выбранные тобой модули даже в состоянии покоя будут давать довольно большой шум. Получить изменения координат можно в очень коротком интервале времени, после сброса результат в начальное положение. Прокалибровать короче. Затем быстро будет нарастать ошибка.