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