Локализация UWB Используя IEEE 802.15.4z

В этом примере показано, как оценить местоположение единого устройства согласно стандарту IEEE® 802.15.4z™ [2], пользуясь Библиотекой Communications Toolbox™ для ZigBee® и дополнения UWB.

Обзор

Поправка [2] IEEE 802.15.4z стандарта IEEE® 802.15.4 [1] является MAC и спецификацией PHY, спроектированной для расположения и локализации с помощью крайней широкополосной коммуникации (UWB). Очень короткая импульсная длительность UWB позволяет более прекрасную гранулярность во временном интервале и поэтому более точные оценки в пространственной области.

Ключевая функциональность расположения и локализации 802.15.4z поправка включает 3 метода уровня MAC:

  • Одностороннее Двухстороннее Расположение (SS-TWR) - Одно устройство оценивает расстояние между двумя устройствами при помощи передачи системы координат в обоих направлениях беспроводной связи 802.15.4z ссылка. Этот метод продемонстрирован в UWB, Располагающемся Используя пример IEEE 802.15.4z.

  • Двустороннее Двухстороннее Расположение (DS-TWR) - Оба устройства оценивают расстояние между этими двумя устройствами при помощи передачи системы координат в обоих направлениях беспроводной связи 802.15.4z ссылка.

  • Одностороннее расположение / разница во времени прибытия (OWR/TDOA) - Помогшая с сетью локализация, посредством чего одно устройство связывается с набором синхронизируемых узлов, чтобы оценить положение устройства.

Этот пример демонстрирует метод OWR/TDOA для восходящих передач, при помощи MAC, и системы координат PHY совместимы со стандартом IEEE 802.15.4 [1] и поправка [2] IEEE 802.15.4z. Для получения дополнительной информации о генерации форм волны PHY-уровня IEEE 802.15.4z смотрите пример Генерации сигналов IEEE 802.15.4a/z HRP UWB. Для получения дополнительной информации о генерации системы координат MAC IEEE 802.15.4 смотрите IEEE 802.15.4 - Генерация Системы координат MAC и пример Декодирования.

Одностороннее расположение / разница во времени прибытия (OWR/TDOA)

Одностороннее расположение (OWR) вовлекает передачу системы координат или в восходящий канал или в нисходящее направление. В восходящем случае, устройство, которое будет периодически локализоваться широковещательные короткие сообщения, называемые миганиями. Поправка [2] IEEE 802.15.4z не предусматривает определенный формат системы координат для миганий, однако она утверждает, что мигания должны быть максимально короткими. Эти сообщения мигания получены набором узлов инфраструктуры, которые синхронизируются или через соединенную проводом магистраль или по ссылке радиосвязей UWB. В нисходящем случае синхронизируемые узлы периодически передают широковещательные сообщения с известным смещением времени.

Разница во времени прибытия (TDOA) между периодическими сообщениями помещает устройство в одну гиперболическую поверхность для каждой пары синхронизируемых узлов [3]. Пересечение всех гиперболических поверхностей (для каждой пары синхронизируемых узлов) дает оценку местоположения для устройства.

Этот пример демонстрирует восходящий случай OWR.

Настройка

Подтвердите установку Библиотеки Communications Toolbox™ для ZigBee® и дополнения UWB.

% Check if the 'Communications Toolbox Library for ZigBee and UWB' support package is installed:
commSupportPackageCheck('ZIGBEE');

Сконфигурируйте сеть

Настройте сеть с 3 синхронизируемыми узлами и 1 устройством, в 100x100 плоскость:

numNodes = 3;
deviceLoc = [50 50];  % place device at the center
nodeLoc = [40,41;
            62,83;
            87,24];
TDOA = nan(numNodes);
helperShowLocations(deviceLoc,nodeLoc);

Figure contains an axes object. The axes object contains 5 objects of type line, text. These objects represent Device, Synchronized Nodes.

Вычислите фактическое расстояние и время рейса (TOF) между узлами и устройством.

actualDistances = sqrt(sum((nodeLoc - deviceLoc).^2, 2));
c = physconst('LightSpeed'); % speed of light (m/s)
actualTOF = actualDistances/c;

