exponenta event banner

платформа

Добавить платформу в сценарий отслеживания

Синтаксис

ptfm = platform(sc)
ptfm = platform(sc,Name,Value)

Описание

ptfm = platform(sc) добавляет Platform объект, ptfm, к сценарию отслеживания, sc. Функция создает платформу со значениями свойств по умолчанию. Платформы определяются как точки или кубоиды с зависящими от сторон свойствами. Каждой платформе автоматически присваивается уникальный идентификатор, указанный в platformID области Platform объект.

ptfm = platform(sc,Name,Value) добавляет платформу с дополнительными свойствами, заданными одним или несколькими Name,Value аргументы пары. Name является именем свойства и Value - соответствующее значение. Name должно отображаться внутри отдельных кавычек (''). Можно указать несколько аргументов пары имя-значение в любом порядке как Name1,Value1,...,NameN,ValueN. Все неопределенные свойства принимают значения по умолчанию.

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

развернуть все

Сценарий отслеживания, указанный как trackingScenario объект.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Идентификатор классификации платформы указан как неотрицательное целое число. Можно определить собственную схему классификации платформ и назначить ClassID значения для платформ по схеме. Значение 0 зарезервирован для объекта неизвестного или неназначенного класса.

Пример: 5

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

Это свойство доступно только для чтения.

Текущее положение платформы, определяемое как 3-элементный вектор скаляров.

  • Когда IsEarthCentered свойство сценария имеет значение falseпозиция указана как трехэлементное декартово состояние [x, y, z] в метрах.

  • Когда IsEarthCentered свойство сценария имеет значение true, положение задается как трёхэлементное геодезическое состояние: latitude в градусах, longitude в градусах, и altitude в метрах.

Указывать положение следует только при создании стационарной платформы. Если выбрана траектория платформы, не используйте Position. Вместо этого используйте Trajectory аргумент.

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

Это свойство доступно только для чтения.

Ориентация платформы, заданная как 3-элементный вектор скаляров в градусах. Три скаляра являются [yaw, pitch, roll] углы поворота от локальной опорной рамы к раме корпуса платформы.

Необходимо только указать Orientation при создании стационарной платформы. Если вы решили указать ориентацию с течением времени, используйте Trajectory аргумент.

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

Размеры платформы и смещение начала координат, указанные как структура. Структура содержит Length, Width, Height, и OriginOffset кубоида, который аппроксимирует размеры платформы. OriginOffset - вектор положения от центра кубоида до начала координат платформы. OriginOffset выражается в системе координат платформы. Например, если начало координат платформы находится в центре задней поверхности кубовида, как показано на следующем рисунке, установите OriginOffset как [-L/2, 0, 0]. Значение по умолчанию для Dimensions - структура с нулевым значением всех полей, соответствующая точечной модели.

Поля Dimensions

ОбластиОписаниеДефолт
LengthРазмер кубоида вдоль направления x0
WidthРазмер кубоида вдоль направления y0
HeightРазмер кубоида вдоль направления z0
OriginOffsetПоложение начала координат платформы относительно центра кубовида[0 0 0 ]

Пример: struct('Length',5,'Width',2.5,'Height',3.5,'OriginOffset',[-2.5 0 0])

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

Движение платформы, указанное как kinematicTrajectory объект, a waypointTrajectory объект или geoTrajectory объект. Объект траектории определяет эволюцию во времени положения и скорости начала кадра платформы, а также ориентацию кадра платформы относительно кадра сценария.

  • Когда IsEarthCentered свойство сценария имеет значение false, вы можете использовать kinematicTrajectory или waypointTrajectory объект. По умолчанию стационарный kinematicTrajectory используется объект.

  • Когда IsEarthCentered свойство сценария имеет значение true, вы можете использовать только geoTrajectory объект. По умолчанию стационарный geoTrajectory используется объект.

Сигнатуры платформы, указанные как массив ячеек irSignature, rcsSignature, и tsSignature объекты или пустой массив ячеек. Массив ячеек содержит не более одного экземпляра для каждого типа перечисленных объектов сигнатуры. Сигнатура представляет картину отражения или излучения платформы, такую как ее радиолокационное сечение, целевая сила или интенсивность ИК-излучения.

Оценщик позы, заданный как объект оценки позы. Блок оценки позы определяет позу платформы относительно локальной координаты сценария NED. Интерфейс любого оценщика позы должен соответствовать интерфейсу insSensor. По умолчанию свойства точности оценщика позы равны нулю.

Эмиттеры, установленные на платформе, определенные как массив ячеек объектов-эмиттеров, таких как radarEmitter или sonarEmitter.

