Создайте анимацию рейса из данных траектории

В этом примере показано, как создать анимацию рейса для траектории с помощью объекта FlightGear Animation.

Примечание.При запуске этого примера в продукте необходимо настроить пример с помощью установки FlightGear и разомкнуть команды GenerateRunScript, system и play. Необходимо также скопировать папку $ MATLAB/toolbox/aero/astdemos/HL20 в папку $ FLIGHTGEAR/data/Aircraft/.

Загрузка зарегистрированных данных траектории рейса

Данные рейсы траектории для этого примера хранятся в файле с разделенными запятыми значениями в формате. Используйте dlmread, чтобы считать данные из файла, начиная с строки 1 и столбца 0, пропуская информацию о заголовке.

tdata = dlmread('asthl20log.csv',',',1,0);

Создайте объект Временных рядов из данных траектории

Используйте команду MATLAB ® timeseries, чтобы создать объект временных рядов ts из данных о широте, долготе, высоте и угле Эйлера наряду с массивом временных данных в tdata. Чтобы преобразовать широту, долготу и углы Эйлера из степеней в радианы, используйте функцию convang.

ts = timeseries([convang(tdata(:,[3 2]),'deg','rad') ...
                 tdata(:,4) convang(tdata(:,5:7),'deg','rad')],tdata(:,1));

Можно создать импортированные данные из этих данных с помощью других допустимых форматов, таких как 'Array6DoF', Например:

ts = [tdata (:, 1) convang (tdata (:, [3 2]), 'deg', 'rad') tdata (:, 4)... convang (tdata (:, 5:7), 'deg', 'rad')];

и 'Array3DoF'.

ts = [tdata (:, 1) convang (tdata (:, 3), 'deg', 'rad') tdata (:, 4)... convang (tdata (:, 6), 'deg', 'rad')];

Используйте объект FlightGearAnimation для инициализации анимации рейса

Откройте объект FlightGearAnimation.

h = Aero.FlightGearAnimation;

Установите свойства объекта FlightGearAnimation для timeseries.

h.TimeseriesSourceType = 'Timeseries';
h.TimeseriesSource = ts;

Установите свойства объекта FlightGearAnimation о FlightGear

Эти свойства включают путь к папке установки, модель геометрии самолета и информацию о сети для симулятора рейса FlightGear.

h.FlightGearBaseDirectory = 'C:\Program Files\FlightGear';
h.GeometryModelName = 'HL20';
h.DestinationIpAddress = '127.0.0.1';
h.DestinationPort = '5502';

Установите необходимые начальные условия (расположение и ориентация) для симулятора рейса FlightGear.

h.AirportId = 'KSFO';
h.RunwayId = '10L';
h.InitialAltitude = 7224;
h.InitialHeading = 113;
h.OffsetDistance = 4.72;
h.OffsetAzimuth = 0;

Включите установку декораций для летного симулятора FlightGear. Требуемые декорации будут загружены во время работы симулятора. Для систем Windows ® при запуске FlightGear с включенной опцией может возникнуть сообщение об ошибке. Для получения дополнительной информации смотрите Установка дополнительного FlightGear Scenery.

h.InstallScenery = true;

Отключите шейдеры FlightGear.

h.DisableShaders = true;

Установите секунды данных анимации в секунду настенного времени.

h.TimeScaling = 5;

Используйте get (h), чтобы проверить свойства объекта FlightGearAnimation и их значения.

get(h)
           TimeseriesSource: [1x1 timeseries]
       TimeseriesSourceType: 'Timeseries'
          TimeseriesReadFcn: @TimeseriesRead
                TimeScaling: 5
            FramesPerSecond: 12
             OutputFileName: 'runfg.bat'
    FlightGearBaseDirectory: 'C:\Program Files\FlightGear'
          GeometryModelName: 'HL20'
       DestinationIpAddress: '127.0.0.1'
            DestinationPort: '5502'
                  AirportId: 'KSFO'
                   RunwayId: '10L'
            InitialAltitude: 7224
             InitialHeading: 113
             OffsetDistance: 4.7200
              OffsetAzimuth: 0
             InstallScenery: 1
             DisableShaders: 1
                     TStart: NaN
                     TFinal: NaN
               Architecture: 'Default'

Создайте скрипт запуска FlightGear Flight Simulator

Чтобы запустить FlightGear с желаемыми начальными условиями (расположение, дата, время, погода и рабочие режимы), создайте скрипт запуска с помощью команды GenerateRunScript. По умолчанию GenerateRunScript сохраняет скрипт запуска как текстовый файл с именем 'runfg.bat'.

GenerateRunScript (h)

Вам не нужно генерировать этот файл каждый раз, когда данные просматриваются. Сгенерируйте его только при изменении требуемых начальных условий или информации FlightGear.

Запустите FlightGear Flight Simulator

Чтобы запустить FlightGear из командной строки MATLAB, введите системную команду, чтобы выполнить скрипт запуска, созданный GenerateRunScript.

система ('runfg.bat &');

Совет: В особом внимании окна FlightGear нажмите клавишу V, чтобы чередовать различные виды самолета: вид кабины, вид вертолета и вид погони.

Воспроизведение Рейса анимации данных траектории

Когда FlightGear работает и работает, объект FlightGearAnimation может начать общаться с FlightGear. Чтобы отобразить рейс анимацию с помощью FlightGear, используйте команду play.

play (h)

Для отображения скриншота анимации рейса используйте команду MATLAB image.

image(imread([matlabroot filesep fullfile('toolbox','aero','astdemos','figures','astfganim01.png')],'png'));
axis off;
set(gca,'Position',[ 0 0 1 1 ]);
set(gcf,'MenuBar','none');