Объект Platform, принадлежащий отслеживанию сценария
Platform
задает объект платформы, принадлежащий сценарию отслеживания. Платформы представляют движущиеся объекты в сценарии и моделируются как точки или кубоиды с зависимыми аспектом свойствами.
Можно создать Platform
объекты с помощью platform
метод trackingScenario
.
PlatformID
— Заданный сценарием идентификатор платформы
(значение по умолчанию) | положительное целое числоЭто свойство доступно только для чтения.
Заданный сценарием идентификатор платформы в виде положительного целого числа. Сценарий автоматически присваивает PlatformID
значения на каждую платформу.
Типы данных: double
ClassID
— Идентификатор классификации платформ
(значение по умолчанию) | неотрицательное целое числоИдентификатор классификации платформ, заданный как неотрицательное целое число. Можно задать собственную систему классификации платформы и присвоить ClassID
значения на платформы согласно схеме. Значение 0
резервируется для объекта неизвестного или неприсвоенного класса.
Пример 5
Типы данных: double |
single
Position
— Текущее положение платформыЭто свойство доступно только для чтения.
Текущее положение платформы в виде вектора с 3 элементами из скаляров.
Когда IsEarthCentered
свойство сценария установлено в false
, позиция выражена как три элемента Декартово состояние [x
Y
Z
] в метрах.
Когда IsEarthCentered
свойство сценария установлено в true
, позиция выражена как три элемента геодезическое состояние: latitude
в градусах, longitude
в градусах, и altitude
в метрах.
Типы данных: double
Orientation
— Текущая ориентация платформыЭто свойство доступно только для чтения.
Текущая ориентация платформы в виде вектора с 3 элементами из скаляров в градусах. Эти три скаляра [yaw
Тангаж
Крен
] углы поворота от локальной ссылки структурируют к системе координат тела платформы.
Типы данных: double
Dimensions
— Размерности платформы и источник возмещеныstruct
Размерности платформы и источник возмещены в виде структуры. Структура содержит Length
width
высота
, и 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
возразите | geoTrajectory
объектДвижение платформы в виде любого kinematicTrajectory
объект, waypointTrajectory
объект или geoTrajectory
объект. Объект траектории задает эволюцию времени положения и скорость системы координат платформы, а также ориентацию системы координат платформы относительно системы координат сценария.
Когда IsEarthCentered
свойство сценария установлено в false
, можно использовать kinematicTrajectory
или waypointTrajectory
объект. По умолчанию, стационарный kinematicTrajectory
объект используется.
Когда IsEarthCentered
свойство сценария установлено в true
, можно только использовать geoTrajectory
объект. По умолчанию, стационарный geoTrajectory
объект используется.
Signatures
— Подписи платформыrcsSignature
irSignature
tsSignature
} (значение по умолчанию) | массив ячеек объектов подписиПодписи платформы в виде массива ячеек irSignature
, rcsSignature
, и tsSignature
объекты или массив пустой ячейки. Массив ячеек содержит самое большее только один экземпляр для каждого типа перечисленных объектов подписи. Подпись представляет шаблон отражения или эмиссии платформы, такой как ее радарное поперечное сечение, целевая сила или интенсивность IR.
PoseEstimator
— Средство оценки положения платформыinsSensor
объект (значение по умолчанию) | излагает объект средства оценкиСредство оценки положения в виде объекта средства оценки положения, такого как insSensor
. Средство оценки положения определяет положение платформы относительно локальной координаты сценария NED. Интерфейс любого средства оценки положения должен совпадать с интерфейсом insSensor
. По умолчанию свойства точности средства оценки положения обнуляются.
Emitters
— Эмиттеры смонтированы на платформеЭмиттеры, смонтированные на платформе в виде массива ячеек эмиттерных объектов, такие как radarEmitter
или sonarEmitter
.
Sensors
— Датчики смонтированы на платформеДатчики, смонтированные на платформе в виде массива ячеек объектов датчика, такие как irSensor
, fusionRadarSensor
, monostaticLidarSensor
, или sonarSensor
.
Mesh
— Сетка платформыextendedObjectMesh
объект (значение по умолчанию)Сетка платформы в виде extendedObjectMesh
объект. Объект представляет mesh как вершины и поверхности. monostaticLidarSensor
возразите использует информацию о mesh платформы, чтобы сгенерировать данные об облаке.
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
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.