Датчики, установленные на платформе, задаются в виде матрицы элементов сенсорных объектов, таких как irSensor, fusionRadarSensor, monostaticLidarSensor, или sonarSensor.

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

развернуть все

Платформа сценариев, возвращенная как Platform объект.

Примеры

развернуть все

Создайте сценарий отслеживания и платформу по круговому пути.

scene = trackingScenario('UpdateRate',1/50);

% Create a platform
plat = platform(scene);

% Follow a circular trajectory 1 km in radius completing in 400 hundred seconds.
plat.Trajectory = waypointTrajectory('Waypoints', [0 1000 0; 1000 0 0; 0 -1000 0; -1000 0 0; 0 1000 0], ...
    'TimeOfArrival', [0; 100; 200; 300; 400]);

% Perform the simulation
while scene.advance
    p = pose(plat);
    fprintf('Time = %f ', scene.SimulationTime);
    fprintf('Position = [');
    fprintf('%f ', p.Position);
    fprintf('] Velocity = [');
    fprintf('%f ', p.Velocity);
    fprintf(']\n');
end
Time = 0.000000 
Position = [
0.000000 1000.000000 0.000000 
] Velocity = [
15.707701 -0.000493 0.000000 
]
Time = 50.000000 
Position = [
707.095476 707.100019 0.000000 
] Velocity = [
11.107152 -11.107075 0.000000 
]
Time = 100.000000 
Position = [
1000.000000 0.000000 0.000000 
] Velocity = [
0.000476 -15.707961 0.000000 
]
Time = 150.000000 
Position = [
707.115558 -707.115461 0.000000 
] Velocity = [
-11.107346 -11.107341 0.000000 
]
Time = 200.000000 
Position = [
0.000000 -1000.000000 0.000000 
] Velocity = [
-15.707963 0.000460 0.000000 
]
Time = 250.000000 
Position = [
-707.098004 -707.098102 0.000000 
] Velocity = [
-11.107069 11.107074 0.000000 
]
Time = 300.000000 
Position = [
-1000.000000 0.000000 0.000000 
] Velocity = [
-0.000476 15.707966 0.000000 
]
Time = 350.000000 
Position = [
-707.118086 707.113543 0.000000 
] Velocity = [
11.107262 11.107340 0.000000 
]
Time = 400.000000 
Position = [
-0.000000 1000.000000 0.000000 
] Velocity = [
15.708226 -0.000493 0.000000 
]

Создайте сценарий отслеживания с двумя кубовидными платформами по круговым траекториям.

sc = trackingScenario;

% Create the platform for a truck with dimension 5 x 2.5 x 3.5 (m). 
p1 = platform(sc);
p1.Dimensions = struct('Length',5,'Width',2.5,'Height',3.5,'OriginOffset',[0 0 0]);

% Specify the truck's trajectory as a circle with radius 20 meters.
p1.Trajectory = waypointTrajectory('Waypoints', [20*cos(2*pi*(0:10)'/10)...
                              20*sin(2*pi*(0:10)'/10) -1.75*ones(11,1)], ...
                              'TimeOfArrival', linspace(0,50,11)');
                    
% Create the platform for a small quadcopter with dimension .3 x .3 x .1 (m).
p2 = platform(sc);
p2.Dimensions = struct('Length',.3,'Width',.3,'Height',.1,'OriginOffset',[0 0 0]);

% The quadcopter follows the truck at 10 meteres above with small angular delay.
% Note that the negative z coordinates correspond to positive elevation.
p2.Trajectory = waypointTrajectory('Waypoints', [20*cos(2*pi*((0:10)'-.6)/10)...
                               20*sin(2*pi*((0:10)'-.6)/10) -11.80*ones(11,1)], ...
                               'TimeOfArrival', linspace(0,50,11)');

Визуализация результатов с помощью theaterPlot.

tp = theaterPlot('XLim',[-30 30],'YLim',[-30 30],'Zlim',[-12 5]);
pp1 = platformPlotter(tp,'DisplayName','truck','Marker','s');
pp2 = platformPlotter(tp,'DisplayName','quadcopter','Marker','o');

% Specify a view direction and animate.
view(-28,37);
set(gca,'Zdir','reverse');

while advance(sc)
    poses = platformPoses(sc);
    plotPlatform(pp1, poses(1).Position, p1.Dimensions, poses(1).Orientation);
    plotPlatform(pp2, poses(2).Position, p2.Dimensions, poses(2).Orientation);
end

Figure contains an axes. The axes contains 2 objects of type line. These objects represent truck, quadcopter.

См. также

Объекты

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