SNR = 30;

Сконфигурируйте мигания

Используйте короткое (MAC IEEE 802.15.4) система координат данных как мигание.

numBlinks = 1;

% MAC layer:
payload = '00'; 
cfg = lrwpan.MACFrameConfig( ...
    FrameType='Data', ...
    SourceAddressing='Short address', ...
  SourcePANIdentifier='AB12', ...
  SourceAddress='CD77');
blinkMAC = lrwpan.MACFrameGenerator(cfg,payload);

% PHY layer:
% Ensure the Ranging field is enabled. 
% Also set the proper PSDU length.
blinkPHYConfig = lrwpanHRPConfig( ...
    Mode='HPRF', ...
    STSPacketConfiguration=1, ...
    PSDULength=length(blinkMAC), ...
    Ranging=true);
blinkPHY = lrwpanWaveformGenerator( ...
    blinkMAC, ...
    blinkPHYConfig);

% Cache preamble, to use in preamble detection. 
% Get the 1st instance out of the Nsync=PreambleDuration repetitions.
ind = lrwpanHRPFieldIndices(blinkPHYConfig); % length (start/end) of each field
blinkPreamble = blinkPHY( ...
    1:ind.SYNC(end)/blinkPHYConfig.PreambleDuration); % 1 of the Nsync repetitions

Запустите симуляцию

В цикле симуляции мигание распространяет к каждому узлу с задержкой распространения, которая определяется их отличным расстоянием. Затем каждая пара узлов вычисляет разность их времени поступления мигания. В результате положение устройства оценивается в гиперболической поверхности для каждой пары узлов. Пересечение всех поверхностей дает оценку положения для устройства. Здесь, график 2D кривых показывает точку пересечения, чтобы указать на оценку положения для устройства.

vfd = dsp.VariableFractionalDelay;
arrivalTime = zeros(1,numNodes);

plotStr = {'r--','b--','g--'};
[x, y] = deal(cell(1, 3));

for idx = 1:numBlinks
  for node = 1:numNodes
    % Transmission and reception of blink
    % Each node receives a specifically delayed version of the blink
    tof = actualTOF(node);
    samplesToDelay = tof * blinkPHYConfig.SampleRate;
    reset(vfd);
    release(vfd);
    vfd.MaximumDelay = ceil(1.1*samplesToDelay);
    delayedBlink = vfd( ...
        [blinkPHY; zeros(ceil(samplesToDelay), 1)], ...
        samplesToDelay);

    % Add white Gaussian noise
    receivedBlink = awgn(delayedBlink,SNR);

    % Node receiver detection of preamble
    preamPos = helperFindFirstHRPPreamble( ...
        receivedBlink,blinkPreamble,blinkPHYConfig);
 
    % Transmit each blink at t=0 of each period 
    arrivalTime(node) = ( ...
        preamPos - ind.SYNC(end) / ...
        blinkPHYConfig.PreambleDuration)/blinkPHYConfig.SampleRate;
  end

  % Localization: Estimate position at synchronized backbone for each pair
  % of nodes
  pairCnt = 1;
  for node1 = 1:numNodes
    for node2 = (node1+1):numNodes
      % Calculate Time Difference of Arrival (TDOA)
      TDOA(node1, node2) = arrivalTime(node1)-arrivalTime(node2);
      
      % Get hyperbolic surface for the TDOA between node1 and node2
      [x{pairCnt}, y{pairCnt}] = helperGetHyperbolicSurface( ...
          nodeLoc(node1,:), ...
          nodeLoc(node2,:), ...
          TDOA(node1,node2));

      plot(x{pairCnt},y{pairCnt},plotStr{pairCnt});
      pairCnt = pairCnt + 1;
    end
  end
  % Find intersection points between hyperbolic surfaces
  [xC,yC] = helperFindHyperbolicIntersection(x,y);
  plot(xC,yC,'rx')
  % Estimate location as the center of intersection triangle
  xO = mean(xC);
  yO = mean(yC);
  plot(xO,yO,'ro')
