Построить трехмерную траекторию / путь моего БПЛА без GPS

У меня есть полетный контроллер Pixhawk. после полета я собираю журналы данных, передаю их скрипту Python, который дает мне данные, как показано ниже.

Построить трехмерную траекторию / путь моего БПЛА без GPS

Теперь мне просто нравится рисовать приблизительную траекторию/путь моего БПЛА во время полета в 3D-пространстве. это может быть python, matlab или что-то еще. какой метод/шаги. простой пример, который выглядит так, как я пытаюсь добиться, это ссылка на ютуб

Какими будут координаты в трехмерном пространстве одной точки по отношению к переменным xgyro,cgyro,...,xacc,xmag,....zmag и что означает каждая из них? И действительно ли это связано с компьютерным зрением?

tryman 02.04.2019 11:16

я не знаю о компьютерном зрении, но значения - это «компоненты xyz гироскопа», «компоненты xyz акселерометра» и «компоненты xyz магнитометра».

Ahmed Nawaz Khan 02.04.2019 11:26

Вы сами что-нибудь пробовали? Если да, что вы пробовали и где вы застряли? Знаете ли вы, как получить координаты, которые вы хотите построить, из предоставленной вами информации? Я имею в виду, что в определенное время из набора компонентов xyz гироскопа, компонентов xyz акселерометра, компонентов xyz магнитометра знаете ли вы, как получить координаты x, y, z, которые вы хотите построить? Если да, то напишите так. Если нет, то это, кажется, состоит из двух отдельных вопросов: 1) как получить относительное положение x, y, z из гироскопа/акселерометра/магнитометра xyz и 2) как его построить

tryman 02.04.2019 13:59

Идея состоит в том, чтобы предположить, что скорость v в конце интервала dt приблизительно равна v_x = v_x_previous + xacc * dt. Для этого вам нужен интервал dt и компоненты начальной скорости v0_x, v0_y, v0_z, которые вы не указали в своем вопросе. Затем, имея скорости на каждом шаге, можно аппроксимировать относительное положение, как x = x_prev + v_x * dt. (1/2)

tryman 02.04.2019 14:15

На самом деле это [прямая схема Эйлера](). Вы также можете использовать обратный Эйлер или среднее (т.е. x_next = x_prev + (xacc_prev+xacc_next)/2 *dt). Однако все предыдущие предложения основаны на том факте, что измеренные ускорения относятся к абсолютной системе координат. Если это относится к самому БПЛА (т. е. система xyz основана на вращении БПЛА), то вы должны учитывать координаты гироскопа аналогичным образом, чтобы сначала преобразовать значения акселерометра в абсолютную систему. (2/2)

tryman 02.04.2019 14:22

Это может быть я (поскольку это не моя область), но если вещи, которые я должен был сделать для предположений, не являются стандартной практикой, то ваш вопрос в первую очередь очень неясен. Вы бы получили больше ответов, если бы были точны и подробны в своем описании и параметрах вашей проблемы. В его нынешнем виде он кажется слишком широким с точки зрения того, что вы пытаетесь сделать (опять же, это может быть только я, если это стандартные соглашения в области БПЛА).

tryman 02.04.2019 14:25

Ну, я задал вопрос по той причине, что ничего не знаю об этом. Если бы я хотел, почему я должен спросить? Я просто знаю, что у меня есть данные, и моя работа состоит в том, чтобы определить путь моего БПЛА. для этого мне нужен рабочий процесс/руководство/шаги.

Ahmed Nawaz Khan 02.04.2019 18:54

и мы можем сделать начальную скорость / положение равным 0. данные относятся к БПЛА, а не к привязке к Земле.

Ahmed Nawaz Khan 02.04.2019 18:55

Я просто знаю 1 идею двойного интегрирования ускорения для получения позиции

Ahmed Nawaz Khan 02.04.2019 19:03
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
9
380
0

Другие вопросы по теме