Ориентация, положение и координатное соглашение

Sensor Fusion and Tracking Toolbox™ позволяет вам отследить ориентацию, положение, положение и траекторию платформы. platform обычно относится к любому объекту, вы хотите отследить его состояние.

Ориентация

Orientation задан угловым смещением. Ориентация может быть описана в терминах вращения системы координат или точки. Во вращении точки система координат является статической и перемещения точки. Во вращении системы координат точка является статической и перемещения системы координат. Для данной оси и угла вращения, вращение точки и вращение системы координат задают эквивалентное угловое смещение, но в противоположных направлениях.

Значения по умолчанию Sensor Fusion and Tracking Toolbox, чтобы структурировать вращение.

Point Rotation and Frame Rotation

В представлении системы координат ориентация задана как вращение, которое берет родительскую систему координат к дочерней системе координат. Выбор родительских и дочерних систем координат зависит от решенной задачи. Например, когда вы управляете монтированием датчика на платформе, можно выбрать систему координат тела платформы как родительскую систему координат и выбрать систему координат монтирования датчика как дочернюю систему координат. Вращение от системы координат тела платформы до системы координат монтирования датчика задает ориентацию датчика относительно платформы.

Sensor Fame and Body Frame Illustration

Sensor Fusion and Tracking Toolbox, в основном, поддерживает NED (северо-восточная вниз) координатная система координат. Можно также использовать систему координат координаты ENU (восточный север) во многих функциях. В нескольких функциях и объектах (таких как geoTrajectory и gpsSensor), необходимо использовать ECEF (Земля Фиксированная Земля В центре) система координат и геодезические координаты широты, долготы и высоты. Для получения дополнительной информации ECEF и геодезических координат, смотрите Координатные Системы координат в Гео Траектории.

NED and ENU Frame Illustration

Структурируйте вращение

Чтобы связать одну ориентацию с другим, необходимо вращать систему координат. Таблица суммирует z-y-x соглашения вращения. Можно также использовать другие соглашения, такие как z-x-z соглашение вращения. Смотрите последовательность вращения (RS) аргумент quaternion для получения дополнительной информации об этих соглашениях.

ПеременнаяУгол ЭйлераСимволВыведите интервал (степени)
zРысканиеψ−180 ≤ ψ < 180
yТангажθ−90 ≤ θ ≤ 90
xКренϕ−180 ≤ ϕ < 180

Положительный угол поворота соответствует по часовой стрелке вращение вокруг оси при просмотре от источника вдоль положительного направления оси. Правое соглашение эквивалентно, где положительное вращение обозначается направлением, в котором завихряются пальцы на вашей правой руке, когда ваш ползунок указывает в направлении оси вращения.

Чтобы задать 3D вращение системы координат, необходимо вращаться последовательно об осях. Sensor Fusion and Tracking Toolbox использует внутренний параметр (несомая система координат) вращение, в котором, после каждого вращения, ось обновляется перед следующим вращением. Например, чтобы вращать ось с помощью z-y-x соглашения:

  1. Вращайте родительскую систему координат о z - ось, чтобы дать к новому набору осей, (x', y', z), где x - и y - оси превратились в x '-и '-оси y и z - ось остается неизменной.

    [x'y'z]=Rz(ψ)[xyz]

  2. Вращайте новый набор осей о '-оси y, давая к другому новому набору осей, (x'', y', z').

    [x''y'z']=Ry(θ)[x'y'z]

  3. Вращайте этот новый набор осей о x' '-ось, прибывающая в желаемую дочернюю систему координат, (x'', y'', z'').

    [x''y''z'']=Rx(ϕ)[x''y'z']

Three consecutive rotations

Эта последовательность вращений следует соглашению, обрисованному в общих чертах в [1]. Матрица вращения, требуемая преобразовывать вектор в родительской системе координат к вектору в дочерней системе координат для данного рыскания, тангажа и крена, вычисляется как:

