MATLAB STL 3D моделирование от IMU Data - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь загрузить файл STL в MATLAB и иметь возможность манипулировать им, но не могу найти лучший способ сделать это.

Что я пытаюсь сделать, это импортировать файл STL изручной инструмент и сможете вращать трехмерное изображение, задавая ему углы поворота, тангажа и рыскания.Вся система будет включать в себя прямое считывание из IMU, который вычисляет эти углы (собирается использовать 9-осевой IMU - 9250 и надеется включить космическое движение в это, но это прогресс для другого дня), который будет влиять на функцию, которая изменяетОриентация модели из STL показывает в реальном времени, как движется тело.Важно отметить, что тело зафиксировано, поэтому никакие точки не могут двигаться относительно друг друга (что упрощает задачу).

В настоящее время я не продвинулся далеко, но смоделировал STL, фиксированный в пространстве:

model = createpde(3);
importGeometry(model,'Test_model.stl');
pdegplot(model);

Это построит файл STL.Модель состоит из определенного числа граней и вершин, которые можно построить, но я не вижу способа манипулировать ими.Я полагаю, что должен быть какой-то способ преобразовать это в трехмерную матрицу точек в x, y, z, которую я могу умножить на вектор вращения, чтобы дать новую позицию, повернутую на три угла.

Rx = rotx(psi);
Ry = roty(theta);
Rz = rotz(phi);
R = Rx*Ry*Rz;

Затем умножьте модель на это и обновите график.

Мне также понадобится способ смещения всех точек на определенные значения, чтобы иметь возможность изменять точку поворота (где находится IMU).Я полагаю, что как только я получу координаты в матрице, я могу сместить их все на определенные значения в каждом направлении x, y и z.

Может кто-нибудь помочь с этим, я искал похожие проекты, но у меня естьпока не смог найти ничего с хорошим объяснением кода.То, как я предлагаю, - это только моя идея. Если есть более простой метод, скажите, пожалуйста.Спасибо!

1 Ответ

0 голосов
/ 25 мая 2018

У меня нет прав на комментарии, поэтому это может показаться не полным ответом.

Я сделал именно этот тип разрежения в MATLAB для других исследований, но мне пришлось писать собственные анализаторы данных, как яне было никаких ящиков для инструментов, или importGeometry () не существовал в то время.STL структурирован как список треугольников, каждый из которых имеет нормаль и три вершины.Я спросил бы вас, после импорта STL, что формат данных?Массив позиций, структура или объект?Кроме того, что з / ш было использовано для этого.С форматом gmsh легче работать, поскольку он дает вам сокращенный список точек и списки соединений между ними в зависимости от того, какой симплекс содержит точки.

Если выходные данные importGeometry представляют собой структуру с полным набором данныхзатем у вас будут повторные данные, и вам необходимо (1) проанализировать структуру, (2) удалить дубликаты, (3) сложить результаты в матрицу 3 на N или N на 3, а затем обработать этот результат с помощьюматрица вращения и графики обновления.

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

...