ПОСТОБРАБОТКА ПОЗИЦИОННЫХ ДАННЫХ СИСТЕМЫ ГЛОБАЛЬНОЙ СПУТНИКОВОЙ НАВИГАЦИИ (GNSS) С ИСПОЛЬЗОВАНИЕМ ЗЕРКАЛИРОВАННЫХ ДАННЫХ GNSS
POST-PROCESSING POSITION DATA OF GLOBAL SATELLITE NAVIGATION SYSTEM (GNSS) USING MIRROR GNSS DATA

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0001] Настоящее изобретение, в общем случае, относится к спутниковой навигации, включающей в себя определение позиционных данных из сигналов от спутников системы глобальной спутниковой навигации (GNSS) и, в частности, к способу и соответствующей системе для повышения точности позиционных данных, полученных из GNSS, путем создания и использования зеркалированных данных GNSS в машине навигации GNSS (например, машине позиции, скорости и времени (PVT), которая часто обеспечивается в приемниках GNSS и других инструментах спутниковой навигации).
УРОВЕНЬ ТЕХНИКИ
[0002] GNSS обозначает систему глобальной спутниковой навигации, и GNSS является стандартным обобщенным термином для систем спутниковой навигации, которые обеспечивают автономное позиционирование на поверхности Земли с глобальным покрытием. GNSS включает в себя группировки спутников, в том числе спутников глобальной системы позиционирования (GPS) США, Российской системы глобальной спутниковой навигации (GLONASS), европейской системы Galileo, китайской системы BeiDou и других региональных систем.
[0003] Использование приемников GNSS для обеспечения позиционных данных получило широкое распространение, причем приемники GNSS устанавливаются во многих беспроводных и сотовых устройствах, например, навигационных устройствах, обеспеченных на транспортных средствах, в сотовых телефонах, в разведывательном оборудовании, в сельскохозяйственном и строительном оборудовании и т.д. Приемники GNSS являются электронными устройствами, которые принимают и подвергают цифровой обработке сигналы от одной или более группировок спутников GNSS, и каждый приемник GNSS включает в себя машину обработки для обеспечения пользователя позицией, скоростью и точным временем (PVT) таким образом, что машина обработки или программный модуль может рассматриваться как машина PVT. Машина PVT приемника GNSS определяет трехмерную (3D) позицию (долоту, широту и высоту) и ошибку часов. Позиция определяется на основании его измеренного расстояния от набора спутников. Обычно приемники GNSS используют сигналы от, по меньшей мере, четырех спутников для получения позиции и часто нуждаются в прямой линии наблюдения для получения правильного захвата сигнала спутника для точного определения позиции.
[0004] Существует много приложений, где позиционные данные обеспечиваются и используются в реальном времени, и разработаны приемники GNSS, которые обеспечивают высокоточные выходные сигналы, например, сантиметровое позиционирование. Во многих из этих приложений реального времени, хотя допустимо периодически терять отслеживание спутниками и, следовательно, временно терять точное позиционирование. Потеря захвата сигнала может происходить, когда приемник GNSS перемещается в пространства с неблагоприятными условиями спутниковой навигации или в трудными условиями окружающей среды, например, зоны плотной городской застройки, пространства под мостами, и другие места, где захват сигнала одним или более спутниками может периодически теряться, когда линия наблюдения к одному или более из четырех спутников блокируется.
[0005] В других случаях, хотя, необходимо высокоточное позиционирование, но выходной сигнал не требуется в реальном времени. Например, геодезист может производить полевые работы, перемещая портативное устройство с приемником GNSS по пространству геосъемки и затем возвращаться в свой кабинет для анализа результатов своей работы, и данные позиционирования не требуется в реальном времени. В таких ситуациях, методы постобработки могут использоваться для обработки позиционных (или навигационных) данных, собранных и сгенерированных приемником GNSS для повышения их точности. В классических решениях постобработки, прямые и обратные проходы осуществляются на данных сигнала GNSS, и результаты объединяются для повышения точности позиционных данных, выведенных из сигналов GNSS. В прямом проходе (или в ходе прямая обработка), данные GNSS или наблюдения обрабатываются машиной PVT в прямом направлении, начиная с данных, связанных с начальным временем сбора данных и продолжая до конца или последнего времени сбора данных. Обратный проход (или обратная обработка) является противоположным проходом данных GNSS через машину PVT, начиная с данных, связанных с концом или последним временем сбора данных и продолжая до данных, связанных с начальным временем сбора данных.
[0006] К сожалению, некоторые машины навигации GNSS, которые могут обладать высокой точностью, даже когда приемник GNSS используется в неблагоприятных условиях, способны осуществлять только прямые проходы и не способны обрабатывать данные GNSS в обратном направлении. Поэтому сохраняется потребность в способе использования существующих машин навигации GNSS в ходе постобработки, включающей в себя обратные проходы данных GNSS для повышения точности позиционных данных.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0007] Ниже кратко описана система постобработки (и соответствующий способ постобработки), которая выполнена с возможностью обеспечения прямой обработки (FP) и модифицированной (или альтернативной) обратной обработки (BP) и объединения результатов FP и модифицированной BP для повышения точности позиционных данных, выведенных из данных GNSS. Система постобработки включает в себя машину обработки GNSS, например, машину PVT реального времени, которая обрабатывает файлы данных как потоки данных в режиме реального времени и генерирует позицию с оценками точности для каждого периода данных. Обратная обработка или BP идентифицируется как модифицированная или альтернативная BP поскольку она осуществляется на наборе первичных данных GNSS, которые зеркалируются из первичных данных GNSS, используемых в FP (или являются зеркалированными данными GNSS, сгенерированными генератором первичных зеркалированных данных GNSS, который может включать в себя одну или более функций зеркалирования). Следовательно, модифицированная BP использует те же алгоритмы, что и машина PVT реального времени, но зеркалированные данные GNSS для обеспечения обратной обработки, включают в себя позицию с оценками точности для каждого периода данных с обратным проходом. Система постобработки дополнительно включает в себя прямой/обратный объединитель, который объединяет результаты FP и модифицированной BP для обеспечения позиции (и, в ряде случаев, другие) данные с повышенной точностью.
[0008] В FP, данные обрабатывается во временном порядке, например 0, 1, 2 … 9 секунд, тогда как в BP данные обрабатывается в обратном порядке, например, 9, 8, 7 … 0 секунд. Объединение результатов FP и BP повышает точность и достоверность позиционных данных, выведенных из данные GNSS. Однако авторам изобретения понятно, что BP не поддерживается во многих машинах обработки GNSS реального времени, например, машинах PVT реального времени, в том числе, машине Blade, машине Titan и пр. Авторы изобретения полагают, что для модификации этих машин PVT реального времени, чтобы они поддерживали BP может потребоваться много месяцев разработки, включая трудные модификации базовых подмашин или процедур, но также было определено, что эти машины PVT желательно использовать в постобработке благодаря их конструкции для использования даже в неблагоприятных условиях окружающей среды при спутниковой навигации. С учетом вышеописанных проблем, авторы изобретения создали альтернативную или модифицированную BP, которая использует зеркалированные данные GNSS. Кратко, FP обрабатывает данные GNSS (ʺxʺ) с использованием набора алгоритмов F() в машине PVT (например, FP=F(x)). Традиционная BP будет обрабатывать те же данные GNSS (ʺxʺ) с использованием модифицированного алгоритма, Y() (например, BP=Y(x)). Напротив, новая модифицированная или альтернативная BP использует те же алгоритмы в машине PVT с модифицированными данными (зеркалированными данными GNSS, обеспеченными как y=Z(x), где Z представляет функцию зеркалирования) (например, модифицированная BP=F(y)).
[0009] В частности, предусмотрена система для постобработки данных системы глобальной спутниковой навигации (GNSS) для повышения точности позиционирования. Система включает в себя процессор (или процессоры) и память (или устройства хранения данных), где хранится файл данных GNSS, который может приниматься от одного или более приемников GNSS (например, одного на ровере и одного на базе). Система также включает в себя первый набор кода (или первую программную процедуру или исполнимый модуль), исполняемый процессором для обеспечения приложения позиции, скорости и времени (PVT), и приложение PVT обрабатывает файл данных GNSS с прямым проходом для генерации первого файла позиции прямого прохода. Система дополнительно включает в себя второй набор кода (или вторую программную процедуру или исполнимый модуль), исполняемый процессором для обеспечения приложения зеркального времени, модифицирующего файл данных GNSS для генерации файла зеркалированных данных GNSS. В ходе системных операций, приложение PVT обрабатывает файл зеркалированных данных GNSS с прямым проходом для генерации второго файла позиции прямого прохода (например, для обеспечения модифицированной BP данных GNSS). Дополнительно, система включает в себя третий набор кода (или третью программную процедуру или исполнимый модуль), исполняемый процессором для обеспечения приложения объединителя, объединяющего первый и второй файлы позиции прямого прохода для генерации файла точной позиции, включающего в себя позиционные данные с более высокой точностью в одном или более периодах, чем только в одном из первого и второго файлов позиции прямого прохода.
[0010] Во многих вариантах осуществления, файл данных GNSS не будет файлом от единственного приемника GNSS. Например, файл данных GNSS может включать в себя файл GNSS из базы и файл GNSS от ровера. Файл данных GNSS и файл зеркалированных данных GNSS может принимать форму файлов независимого от приемника формата обмена (RINEX), задающего формат и содержание данных GNSS в каждом файле. Во многих случаях, приложение PVT является приложением PVT только прямого направления, например, приложением PVT реального времени, например, Blade, Titan, Astra и т.п., как известно, имеющим высокую точность в неблагоприятных условиях окружающей среды для спутниковой навигации, например, зон плотной городской застройки, дорог, проходящих под мостами, и пр.
[0011] В некоторых вариантах осуществления приложения зеркального времени, файл зеркалированных данных GNSS генерируется таким образом, что он включает в себя периоды измерения файла данных GNSS в обратном порядке. Дополнительно, приложение зеркального времени может модифицировать измерения, считанные из файла данных GNSS, для формирования зеркалированных измерений в файле зеркалированных данных GNSS, включающем в себя, для каждой из периодов измерения в обратном порядке, модифицировать дальность и фазу по разности в вычисленном расстоянии и модифицировать доплеровский сдвиг по разности в вычисленной скорости.
[0012] В предпочтительных вариантах осуществления, приложение зеркального времени выполнено с возможностью генерации файла зеркалированных данных GNSS таким образом, что остатки в файле данных GNSS в каждом из периодов измерения совпадают (например, идентичны) с остатками в файле зеркалированных данных GNSS в каждом из периодов измерения в обратном порядке. Для этого, приложение зеркального времени зеркалирует данные орбиты, обеспеченные в файле зеркалированных данных GNSS, путем модификации эфемериды в файле данных GNSS таким образом, что спутник, связанный с данными в файле данных GNSS, летит назад на основании его спутниковых позиций.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0013] Фиг. 1 - функциональная блок-схема системы, включающей в себя систему постобработки, сконфигурированную с зеркальной технологией GNSS настоящего описания для улучшенного вывода позиционных данных.
[0014] Фиг. 2 - схема потока данных в ходе постобработки с использованием описанный здесь методов зеркального времени, которые могут осуществляться в ходе работы системы, показанной на фиг. 1.
[0015] Фиг. 3 - график, иллюстрирующий процесс компенсации остатков как часть генерации зеркалированных данных GNSS.
[0016] Фиг. 4 - блок-схема последовательности операций для способа зеркального времени, полезного для модификации входных первичных данных GNSS, чтобы их можно было обрабатывать машиной PVT только прямого направления.
[0017] Фиг. 5 - график, демонстрирующий данные фазы и указатель потери захвата для исходных и зеркальных данных GNSS.
[0018] Фиг. 6 - график, иллюстрирующий геометрическую задачу при определении желаемой точности позиции при зеркалировании данных измерений.
ПОДРОБНОЕ ОПИСАНИЕ
[0019] В общем случае, ниже описаны системы и способы для постобработки данных GNSS с использованием зеркалированных данных GNSS для осуществления модифицированной или альтернативной обратной обработки (BP). В системах и способах, прямая обработка (FP) осуществляется машиной PVT реального времени на наборе данных GNSS из приемника GNSS. Данные GNSS модифицируются для генерации зеркалированных данных GNSS (например, приложением зеркального времени или генератором зеркалированных данных GNSS), и затем модифицированная BP достигается посредством обработки зеркалированных данных GNSS с использованием машины PVT реального времени, используемой для осуществления FP. Затем прямой/обратный объединитель используется для объединения результатов FP и модифицированной BP для обеспечения позиционных данных с повышенной точностью.
[0020] В некоторых аналогичных вариантах осуществления, приложение зеркального времени и сгенерированные им зеркалированные данные GNSS объединяются в проходе программного обеспечения постобработки (например, комплекта постобработки кинематики) на устройстве постобработки (например, почти любом вычислительном устройстве или компьютерной системе). Авторы изобретения поняли, что было известно, что прямые/обратные проходы машины PVT реального времени с правильным объединением результатов могут обеспечивать повышенную производительность постобработки. Однако, многие из существующих (подлежащих разработке) машин PVT реального времени не поддерживают прохождение данных GNSS назад по времени. Также авторы изобретения предполагали, что модификация этих машин для поддержки обратных проходов без создания риска для функциональных возможностей PVT реального времени прямого направления не является легкой или простой задачей. Однако, также было определено, что очень желательно сохранять ту же самую базовую машину PVT во многих случаях для обработки реального времени и также для постобработки данных GNSS для повышения точности.
[0021] Авторы изобретения определили, что, если нежелательно преобразовывать машину PVT, то полезно пытаться преобразовать первичные данные GNSS. Приложение зеркального времени выполнено с возможностью построения, из первичных данных GNSS, зеркалированных данных GNSS, которые могут состоять из файлов GNSS базы, файлов GNSS ровера и/или файлов навигационных данных, где виртуальное время все еще идет прямо. Это позволяет использовать существующую машину PVT для обработки зеркалированных данных GNSS. Затем результат традиционного или прямого PVT и результат зеркалированного или обратного PVT можно разумно объединять для получения уникального решения постобработки. Хотя приложение или технология зеркального времени (MT) может использоваться совместно с почти любой машиной PVT реального времени, авторы изобретения продемонстрировали его производительность и полезность с популярной машиной ABlade.exe. Дополнительно, тестирование, осуществляемое с этой машиной PVT, показало, что использование модифицированной BP, которая использует зеркалированные данные с машиной PVT только прямого направления, значительно повышает производительность постобработки путем повторного использования существующей машины PVT реального времени. Приложение зеркального времени может быть объединено с почти любым программным инструментом постобработки, например, Mobile Mapper Office, Easy Post Process и пр., которые используют машину Blade.
[0022] Фиг. 1 демонстрирует сеть или систему 100 компонентов, полезных для осуществления постобработки данных GNSS на основе описанной здесь технологии зеркального времени. Как показано, система 100 включает в себя одну или более группировок спутников 110 GNSS, которые выводят сигналы 112, которые можно обрабатывать для получения позиции и других данных навигации или позиционирования. Например, спутники 110 могут включать в себя спутники в Глобальной системе позиционирования (GPS) США, Российской системе глобальной спутниковой навигации (GLONASS), европейской системе Galileo, китайской системе BeiDou и других региональных системах.
[0023] Система 100 дополнительно включает в себя устройство 120 (например, устройство спутникового позиционирования или навигации, например, сборщик мобильных данных GIS и т.п.), которое включает в себя приемник 124 GNSS, который может использоваться общеизвестным способом для приема сигналов спутников 112 через антенну. Приемник 124 GNSS обрабатывает сигналы 112 для генерации первичных данных GNSS (также именуемых первичными данными спутниковой навигационной системы), которые, как показано стрелкой 128, передаются или переносятся в проводном или беспроводном режиме в систему 130 постобработки для дополнительной обработки с использованием методов зеркального времени, рассмотренных ниже. Приемник 124 GNSS может принимать самые разнообразные формы для практической реализации системы 100, например, точных модулей приемника GNSS, доступных от Trimble Navigation Limited, например, модуля приемника GNSS Trimble BD940 или другого навигационного приемника, используемого в области геодезии. Примером может служить устройство 120, принимающее форму разведывательного инструмента, используемого в полевых условиях оператором для сбора набора позиционных данных, и затем оператор переносит собранные данные 128 GNSS в систему 130 постобработки для получения более точных результатов, чем доступно при обработке реального времени и поскольку результаты реального времени не требуются.
[0024] Система 130 постобработки может принимать форму почти любого компьютера, компьютерной системы или вычислительного устройства и включает в себя процессор(ы) 132, который управляет устройствами 134 ввода/вывода (I/O) и памятью 140 (или устройствами хранения данных) системы 130. Устройства 134 I/O могут включать в себя клавиатуру, сенсорный экран, сенсорную панель, мышь, программное/аппаратное обеспечение распознавания речи, монитор и пр., позволяющие оператору просматривать данные и обеспечивать ввод (например, для инициирования постобработки и для выбора данных 128 GNSS для обработки). Устройства 134 I/O дополнительно включают в себя компоненты для приема в проводном или беспроводном режиме данных 128 GNSS. Процессор 132 действует для сохранения данных 128 GNSS в виде файла 150 в памяти 140. Файл 150 данных GNSS содержит первичные данные GNSS, собранные и первоначально обработанные приемником 124 GNSS, и он может принимать различные формы для практической реализации системы 130 постобработки. В одном полезном варианте осуществления, файл 150 данных GNSS принимает форму файла независимого от приемника формата обмена (RINEX). RINEX является форматом обмена данными для первичных данных спутниковой навигационной системы, что позволяет получать более точные результаты постобработки данных в файле 150. Первоначально собранные данные 128 от приемника GNSS можно выражать в разных форматах (например, RINEX, Ashtech G-файл, Trimble T0x файл, uBlox и т.д.), и можно использовать приложение 142 зеркального времени или другую процедуру (не показана) для преобразования данных 128 GNSS в общий формат (например, RINEX и т.п.) до сохранения в качестве файла 150 данных GNSS. Файл 150 данных GNSS может включать в себя весь или поднабор выходного сигнала приемника 124, включающего в себя позицию, скорость и время и также ряд измерений из ряда измерений и корректировок, используемых для вычисления этих величин или сгенерированных (или принятых) приемником 124 GNSS. Файл 150 данных GNSS также может включать в себя промежуточные измерения, полученные приемником 124 GNSS.
[0025] Процессор 132 выполняет код/инструкции и/или выполняет программное обеспечение (которое может храниться в памяти 140 или другом хранилище, доступном процессору 132) для обеспечения функциональных возможностей генератора 142 зеркалированных данных GNSS (или приложения зеркального времени), машины 144 PVT и объединителя 146 FP/BP. Эти функции описаны подробно ниже. Кратко, хотя генератор 142 зеркалированных данных GNSS обрабатывает файл 150 данных GNSS для модификации его содержания для создания файла 152 зеркалированных данных GNSS, который может использоваться путем ввода машиной 144 PVT для обеспечения форма модифицированной обратной обработки (BP) путем осуществления прямого прохода или прямой обработки (FP) на этом файле 152. В связи с этим, машина 144 PVT может принимать форму машины 144 высокоточной навигации в реальном времени, например, Blade, Titan, Astra и т.п., которая выполнена с возможностью только прямых проходов. Затем в ходе постобработки процессор 132 использует машину 144 PVT для обработки файла 150 данных GNSS для генерации выходного сигнала 154 FP и для обработки файла 152 зеркалированных данных GNSS для генерации выходного сигнала 156 модифицированной BP. Затем процессор 132 вызывает или запускает объединитель 146 FP/BP для объединения выходного сигнала 154 FP и выходного сигнала 156 модифицированной BP для генерации объединенного выходного сигнала 158 FP/BP, который может включать в себя позиционные данные, полученные из GNSS с более высокой точностью, чем обеспеченные выходным сигналом 154 FP, рассматриваемым самостоятельно во многих приложениях, особенно тех, где устройство 120 используется в неблагоприятных условиях окружающей среды, например, зонах плотной городской застройки и т.п. Примеры постобработки, достигаемой системой наподобие системы 130 постобработки с прикладными программами/машинами 142, 144 и 146 описаны более подробно ниже, в том числе, с пробными проходами и с примерами кода.
[0026] На фиг. 2 показана схема 200 потока данных, демонстрирующая поток данных в ходе постобработки, которая предусматривает генерацию и использование зеркалированных данных GNSS согласно настоящему описанию и, как можно видеть в ходе операций системы 130 постобработки на фиг. 1. Согласно варианту осуществления, показанному на фиг. 2, входные первичные данные GNSS (например, файл 150 данных GNSS, показанный на фиг. 1) принимает форму файла 210 GNSS ровера и файла 214 GNSS базы (которые, опять же, могут обеспечиваться как файлы RINEX или другие форматы файла, выводимые приемниками GNSS из ровингового устройства и из базовой станции). Эти два файла 210 данных GNSS, 214 обеспечиваются в качестве ввода в приложение PVT только прямого направления, которое осуществляет прямую обработку (FP) 220A и выводит файл 222 позиции прямого прохода (например, обеспечивая позиционные данные совместно с оценками точности, что может иметь место для выходного сигнала 154 FP, рассмотренного на фиг. 1).
[0027] Приложение зеркального времени (например, генератор 142, показанный на фиг. 1) также берет два файла 210 данных GNSS, 214 в качестве ввода и на 230 модифицирует данные для генерации зеркального файла 211 GNSS ровера и зеркального файла 215 GNSS базы, соответственно. Функция зеркалирования приложения 230 (и генератора 142 на фиг. 1) подробно рассмотрена ниже. Затем зеркальные файлы 211, 215 обеспечиваться в качестве ввода одному и тому же приложению PVT только прямого направления, которое используется для создания файла 222 позиции прямого прохода, и это обеспечивает форму модифицированной обратной обработки (BP) путем осуществления прямого прохода 220B на зеркалированных данных GNSS в зеркальных файлах 211, 215 для генерации второго файла 232 позиции прямого прохода (или выходного сигнала 156 модифицированной BP, как описано на фиг. 1). Эти два файла 222, 232 позиции поступают в качестве ввода в приложение объединителя позиционных данных (например, объединителя 146 FP/BP на фиг. 1), которое на 240 объединяет их для создания окончательного файла 246 точной позиции, который содержит позиционные данные более высокой точности (чем обеспечиваемая любым из файлов 222, 232, рассматриваемых самостоятельно).
[0028] Как рассмотрено выше, авторам изобретения понятно, что многие машины PVT только прямого направления включают в себя многие подмашины и сложный исходный код, что будет затруднять модификацию для осуществления обратной обработки. С учетом этого, авторы изобретения определили, что предпочтительно генерировать способ зеркального времени (и программное приложение зеркальное время (или генератор зеркалированных данных GNSS)), который позволяет модифицировать первичные данные GNSS таким образом, чтобы его можно было использовать в качестве ввода в машину PVT только прямого направления для достижения обратной обработки данных.
[0029] Способ или метод зеркального времени начинается с файла первичных данных GNSS, например, файла RINEX и переупорядочивает измерения в каждом периоде или периоде времени измерения. Например, файл RINEX1 можно использовать с периодами от 0 до 100 секунд и соответствующими измерениями (Meas1), и желательно создавать зеркальный файл RINEX2 с периодами от 100 до 200 секунд и соответствующим измерением (Meas2). Иначе говоря, зеркальное время равно 100 секунд, и это можно представить как Meas2(T=100)=Meas1(T=100); Meas2(T=101)=Meas1(T=99); …; и Meas2(T=200)=Meas1(T=0).
[0030] Это новая и интересная модификация данных GNSS, позволяющая создавать выходной сигнал BP с использованием прямого прохода через машину PVT только прямого направления. Однако, для правильной обработки машиной PVT, желательно использовать те же остатки (Res) на обратном проходе и на прямом проходе, что выражается как Res2(T=101)=Res1(T=99). Для этого, способ зеркального времени зеркалирует измерение не только из данных GNSS, но и из данных орбиты (которые используются для вычисления расстояния (Dist)) и данных коррекции (Corr). Это выражается как Res(T)=Meas(T) -Dist(T) -Corr(T).
[0031] Дополнительно, способ зеркального времени также предусматривает зеркалирование орбит. Для зеркалирования орбит, эфемерида в данных GNSS модифицируются таким образом, чтобы имитировать полет спутника, обеспечивающего данные GNSS, в обратном направлении, что можно представить как SVxyz2(T=101)=SVxyz1(T=99) … SVxyz2(T=200)=SVxyz1(T=0) (где SVxyz - позиция спутника). Кеплеровские орбиты, которые используются для GPS, GAL, BDS (не геостационарные), QZS и IRN, можно зеркалировать относительно зеркального времени, например, с использованием функции MirrorKeplerEphemeris( ), обеспеченной в коде, приведенном в приложении текста компьютерной программы, обеспеченном в конце подробного описания. Эфемериду SBAS также можно зеркалировать, например, с использованием функции MirrorSbaEphemeris( ), обеспеченной в приложении текста компьютерной программы. Что касается данных коррекции, атмосферные модели, например, Tropo (которая используется по умолчанию в машинах PVT Blade и Titan) не нуждаются ни в каких действиях для их включения в зеркалированные данные, поскольку они имеют пренебрежимо малое различие между исходными и зеркалированными данными. Что касается геостационарных орбит Glonass и BDS и ионосферной модели (Клобучара), может быть полезно обеспечивать поисковую таблицу для использования приложением зеркального времени для создания зеркалированных данных коррекции или ʺкостыляʺ или особую процедуру или подэтап, как рассмотрено ниже.
[0032] Теперь может быть полезно рассмотреть остатки для исходного и зеркалированного прохода. Остатки зависят от позиции спутника, SVxyz, причем зеркалированные эфемеридные данные обеспечиваются, например, согласно SVxyz2(T2=101)=SVxyz1(T1=99). Однако, в приложении зеркального времени, при вычислении расчетной дальности, Dist(T), позиционные данные спутника, SVxyz, используется не во время периода (например, T2=101) но, вместо этого, в некоторое время передачи, например, T2=101 - rawrangeSec(около 0,07)=100,93, что обеспечивает в этом случае SVxyz2(T2=100,93)=SVxyz1(T1=98,93). Один способ компенсации этого различия в остатках состоит в добавлении разности вычисленных расстояний (deltaDist) к данным измерений, что выражается как Meas2(T=101)=Meas1(T=99)+deltaDist(), и эта операция показана графиком 300 на фиг. 3. Однако для вычисления расстояния требуется знать позиционные данные. Эта позиция (траектория), предпочтительно, известна с точностью, лучшей 50 метров (м). Поэтому способ зеркального времени предпочтительно принимает в качестве ввода или получает данную позицию, например, в форме сообщения GGA совместно с исходным файлом RINEX. В некоторых вариантах осуществления, позиция генерируется посредством прямого прохода через машину PVT.
[0033] Фиг. 4 обеспечивает блок-схему 400 последовательности операций для способа зеркального времени, полезного для модификации набора данных GNSS для обеспечения зеркалированных данных GNSS, полезных в качестве ввода в машину PVT только прямого направления для обеспечения результата, как в случае осуществления обратного прохода. Способ 400 начинается на 405, например, с вызова приложения зеркального времени и выбора набора первичных данных GNSS для зеркалирования (например, конкретного файл RINEX или набора файлов RINEX, например, файла ровера и базы). Способ 400 продолжается на 410 с доступом к файлу данных GNSS или его приему для зеркалирования. На этапе 420 способ 400 предусматривает считывание данных измерений в файле данных GNSS. Затем, на этапе 425, находится зеркальное время, и зеркальное время может находиться вблизи середины промежутка времени (см. график 300 на фиг. 3).
[0034] Способ 400 продолжается на этапе 430, где осуществляется преобразование орбит спутников в считанный файл данных GNSS. Как рассмотрено выше, зеркалирование орбит предусматривает модификацию эфемериды таким образом, чтобы копировать полет спутника в обратном направлении по пути, заданном во входном файле данных GNSS. Примеры кода для зеркалирования орбит обеспечивается функциями MirrorKeplerEphemeris( ) и MirrorSbaEphemeris( ), которые обеспечиваются в приложении текста компьютерной программы, обеспеченном в конце подробного описания. На этапе 440, периоды исходных данных измерений обращаются.
[0035] Затем способ 400 продолжается на 450, где определяется, остались ли какие-либо периоды для обработки. Если да, осуществляется этап 460 модификации измерения для текущего периода. Модификация измерений может предусматривать следующее: (1) модификацию дальности согласно Range2=Range1+deltaDist; (2) модификацию фазы согласно Phase2=Phase1+deltaDist; (3) задание Snr2=Snr1; (4) модификацию доплеровского сдвига согласно Doppler2=-Dopper1+deltaCompVel (заметим, что аналогично данным дальности и фазы доплеровский сдвиг нуждается в некоторой коррекции, но вместо различия в вычисленном расстоянии, может использоваться разность вычисленных скоростей); (5) задание потери захвата как CummulativeLossOfLock2=CummulativeLossOfLock1; и (6) задание PolarityFlag2=PolarityFlag1.
[0036] Затем способ 400 проверяет на 450, существуют ли дополнительные периоды для обработки. Если нет, способ 400 продолжается на 470, где файл зеркалированных данных GNSS сохраняется в памяти для использования в качестве ввода в машину PVT только прямого направления. Затем способ 400 может заканчиваться на 490. В ряде случаев, совокупная потеря захвата недоступна, и присутствует только мгновенная потеря захвата (LOC). В этом случае, флаг потери захвата может задерживаться на один период в зеркалированных данных. Эту особенность процесса зеркалирования можно понять, рассматривая информацию на графике 500, показанном на фиг. 5, где изображены данные фазы для файлов исходных и зеркалированных данных GNSS.
[0037] Процессы зеркального времени были описаны выше совместно с информацией теоретических основ, полезной для реализации. В дальнейшем, большее внимание уделяется реализации принципов зеркального времени в приложении и иллюстративных инженерных задачах, решенных авторами изобретения.
[0038] Было установлено, что для правильного зеркалирования данных измерений необходимо знать позицию. Однако нет прямых указаний, с какой точностью должна быть определена эта позиция. Этот вопрос можно поставить как геометрическую задачу, проиллюстрированную на графике 600 на фиг. 6. На графике 600, точка A указывает истинную позицию приемника GNSS, точка B указывает позицию с некоторой ошибкой, точка D указывает позицию спутника в момент времени T1 (98,93 в используемых здесь примерах), и точка C указывает позицию спутника в момент времени T2 (100,93). Зеркальное время равно 100 с. В этом случае, линия B-F указывает истинную дельту расстояния (deltaDist), и линия B-E указывает дельту расстояния с некоторой ошибкой. Окончательная ошибка в данных измерений будет Err=ǀBE-BFǀ. Для нахождения максимальной возможной ошибки можно использовать длинный файл, например, один на много часов (например, 24 часа). Позиция сдвигается в XYZ={15, 15, 15} м от истинной позиции. Для всех спутников и периодов, Err=ǀBE-BFǀ вычисляется с максимальной ошибкой (MaxErr) равной 0,06 см, которой можно пренебречь.
[0039] Аналогично дальности и фазе, доплеровский сдвиг также следует компенсировать для коррекции скорости, например, согласно Doppler2=-Doppler1+deltaCompVel. С использованием того же подхода, как описано выше (сдвиг позиции {15, 15, 15}), было установлено, что максимальная ошибка составляет 0,002 Гц, которая также пренебрежимо мала и может быть опущена. В вышеприведенном примере зеркальное время брали в конце файла данных GNSS (например, Tmir=100 с), но, как рассмотрено со ссылкой на этап 425 на фиг. 4, более надежный подход может заключаться в том, чтобы брать зеркальное время в середине файла данных GNSS (например, Tmir=50 с).
[0040] При зеркалировании орбит, время орбиты может рассогласовываться с ICD. Например, можно брать орбиту GPS с Toe1=16 и зеркальным временем Tmir=50 с. В этом случае, новое время будет Toe2=50+16=66, но время Toe=66 с не согласуется поскольку время орбит GPS/GALILEO/QZSS/BDS должно быть кратно 16 с. Для Glonass, оно должно быть кратно 30 с. Существуют три подхода, которые можно использовать для разрешения этой ситуации. Первый, простейший подход, который авторы изобретения использовали в одном варианте осуществления приложения зеркального времени, состоит в том, чтобы ничего не делать. Поскольку файлы RINEX позволяют записывать Toe с разрешением в одну секунду, проблем возникать не должно.
[0041] Однако в других вариантах осуществления, можно использовать второй подход, в котором для измерений и орбит используется разное зеркальное время. Например, можно использовать Tmir=50 для данных измерений, Tmir=48 для GPS/GAL/QZS, Tmir=30 для Glonass и т.д. Это будет работать, но может приводить к менее желательным эксплуатационным показателям вследствие ошибки в зеркалированных измерениях. Ошибка имеет линейную зависимость от длины линии C-D на фиг. 6 или (равносильно) разности по времени вычисления орбит для прямых и обратных проходов (dt). Когда зеркальное время для измерений и орбит одинаково, dt=2*rawRangeInSec=0,14 с. Однако, когда время отличается, dt=2*rawRangeInSec+2*(TmirMeas - TmirOrb). В вышеприведенном примере, Tmeas=50 и Tgps=48 таким образом, что dt=4,14, то есть в тридцать раз больше (т.е. 4,14/0,14).
[0042] В других вариантах осуществления используется третий подход, в котором зеркальное время берется не в середине файла данных GNSS, а вблизи середины для согласования зеркалированного времени. В вышеприведенном примере, такое время может быть Tmir=48 с, Toe2=48+16=64. Это решает проблему только для GPS, GAL и QZS, но не для GLO и BDS. В общем случае, можно найти другое зеркальное время, которое позволит согласовать GPS, GAL, QZS и GLO, но не BDS. Спутники BDS имеют постоянное смещение 14 с по сравнению с GPS, и может быть трудно находить согласованные зеркальные времена одновременно для GPS и BDS.
[0043] Ранее было отмечено, что нет простого способа зеркалирования геостационарных орбит Glonass и BDS. На первый взгляд, может показаться удивительным сам факт проблемы, обусловленной попыткой зеркалирования орбит Glonass. Они имеют ускорение, скорость и позицию в точке Tb. Однако простого изменения знаков скоростей недостаточно для зеркалирования орбиты. Проблема состоит в том, что параметры орбиты Glonass вычисляются в инерциальной системе отсчета, которая уже включает в себя параметры вращения Земли. Для объяснения этого принципа, можно привести простой пример. Предположим, мяч бросают в том же направлении, в котором дует ветер. В попытке зеркалировать траекторию этого мяча, не удается изменить направление ветра, что затрудняет определение уравнений для зеркалирования траектории мяча.
[0044] Поэтому, для обеспечения обработки GLO и BDS GEO, авторы изобретения создали и использовали некоторые «костыли». Приложения обработки (например, Blade, Titan и пр.) с таким «костылем» должны знать, что это работает с файлом зеркалированных данных GNSS (и значением зеркального времени), и обеспечивать конкретные алгоритмы для правильной обработки. Зеркалирование для эфемериды Glonass описано в функции MirrorGloEphemeris ( ), обеспеченной в приложении текста компьютерной программы, обеспеченном в конце подробного описания. Хотя на стороне обработки может использоваться «костыль», например, описанный в функции deq ( ) (жирным шрифтом) в приложении текста компьютерной программы, обеспеченном в конце подробного описания. Зеркалирование данных геостационарной орбиты BDS осуществляется, как описано в функции MirrorKeplerEphemeris ( ), обеспеченной в приложении текста компьютерной программы, обеспеченном в конце подробного описания, и, на стороне обработки, может использоваться «костыль», как описано, в функции eph2pos ( ) (жирным шрифтом), обеспеченной в приложении текста компьютерной программы, обеспеченном в конце подробного описания. При создании файла зеркалированных данных GNSS, параметры ионосферы не изменяются, но в приложении обработки может использоваться «костыль» из функции ionmodel ( ) (жирным шрифтом) (на основании значения зеркального времени), найденной в приложении текста компьютерной программы, обеспеченном в конце подробного описания.
[0045] Еще один практический вопрос, который нужно решить, состоит в том, как подавать или вводить информацию зеркального времени в приложение обработки. Это можно осуществлять с использованием новых возможностей командной строки, но это может потребовать дополнительных модификаций исходного кода и может требовать ручного задания значения зеркального времени, которое может быть неизвестно пользователю. Для преодоления этой трудности был предложен один вариант осуществления, согласно которому необходимая информация помещается в зеркалированные навигационные данные. Например, можно использовать данные UTC Wn и Tow. Если Wn ==1000, то мы работаем с зеркалированным файлом, и в этом случае Tow может равняться зеркалированному времени. При работе с зеркалированным файлом, приложение обработки будет выводить данные в другом масштабе времени. Например, исходный файл данных GNSS может иметь масштаб времени или периоды от 0 до 20 секунд, тогда как файл зеркалированных данных GNSS может иметь масштаб времени или периоды от 20 до 40 секунд с зеркальным временем, равным 20 секундам. Выход из исходного прохода прямой обработки в приложении PVT может быть $GPGGA, 000000.00 …; $GPGGA, 000001.00 …; …; $GPGGA, 000020.00 …, тогда как выход из зеркалированного прохода через приложение PVT может быть $GPGGA, 000020.00 …; $GPGGA, 00021.00 …; …; $GPGGA, 000040.00 ….
[0046] Для обеспечения приложения объединителя, обеспечивается новое приложение, которое будет согласовывать позиционную информацию из прямых и обратных проходов. Для этого объединителю обеспечивается зеркальное время. Это время будет помогать объединителю ʺпонятьʺ, что GPGGA,000039=GPGGA,000001. Во избежание всех вышеупомянутых трудностей можно использовать команду/процедуру костыля в существующем приложении PVT только прямого направления (например, Blade). Когда эта команда принимается, Blade (или другое приложение PVT) модифицирует NMEA время (как это было в исходном файле) при выполнении с файлом зеркалированных данных GNSS. По этой команде, выход приложения PVT из зеркалированного прохода может быть $GPGGA, 000020.00 …; …; $GPGGA, 000001.00 …; $GPGGA, 000000.00 …. Утилита, например, утилита tac (из cygwin или linux) и обратный выход из зеркалированного прохода. После этого, относительно легко объединять результаты позиционирования из исходного и зеркалированного проходов (например, выходные сигналы FP и BP).
[0047] В некоторых вариантах осуществления, приложение/исполнимый модуль зеркального времени (или генератор зеркалированных данных GNSS) использует файлы RINEX в качестве ввода и вывода. В других вариантах осуществления можно использовать другие форматы файла или обмена данными, но по многим причинам желательны файлы RINEX. Считывание и запись RINEX напрямую поддерживаются RTKLIB, который является пакетом программ с открытым исходным кодом для стандартного и точного позиционирования с помощью GNSS, часто используемого для постобработки (или постобработанной кинематики) и использовались авторами изобретения в своей работе по макетированию (как можно видеть в участках кода, обеспеченных в приложении текста компьютерной программы (и все участки используют структуры RTKLIB)). Следовательно, RTKLIB полезна, поскольку не существует личного исходного кода, она является широко используемым и доступным продуктом, и является относительно легким для объяснения исходного кода с использованием RTKLIB.
[0048] Считывание и запись RINEX не требует дополнительных библиотек и может компилироваться на любой цели с использованием пакета RTKLIB. RINEX имеет минимальное количество полей, которые являются чистыми и были стандартизованы в течение очень долгого времени. RINEX является открытым форматом, поддерживаемым всеми поставщиками и инструментами. Для создания зеркального файла, приложение зеркального времени считывает RINEX с конца. Поскольку мы имеем естественную поддержку RINEX в RTKLIB, мы можем делать это легко, но если используется другой формат ввода (исходные файлы для декодирования недоступны), это может быть невозможно. В таком случае, все считанные периоды потребуется где-то буферизовать. Если они буферизуются в RAM, то может быть трудно обрабатывать большие файлы. Если они буферизуются на HDD, время обработки может значительно увеличиваться. RINEX также желателен, поскольку он включает в себя отдельный эфемеридный файл, который гарантирует, что не будет моментов, когда орбиты не удается вычислить. RINEX также полезен, поскольку он не имеет ограничений разрешением поля Toe, что позволяет выбирать любое целочисленное второе зеркальное время для всех орбит.
[0049] Приложение зеркального времени может быть сконфигурировано иметь особую поддержку кинематических данных. Для минимизации ошибок в зеркалированных данных, желательно знать позицию в каждый период. Поскольку файл RINEX не имеет позиционной информации (только первая точка), приложение зеркального времени ищет файлы NMEA (со строками GPGGA) и использует позицию из них. Приемники GNSS ретранслируют вычисленные переменные GNSS, например, позицию, скорость, курс, и пр. на периферийное устройство (например, описанную здесь систему/устройство постобработки), и более важные элементы информации приемника вещаются в особом формате, стандартизованном Национальной ассоциацией морской электроники (NMEA) таким образом, что сообщения являются помеченными сообщениями NMEA.
[0050] Новый способ зеркального времени обеспечивает элегантный способ получения результатов обратной обработки с традиционной машиной прямой обработки. Он также обеспечивает дополнительные преимущества. Проблемные моменты прямого прохода можно идентифицировать и затем обратный проход можно использовать для анализа, что пошло не так или привело к проблеме в прямом проходе.
[0051] Кроме того, постобработка развивается от одного большого приложения к нескольким меньшим утилитам. Это обеспечивает гибкость, быструю отладку, более простые выпуски, и сокращенное время разработки и подтверждения. Каждый основной компонент (например, исходные данные, преобразователь данных, рекуррентная машина PVT, приложение зеркального времени, объединитель и т.д.) системы постобработки (или программный комплект) имеет ясные цели и интерфейсы. Это позволяет эффективно совместно использовать задачи постобработки между разными командами конструирования и разработки. Дополнительно, постобработка способом зеркального времени не опирается на Win32, что может быть желательно, поскольку постобработка может осуществляться (или проход программного обеспечения) на любом вычислительном устройстве, включающем в себя сам приемник GNSS (или аппаратный инструмент с приемником GNSS).
[0052] В этом месте описания может быть полезно обеспечить краткий обзор некоторых из базовых принципов технологии зеркального времени и генерирования файла зеркалированных данных GNSS для ввода в машину PVT только прямого направления. Если начальный ввод является первым файлом RINEX (ʺRINEX1ʺ) в течение 101 секунды, может создаваться второй файл RINEX (ʺRINEX2ʺ). Это предусматривает зеркалирование периодов наблюдения GNSS в RINEX1 таким образом, что: RINEX1(100)=RINEX2(0); RINEX1(99)=RINEX2(1); …; и RINEX1(0)=RINEX2(100). Затем, при создании файла зеркалированных данных GNSS, эфемеридные данные RINEX1 модифицируется таким образом, что вычисления орбиты зеркалируются: Calc1(100)=Calc2(0); Calc1(99)=Calc2(1); …; и Calc1(0)=Calc2(100). После создания файла наблюдения зеркалированного RINEX и навигации, его можно обрабатывать с прямым проходом в машине PVT для получения результатов, как и при обработке с использованием обратной обработки.
[0053] Способ зеркального времени предусматривает более чем просто зеркалирование метки времени наблюдений GNSS. Вместо этого, способ включает в себя применение особых корректировок к измерениям (коду, фазе и доплеровскому сдвигу). В общем случае, зеркальное время должно различаться для наблюдений и орбит, но должно быть одинаковым для базы и ровера. Также, для коррекции измерений, должна быть известна или определена грубая позиция (например, плюс-минус 50 метров). Вероятно, способ зеркального времени будет хорошо работать для автономного позиционирования и обработки базовой линии.
[0054] Осуществлялось тестирование приложения зеркального времени и его использования с машиной PVT только прямого направления. Существующие инструменты позволяли оценивать эксплуатационные показатели зеркального времени в широком диапазоне данных GNSS и вариантов использования. Результаты испытания показали, что принцип зеркального времени позволяет значительно повысить производительность постобработки путем повторного использования существующей машины PVT реального времени. На основании этих результатов, подход зеркального времени можно легко рекомендовать для интеграции в программное обеспечение постобработки, которое включает в себя машину PVT только прямого направления реального времени, например, Mobile Mapper Office, Easy Post Process и другие программные продукты, которые уже используют машину Blade (или другую машину PVT).
[0055] Один пробный проход предусматривал сбор данных GNSS из базы (SP60, 1 Гц, с открытым небом) и ровера (uBlox, GGG, L1, 10 Гц, MM50 с внешней антенной), который предусматривал стандартную процедуру Nantes Drive с MM50 и множественные петли под открытым небом и под мостом. Проблемные петли в этом случае испытания соответствовали пространствам под мостами, и испытание проводили для определения наличия решения неопределенной фиксации до и после прохождения под мостом. В прямом проходе, графическое представление данных показало, что фиксированные позиции не наблюдались после прохождения под мостом. Проход с зеркалированными данными GNSS добавляет фиксированные позиции, и графическое представление объединенных данных показывает, что фиксированная позиция видна почти сразу после прохождения под мостом. Причина в том, что с точки зрения зеркалированных данных и обратного прохода эта часть петли соответствует ʺприближениеʺ к мосту. Следовательно, можно заключить, что решение только L1 с uBlox или другой GNSS можно значительно улучшить для автомобильной постобработки с использованием предложенных здесь методов зеркального времени.
[0056] Второй пробный проход предусматривал сбор данных GNSS из базы (приемника Some Yellow, 1 Гц, RINEX-2.11, Gps&Glonass) и ровера (Catalyst T04, 1 Гц), который предусматривал длинную (например, >70 км) базовую линию открытого неба со стартстопным сценарием. Это испытание осуществлялось для определения, будет ли принцип зеркального времени полезен, при низкой точности постобработки в начале стартстопной операции по длинной базовой линии. Графическое представление прямых и обратных проходов показало гораздо лучшую зеркалированную позицию по сравнению с прямой позицией в начале сбора данных. Следовательно, правильная комбинация позиций прямых и обратных проходов с использованием зеркалированных данных GNSS будет очень эффективной при повышении точности позиционирования в этом приложении или окружении позиционирования.
[0057] Третий пробный проход предусматривал сбор данных GNSS из базы (PF800, Carquefou, 1 Гц, RINEX-2.11, Gps&Glonass) и ровера (MB-Two board, atl. Log, 10 Гц), который предусматривал стандартную процедуру Nantes Drive с MB-Two, с множественными петлями под открытым небом и под мостом. Этот пробный проход осуществлялся с упором на наличие профессионального решения drive L1/L2 при прохождении под мостом. Из сгенерированного графика, демонстрирующего все позиции для прямого прохода и обратного прохода с зеркалированными данными GNSS, можно видеть, что позиции из обратного прохода были более плоскими и более надежными. Разумное объединение обоих проходов даст очень хорошую траекторию вблизи моста. Был сгенерирован другой график, демонстрирующий передвижения флага позиции вокруг моста для проходов на основе прямых и зеркальных данных, и они показывают, как четко зафиксированные позиции (GGA,4) восстанавливались после прохождения моста при использовании прохода зеркального времени.
[0058] Четвертый пробный проход предусматривал сбор данных GNSS из базы (SP60, 1 Гц, и открытое небо) и ровера (uBlox, Gps&Glonass&Galileo, L1, 10 Гц, MM50 с внутренней антенной (например, очень низкого качества)), который предусматривал петли хождения по локальной области с MM50 по стандартной затененной процедуре Nantes. Графическое представление результатов прямых и обратных проходов через машину PVT показало, что петли были хорошо затенены, и краевые точки также были хорошо затенены. Графики показывают, что обратный проход даже лучше, чем прямой проход. Из обзора графических данных пробного прохода авторам изобретения было очевидно, что принцип зеркального времени очень хорошо работает даже для ʺочень плохихʺ данных GNSS, благодаря чему, Mobile Mapper Office является потенциальной целью для интеграции предложенных здесь новых методов постобработки.
[0059] Пятый пробный проход предусматривал сбор данных GNSS из базы (SP90m, 1 Гц, Gps&Glonass&Galileo) и ровера (SP20, внутренняя антенна, Gps&Glonass&Galileo), который предусматривал петли хождения по локальной области между точками открытого неба и затененного неба (Nantes). Этот пробный проход осуществлялся для исследования принципа зеркального времени в отношении неопределенности фиксированных позиций. В испытании, Trotter handheld (L1/L2) (Посыльный коммуникатор) перемещался между открытым небом и затененными точками. Результаты испытания показали, что достоверность точек открытого неба очевидно будет повышаться на основании альтернативных (прямых и зеркальных) оценок. Наличие точек затененного неба (неопределенной фиксации), а также стадии приближения к/удаления от точки будут значительно повышаться благодаря использованию зеркалированных данных GNSS в ʺобратномʺ проходе с традиционным прямым проходом.
[0060] В отношении прямого/обратного объединителя, может быть полезно, чтобы объединитель прямых и обратных проходов объединял на решении полного вектора состояния и/или объединял только в области позиций. Алгоритм объединения может принимать различные формы, например, объединителя Фрейзера-Поттера. Объединение в области позиций (например, для 3D позиции) только часто будет адекватным, но может быть полезно, чтобы оно включало в себя некоторые надежные дополнения, которые могут включать в себя дополнительное сглаживание между периодами. Из прямых и обратных проходов через машину PVT, получаем 3D позиции, x1 и x2, с соответствующей ковариацией, p1 и p2. Теоретически, оптимальная формула для объединенной позиции имеет вид: d1=inv(p1); d2=inv(p2); P=inv(d1+d2); и X=P*(d1*x1+d2*x2). Эту теоретическую формулу можно дополнить следующим образом: (a) простейший выбор является наилучшим выбором (например, посредством флага GGA); (b) приемлемо надежное решение, которое также должно включать в себя определение данного периода как неверного; (c) возможные решения сглаживания между соседними периодами; (d) возможное сообщение (адаптивно обнаруженного) статического/кинематического флага; и (e) учетом вычисленной скорости.
[0061] При проектировании объединителя, следует помнить, что часто бывает более одного решения прямого и обратного прохода. Например, можно предсказать, что в будущем больше альтернативных ʺнезависимыхʺ результатов позиционирования можно будет объединять в окончательное решение пользователя, например, если желательно объединять и/или сравнивать позиции Blade и Titan. В этом случае, предполагается выполнение процедуры объединения более одного раза или ее выполнение с более чем двумя источниками позиции. Объединитель должен быть абстрактной независимой от периода процедурой, которая объединяет более двух ʺнезависимых позиционных решенияʺ с использованием алгоритма FP или другого аналогичного процесса.
[0062] В отношении интерфейса, может быть полезно при проектировании объединителя создавать равную структуру/ интерфейс сообщений для объединителя библиотек/исполнимых модулей. Каждое единственное решение, подлежащее объединению, должно доставлять позиционные данные, данные скорости и информацию базы, например: ID прохода; ID объединения; метку времени; 3D позицию; соответствующую 3×3 (6 чисел) ковариацию; флаг позиции, 3D скорость; соответствующую 3×3 (6 чисел) ковариацию; флаг скорости; позицию базы; совокупный указатель изменений базы; указатель точности базы; ID базы; и ID репера базы. Также, каждое объединенное решение, выводимое объединителем, обычно будет обеспечивать одни и те же выходные данные. Предполагается, что сообщаемые позиции выражаются в репере базы, и база может быть ничем, физической, VRS или GVRS (сгенерированной из RTX, SBAS и т.д). Для некоторых проходов или периодов, конкретное решение может отсутствовать по той или иной причине, и это может указывать флаг позиции или скорости. Также, для некоторых периодов, объединенное решение может отсутствовать по той или иной причине, и это может указывать флаг позиции или скорости.
[0063] Для дополнительного пояснения вышеизложенного, может быть полезно рассмотреть и уточнить используемые термины и язык и также обеспечить краткий обзор уникальных признаков новой технологии зеркального времени. Дифференциальное позиционирование - это процесс, который включает в себя коррекцию локальных наблюдаемых объектов приемника (или внутренних состояний машины PVT) с использованием некоторых данных, доступных из внешних источников. Корректировочные данные могут делиться на две группы: корректировки пространства измерений (MS) и корректировки пространства состояний (SS). Корректировки MS это числа, которые просто прибавляются к соответствующему локальному измерению для нивелирования (или, по меньшей мере, снижения) некоторых систематических ошибок. Типичным примером корректировок MS являются либо корректировки DGNSS (например, тип 1, 31 сообщения RTCM-2), либо корректировки RTK (например, тип 1004, 1012 сообщения RTCM-3). Основным атрибутом корректировок MS является позиция (опорная), которой они помечены. Корректировки MS обычно служат локальной областью вокруг опорной позиции. Корректировки MS могут соответствовать либо физической, либо виртуальной опорной станции. Корректировки сети RTK (MAC, FKP) можно рассматривать как дополнения корректировок MS для расширения области применения.
[0064] Корректировки SS представляют собой оценки конкретных ошибок, влияющих на наблюдения GNSS. Корректировки SS включают в себя корректировки орбиты спутника и часов, ионосферные корректировки, оценки смещения сигналов спутников, и некоторые другие корректировки. Корректировки SS обычно не помечают никакую опорную позицию и служат более широкими областями по сравнению с корректировками MS, но не всегда являются глобальными. Например, параметры ионосферной коррекции могут присутствовать только для некоторых континентов, например, ионосферная сетка WAAS доступна только на территории USA. Типичным примером корректировок SS источник является SBAS и L-диапазон. В отличие от точных корректировок MS, текущий статус корректировок SS не позволяет приемникам мгновенно определять позиции сантиметрового уровня. Однако последний прогресс с так называемыми решениями PPP (точного позиционирования точки) с использованием точных, продуктов IGS почти реального времени будет приводить к достаточно быстрому схождению к сантиметровому уровню точности в недалеком будущем. В зависимости от организации машины PVT, корректировки SS могут применяться по-разному. Например, приемники Trimble могут преобразовывать корректировки SS в корректировки MS (которые соответствуют цифрам точности) согласно текущей позиции приемника (так называемой структуры данных GVRS). Затем машина PVT применяет эти корректировки MS к наблюдениям приемника стандартным образом.
[0065] В вышеприведенном рассмотрении, термины и язык призваны иметь значения, используемые и понимаемые специалистами в области спутниковой навигации и родственных областях. Например, PVT использовалось для представления позиции/скорости/времени, и первичные данные GNSS включают в себя наблюдения GNSS плюс навигационные данные GNSS (которые можно представить как поток реального времени или как файл). В связи с этим, наблюдения GNSS обычно будут включают в себя код, несущую, доплеровский сдвиг и измерения SNR, произведенные приемником GNSS при отслеживании сигналов спутников GNSS. Навигационные данные GNSS могут представлять собой ежегодник GNSS, эфемериды GNSS, данные времени GNSS и ионосферные данные GNSS, извлеченные из сигналов спутников GNSS. Машина PVT обычно будет машиной, вычисляющей PVT с использованием первичных данных GNSS (плюс дифференциальные корректировки). RTK или Кинематика Реального Времени означает точное PVT, выполняющееся на приемнике в реальном времени с использованием дифференциальных корректировок. PP или постобработка является способом, используемым для определения PVT с использованием офисного/облачного программного обеспечения посредством обработки файлов первичных данных GNSS от по меньшей мере, одного приемника.
[0066] Приемником базы является приемник GNSS, генерирующий дифференциальные корректировки. Дифференциальная услуга представляет собой инфраструктуру, генерирующую дифференциальные корректировки, и приемник ровера представляет собой приемник GNSS, принимающий дифференциальные корректировки. В связи с этим, дифференциальные корректировки являются потоками, несущими дифференциальные данные от приемника базы или дифференциальной услуги на машину RTK ровера. Корректировки пространства измерений (MS) являются корректировками наблюдений GNSS (кода и несущей), и корректировки пространства состояний (SS) являются корректировками конкретных ошибок, влияющих на наблюдения GNSS (ошибок орбиты спутника и часов, атмосферных ошибок и/или смещений, создаваемых спутниками). PRS означает физическую опорную станцию, тогда как VRS означает виртуальную опорную станцию, и GVRS - глобальную виртуальную опорную станцию. Дополнительно, в отношении настоящего описания, корректировки RTCM обеспечивают стандартизованное представление дифференциальных корректировок, и первичные данные RINEX обеспечивают стандартизованное представление первичных данных GNSS. Прямой проход является обработкой PVT первичных данных GNSS с увеличенными метками времени, и обратный проход является обработкой PVT первичных данных GNSS с уменьшенными метками времени. Дополнительно, виртуальное время является стрелкой времени, сгенерированной из исходных меток времени, которыми помечены собранные первичные данные GNSS, и зеркальное время являются, в частности, сгенерированным виртуальным временем, идущим вперед. Дополнительно, зеркальные данные являются виртуальными первичными данными GNSS, соответствующими для зеркалирования времени.
[0067] В отношении PVT в реальном времени и постобработки, машина PVT, выполняющаяся на приемнике реального времени, обрабатывает: (a) собственные структуры периодов первичных данных GNSS и (b) корректировки GNSS, поступающие по внешней линии передачи данных. Та же машина PVT, выполняющаяся на PC, обрабатывает: (a) собственный файл первичных данных GNSS (ровера) и внешний файл первичных данных GNSS (базы). Другими словами, помимо PVT реального времени, постобработка PVT включает в себя устройства чтения/анализа первичных данных GNSS базы/ровера. Базовый PVT алгоритм одинаков для реального времени и постобработки, что доказывает пригодность использования машины PVT реального времени для приложений постобработки.
[0068] В этом месте описания, полезно обратиться к иллюстративным вариантам использования, где может применяться принцип зеркального времени. Принцип применим к более чем единственным данным ровера и более чем единственной пары данных ровера-базы. В общем случае, новая технология зеркального времени может одинаково применяться ко всем одновременно загружаемым файлам первичных данных. Принцип применим к целому(ым) файлу(ам) или любой части файла(ов). Принцип одинаково применим к любому первичному формату данных, например, но без ограничения, к специализированным форматам (например, формату первичных данных Trimble *.T0x) или стандартизованным форматам (например, RINEX). Принцип также применим к любым корректировочным данным SS (например, SBAS, Lband и пр.). Сначала корректировочные данные SS преобразуются в первичные данные GVRS посредством преобразования SS в MS. Затем первичные данные GVRS зеркалируются в качестве любого другого файла первичных данных. Обработка зеркального времени может выполняться на любой цели от приемника вплоть до облака (или устройствах, связанных с или доступных по облаку или любой сети передачи данных). Принцип применим к позиционированию вблизи реального времени на приемнике ровера. Для этого применения, данные приемника и корректировки буферизуются в памяти приемника и затем могут зеркалироваться и подвергаться постобработке на заднем плане приемника PVT реального времени.
[0069] Хотя это изобретение содержит многочисленные особенности, их не следует рассматривать как ограничения объема изобретения или формулы изобретения, но как описания признаков, характерных для конкретных вариантов осуществления изобретения. Кроме того, некоторые признаки, которые описаны в этом описании изобретения в контексте отдельных вариантов осуществления можно также реализовать совместно в единственном варианте осуществления. Напротив, различные признаки, которые описаны в контексте единственного варианта осуществления можно также реализовать во множественных вариантах осуществления по отдельности или в любой пригодной подкомбинации. Кроме того, хотя признаки могут быть описаны выше как действующие в некоторых комбинациях и даже первоначально заявленные таким образом, один или более признаков из заявленной комбинации в ряде случаев можно исключать из комбинации, и заявленная комбинация может относиться к подкомбинации или разновидности подкомбинации.
[0070] Аналогично, хотя операции изображены в чертежах в конкретном порядке, это не следует понимать как требующие, чтобы такие операции осуществлялись в конкретном показанном порядке или в последовательном порядке, или чтобы осуществлялись все проиллюстрированные операции, для достижения желаемых результатов. В некоторых обстоятельствах, многозадачность и/или параллельная обработка могут иметь преимущество. Кроме того, разделение различных системных компонентов в вышеописанных вариантов осуществления не следует понимать как требующее такого разделения во всех вариантах осуществления, и следует понимать, что описанные программные компоненты и системы, в общем случае, могут объединяться друг с другом в едином программном и/или аппаратном продукте или упаковываться во множественные программные и/или аппаратные продукты.
[0071] Вышеописанные варианты осуществления, включающие в себя предпочтительный вариант осуществления и наилучший режим изобретения, известный автору изобретения на дату подачи, задаются только иллюстративными примерами. Как будет понятно специалистам в данной области техники, описание и нижеследующая формула изобретения обеспечивают и охватывают, по меньшей мере: (a) новый принцип постобработки, который применим к более чем единственным данным ровера и более чем единственной пары данных ровера-базы, но, альтернативно, принципы MirrorTime могут одинаково применяться ко всем одновременно загружаемым файлам первичных данных; (b) принцип постобработки применим к целому(ым) файлу(ам) или любой части файла(ов); (c) принцип одинаково применим к любому первичному формату данных (специализированному или стандартизованному); (d) методы постобработки также применимы к любым корректировочным данным SS (например, SBAS, Lband) (например, сначала корректировочные данные SS преобразуются в первичные данные GVRS посредством преобразования SS->MS, и затем первичные данные GVRS зеркалируются в качестве любого другого файла первичных данных); (e) обработка MirrorTime может выполняться на любой цели от приемника вплоть до облака; и (f) описанные и заявленные здесь принципы применимы к позиционированию вблизи реального времени на приемнике ровера (например, с этой целью, данные приемника и корректировки буферизуются на приемнике память и затем могут зеркалироваться/подвергаться постобработке на заднем плане приемника PVT реального времени).
ПРИЛОЖЕНИЕ ТЕКСТА КОМПЬЮТЕРНОЙ ПРОГРАММЫ
Приложение A
Некоторые участки кода для зеркалирования эфемеридных данных. Все участки используют структуры RTKLIB
//========================================================
#define MU_GPS 3.9860050E14 /* гравитационная постоянная ссылка [1] */
#define MU_GLO 3.9860044E14 /* гравитационная постоянная ссылка [2] */
#define MU_GAL 3.986004418E14 /* гравитационная постоянная Земли ссылка [7] */
#define MU_CMP 3.986004418E14 /* гравитационная постоянная Земли ссылка [9] */
#define OMGE_GLO 7.292115E-5 /* угловая скорость Земли (рад/с) ссылка [2] */
#define OMGE_GAL 7.2921151467E-5 /* угловая скорость Земли (рад/с) ссылка [7] */
#define OMGE_CMP 7.292115E-5 /* угловая скорость Земли (рад/с) ссылка [9] */
bool MirrorKeplerEphemeris(const gtime_t& mirrorTime, const eph_t& eph, eph_t& eph2)
{
eph2=eph;
double mu, omge;
int sys, prn;
switch ((sys=satsys(eph.sat, &prn))) {
case SYS_GAL:
mu=MU_GAL; omge=OMGE_GAL; break;
case SYS_GPS:
mu=MU_GPS; omge=OMGE; break;
case SYS_QZS:
mu=MU_GPS; omge=OMGE; break;
case SYS_CMP:
mu=MU_CMP; omge=OMGE_CMP; break;
default:
return false;
}
double addToTimeToe=2 * timediff(mirrorTime, eph2.toe);
eph2.toes=eph.toes+addToTimeToe;
eph2.deln=-eph.deln - 2 * sqrt(mu/(eph.A*eph.A*eph.A));
eph2.idot=-eph.idot;
eph2.OMG0=eph.OMG0+omge*addToTimeToe;
eph2.OMGd=2 * omge - eph.OMGd;
if (sys == SYS_CMP&&prn <= 5)
eph2.OMGd=-eph.OMGd;
eph2.toe=timeadd(eph2.toe, addToTimeToe);
double addToTimeToc=2 * timediff(mirrorTime, eph2.toc);
eph2.toc=timeadd(eph2.toc, addToTimeToc);
double addToTimeTtr=2 * timediff(mirrorTime, eph2.ttr);
eph2.ttr=timeadd(eph2.ttr, addToTimeTtr);
eph2.f1=-eph.f1;
return true;
}
//========================================================
bool MirrorSbaEphemeris(const gtime_t& mirrorTime, const seph_t& eph, seph_t& eph2)
{
eph2=eph;
eph2.af1=-eph2.af1;
eph2.vel[0]=-eph2.vel[0];
eph2.vel[1]=-eph2.vel[1];
eph2.vel[2]=-eph2.vel[2];
double addToTimeToe=2 * timediff(mirrorTime, eph2.t0);
eph2.t0=timeadd(eph2.t0, addToTimeToe);
double addToTimeTof=2 * timediff(mirrorTime, eph2.tof);
eph2.tof=timeadd(eph2.tof, addToTimeTof);
return true;
return true;
}
//============MirrorGloEphemeris===========================
bool MirrorGloEphemeris(const gtime_t& mirrorTime, const geph_t& eph, geph_t& eph2)
{
eph2=eph;
eph2.gamn=-eph2.gamn;
eph2.vel[0]=-eph2.vel[0];
eph2.vel[1]=-eph2.vel[1];
eph2.vel[2]=-eph2.vel[2];
double addToTimeToe=2 * timediff(mirrorTime, eph2.toe);
eph2.toe=timeadd(eph2.toe, addToTimeToe);
double addToTimeTof=2 * timediff(mirrorTime, eph2.tof);
eph2.tof=timeadd(eph2.tof, addToTimeTof);
return true;
}
Приложение B
Некоторые участки кода для костыля при обработке зеркалирования эфемеридные данные. Все участки базируются на структурах/функциях RTKLIB. Части, которые необходимо модифицировать, отмечены красным цветом.
/* Дифференциальные уравнения орбиты Glonass ------------*/
static void deq(const double *x, double *xdot, const double *acc)
{
...
if (gMirrorTime) //If processing Mirrored File
{
xdot[3]=(c+omg2)*x[0] - 2.0*OMGE_GLO*x[4]+acc[0];
xdot[4]=(c+omg2)*x[1]+2.0*OMGE_GLO*x[3]+acc[1];
}
else
{
xdot[3]=(c+omg2)*x[0]+2.0*OMGE_GLO*x[4]+acc[0];
xdot[4]=(c+omg2)*x[1] - 2.0*OMGE_GLO*x[3]+acc[1];
}
...
}
extern void eph2pos(gtime_t time, const eph_t *eph, double *rs, double *dts,
double *var)
{
...
/* спутник beidou geo (ссылка [9]) */
if (sys==SYS_CMP&&prn<=5) {
...
sino=sin(omge*tk); coso=cos(omge*tk);
if (gMirrorTime)
sino=-sino;
}
...
}
extern double ionmodel(gtime_t t1, const double *ion, const double *pos,
const double *azel)
{
...
gtime_t t=t1;
if (gMirrorTime > 0)
{
gtime_t gMirrorTime_t;
gMirrorTime_t.time=gMirrorTime;
gMirrorTime_t.sec=0;
double difTime=timediff(gMirrorTime_t, t);
t=timeadd(t, 2 * difTime);
}
...
}