платформа

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

Синтаксис

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 является соответствующим значением. Имя должно находиться внутри одинарных кавычек (' '). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN. Любые незаданные свойства берут значения по умолчанию.

Входные параметры

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

Отслеживание сценария, заданного как объект trackingScenario.

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

Пример 5

Типы данных: 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 или как объект waypointTrajectory.

Движение задает эволюцию времени положения и скорость источника кадра платформы, а также ориентацию кадра платформы относительно кадра сценария.

Подписи платформы, заданные как массив ячеек rcsSignature, irSignature или объектов tsSignature. Подпись представляет шаблон отражения или эмиссии платформы, такой как ее радарное поперечное сечение, целевая сила или эмиссия IR.

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

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

Датчики смонтированы на платформе, заданной как массив ячеек объектов датчика, такие как irSensor, radarSensor, monostaticRadarSensor или sonarSensor.

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

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

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

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

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

Примеры

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

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

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 1 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 = 50.000000 Position = [623.561925 626.638509 0.000000 ] Velocity = [11.378941 -9.434245 0.000000 ]
Time = 100.000000 Position = [1000.000000 0.000000 0.000000 ] Velocity = [1.677836 -15.100595 0.000000 ]
Time = 150.000000 Position = [724.510494 -677.241693 0.000000 ] Velocity = [-11.268303 -10.477873 0.000000 ]
Time = 200.000000 Position = [0.000000 -1000.000000 0.000000 ] Velocity = [-16.843065 -2.681970 0.000000 ]
Time = 250.000000 Position = [-926.594496 -797.673675 0.000000 ] Velocity = [-15.117346 13.826681 0.000000 ]
Time = 300.000000 Position = [-1000.000000 0.000000 0.000000 ] Velocity = [9.520786 9.672548 0.000000 ]
Time = 350.000000 Position = [-421.669352 137.708709 0.000000 ] Velocity = [10.727588 -1.999781 0.000000 ]
Time = 400.000000 Position = [-0.000000 1.000000 0.000000 ] Velocity = [6.118648 -2.380995 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

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

Объекты

Системные объекты

Введенный в R2018b