end
legend( ...
    'Device', ...
    'Synchronized nodes', ...
    'A-B', ...
    'A-C', ...
    'B-C', ...
    'Intersections', ...
    'Estimation', ...
    'location', ...
    'northwest')

Figure contains an axes object. The axes object contains 10 objects of type line, text. These objects represent Device, Synchronized nodes, A-B, A-C, B-C, Intersections, Estimation.

Увеличение к области оценки:

axis([deviceLoc(1) + 2e-2*[-1 1],deviceLoc(2) + 2e-2*[-1 1]])

Figure contains an axes object. The axes object contains 10 objects of type line, text. These objects represent Device, Synchronized nodes, A-B, A-C, B-C, Intersections, Estimation.

Вычислите ошибку локализации.

locError = sqrt(sum([xO yO]-deviceLoc).^2);
fprintf('Localization error = %0.3f m.\n',locError);
Localization error = 0.012 m.

Для методов локализации, которые используют оценку времени прибытия, ошибки на расстоянии оценивают, в основном, вызываются, когда время поступления не является целочисленным кратным шаг расчета. Самая большая ошибка по дальности для таких методов локализации происходит, когда время поступления длится половине шага расчета больше, чем целочисленный шаг расчета кратного. Самая маленькая ошибка по дальности происходит, когда время поступления является целочисленным шагом расчета кратного. Для более высокого импульсного режима (HRPF) частоты повторения частоты повторения импульса высокого показателя (HRP) PHY использовал в этом примере, уровень символа составляет 499,2 МГц, и количество отсчетов на символ равняется 10. Максимальная ошибка расчета расстояния 0.5×c/(499.2×10), который составляет приблизительно 3 см.

В общем случае большая полоса пропускания канала в UWB соответствует более короткой длительности символа и меньшей располагающейся ошибке, как сравнено, чтобы узкополосно передать коммуникацию. Для узкополосной коммуникации, как задано в IEEE 802.11az, полоса пропускания канала лежит в диапазоне от 20 МГц до 160 МГц. При рассмотрении максимальной ошибки по дальности для узкополосной коммуникации оценки для ошибки локализации находятся между 0 и 10 см для 160 МГц и между 0 и 75 см для 20 МГц. Для получения дополнительной информации относительно расположения с IEEE 802.11az, смотрите 802.11az Располагающий Используя Супервремя разрешения Оценки Прибытия (WLAN Toolbox) пример.

Дальнейшее исследование

Этот пример использует эти объекты и функции от Библиотеки Communications Toolbox™ для ZigBee® и дополнения UWB.

  • lrwpan.MACFrameConfig: Создайте настройку для 802.15.4 систем координат MAC

  • lrwpan.MACFrameGenerator: Сгенерируйте 802.15.4 систем координат MAC

  • lrwpanHRPConfig: настройка формы волны HRP

  • lrwpanWaveformGenerator: Создайте форму волны IEEE 802.15.4a/z HRP UWB

Эти утилиты не документированы и их API, или функциональность может измениться в будущем.

Выбранная библиография

1 - "Стандарт IEEE для Беспроводных сетей С низкой ставкой", в Станд. IEEE 802.15.4-2020 (Версия Станд. IEEE 802.15.4-2015), pp.1-800, 23 июля 2020, doi: 10.1109/IEEESTD.2020.9144691.

2 - "Стандарт IEEE для Беспроводных сетей С низкой ставкой - Поправка 1: Расширенные Крайние Широкополосные Физические уровни (UWB) (ФИЗИКА) и Связанные Располагающиеся Методы", в Станд. IEEE 802.15.4z-2020 (Поправка к Станд. IEEE 802.15.4-2020), pp.1-174, 25 августа 2020, doi: 10.1109/IEEESTD.2020.9179124.

3 - Вонг, С.; Заргэни, Р. Джессеми; Brookes, D. & Ким, B. "Пассивный элемент предназначается для локализации с помощью геометрического подхода к различию времени метода прибытия", Оборонные Научные исследования Канада Научный Отчет, DRDC RDDC 2017 R079, июнь 2017, стр 1-77