lookupPose

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

Описание

пример

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

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 (Earth-Centered-Earth-Fixed) в метрах.

.

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

свернуть все

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

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

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

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

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

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

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

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

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

K определяется SamplesPerFrame свойство.

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

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

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

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

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

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

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

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

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

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

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

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

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

.

См. также

Введенный в R2021a