Объект Platform, принадлежащий отслеживанию сценария
Platform
задает объект платформы, принадлежащий сценарию отслеживания. Платформы представляют движущиеся объекты в сценарии и моделируются как точки или кубоиды с зависимыми аспектом свойствами.
Можно создать объекты Platform
с помощью метода platform
trackingScenario
.
PlatformID
— Заданный сценарием идентификатор платформы1
(значение по умолчанию) | положительное целое числоЭто свойство доступно только для чтения.
Заданный сценарием идентификатор платформы, заданный как положительное целое число. Сценарий автоматически присваивает значения PlatformID
каждой платформе.
Типы данных: double
ClassID
— Идентификатор классификации платформ0
(значение по умолчанию) | неотрицательное целое числоИдентификатор классификации платформ, заданный как неотрицательное целое число. Можно задать собственную систему классификации платформы и присвоить значения ClassID
платформам согласно схеме. Значение 0
резервируется для объекта неизвестного или неприсвоенного класса.
Пример 5
Типы данных: double | single
Размерности
Размерности платформы и источник смещаютсяstruct
Размерности платформы и смещение источника, заданное как структура. Структура содержит Length
, Width
, Height
и OriginOffset
кубоида, который аппроксимирует размерности платформы. OriginOffset
является радиус-вектором от центра кубоида к источнику кадра координаты платформы. OriginOffset
выражается в системе координат платформы. Например, если источник платформы находится в центре задней поверхности кубоида как показано в следующей фигуре, то установленный OriginOffset
как [-L/2, 0, 0]
. Значение по умолчанию для Dimensions
является структурой со всеми обнуленными полями, который соответствует модели точки.
Поля Dimensions
Поля | Описание | Значение по умолчанию |
---|---|---|
Length | Размерность кубоида вдоль направления x | 0 |
Width | Размерность кубоида вдоль направления y | 0 |
Height | Размерность кубоида вдоль направления z | 0 |
OriginOffset | Положение платформы координирует источник кадра относительно центра кубоида | [0 0 0 ] |
Пример: struct('Length',5,'Width',2.5,'Height',3.5,'OriginOffset',[-2.5 0 0])
Типы данных: struct
Trajectory
— Движение платформыkinematicTrajectory
со значениями свойств по умолчанию (значение по умолчанию) | объект waypointTrajectory
Движение платформы, заданное или как объект kinematicTrajectory
или как объект waypointTrajectory
.
Движение задает эволюцию времени положения и скорость источника кадра платформы, а также ориентацию кадра платформы относительно кадра сценария.
Signatures
— Подписи платформыrcsSignature
со свойствами по умолчанию | массив ячеек объектов подписиПодписи платформы, заданные как массив ячеек irSignature
, rcsSignature
и объектов tsSignature
. Подпись представляет шаблон отражения или эмиссии платформы, такой как ее радарное поперечное сечение, целевая сила или интенсивность IR.
PoseEstimator
— Средство оценки положения платформыinsSensor
(значение по умолчанию) | излагает объект средства оценкиСредство оценки положения, заданное как объект средства оценки положения, такой как insSensor
. Средство оценки положения определяет положение платформы относительно локальной координаты сценария NED. Интерфейс любого средства оценки положения должен совпадать с интерфейсом insSensor
. По умолчанию свойства точности средства оценки положения обнуляются.
Emitters
— Эмиттеры смонтированы на платформеЭмиттеры смонтированы на платформе, заданной как массив ячеек эмиттерных объектов, такие как radarEmitter
или sonarEmitter
.
Sensors
— Датчики смонтированы на платформеДатчики смонтированы на платформе, заданной как массив ячеек объектов датчика, такие как irSensor
, radarSensor
, monostaticRadarSensor
или sonarSensor
.
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
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.