R(ψ,θ,ϕ)=Rx(ϕ)Ry(θ)Rz(ψ)=[cosψcosθsinψcosθsinθcosψsinθsinϕsinψcosϕsinψsinθsinϕ+cosψcosϕcosθsinϕcosψsinθcosϕ+sinψcosϕsinψsinθsinϕ+cosψcosϕcosθcosϕ]

Для функций, что основанная на опорной раме обработка, Sensor Fusion and Tracking Toolbox обеспечивает координаты как N-by-3 матрица, где N является количеством отсчетов вовремя и этими тремя столбцами, соответствуют x - y - и z - оси. Следующее вычисление вращает родительскую систему координат к дочерней системе координат:

achild=(R(ψ,θ,ϕ)×(aparent)T)T

где родительский элемент a представляет N-by-3 матрица координат, описанных в системе координат координаты вышестоящего элемента, и дочерним элементом a является получившийся N-by-3 матрица координат, описанных в дочерней системе координат.

Sensor Fusion and Tracking Toolbox включает эффективный расчет ориентации с помощью quaternion тип данных. Чтобы создать матрицу вращения использование кватернионов, используйте rotmat функция.

Опишите гравитационный вектор в системе координат тела

В системе координат NED гравитационный вектор может быть специальным как

gNED = [0 0 9.8]; % m/s^2

Считайте систему координат тела полученной последовательным вращением 20 градусов в области рыскания, 5 градусов в области тангажа и 10 градусов в области крена от родительской системы координат NED.

yaw = 20; % degree
pitch = 5; % degree
roll = 10; % degree

Чтобы получить выражение гравитационного вектора в системе координат тела, вы сначала получаете quaternion соответствие трем последовательным Углам Эйлера.

q = quaternion([yaw pitch roll],"eulerd","zyx","frame");

Затем использование rotateframe возразите функции, можно получить координаты гравитационного вектора в системе координат тела как

gBody = rotateframe(q,gNED)
gBody = 1×3

   -0.8541    1.6953    9.6144

Альтернативно, можно получить координаты с помощью матрицы вращения. Во-первых, вы используете rotmat объектная функция quaternion получить соответствующую матрицу вращения, которая преобразовывает координаты от системы координат NED до системы координат тела.

R = rotmat(q,"frame");

Затем получите координаты гравитационного вектора в системе координат тела как

gBody2 = (R*gNED')'
gBody2 = 1×3

   -0.8541    1.6953    9.6144

Положение

Position задан как поступательное расстояние от родительской системы координат до дочерней системы координат. Например, возьмите локальную систему координат NED в качестве родительской системы координат. В системе координат NED:

  • Источник произвольно фиксируется к точке на поверхности Земли. Это делает систему координат NED local.

  • x - ось указывает на эллипсоид на север.

  • y - ось указывает на эллипсоид на восток.

  • z - ось указывает вниз по нормали к эллипсоиду (геодезическая широта, ρ).

NED Frame Illustration

Азимут и повышение

Учитывая вектор в R3:

  • Azimuth задан как угол от x - оси к ортогональной проекции вектора на xy - плоскость. Угол является положительным движением от x - оси к y - ось. Азимут дан в градусах в области значений [−180, 180).

  • Elevation задан как угол от проекции на xy - плоскость к вектору. Угол является положительным движением от xy - плоскости к z - ось. Вертикальное изменение дано в градусах в области значений [−90, 90].

Azimuth and Elevation Illustration

Положение и траектория

Чтобы задать объект в трехмерном пространстве полностью, можно объединить положение и ориентацию. Pose задан как комбинация положения и ориентации. Trajectory задает, как положение изменяется в зависимости от времени. Чтобы сгенерировать траектории основной истины в Sensor Fusion and Tracking Toolbox, используйте kinematicTrajectory или waypointTrajectory. Чтобы сгенерировать сосредоточенную Землей траекторию, используйте geoTrajectory. Чтобы симулировать движение нескольких платформ, используйте trackingScenario.

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

|

Ссылки

[1] IEEE. Стандарт для распределенной интерактивной симуляции – протоколы приложения. IEEE P1278.1/D16 Версия 18, май 2012.