ALERT! SPOILERS AHEAD!
Привет, космонавты. В этом гайде я попытаюсь доходчиво объяснить все формулы телесаенса и научу вас ими пользоваться. Все формулы здесь выдраны прямиком из билда. Собственно, приступим.
- Вычисляем смещения
Все знают, что каждый раз когда мы калибруем кристаллы генерируются новые смещения. Поэтому после каждой калибровки перед использованием телепада нужно вычислить эти смещения. Начнём со смещения направления.
Стоит, однако, заранее определить названия и значения переменных.
φ — направление (aka азимут, bearing)
θ — подъём (elevation)
P — мощность (power)
знак Δ — разница в какой-то величине.
Отправим локатор с какими-нибудь настройками, пока что это не важно. Запишем координаты локатора, это x и y с индексом 1. Тогда угол до этой точки можно вычислить вот так, а смещение найти как разницу заданного изначально угла и полученного.
atan2 это функция арктангенса которая возвращает угол до заданной точки с учётом знака аргументов. Она есть в стандартных библиотеках большинства языков программирования. Вот её определение:
Попробуем вычислить отклонение в мощности. Для этого нам потребуется дважды запустить локатор в одном и том же направлении с одинаковым подъёмом, но разной мощностью. На самом деле здесь можно было попробовать вычислить и отклонение в подъёме, но мне больше нравится формула для отклонения в мощности.
Возьмём формулу подъёма.
Если мы два раза стреляем с одним подъёмом и направлением, то можно сделать так:
Берём синус с обеих сторон уравнения и ещё поделим на 10.
И умножим уравнения на знаменатели чтобы получилось вот так:
Берём квадратный корень от обеих частей чтобы избавиться от степени и заодно умножаем множитель вне скобок на члены в скобках.
Перенесём все члены с дельта-P в одну сторону, без него в другую и вынесем дельта-P за скобки. Разделим обе части на то, что в скобках и получим наше отклонение.
Подсказка: расстояние можно померять по теореме Пифагора.
Ну и наконец найдём отклонение в подъёме. Поскольку дельта-P нам уже известно, мы с лёгкостью, но не без применения калькулятора справимся с этой задачей.
Для повышения точности можно попробовать находить погрешности в направлении и подъёме как среднее арифметическое уже полученных нами результатов, ведь мы запускали локатор два раза. Эта задача остаётся читателю как домашнее задание.
- Нахождение настроек
Найти направление на нужную точку — задача тривиальная. С помощью atan2 найдём угол до желаемой точки и прибавим к нему наше дельта-фи. Вот наше направление.
С мощностью и подъёмом дела обстоят немного сложнее. Поскольку выбор мощности у нас ограничен мы сразу с ним можем определиться. Мы хотим минимальное (для минимальных потерь электроэнергии) P, которое удовлетворяло бы равенству . Здесь D это расстояние до желаемой точки. Когда определились с мощностью просто подставляем её в уравнение для подъёма.
Ну вот и всё. Поехали!
Учёные НаноТрейзен вычислили оптимальные настройки для калибровки — Направление кратное 45 градусам и подъём 22 градуса.