#geospatial #trigonometry #bearing
#геопространственный #тригонометрия #азимут
Вопрос:
У меня проблема, с которой мне нужна помощь. У меня есть 2 датчика (датчик погоды и камера), установленные под большим воздушным шаром (в основном). Датчик погоды регистрирует тангаж, крен, рыскание, высоту, курс (0-360), широту и широту. У меня также есть значения x, y, z, которые представляют расстояние смещения датчика погоды от камеры. Камера не имеет собственных INS, поэтому значения от датчика погоды отправляются на камеру. Однако, поскольку эти значения поступают от датчика погоды, который не находится в том же положении, что и камера, значения не являются точными. Мне нужно выполнить вычисления значений перед отправкой их на камеру, и именно здесь мне нужна помощь.
Для записи:
- Оба устройства обращены к передней части корабля
- X — это ось спереди назад
- Y — это ось сверху вниз
- Z — это ось слева направо
диаграмма координатных плоскостей
Я знаю формулу для получения координат для целевой точки с учетом начальной точки, азимута и расстояния. Я могу получить расстояние, используя теорему Пифагора (используя измеренные значения X и Z). Это 10.58055 » и 17.53322″ соответственно. У нас уже есть начальная точка (она поступает от датчика погоды).
Во-первых, я на правильном пути? Во-вторых, как мне правильно рассчитать азимут? Я могу использовать тригонометрию, чтобы получить угол, на который датчик погоды смещен от камеры, что, я думаю, требуется. Я также думаю, что мне нужно учитывать ориентацию датчика на камеру (т. Е., Если датчик погоды находится перед камерой, ему нужно «развернуться», чтобы добраться до камеры). Это означало бы, что если значение X отрицательное, а значение Z положительное, я бы вычел свой угол (назовем его тета) из 180. Однако это сработало бы, только если бы я направлялся на север, поэтому, я полагаю, вам нужно добавить заголовок (который пришел от датчика погоды).
Я думаю, что я близок к этому. Мне нужны более умные люди, которые дадут мне знать, правильно ли я подхожу к этому, а затем, возможно, такие мелочи, как подходящий способ обработки измерения азимута, превышающего 360 (который, я полагаю, заключается в том, чтобы просто вычесть 360).).
Комментарии:
1. Одна вещь, которую следует иметь в виду, — это то, в каких углах измеряются ваши углы. Обычными мерами для углов являются градусы, радианы и (в меньшей степени) градиенты. Проверьте документацию, чтобы увидеть, что 180 — это градусы. Что касается выше 360, используйте модуль. обычно
(calculation here) % 360
. Это ограничит «перенос» его от 0 до менее 360, как и следовало ожидать.2. Спасибо @Nuclearman. Значения, поступающие от датчика, представляют собой градусы. И спасибо за подтверждение использования mod для ограничения до 360.