lookupPose

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

Описание

пример

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

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

Примеры

свернуть все

Создайте geoTrajectory со стартовым LLA в [15 15 0] и конечным LLA в [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 waypoints траектории.

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
      ⋮

Ищите Декартов waypoints траектории в системе координат 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 в метрах геодезического waypoint.

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

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

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

Каждая матрица кватерниона или вращения является вращением системы координат от системы координат локальной ссылки (NED или ENU) в waypoint к системе координат тела цели на траектории.

K является количеством SampleTimes.

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

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

K задан SamplesPerFrame свойство.

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

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

K является количеством SampleTimes.

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

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

K является количеством SampleTimes.

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

Ориентация системы координат относительно ECEF (Земля Фиксированная Земля В центре) система координат, возвращенная как K-by-1 quaternion вектор-столбец или как 3 3 K действительным массивом, в котором каждая 3х3 матрица является матрицей вращения.

Каждый кватернион или 3х3 матрица вращения являются вращением системы координат от системы координат ECEF до системы координат локальной ссылки (NED или ENU) в текущем положении траектории.

K является количеством SampleTimes.

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

Введенный в R2018b