Геометрия Стенда для Калибровки MEMS Акселерометра

от автора

Пролог

В этой заметке я бы хотел решить одну очень полезную с практической точки зрения задачу.

На 12й год работы по специальности настал тот самый первый день, когда в профессии программист-микроконтроллеров понадобилось решить задачку по стереометрии. Это задачка уровня ЕГЭ самого высшего класса: A3. То есть по классификации НАТО она котируется, как задача наивысшей сложности!

Что ж, попробуем вспомнить молодость и решить эту задачку по геометрии.

Постановка задачи

Дана вот такая трёхгранная прямоугольная пирамида

Отрезок CB параллелен оси Y. Верху прямой угол. Можно сказать, взяли коробку, циркулярной пилой отрезали угол и положили на пол. Вот и получилась эта пирамида.

найти:
1 угол OFD.

2 Проекцию OD на оси OB OC OA

3 Углы OCD OBD OAD

Эта задача взялась не из воздуха. Эта иллюстрация — не что иное, как чертёж конструктива стенда для калибровки MEMS акселерометров. Цель стенда сделать так, чтобы ускорение свободного падения (вектор g) равномерно проецировался на каждую ось в системе координат акселерометра: x` y` z`.

Обеспечивается это за счет специфического конструктива стенда. Но об этом позже.

Теоретический минимум

Что нам понадобится из фундаментальных знаний из геометрии? А вот что:

  1. Сумма всех углов в треугольнике равна 180 градусов (или pi радиан)

  2. Теорема Пифагора — в прямоугольном треугольнике сумма квадратов длин катетов (a, b) равна квадрату длины гипотенузы (с)

  3. Теорема косинусов — Для плоского треугольника со сторонами a , b , c и углом α (альфа) противолежащим стороне a , справедливо соотношение:

иллюстрация к теореме косинусов

Можно заметить, что при альфа равному 90 градусов, cos(alfa) обнуляется и теорема косинусов фактически вырождается в теорему Пифагора. Вот так…

Решение

Если честно, то я не знаю решения этой задачи. Поэтому ничего не остается как взять эту задачу штурмом. То есть находить всё подряд пока не наткнешься на решение.

Следите за руками… Для лучшего понимания фигуры можно даже распечатать эту трёхгранную прямоугольную пирамидку на плотной бумаге, продавить ребра непишущей ручкой (чтобы бумага гнулась по линии), вырезать края и склеить скотчем грани.

Фаза 1: Собрать Физическую Модель Пирамиды

Для лучшего понимания происходящего надо вырезать эту фигуру из плотной бумаги.

получится что-то такое.

Фаза 2 Вычисление основания пирамиды

Взглянем на фигуру снизу. Тут есть всё необходимое, чтобы вычислить DH и AD. Обсчитаем тут всё что можно.

Рассмотрев треугольник BHC по теореме косинусов мы находим отрезок BH. Рассмотрим треугольник DFC. По свойствам прямоугольного треугольника находим DF

Фаза 3: Вычисление высоты пирамиды.

Рассмотрев ODF по теореме Пифагора находим OD.

Фаза 4: Вычислить опорные углы пирамиды

Вычислим угол OCD согласно свойствам прямоугольного треугольника OCD.

Фаза 5: Переход в систему координат связанную с акселерометром X` Y` Z`.

