Здравствуйте!
Принимайте новенького, в вашем полку в какой-то мере прибыло )
Вообще, на самом деле вопрос для меня серьёзный. Долго думал, в какой раздел его задать, "алгоритмы", "механика", или сюда, однако, подозреваю, мой вопрос потянет на "по основам новичку".
Проблема у меня в следующем. На работе собираем стенд, состоящий из рефлектора антенны и облучателя, которые оператор должен позиционировать. Стенд предназначен для измерений РТХ антенн, т.е. перемещаем рефлектор-облучатель до получения наилучших характеристик, затем положение воспроизводится на изделии. В качестве устройств перемещения выбрана такая игрушка, гексапод: http://www.physikinstrumente.com/en/pro ... tnr=700800
Соответственно, требуется написать ПО для управления стендом, с использованием API, поставляемого с гексаподами. В ближайшем окружении инициаторов работ я оказался единственный с математическим образованием, поэтому выбор пал на меня. Навскидку, больших сложностей я не обнаружил, меня смущала техническая часть, т.к. с устройствами не работал, но как заявлялось, и, в принципе, как оказалось в последствии, для использования API знаний о технических нюансах потребовалось минимум. Математику, после доброго десятка лет затишья, с трудом , но начал вспоминать. После покупки железяки провалялись несколько месяцев, и, как обычно, в последние дни до окончания сроков, началось, "прочитайте наконец документацию". Проблемы пришли откуда не ждали: в документации обнаружилось, что положение верхней площадки гексапода задаётся шестью числами, смещением XYZ и "поворотами вокруг осей" на углы UVW, последовательные повороты: сначала на угол U вокруг оси ОХ, затем на V вокруг оси ОY' (в НОВОЙ системе координат), затем на W вокруг оси OZ'' в полученной системе (я подчеркнул про повороты):
Как получить матрицу поворота после операций - дело ясное, перемножить с какой-то стороны, наверное, слева, все три матрицы элементарных. Но мне её получать не нужно, у меня наоборот, задано положение новой системы координат! Например, вот как выглядят углы положения координатной системы, после последовательных поворотов на 5, 10, 15 градусов вокруг X, затем Y', затем Z'' соответственно, в CAD-системе Catia:
Углы в нижней части окна - это "пульт управления", в реальных параметрах (0; 0; 0; 7.488; 8,31; 15,983) - углы, по всей видимости, представляют собой направляющие косинусы нового положения системы координат.
Да собственно говоря, если я все сдвиги буду вручную рассчитывать - аналогично, результат будет - матрица смещения+поворота, по которым мне нужно получить XYZUVW. Если не ошибаюсь, это называется обратной задачей кинематики, решение которой нетривиально.
Тщательно поискал - не могу найти, что это за система такая. Всюду широко используются повороты через углы Эйлера, в нескольких видах, даже решения для них есть. Предположу, что и программные решения существуют. А в моём случае - что это за чудесный способ указания системы координат? Почему его, в конце концов, взяли за основу разработчики?? Может, он распространён, ну или хотя бы для него есть?
Нет ли программных решений, алгоритмов, или реализаций в каком-нибудь матлабе?
Нельзя ли эти "повороты" UYW получить в какой-либо CAD-системе?
Подскажите, если кто-нибудь знает, хотя бы в какую сторону копать, что можно изучить? Сроки сдачи ПО на стенд, как обычно - уже вчера....