exponenta event banner

Платформа

Объект платформы, принадлежащий сценарию отслеживания

Описание

Platform определяет объект платформы, принадлежащий сценарию отслеживания. Платформы представляют движущиеся объекты в сценарии и моделируются как точки или кубоиды с зависящими от аспектов свойствами.

Создание

Можно создавать Platform с использованием platform способ trackingScenario.

Свойства

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

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

Определяемый сценарием идентификатор платформы, указанный как положительное целое число. Сценарий автоматически присваивает PlatformID значения для каждой платформы.

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

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

Пример: 5

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

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

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

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

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

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

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

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

Типы данных: 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 объекты или пустой массив ячеек. Массив ячеек содержит не более одного экземпляра для каждого типа перечисленных объектов сигнатуры. Сигнатура представляет картину отражения или излучения платформы, такую как ее радиолокационное сечение, целевая сила или интенсивность ИК-излучения.

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

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

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

Сетка платформы, указанная как extendedObjectMesh объект. Объект представляет сеть в виде вершин и граней. monostaticLidarSensor объект использует информацию о сетке платформы для создания облачных данных.

Функции объекта

detectОбнаружение сигналов с помощью установленных на платформе датчиков
lidarDetectСообщать об обнаружении облака точек от всех лидарных датчиков на платформе
emitИзлучать сигналы от излучателей, установленных на платформе
poseПоза платформы
targetPosesЦелевые позиции и ориентации, как видно из платформы
targetMeshesЦелевые сети, видимые с платформы

Примеры

свернуть все

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

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