А теперь самый важный момент. То ради чего всё делалось. Допустим, что отрезок OD имеет единичную длину (вектор g). На какие компоненты вектор g будет проецироваться (расщепляться) на оси X`Y`Z` ? Надо убедиться, что коэффициенты на каждую из осей акселерометра будут идентичные.

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

Ввиду симметрии задачи на вершине этой пирамиды акселерометр всегда будет показывать по каждой координате 0.577g! Совпадение? Не думаю…

Ответы

Итак, просуммируем разведданные… Длины отрезков выражены в единицах e. Где e — это длинна ребра пирамиды. e — это то ребро, которое не касается земли. Те что касаются земли они подлиннее.

Точки

Вот координаты всех ключевых точек для данной фигуры. Вычисления произведены из расчета, что длина грани пирамиды равна единице (e=1).

Отрезки трёхгранной пирамиды:

Ниже приведены основные отрезки данной пирамиды.

Отрезок

общий вид

численное решение

1

BH

e*sqrt(3)/3

e*0.86602…

2

DC

e/sqrt(3)

e*0.57735

3

DB

e/sqrt(3)

e*0.57735

4

DA

e/sqrt(3)

e*0.57735

5*

DF

e/(2*sqrt(3))

e*0.2886751

6*

OD

e/sqrt(6)

e*0.4082482905

7

AC=CA

e*sqrt(2)

e*1.414213562

8

CB=BC

e*sqrt(2)

e*1.414213562

9

AB=BA

e*sqrt(2)

e*1.414213562

10

OA

e

e

11

OC

e

e

12

OB

e

e

Углы трёхгранной пирамиды:

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

Угол

формула

Градусы

1

OFD

acos(1/sqrt(3))

54.73561032…..

2

OCD

acos(sqrt(2/3))

35.26438968……

3

AOC

90

4

COB

90

5

AOB

90

6

BAC

60

7

ACB

60

8

ABC

60

9

HBC

30

10

GCB

30

Практическая часть

А вот так этот агрегат выглядит в натуре. Наклон относительно плоскости стола — это угол OFD 54 градуса.

вот так выглядит стенд калибровки акселерометров в натуре (раскоряка)

вот так выглядит стенд калибровки акселерометров в натуре (раскоряка)

Идея самой калибровки в следующем:

1—Пристегнуть электронную плату с акселерометром в ячейку №1 красной скрепой
2—Обмерять вектор ускорения A1 = (A1x,A1y,A1z),
3—Вмонтировать электронную плату с акселерометром в ячейку №2
4—Обмерять вектор ускорения A2 = (A2x,A2y,A2z)
5—Что-то посчитать… Это вообще отдельная история. Пока положим, что это мы получаем с помощью волшебной палочки.
6—Получить вектор смещения нуля A_offset = (Ax_o,Ay_o,Az_o)

Можно и вовсе запрограммировать робот KUKA для того, чтобы вертеть эту плату, так и сяк для калибровки.

Фактически надо сделать два измерения. В левой ориентации и в правой ориентации. Модули ускорения свободного падения на каждую ось будут одинаковые. Просто на каждой оси будет противоположный знак

Знаки ускорения

Кода калибровка выполнена, ко всем показаниям акселерометра прошивка микроконтроллера прибавляет этот вектор смещения нуля A_offset.

Откалиброванный акселерометр в обоих измерениях покажет значения по модулю 0,577g. Тут в цветных ячейках единицы g. Так как MEMS акселерометры показывают ускорение в единицах g.

Достоинства пирамидального стенда

++Благодаря таким пирамидальным стендам можно калибровать MEMS акселерометры не по 6-ти измерениям (как обычно предлагают вендоры акселерометров), а по двум измерениям. Это существенно сокращает время на расчет и загрузку калибровочных данных в условиях массового производства.

Итоги

Удалось рассчитать конструктив стенда для калибровки акселерометра. Удалось понять какие нужны углы в наклонном штативе для снятия нужных метрик.

Оказывается уроки математике в 7ом классе не прошли для меня даром.

Как видите для калибровки аксов надо проявить нешаблонное мышление.

Как оказалось, наклон основной плоскости пирамиды составляет 54.73 градуса. Что ни разу не очевидно, глядя на стенд с непривычки впервые. При этом компоненты ускорения проецируются на оси с коэффициентом 0,577.

На этом этапе нам удалось понять почему стенд калибровки акселерометров выглядит именно так, а не иначе.

Надеюсь этот текст поможет другим программистам микроконтроллеров тоже понять геометрию стендов для калибровки MEMS акселерометров.

Если найдете ошибку в вычислениях, то пишите в комментариях.

Ссылки

Вопросы:

—Сколько чисел выдает алгоритм калибровки акселерометра: 3, 6, 9, 12?

—Какова формула для вычисления калибровочных коэффициентов по двум измерениям?

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Вы применяли двухточечный способ калибровки MEMS акселерометров?

0% да0
100% нет6

Проголосовали 6 пользователей. Воздержался 1 пользователь.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Вы делали калибровку акселерометра?

14.29% да1
85.71% нет6

Проголосовали 7 пользователей. Воздержавшихся нет.

ссылка на оригинал статьи https://habr.com/ru/articles/858354/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *