Спасибо большое,
B@R5uk, за комментарий!
А вы уверены, что акселерометр не сможет дать вам необходимую точность позиционирования?
У меня по каждой боковой грани стоит по 9DOF - это трехмерный акселометр, трехмерный магнетометр и трехмерный гироскоп. Дополнительно вниз по периметру смотрит 10 датчиков ИК ToF, которые, вместе с 6 простенькими видеокамерами эмулируют функционирование компьютерной мыши (далее я только так для простоты это и буду называть). То есть я сканирую камерой картинку, потом сканирую ее еще раз, делаю умножение через Теплицеву на вектор вычисление смещения, и через датчик расстояния на основе ИК ToF вычисляю локальную скорость под каждой гранью бруска относительно поверхности.
Отдельно замечу про магнетометры - они в зашкале, так как брусок имеет в себе источник постоянного магнитного поля. Впараллель с 9DOF стоит по еще одному трехосевому магнетометру до 0.3Теслы, то есть их тоже 4 штуки, они не в зашкале, но по ним я все равно не могу получить направление магнитного поля Земли, поэтому эти значения сейчас просто игнорируются.
Итого, работают только акселлометры и компьютерные мыши. С 9DOF я работаю уже лет так 10, так как когда-то занимался позиционированием георадаров и их для этого использовал, то есть опыт и понимание немного имеется, но не могу сказать, что я корифей в этой области.
Просто акселометр дает примерное направление вниз, медленные горизонтальные движения он просто не видит и врет безбожно. Камеры, которые эмулируют компьютерные мыши дают локально довольно хорошую точность при определении скорости, но интегрально уже за секунду набегает довольно большая ошибка в сантиметры.
Ко всему этому прикручены ультразвуковые датчики. На бруске пищалки, вокруг - слушалки. Они дают сносную точность - около сантиметра, а также подвирают во время сквозняков. Чтобы устранить зависимость скорости звука от влажности, температуры и давления, я использую переопределенную систему, когда пар измерений пищалка-слушалка существенно больше, чем надо и наименьшими квадратами решаю задачу позиционирования, в которой участвуют и данные с ультразвука, и с акселлометра, и с движения, получаемых с компьютерных мышей.
То есть наименьшие квадраты записываются не только на 6 степеней свободы в конкретно данный момент времени, но и на несколько шагов по времени назад, чтобы учеть скорости движения, от компьютерных мышей.
Это все мне дает в настоящий момент примерно 4-5 мм точности по позиционированию если нет ветра, и немного больше, если есть ветер, - то есть это существенно лучше, чем просто 1 см от ультразвука или один единственный угол наклона от акселометра, но все равно еще очень не точно и мне надобно точнее, и я планирую прикрутить звездное небо или еще какую физику, чтобы таки получить заветную точность позиционирования в 1мм.
В худшем случае, при повторном проходе у вас картинка перерисуется с небольшим смещением.
Вы же участвовали в том обсуждении, и очень много мне тогда посоветовали (Спасибо большое!!!!) если появляется смещение, то надо решать задачу посложнее, которая тянет за собой суперкомпьютерные мощности и огромное количество быстрой памяти, и я не придумал как это решать по простому.