exponenta event banner

lookupPose

Получить позу геодезической траектории на определенное время

Описание

пример

[position,orientation,velocity,acceleration,angularVelocity,ecef2ref] = lookupPose(traj,sampleTimes) возвращает информацию о позе траектории ППМ в указанное время выборки. Если какое-либо время выборки превышает продолжительность траектории, соответствующая информация о позе возвращается как NaN.

[___] = lookupPose(traj,sampleTimes,coordinateSystem) дополнительно позволяет указать формат position выход.

Примеры

свернуть все

Создать geoTrajectory с запуском ЛЛА при [15 15 0] и окончанием ЛЛА при [75 75 100]. Установите время полета равным десяти часам. Отбирать траекторию каждые 1000 секунд.

startLLA = [15 15 0];
endLLA = [75 75 100];
timeOfTravel = [0 3600*10];
sampleRate  = 0.001;

trajectory = geoTrajectory([startLLA;endLLA],timeOfTravel,'SampleRate',sampleRate);

Выведите ППМ LLA траектории.

positionsLLA = startLLA;
while ~isDone(trajectory)
    positionsLLA = [positionsLLA;trajectory()];  
end
positionsLLA
positionsLLA = 37×3

   15.0000   15.0000         0
   16.6667   16.6667    2.7778
   18.3333   18.3333    5.5556
   20.0000   20.0000    8.3333
   21.6667   21.6667   11.1111
   23.3333   23.3333   13.8889
   25.0000   25.0000   16.6667
   26.6667   26.6667   19.4444
   28.3333   28.3333   22.2222
   30.0000   30.0000   25.0000
      ⋮

Найдите декартовы ППМ траектории в кадре ECEF с помощью lookupPose функция.

sampleTimes = 0:1000:3600*10;
n = length(sampleTimes);
positionsCart = lookupPose(trajectory,sampleTimes,'ECEF');

Визуализация результатов в кадре ECEF.

figure()
km = 1000;
plot3(positionsCart(1,1)/km,positionsCart(1,2)/km,positionsCart(1,3)/km, 'b*');
hold on;
plot3(positionsCart(end,1)/km,positionsCart(end,2)/km,positionsCart(end,3)/km, 'bo');
plot3(positionsCart(:,1)/km,positionsCart(:,2)/km,positionsCart(:,3)/km,'b');

plot3([0 positionsCart(1,1)]/km,[0 positionsCart(1,2)]/km,[0 positionsCart(1,3)]/km,'k:');
plot3([0 positionsCart(end,1)]/km,[0 positionsCart(end,2)]/km,[0 positionsCart(end,3)]/km,'k:');
xlabel('x (km)'); ylabel('y (km)'); zlabel('z (km)');
legend('Start position','End position', 'Trajectory')

Figure contains an axes. The axes contains 5 objects of type line. These objects represent Start position, End position, Trajectory.

Входные аргументы

свернуть все

Геодезическая траектория, указанная как geoTrajectory объект.

Время выборки в секундах, указанное как вектор K-элемента неотрицательных скаляров.

Система координат для отчета о позициях, заданная как:

  • 'LLA' - Укажите положение в виде широты в градусах, долготы в градусах и высоты над WGS84 опорным эллипсоидом в метрах.

  • 'ECEF' - Положение в виде декартовых координат в координатной рамке ECEF (Земля-Центр-Земля-Фиксированная) в метрах.

.

Выходные аргументы

свернуть все

Геодезические положения в локальной системе координат привязки, возвращаемые в виде матрицы K-by-3. K - число SampleTimes.

  • Когда coordinateSystem вход указан как 'LLA'три элемента в каждом ряду представляют широту в градусах, долготу в градусах и высоту над WGS84 опорным эллипсоидом в метрах геодезического ППМ.

  • Когда coordinateSystem вход указан как 'ECEF'три элемента в каждой строке представляют декартовы координаты положения в координатной рамке ECEF (Земля-Центр-Земля-Фиксированный) в метрах.

Типы данных: double

Ориентация в локальной системе координат привязки, возвращаемая как K-by-1 quaternion вектор столбца или как 3-by-3-by-K вещественный массив, в котором каждая матрица 3 на 3 является матрицей вращения.

Каждая матрица кватерниона или вращения представляет собой поворот кадра от локального опорного кадра (NED или ENU) в точке пробега к каркасу тела цели на траектории.

K - число SampleTimes.

Типы данных: double

Скорость в локальной системе координат привязки в метрах в секунду, возвращаемая в виде матрицы M-by-3.

K определяется SamplesPerFrame собственность.

Типы данных: double

Ускорение в локальной системе координат привязки в метрах в секунду в квадрате, возвращаемое в виде матрицы M-by-3.

K - число SampleTimes.

Типы данных: double

Угловая скорость в локальной системе координат привязки в радианах в секунду, возвращаемая в виде K-by-3 матрицы.

K - число SampleTimes.

Типы данных: double

Ориентация опорной рамки по отношению к рамке ECEF (Earth-Centered-Earth-Fixed), возвращаемой в виде K-by-1 quaternion вектор столбца или в виде 3-by-3-by-K вещественного массива, в котором каждая матрица 3 на 3 является матрицей вращения.

Каждая матрица вращения кватерниона или 3 на 3 - это поворот кадра от кадра ECEF к локальному опорному кадру (NED или ENU) в текущем положении траектории.

K - число SampleTimes.

Типы данных: double

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

Представлен в R2021a