allgosts.ru25.040 Промышленные автоматизированные системы25 МАШИНОСТРОЕНИЕ

ГОСТ Р 60.6.8.1-2023 Роботы и робототехнические устройства. Представление картографических данных для навигации роботов

Обозначение:
ГОСТ Р 60.6.8.1-2023
Наименование:
Роботы и робототехнические устройства. Представление картографических данных для навигации роботов
Статус:
Принят
Дата введения:
01.01.2024
Дата отмены:
-
Заменен на:
-
Код ОКС:
25.040.30 , 35.240.99

Текст ГОСТ Р 60.6.8.1-2023 Роботы и робототехнические устройства. Представление картографических данных для навигации роботов

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ

ГОСТР

60.6.8.1—

2023



НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Роботы и робототехнические устройства

ПРЕДСТАВЛЕНИЕ КАРТОГРАФИЧЕСКИХ ДАННЫХ ДЛЯ НАВИГАЦИИ РОБОТОВ

Издание официальное

Москва Российский институт стандартизации 2023

Предисловие

  • 1 ПОДГОТОВЛЕН Федеральным государственным автономным научным учреждением «Центральный научно-исследовательский и опытно-конструкторский институт робототехники и технической кибернетики» (ЦНИИ РТК) на основе собственного перевода на русский язык англоязычной версии стандарта, указанного в пункте 4

  • 2 ВНЕСЕН Техническим комитетом по стандартизации ТК 141 «Робототехника»

  • 3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 31 августа 2023 г. № 781-ст

  • 4 Настоящий стандарт является модифицированным по отношению к стандарту IEEE Std 1873—2015 «Стандарт IEEE для представления картографических данных для навигации роботов» (IEEE Std 1873—2015 «IEEE Standard for robot map data representation for navigation», MOD) путем внесения технических отклонений, объяснение которых приведено во введении к настоящему стандарту.

Наименование настоящего стандарта изменено относительно наименования указанного стандарта для приведения в соответствие с ГОСТ Р 1.5—2012 (пункт 3.5) и для увязки с наименованиями, принятыми в существующем комплексе национальных стандартов Российской Федерации.

Сведения о соответствии ссылочных национальных стандартов стандартам, использованным в качестве ссылочных в примененном стандарте, приведены в дополнительном приложении ДА

  • 5 ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. № 162-ФЗ «О стандартизации в Российской Федерации». Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок— в ежемесячном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.rst.gov.ru)

© Оформление. ФГБУ «Институт стандартизации», 2023

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

Содержание

  • 1 Область применения

  • 2 Нормативные ссылки

  • 3 Термины, определения и сокращения

  • 3.1 Системы координат и преобразования

  • 3.2 Карты

  • 3.3 Компоненты карты

  • 3.4 Сокращения

  • 4 Соглашения

  • 5 Представление картографических данных для навигации роботов

  • 5.1 Формат данных для карт с координатной сеткой

  • 5.2 Формат данных для геометрических карт

  • 5.3 Формат данных для топологических карт

  • 6 Интерфейс обмена картографическими данными

  • 6.1 Специфические расширения для стандарта реализации

  • 6.2 Тип данных LocalMap

  • 6.3 Тип данных МарАггау

  • 6.4 Класс GridMap

  • 6.5 Класс GeometricMap

  • 6.6 Класс TopologicalMap

Приложение А (справочное) Пример представления картографических данных на языке XML

Приложение ДА (справочное) Сведения о соответствии ссылочных национальных стандартов международным стандартам, использованным в качестве ссылочных в примененном стандарте

Библиография

Введение

Требования стандартов комплекса ГОСТ Р 60 распространяются на роботы и робототехнические устройства. Целью стандартов является повышение интероперабельности роботов и их компонентов, а также снижение затрат на их разработку, производство и обслуживание за счет стандартизации и унификации процессов, интерфейсов, узлов и параметров.

Стандарты комплекса ГОСТ Р 60 представляют собой совокупность отдельно издаваемых стандартов. Стандарты данного комплекса относятся к одной из следующих тематических групп: «Общие положения, основные понятия, термины и определения», «Технические и эксплуатационные характеристики», «Безопасность», «Виды и методы испытаний», «Механические интерфейсы», «Электрические интерфейсы», «Коммуникационные интерфейсы», «Методы моделирования и программирования», «Методы построения траектории движения (навигация)», «Конструктивные элементы». Стандарты любой тематической группы могут относиться как ко всем роботам и робототехническим устройствам, так и к отдельным группам объектов стандартизации — промышленным роботам в целом, промышленным манипуляционным роботам, промышленным транспортным роботам, сервисным роботам в целом, сервисным манипуляционным роботам, сервисным мобильным роботам, а также к морским робототехническим комплексам.

Настоящий стандарт относится к тематической группе «Методы построения траектории движения (навигация)» и распространяется на сервисные мобильные роботы.

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

В настоящем стандарте не рассмотрены трехмерные, динамические и семантические карты.

В настоящий стандарт внесены следующие технические отклонения по отношению к стандарту IEEE Std 1873—2015:

  • - не включены примечания и сноски примененного стандарта, которые нецелесообразно применять в российской национальной стандартизации в связи с их содержанием, имеющим справочный характер и относящимся к системе стандартизации США;

  • - раздел 1 «Область применения» приведен в соответствие с требованиями ГОСТ 1.5—2001;

  • - рисунок 1 примененного стандарта, имеющий форму таблицы, преобразован в таблицу 1, соответственно изменена нумерация последующих рисунков и таблиц;

  • - в раздел 2 «Нормативные ссылки» настоящего стандарта не включены стандарты IEEE Std 754—2008, ISO/IEC 9899:2011 и ISO/IEC 10646:2012, не имеющие аналогов среди межгосударственных и национальных стандартов; соответственно в тексте стандарта нормативные ссылки на эти документы, заменены на справочные, что не меняет технического содержания документа;

  • - в разделе 3 «Термины, определения и сокращения» терминологические статьи расположены в алфавитном порядке и дополнены номерами, состоящими из номера раздела, номеров подразделов и порядковых номеров статей для приведения в соответствие с требованиями ГОСТ 1.5—2001;

  • - не включены определения терминов «rotation» и «translation», носящие частный характер, а сами термины встречаются в тексте примененного стандарта только в одном месте, где и пояснен их смысл;

  • - пункт 3.3.2 дополнен примером;

  • - из подраздела 3.5 исключены сокращения, не используемые в тексте настоящего стандарта;

  • - не включен номер подраздела 5.1 в соответствии с ГОСТ 1.5—2001 (пункт 4.2.3), номера пунктов 5.1.1—5.1.3 заменены на 5.1—5.3 соответственно;

  • - добавлены библиографические данные и ключевые слова в соответствии с ГОСТ 1.5—2001.

ГОСТ Р 60.6.8.1—2023

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Роботы и робототехнические устройства ПРЕДСТАВЛЕНИЕ КАРТОГРАФИЧЕСКИХ ДАННЫХ ДЛЯ НАВИГАЦИИ РОБОТОВ

Robots and robotic devices. Map data representation for robot navigation

Дата введения — 2024—01—01

  • 1 Область применения

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

В частности, в настоящем стандарте:

  • а) установлена иерархия терминологий, относящихся к двумерным картам для навигации роботов в помещениях и на открытой местности;

  • Ь) определена модель данных для каждого элемента в данной иерархии;

  • с) определен XML-формат для обмена картографическими данными между роботами, компьютерными системами и другими устройствами.

Стандарты по представлению картографических данных разрабатывают разные организации по стандартизации, такие как Международная организация по стандартизации (ИСО) и Открытый консорциум по геоинформационным системам (OGC). Область применения настоящего стандарта может быть переформулирована сточки зрения масштаба охватываемой прикладной области. На рисунке 1 показано сравнение области применения настоящего стандарта с прикладными областями других стандартов.

Таблица 1 — Сравнение областей применения стандартов представления картографических данных

Объект рассмотрения

Среда функционирования робота

Помещение

Участок

Обширное пространство

Примеры среды

Квартира, офис, магазин

Завод, терминал, ферма, лагерь

Поселок, округ, город

Примеры роботов

Робот-пылесос, робот-компаньон, робот для развлечений

Сельскохозяйственный робот, логистический робот, разведывательный робот, охранный робот

Автономный автомобиль, беспилотник, военный робот

Примеры применения

Помощь человеку по дому

Охрана периметра предприятия

Обследование больших территорий

Применимый стандарт

(см. [1])

(см. [2]) (см. [3])

(см. [4])

Настоящий стандарт

Издание официальное

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

  • 2 Нормативные ссылки

В настоящем стандарте использована нормативная ссылка на следующий стандарт:

ГОСТ Р 60.0.0.4—2023/ИСО 8373:2021 Роботы и робототехнические устройства. Термины и определения

Примечание — При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю «Национальные стандарты», который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя «Национальные стандарты» за текущий год. Если заменен ссылочный стандарт, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого стандарта с учетом всех внесенных в данную версию изменений. Если заменен ссылочный стандарт, на который дана датированная ссылка, то рекомендуется использовать версию этого стандарта с указанным выше годом утверждения (принятия). Если после утверждения настоящего стандарта в ссылочный стандарт, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, рекомендуется применять в части, не затрагивающей эту ссылку.

  • 3 Термины, определения и сокращения

В настоящем стандарте применены термины по ГОСТ Р 60.0.0.4, а также следующие термины с соответствующими определениями:

  • 3.1 Системы координат и преобразования

    • 3.1.1 декартова система координат (Cartesian coordinate system): Система координат, определяющая положение точек по отношению к п взаимно перпендикулярным осям.

Примечание — Поскольку в настоящем стандарте рассмотрены двумерные карты, то л = 2.

  • 3.1.2 локальная система координат (local coordinate system): Система координат, определенная на всем пространстве навигации робота.

Примечания

  • 1 Начало локальной системы координат определяют пользователи в соответствии со своими требованиями.

  • 2 Синонимом данного термина является термин «эгоцентрическая система координат (egocentric coordinate system)».

  • 3.1.3

полярная система координат (polar coordinate system): Система координат, в которой положение объекта задается расстоянием и направлением от ее начала.

[ГОСТ Р 52572—2006, пункт 3.33]_______________________________________________________

  • 3.1.4 преобразование координат (coordinate transformation): Процесс перевода координат пространственного расположения из одной системы координат в другую.

Примечание — В сущности, преобразование — это способ представления одной системы координат (или одной из ее точек) относительно другой. Поскольку в настоящем стандарте рассмотрены двумерные карты, преобразование координат ограничено двумерными перемещениями и вращениями.

  • 3.1.5

система координат (coordinate system): Набор математических правил, описывающих, как координаты должны быть соотнесены с точками пространства.

[ГОСТ Р 52572—2006, пункт 3.37]

Примечание — Синонимом данного термина является термин «система отсчета (reference frame)».

  • 3.2 Карты

На рисунке 1 показана иерархия карт, принятая в настоящем стандарте, которая помогает понять структуру модели картографических данных.

Рисунок 1 — Иерархия классов карт, определенных в настоящем стандарте

  • 3.2.1 глобальная карта (global map): Совокупность (набор) локальных карт, возможно содержащая информацию об их взаимном расположении и об их расположении относительно глобальной системы координат.

  • 3.2.2 дискретная метрическая карта (discrete metric map): Карта, в которой внешняя среда представлена в виде ячеек (обычно квадратных), содержащих элементарную информацию о внешней среде.

Примечание — Синонимами данного термина являются термины «карта с координатной сеткой (grid map)» и «растровая карта (raster map)».

  • 3.2.3 карта (робота) [(robot) map]: Карта, представляющая знание робота о рабочем пространстве и окружающей среде, а также о расположенных в них объектах.

  • 3.2.4 карта занятости с координатной сеткой (occupancy grid map): Дискретная метрическая карта, каждая ячейка которой содержит информацию о занятости данной ячейки препятствием.

Примечание — Обычно содержание ячейки связано с вероятностью ее занятости.

  • 3.2.5 локальная карта (local map): Топологическая или метрическая карта.

  • 3.2.6 метрическая карта (metric map): Совокупность картографических элементов (например, ячеек, точек и отрезков линий), обладающих следующим свойством: для любых заданных на карте двух элементов а и b и при наличии определения метрического расстояния расстояние между а и b всегда может быть вычислено.

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

  • 3.2.7 непрерывная метрическая карта (continuous metric map): Карта, содержащая перечень геометрических объектов (таких как точки и линии), значения координат которых принадлежат к непрерывному числовому диапазону.

Примечание — Синонимами данного термина являются термины «геометрическая карта (geometric map)» и «векторная карта (vector map)».

  • 3.2.8 топологическая карта (topological map): Представление внешней среды на основе графа, включающего вершины, дуги и отношения их связности.

Примечание — Вершины (узлы) топологической карты представляют характерные особенности (например, показания датчиков, уникальные признаки соответствующего региона, метрические карты и т. д.) внешней среды. Дуги (ребра) топологической карты представляют прямые (одно интервальные) соединения (прямая достижимость) между соседними вершинами. Дуга (ребро) соединяет пару вершин (узлов), (Г, /?), что означает, что дуга направлена от вершины t (конец) до вершины h (начало).

  • 3.3 Компоненты карты

  • 3.3.7 особенность (feature): Представление элемента окружающей среды, отличающегося от ближайших соседних элементов.

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

  • 3.4 Сокращения

EPSG — Европейская нефтяная исследовательская группа (European Petroleum Survey Group);

ID — идентификатор (Identifier);

MDR — представление картографических данных (Map Data Representation);

UML — унифицированный язык моделирования (Unified Modeling Language);

XML — расширяемый язык разметки (extensible Markup Language);

XSD — язык определения XML-схемы (XML Schema Definition).

  • 4 Соглашения

В настоящем стандарте для обозначения статуса обязательности используются следующие условные обозначения, которые представлены в графе «М/О» соответствующих таблиц:

Обозначение

Определение

Значение

М

Обязательный

Данный атрибут должен быть представлен

О

Факультативный

Данный атрибут может быть представлен

Кроме того, в графе «Максимальное число появлений» (МО) указано максимально допустимое число появлений соответствующих значений атрибутов, а признак N указывает на отсутствие верхнего предела.

  • 5 Представление картографических данных для навигации роботов

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

В настоящем стандарте для представления совокупности двумерных карт используется глобальная карта в виде дерева, состоящего из узлов и дуг (хотя дерево является направленным графом, в настоящем стандарте с небольшой погрешностью использован термин «узлы» вместо термина «вершины»). Узлы представляют локальные карты, а дуги — вращательные и поступательные перемещения для перехода из системы координат конечного узла в систему координат начального узла, где вращательнопоступательное перемещение RT = <dx, dy, dB> представляет вращение против часовой стрелки R = d& вокруг точки начала координат, за которым следует поступательное перемещение Т = <dx, dy> вдоль осей х и у заданной системы координат.

Глобальная карта должна быть представлена деревом G = (N, А), где N и А — узлы и дуги, соответственно. Каждый узел nzG Л/является локальной картой, представленной метрической или топологической картой (см. рисунок 3). Дерево G имеет особый корневой узел nG, система координат которого является глобальной системой координат FG, в которую могут быть преобразованы все системы координат карт. Каждая дуга А, соединяющая узлы ПуИ Пу, связана с вращательно-поступательным перемещением ajj = <dx, dy, aQ>, которое представляет преобразование для преобразования точки <Ху, у> из системы координат Fj карты п- в соответствующую точку <ху, у> в системе координат Fj карты лу. В частности, как показано в уравнении

xi

У/


cos <70 - sincfOirx/l [dx sin (70 - cos <70 J у,- [dy

(1)


где <70 — угол (измеряемый против часовой стрелки) между направленной вправо осью х системы координат Fj и направленной вправо осью х системы координат Fj

Следует отметить, что предыдущее представление допускает наложение карт на графе G. Например, если два узла соединены с узлом nG дугами, представляющими одинаковое вращательно-поступательное перемещение, то две соответствующие локальные карты накладываются друг на друга.

Более того, особое нулевое вращательно-поступательное перемещение (которое отлично от вращательно-поступательного перемещения, обозначаемого <0, 0, 0>) используют, когда отсутствует метрическая информация об относительном смещении двух узлов (т. е. в случае чисто топологических карт).

К дугам допускается добавить неопределенность в отношении вращательно-поступательного перемещения. Это может быть естественным образом задано в виде ковариационной матрицы 3 х 3, как представлено ниже в описании типа данных UncertaintyPose.

Иерархия структуры локальной карты представлена на рисунке 2. На UML-диаграммах, приведенных в данном разделе, атрибуты, которые в явном виде не определены как факультативные или многократные, являются обязательными и однократными. Для определения общего класса карт введено понятие локальной карты. Геометрическая карта, карта с координатной сеткой или топологическая карта должны быть унаследованными от локальной карты.

Примечание — Как определено в разделе 3, «геометрическая карта» и «карта с координатной сеткой» являются разными терминами, используемыми для обозначения непрерывной и дискретной метрической карты, соответственно. В настоящем стандарте эти два вида терминов являются взаимозаменяемыми; первый вид (геометрическая карта и карта с координатной сеткой) предпочтителен для относительно более технического описания представления картографических данных, в то время как второй вид чаще используют для иллюстративного описания.


«enumeration» LocalMapType


LocalMapTransform


GridMap = 1

GeometricMap = 2

TopologicalMap = 3


+ offset_x: double

+ offset_y: double

+ theta: double

+ uncertainty: UncertaintyPose [0..1]


CoordinateSystemType


UncertaintyPose

+ covariance_xx: double

+ covariance_yy: double

+ covariance_thetatheta: double

+ covariance_xy: double

+ covariance_xtheta: double

+ covariance_ytheta: double


+ EPSG_code: string [0..1]

+ reference_local_map: string [0..1]

Рисунок 2 — UML-диаграмма локальной карты

В таблицах 2—6 приведены определяющие элементы классов, относящихся к локальной карте.

Таблица 2 — Подробное описание класса LocalMap

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

id

ID данной локальной карты

М

1

string

[5], [6]

offset

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

О

1

LocalMapTransform

Таблица 3

Окончание таблицы 2

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

map_type

Тип данной локальной карты

М

1

LocalMapType3

Таблица 4

coo rd i n ate_sy ste m

Информация, относящаяся к системе координат, с помощью которой представлена данная локальная карта. Локальная система координат должна быть декартовой системой координат с горизонтальной направленной вправо осью х и вертикальной направленной вверх осью у. Атрибут offset должен содержать преобразование между данной локальной системой координат и глобальной системой координат

О

1

CoordinateSystemType

Таблица 5

3 Данный перечисляемый тип данных основан на целочисленном типе данных (см. [5]).

Таблица 3 — Подробное описание типа данных LocalMapTransform

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

offset_x

Смещение по оси х, а именно, координата х. Единица измерения — метр

М

1

double3

[5]

offset_y

Смещение по оси у, а именно, координата у. Единица измерения — метр

М

1

double

[5]

theta

Смещение по оси ориентации, а именно, координата 0. Единица измерения — радиан

м

1

double

[5]

uncertainty

Неопределенность преобразования

О

1

Uncertainty Pose

Таблица 6

a Тип «double» в [5] означает число с плавающей запятой двойной точности.

Таблица 4 — Подробное описание перечисления LocalMapType

Мнемоника

Значение

Описание

GridMap

1

Данная локальная карта является картой с координатной сеткой

GeometricMap

2

Данная локальная карта является геометрической картой

TopologicalMap

3

Данная локальная карта является топологической картой

Таблица 5 — Подробное описание типа данных CoordinateSystemType

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

EPSG_code

ID глобальной (абсолютной) системы координат. Если факультативный атрибут EPSG_code не задан, то это относительная система координат. См. примечание

0

1

string в виде "type::code"

[5], [6]

reference_local_map

ID локальной карты, система координат которой предназначена для отсчета смещения. Атрибуты EPSG_code и reference_local_map не могут быть заданы одновременно, но оба могут остаться неопределенными

0

1

string

[5], [6]

Примечание

— См. http://www.epsg.org.

Таблица 6 — Подробное описание типа данных UncertaintyPose

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

covariance_xx

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

М

1

double

[5]

covariance_yy

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

М

1

double

[5]

covariance_thetatheta

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

М

1

double

[5]

covariance_xy

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

М

1

double

[5]

covariance_xtheta

Значение элементов (1,3) и (3,1) ковариационной матрицы, характеризующих неопределенность пространственного расположения. Представляет ковариацию между х и 0

М

1

double

[5]

covariance_ytheta

Значение элементов (2,3) и (3,2) ковариационной матрицы, характеризующих неопределенность пространственного расположения. Представляет ковариацию между у и 0

М

1

double

[5]

В качестве системы координат для представления картографических данных следует использовать декартову систему координат, у которой ось х направлена вправо от начала координат, а ось у— вверх.

Смещение локальной карты может быть:

  • - неопределенным, когда смещение не задано, что означает неизвестное пространственное расположение системы координат локальной карты. Это относится, например, к чисто топологическим картам;

  • - абсолютным, когда смещение задано вместе с ID EPSG_code, который определяет конкретную систему координат, в соответствии с которой рассчитывается смещение локальной карты;

  • - относительным по отношению к системе координат другой локальной карты, когда смещение задано вместе с reference_local_map, система координат которой является базой отсчета, в соответствии с которой рассчитывается смещение локальной карты;

  • - относительным по отношению к стандартной (0, 0, 0) системе координат, когда смещение задано, но не определены ни EPSG_code, ни reference_local_map.

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

С1) Если локальная карта имеет смещение, заданное абсолютным способом (геопривязанное), то все остальные локальные карты должны быть либо геопривязанными, либо определять свое пространственное расположение относительно геопривязанной локальной карты т (либо из-за того, что т является геопривязанной, либо из-за того что т определена относительно геопривязанной локальной карты т') без образования циклов (т. е. ситуаций, когда смещение локальной карты выражено в конечном счете относительно этой локальной карты).

С2) Если ни одна локальная карта не является геопривязанной, то все локальные карты определяют свои смещения либо относительно стандартной (0, 0, 0) системы координат, либо относительно другой локальной карты. В данном случае также не должно быть циклов.

Если у двух локальных карт смещения определены относительно стандартной (0, 0, 0) системы координат, то преобразование между ними возможно рассчитать. Данный вариант неприменим, если у одной из них смещение не задано (является неопределенным).

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

  • 5.1 Формат данных для карт с координатной сеткой

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

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

В таблицах 7—9 определены атрибуты и типы данных карты с координатной сеткой, а ее UML-диаграмма приведена на рисунке 3.

Таблица 7 — Подробное описание класса GridMap

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

resolution

Числовое значение, представляющее разрешение карты с координатной сеткой, выраженное в метрах; это длина стороны ячейки

М

1

double

[5]

num_cells_x

Число ячеек вдоль оси х карты

М

1

unsigned int

[5]

num_cells_y

Число ячеек вдоль оси у карты

м

1

unsigned int

[5]

cells

Фактическое содержимое ячеек сетки

м

N (более точно, num_cells_x ■ num_cells_y)

GridCell

Таблица 8

palette_elements

Значение величин, хранящихся в ячейках

О

N

PaletteElement

Таблица 9

Таблица 8 — Подробное описание типа данных GridCell

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

X

Координата х данной ячейки, считая левую нижнюю ячейку началом координат (0, 0)

М

1

int

[5]

У

Координата у данной ячейки, считая левую нижнюю ячейку началом координат (0, 0)

м

1

int

[5]

height

Используется для кодирования прямоугольной области с использованием однородных (одинаковых) ячеек. Представляет высоту данной области (суперъячейки). Значение по умолчанию равно 1

О

1

unsigned int

[5]

width

Используется для кодирования прямоугольной области с использованием однородных (одинаковых) ячеек. Представляет ширину данной области (суперъячейки). Значение по умолчанию равно 1

О

1

unsigned int

[5]

value

Содержимое ячейки

м

1

double, значение представлено типом данных PaletteElement

[5]

Следует отметить, что наличие высоты и ширины ячейки сетки позволяет кодировать область прямоугольной формы путем сбора однородных (с одинаковым значением, взятым из одной палитры) ячеек в суперячейку, которая может быть использована для разработки карты с координатной сеткой на основе представления в виде дерева квадрантов. Например выражение <х = 5, у = 5, height = 10, width = 10> представляет суперячейку, состоящую из 10 х 10 ячеек, у которой левая нижняя ячейка имеет координаты <х = 5, у = 5>. По умолчанию ячейки имеют значения атрибутов <height = 1, width = 1>. Все (num_cells_x х num_cells_y) ячейки карты с координатной сеткой задают индивидуально или как часть суперячеек.

Палитра — это таблица или функция, которая определяет значения чисел для ячеек. Палитра должна быть массивом элементов типа данных PaletteElements (таблица 9), охватывающим все возможные значения для ячеек. Например, если сетка является сеткой занятости, то значение 0,0 может соответствовать нулевой вероятности (= 0) того, что ячейка занята препятствием, в то время как значение 1,0 может соответствовать полной вероятности (= 1) того, что ячейка занята препятствием. Возможны промежуточные значения вероятности. Для описания на естественном языке значения палитры или диапазона значений может быть использована строка символов.

Таблица 9 — Подробное описание типа данных PaletteElement

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

value_start

Атрибуты value_start и value_end могут быть использованы для представления граничных значений диапазона, чтобы показать, что все значения в диапазоне имеют одинаковую величину. Граничные значения включены в диапазон, т. е. диапазон обозначается как [value_start, value_end]

М

1

double

[5]

value_end

Атрибуты value_start и value_end могут быть использованы для представления граничных значений диапазона, чтобы показать, что все значения в диапазоне имеют одинаковую величину. Граничные значения включены в диапазон, т. е. диапазон обозначается как [value_start, value_end]. Должно быть соблюдено условие value_end > value_start. Если значение value_end не задано, то диапазон обозначают [value_start, value_start]

О

1

double

[5]

meaning

Значение value_start или значения в диапазоне от val-ue_start до value_end (граничные значения включены)

М

1

string

[5], [6]

Рисунок 3— UML-диаграмма карты с координатной сеткой

  • 5.2 Формат данных для геометрических карт

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

На рисунке 4 показано представление геометрических карт в виде UML-диаграммы классов.

Рисунок 4— UML- диаграмма геометрической карты

Частными случаями геометрических карт могут быть чисто точечные геометрические карты (т. е. локальные карты п,, которые представляют собой совокупность двумерных точек, например, полученных с помощью лазерного сканирующего дальномера) и чисто сегментные геометрические карты (т. е. локальные карты л,-, которые представляют собой совокупность двумерных сегментов линий).

Точка представлена своими декартовыми координатами в локальной системе координат.

Представление сегмента линии показано на рисунке 5, на котором введены обозначения: rho (р) — перпендикулярное расстояние от начала координат локальной системы координат карты до сегмента линии, alpha (а) — ориентация вектора, представляющего перпендикулярное расстояние до сегмента линии, измеренное против часовой стрелки от направленной вправо горизонтальной оси х локальной системы координат карты. Рассмотрим бесконечную линию, образованную расширением сегмента линии. Начало координат бесконечной линии определено как точка, в которой указанный выше вектор пересекает ее. Скалярные координаты граничных точек psi_a (уа) и psi_b (\|/ь) сегмента линии определены на этой бесконечной линии, включающей данный сегмент линии, относительно ее начала координат, при этом psi_a > psi_b.

Рисунок 5 — Представление сегмента линии

В таблицах 10—13 подробно представлены элементы геометрических карт.

Таблица 10 — Подробное описание типа данных Point

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

X

Координата х точки относительно начала координат локальной карты. Единица измерения — метр

М

1

double

[5]

У

Координата у точки относительно начала координат локальной карты. Единица измерения — метр

м

1

double

[5]

uncertainty

Неопределенность расположения точки

О

1

UncertaintyPoint

Таблица 12

Таблица 11 — Подробное описание типа данных LineSegment

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

rho

Перпендикулярное расстояние от начала координат локальной системы координат карты до сегмента линии. Единица измерения — метр

М

1

double

[5]

alpha

Ориентация вектора, представляющего перпендикулярное расстояние до сегмента линии, измеренное против часовой стрелки от горизонтальной оси х локальной системы координат карты. Единица измерения — радиан, a alpha имеет значение в полуинтервале [0,2тт)

м

1

double

[5]

psi_a

Рассмотрим бесконечную линию, образованную расширением сегмента линии. Точка начала координат бесконечной линии определена как точка, в которой перпендикулярный вектор ее пересекает. Граничные точки сегмента линии определены относительно начала координат. psi_a — граничная точка, расположенная дальше от начала координат (см. рисунок 5). Единица измерения — метр

м

1

double

[5]

psi_b

Рассмотрим бесконечную линию, образованную расширением сегмента линии. Точка начала координат бесконечной линии определена как точка, в которой перпендикулярный вектор ее пересекает. Граничные точки сегмента линии определены относительно начала координат. psi_b — граничная точка, расположенная ближе к началу координат (см. рисунок 5). Единица измерения — метр

м

1

double

[5]

uncertainty

Неопределенность параметров сегмента линии

О

1

UncertaintyLi-neSegment

Таблица 13

Таблица 72 — Подробное описание типа данных UncertaintyPoint

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

covariance_xx

Значение элемента (1,1) ковариационной матрицы, описывающей неопределенность относительно точки. Представляет дисперсию х

м

1

double

[5]

covariance_xy

Значение элементов (1,2) и (2,1) ковариационной матрицы, описывающей неопределенность относительно точки. Представляет ковариацию между х и у

м

1

double

[5]

covariance_yy

Значение элемента (2, 2) ковариационной матрицы, описывающей неопределенность относительно точки. Представляет дисперсию у

м

1

double

[5]

Таблица 13 — Подробное описание типа данных UncertaintyLineSegment

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

covariance_rhorho

Значение элемента (1,1) ковариационной матрицы, описывающей неопределенность относительно сегмента линии. Представляет дисперсию rho

М

1

double

[5]

covariance_rhoalpha

Значение элементов (1, 2) и (2, 1) ковариационной матрицы, описывающей неопределенность относительно сегмента линии. Представляет ковариацию между rho и alpha

М

1

double

[5]

covariance_rhopsi_a

Значение элементов (1, 3) и (3, 1) ковариационной матрицы, описывающей неопределенность относительно сегмента линии. Представляет ковариацию между rho и psi_a

м

1

double

[5]

covariance_rhopsi_b

Значение элементов (1, 4) и (4, 1) ковариационной матрицы, описывающей неопределенность относительно сегмента линии. Представляет ковариацию между rho и psi_b

м

1

double

[5]

covariance_alphaalpha

Значение элемента (2, 2) ковариационной матрицы, описывающей неопределенность относительно сегмента линии. Представляет дисперсию alpha

м

1

double

[5]

covariance_alphapsi_a

Значение элементов (2, 3) и (3, 2) ковариационной матрицы, описывающей неопределенность относительно сегмента линии. Представляет ковариацию между alpha и psi_a

м

1

double

[5]

covariance_alphapsi_b

Значение элементов (2, 4) и (4, 2) ковариационной матрицы, описывающей неопределенность относительно сегмента линии. Представляет ковариацию между alpha и psi_b

м

1

double

[5]

covariance_psi_apsi_a

Значение элемента (3, 3) ковариационной матрицы, описывающей неопределенность относительно сегмента линии. Представляет дисперсию psi_a

м

1

double

[5]

covariance_psi_apsi_b

Значение элементов (3, 4) и (4, 3) ковариационной матрицы, описывающей неопределенность относительно сегмента линии. Представляет ковариацию между psi_a и psi_b

м

1

double

[5]

covariance_psi_bpsi_b

Значение элемента (4, 4) ковариационной матрицы, описывающей неопределенность относительно сегмента линии. Представляет дисперсию psi_b

м

1

double

[5]

  • 5.3 Формат данных для топологических карт

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

На рисунке б показана UML-диаграмма топологической карты.

Рисунок 6 — UML-диаграмма топологической карты

В таблицах 14—17 показаны атрибуты класса TopologicalMap.

Таблица 14 — Подробное описание класса TopologicalMap

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

nodes

Перечень узловых точек данной топологической карты

м

N

Node

Таблица 15

edges

Перечень дуг данной топологической карты

м

N

Edge

Таблица 16

Таблица 15 — Подробное описание типа данных Node

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

id

Уникальный ID данного узла

М

1

string

[5], [6]

location

Расположение данного узла; т. е. координаты х и у данного узла

О

1

Point

Таблица 10

property_num

Число характеристик узла. Значение по умолчанию равно 0

О

1

unsigned int

[5]

properties

Факультативные характеристики данного узла

О

N (более точно, property_num)

Property

Таблица 17

connected_edges

Список ID дуг, которые непосредственно связаны с данным узлом

О

N

string

[5], [6]

Таблица 16 — Подробное описание типа данных Edge

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

id

Уникальный ID дуги

М

1

string

[5], [6]

property_num

Число характеристик дуги. Значение по умолчанию равно 0

О

1

unsigned int

[5]

properties

Факультативные характеристики данной дуги

О

N (более точно, property_num)

Property

Таблица 17

head_node

ID начального узла данной дуги

м

1

string

[5], [6]

tail_node

ID конечного узла данной дуги

м

1

string

[5], [б]

Таблица 17 — Подробное описание типа данных Property

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

name

Наименование данной характеристики

м

1

string

[5], [б]

value

Значение данной характеристики

м

1

Binary

typename

Наименование типа данной характеристики

м

1

string

[5], [6]

description

Описание данной характеристики

О

1

string

[5], [6]

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

  • 6 Интерфейс обмена картографическими данными

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

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

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

  • 6.1 Специфические расширения для стандарта реализации

XML-реализация настоящего стандарта расширяет типы данных, определенные в разделе 5, чтобы дополнить их значение применительно к данной реализации. С этой целью введены новые типы данных: MapArray, Metadata, GridCellArray, PaletteElementArray, GeometricElementArray, NodeArray, EdgeArray, PropertyArray и ConnectedEdgesArray, — как сложные типы данных языка XSD (языка определения XML-схемы), в которых элементы группы появляются в строго определенной последовательности.

  • 6.2 Тип данных LocalMap

XSD-тип данных LocalMap расширен для включения номера версии стандарта. Атрибут mdr_ version хранит соответствующую минимальную версию стандарта MDR, в соответствии с которой может быть проведена валидация типа данных LocalMap. Кроме того, тип данных LocalMap расширен для хранения метаданных типа Metadata. Тип данных Metadata не относится к картографическим типам данных, определенным в предыдущем разделе, но является частью формата картографических данных, определяемого следующим образом.

<xs:complexType name="LocalMap" abstract="true">

<xs:sequence>

<xs:element name="metadata" type="Metadata"/>

<xs:element name="offset" type="LocalMapTransform" minOccurs="0" maxOccurs="1"/>

<xs:element name="coordinate_system" type="CoordinateSystemType" minOccurs="0" maxOccurs="1"/>

</xs:sequence>

<xs:attribute name="id" type="xs:string" use="required"/>

<xs:attribute name="map_type" type="LocalMapType" use="required"/>

<xs:attribute name="mdr_version" type="xs:string" use="required"/>

</xs:complexType>

<i__ ============================================================ __>

<xs:complexType name="LocalMapTransform">

<xs:sequence>

<xs:element name="uncertainty" minOccurs="0" maxOccurs="l" type="UncertaintyPose"/>

</xs:sequence>

<xs:attribute name="offset_x" type="xs:double" use="required"/>

<xs:attribute name="offset_y" type="xs:double" use="required"/>

<xs:attribute name="theta" type="xs:double" use="required"/>

</xs:complexType>

<xs:simpleType name="LocalMapType">

<xs:restriction base="xs:integer">

<xs:enumeration value="l" /> <!-- The number '1' means "GridMap". -->

<xs:enumeration value="2" /> <!-- The number '2' means "GeometricMap". -->

<xs:enumeration value="3" /> <!-- The number '3'means "TopologicalMap". -->

</xs:restriction>

</xs:simpleType>

<i__ ============================================================ __>

<xs:complexType name="CoordinateSystemType">

<xs:attribute name="EPSG_code" type="xs:string" use="optional"/>

<xs:attribute name="reference_local_map" type="xs:string" use="optional"/>

</xs:complexType>

<xs:complexType name="UncertaintyPose">

<xs:attribute name="covariance_xx" type="xs:double" use="required"/>

<xs:attribute name="covariance_yy" type="xs:double" use="required"/>

<xs:attribute name="covariance_thetatheta" type="xs:double" use="required"/>

<xs:attribute name="covariance_xy" type="xs:double" use="required"/>

<xs:attribute name="covariance_xtheta" type="xs:double" use="required"/>

<xs:attribute name="covariance_ytheta" type="xs:double" use="required"/>

</xs:complexType>

  • 6.3 Тип данных MapArray

Тип данных MapArray относится к сложным типам данных языка XSD, в котором элементы группы появляются в строго определенной последовательности, и предназначен для хранения экземпляров типа данных LocalMap, включая типы данных GridMap, TopologicalMap и GeometricMap. Тип данных MapArray представляет набор данных типа LocalMap.

  • <।— ============================================================ -_>

<xs:complexType name="MapArray">

<xs:choice minOccurs="0" maxOccurs="unbounded">

<xs:element name="grid_map" type="GridMap" minOccurs="0" maxOccurs="unbounded"/>

<xs:element name="geometric_map" type="GeometricMap" minOccurs="0" maxOccurs="unbounded"/>

<xs:element name="topological_map" type="TopologicalMap" maxOccurs="unbounded" minOccurs="0"/>

</xs:choice>

</xs:complexType>

Тип данных MapArray определяет тип данных Metadata, который является типом данных языка XSD со строго определенной последовательностью появления элементов группы, для хранения различных видов метаинформации, специфичной для текущей карты (см. таблицу 78).

  • <।— =========================================================== —>

<xs:complexType name="AuthorArray">

<xs:sequence>

<xs:element name="author" minOccurs="l" maxOccurs="unbounded" type="xs:string"/>

</xs:sequence>

</xs:complexType>

<xs:complexType name="Metadata">

<xs:sequence>

<xs:element name="authors" type="AuthorArray">

<xs:annotation>

<xs:documentation>

The author of the created map, e.g., Jane Doe.

</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="email" minOccurs="0">

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:pattern value="[Л@]+@[Л\.]+\..+"></xs:pattern>

</xs:restrict!on>

</xs:simpleType>

</xs:element>

<xs:element name="license" type="xs:string" minOccurs="0">

<xs:annotation>

<xs:documentation>

The license under which the map is published, e.g., GNU GPL.

</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="copyright_owner" type="xs:string" minOccurs="0">

<xs:annotation>

<xs:documentation>

The owner of the copyright, often an institution

</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="description" type="xs:string" minOccurs="0">

<xs:annotation>

<xs:documentation>

A verbal description of the map. For example the hardware used to create the map or any other useful description.

</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="map_location" type="xs:string" minOccurs="0">

<xs:annotation>

<xs:documentation>

A verbal description of the mapped location, e.g., 1st floor John Doe Building

</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="creation_date" type="xs:dateTime">

</xs:element>

<xs:element name="last_modified" type="xs:dateTime">

<xs:annotation>

<xs:documentation>

Last modified date to keep track of changes to the map.

</xs:documentation>

</xs:annotation>

</xs:element>

</xs:sequence>

</xs:complexType>

Таблица 18 — Подробное описание типа данных Metadata

Наименование атрибута

Описание

М/О

МО

Тип данных

Ссылка

authors

Имена создателей карты

М

N

string

[7]

email

Электронная почта создателя карты

О

1

string

[7]

license

Лицензия, под которой опубликована карта

О

1

string

[7]

copyright_owner

Правообладатель карты

О

1

string

[7]

description

Текстовое описание карты и дополнительная информация, например, какое программное/ аппаратное обеспечение было использовано. Также здесь может быть приведена информация об ID робота, получающего данные карты

О

1

string

[7]

mapjocation

Текстовое описание внешней среды, которую представляет данная карта. Например: Second floor, Lakeside Park B02, Alpen-Adria-Uni-versitat Klagenfurt

О

1

string

[7]

creation_date

Время и дата создания карты

м

1

dateTime

[7]

last_modified

Время последнего изменения карты

м

1

dateTime

[7]

6.4 Класс GridMap

Следующая XML-схема реализует класс GridMap наряду с типами данных GridCell и PaletteElement. Типы данных GridCellArray и PaletteElementArray со строго определенной последовательностью появления элементов группы введены для хранения элементов типов данных GridCell и PaletteElement, используемых в типе данных GridMap, соответственно.

<xs:complexType name="GridMap">

<xs:complexContent>

<xs:extension base="LocalMap">

<xs:sequence>

<xs:element name="palette_elements" minOccurs="0" maxOccurs="1" type="PaletteElementArray"/>

<xs:element name="cells" type="GridCellArray"/>

</xs:sequence>

<xs:attribute name="resolution" type="xs:double" use="required"/>

<xs:attribute name="num_cells_x" type="xs:unsignedlnt" use="required"/>

<xs:attribute name="num_cells_y" type="xs:unsignedlnt" use="required"/>

</xs:extension>

</xs:complexContent>

  • < i— ============================================================ —>

<xs:complexType name="GridCell">

<xs:attribute name="x" type="xs:integer" use="required"/>

<xs:attribute name="y" type="xs:integer" use="required"/>

<xs:attribute name="height" type="xs:unsignedlnt" use="optional" default="1"/>

<xs:attribute name="width" type="xs:unsignedlnt" use="optional" default="1"/>

<xs:attribute name="value" type="xs:double" use="required"/>

</xs:complexType>

  • < i— ============================================================ —>

<xs:complexType name="GridCellArray">

<xs:sequence>

<xs:element name="cell" minOccurs="l" maxOccurs="unbounded" type="GridCell"/>

</xs:sequence>

</xs:complexType>

  • < i— =========================================================== —>

<xs:complexType name="PaletteElement">

<xs:attribute name="value_start" type="xs:double" use="required" />

<xs:attribute name="value_end" type="xs:double" use="optional" />

<xs:attribute name="meaning" type="xs:string" use="required" />

</xs:complexType>

  • < i— ============================================================ —>

<xs:complexType name="PaletteElementArray">

<xs:sequence>

<xs:element name="palette" minOccurs="0" maxOccurs="unbounded" type="PaletteElement"/>

</xs:sequence>

</xs:complexType>

  • 6.5 Класс GeometricMap

Следующая XML-схема реализует класс GeometricMap наряду с типами данных Point, LineSeg-ment, UncertaintyPoint и UncertaintyLineSegment. Введен тип данных GeometricElementArray со строго определенной последовательностью появления элементов группы для хранения элементов типов данных Point и LineSegment, используемых в типе данных GeometricMap.

  • < ।—============================================================ —>

<xs:complexType name="GeometricMap">

<xs:complexContent>

<xs:extension base="LocalMap">

<xs:sequence>

<xs:element name="elements" type="GeometricElementArray"/>

</xs:sequence>

</xs:extension>

</xs:complexContent>

  • < i__============================================================ __

<xs:complexType name="Point">

<xs:sequence>

<xs:element name="uncertainty" minOccurs="0" maxOccurs="l" type="UncertaintyPoint"/>

</xs:sequence>

<xs:attribute name="x" type="xs:double" use="required"/>

<xs:attribute name="y" type="xs:double" use="required"/>

</xs:complexType>

<xs:complexType name="LineSegment">

<xs:sequence>

<xs:element name="uncertainty" minOccurs="0" maxOccurs="1" type="UncertaintyLineSegment"/>

</xs:sequence>

<xs:attribute name="rho" type="xs:double" use="required"/>

<xs:attribute name="alpha" type="xs:double" use="required"/>

<xs:attribute name="psi_a" type="xs:double" use="required"/>

<xs:attribute name="psi_b" type="xs:double" use="required"/>

</xs:complexType>

<xs:complexType name="GeometricElementArray">

<xs:choice minOccurs="0" maxOccurs="unbounded">

<xs:element name="point" type="Point"/>

<xs:element name="line_segment" type="LineSegment"/>

</xs:choice>

</xs:complexType>

  • < i__============================================================ __>

<xs:complexType name="UncertaintyPoint">

<xs:attribute name="covariance_xx" type="xs:double" use="required"/>

<xs:attribute name="covariance_xy" type="xs:double" use="required"/>

<xs:attribute name="covariance_yy" type="xs:double" use="required"/>

</xs:complexType>

<xs:complexType name="UncertaintyLineSegment">

<xs:attribute name="covariance_rhorho" type="xs:double" use="required"/>

<xs:attribute name="covariance_rhoalpha" type="xs:double" use="required"/>

<xs:attribute name="covariance_rhopsi_a" type="xs : double" use="required"/>

<xs:attribute name="covariance_rhopsi_b" type="xs : double" use="required"/>

<xs:attribute name="covariance_alphaalpha" type="xs:double" use="required"/>

<xs:attribute name="covariance_alphapsi_a" type="xs:double" use="required"/>

<xs:attribute name="covariance_alphapsi_b" type="xs : double" use="required"/>

<xs:attribute name="covariance_psi_apsi_a" type="xs:double" use="required"/>

<xs:attribute name="covariance_psi_apsi_b" type="xs:double" use="required"/>

<xs:attribute name="covariance_psi_bpsi_b" type="xs:double" use="required"/>

</xs:complexType>

  • 6.6 Класс TopologicalMap

Следующая XML-схема реализует класс TopologicalMap наряду с типами данных Node, Edge и Property. Типы данных NodeArray, EdgeArray и PropertyArray со строго определенной последовательностью появления элементов группы введены для хранения элементов типов данных Node, Edge и Property, используемых в типе данных TopologicalMap, соответственно. Также введен новый тип данных Connected-EdgesArray со строго определенной последовательностью появления элементов группы для хранения ID дуг, соединенных с узлом.

  • < !— ============================================== —>

<xs:complexType name="TopologicalMap">

<xs:complexContent>

<xs:extension base="LocalMap">

<xs:sequence>

<xs:element name="nodes" type="NodeArray"/>

<xs:element name="edges" type="EdgeArray"/>

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>

  • < i— ============================================================ -->

<xs:complexType name="Node">

<xs:sequence>

<xs:element name="location" type="Point" minOccurs="0" maxOccurs="1"/>

<xs:element name="properties" minOccurs="0" maxOccurs="1" type="PropertyArray"/>

<xs:element name="connected_edges" minOccurs="0" maxOccurs="1" type="ConnectedEdgesArray"/>

</xs:sequence>

<xs:attribute name="id" type="xs:string" use="required"/>

<xs:attribute name="property_num" type="xs:unsignedlnt" use="optional" />

</xs:complexType>

  • < i— ============================================================ -->

<xs:complexType name="NodeArray">

<xs:sequence>

<xs:element name="node" minOccurs="0" maxOccurs="unbounded" type="Node"/>

</xs:sequence>

</xs:complexType>

  • < i— ============================================================ —>

<xs:complexType name="Edge">

<xs:sequence>

<xs:element name="properties" minOccurs="0" maxOccurs="1" type=«PropertyArray"/>

</xs:sequence>

<xs:attribute name="id" type="xs:string" use="required"/>

<xs:attribute name="property_num" type="xs:unsignedlnt" use="optional" />

<xs:attribute name="head_node" type="xs:string" use="required"/>

<xs:attribute name="tail_node" type="xs:string" use="required"/>

</xs:complexType>

<xs:complexType name="EdgeArray">

<xs:sequence>

<xs:element name="edge" minOccurs="0" maxOccurs="unbounded" type="Edge"/>

</xs:sequence>

</xs:complexType>

<xs:complexType name="Property">

<xs:sequence>

<xs:element name="name" type="xs:string"/>

<xs:element name="value" type="xs:base64Binary"/>

<xs:element name="typename" type="xs:string"/>

<xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/>

</xs:sequence>

</xs:complexType>

<i__ ============================================================ __>

<xs:complexType name="PropertyArray">

<xs:sequence>

<xs:element name="property" minOccurs="0" maxOccurs="unbounded" type="Property"/>

</xs:sequence>

</xs:complexType>

<xs:complexType name="ConnectedEdgesArray">

<xs:sequence>

<xs:element name="edge_id" minCccurs="O" maxOccurs="unbounded" type="xs:string"/>

</xs:sequence>

</xs:complexType>

Приложение А (справочное)

Пример представления картографических данных на языке XML

В данном приложении показан пример представления картографических данных на языке XML, описывающий небольшую комнату. Данный пример представлен в соответствии с XML-схемой, описанной в разделе 6. Предполагается, что размер комнаты составляет 2 х 2 м. В центре комнаты стоит Г-образный стол. Стол и стены комнаты моделируются с использованием типов данных GridCell и GeometricElement, которые скомпонованы из элементов Point и LineSegment. Кроме того, в данном примере использована топологическая карта. Отдельные узлы данной топологической карты являются маршрутными точками для навигации робота. На рисунке А. 1 показано графическое представление пространственной структуры (т. е. карты), соответствующей приведенному ниже примеру на языке XML.

0

0,2 см


Ячейка сетки

  • - ячейка занята;

  • - ячейка свободна

Геометрические элементы

• -точка;

---- сегмент линии

Топологические элементы ■ -узел;

--дуга

Рисунок А.1 — Графическое представление пространственной структуры (карты)

Пример для данного приложения был разработан с использованием XSD-редактора Eclipse для проверки и синтаксического анализа XML-документов и схем. В частности, данный пример был проверен в соответствии с XML-схемой стандарта MDR.

Примечание — Дополнительная информация о редакторе Eclipse размещена на сайте https://www. eclipse.org.

<?xml version="1.О" encoding="UTF-

<mdr:maps xmlns:mdr="http://www.example.org/mdr"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.example.org/mdr MDR_schema.xsd "> <grid_map id="GridMap" maptype="l" num_cells_x="10" num_cells_y="10" Resolution="0.2"> <metadata> <author>

Jane Doe

</author>

<email> jane@example.com

</email>

<license>

This map data is free document; you can redistribute and/or modify it under the terms of the GNU Library General Public License as published by the Free

Software Foundation; either version 2 of the License, or (at your option) any later version. </license> <copyright_owner>

MDR committee

</copyright_owner>

<description>

The size of a room is 2m x 2m. There is an L-shaped table at the center of room. The table and walls of the room are modelled by GridCells and GeometricElements, which are composed of Points and LineSegments, in the XML sample. As additional information, the XML sample includes a topological map. Individual nodes in the sample topological map represent way points for robot navigations.

</description>

<map_location>

1st floor John Doe Building

</map_location>

<creation_date>

2014-07-01T21:10:50

</creation_date>

<last_modified>

2014-08-01T21:10:50

</last_modified>

</metadata> coffset offset_x="0.0" offset_y="0.0" theta="0.0">

<uncertainty covariance_xx="0.0" covariance_yy="0.0" covariance_thetatheta="0.0" covariance_xy="0.0" covariance_xtheta="0.0" covariance_ytheta="0.0"/>

</offset>

<coordinate_system />

<palette_elements>

<palette value_start="0" value_end="255" meaning="This value, 0...255,

is correspond to probability, 0.0...1.0."/>

</palette_elements>

<cells>

  • < !-- Wall Cells -->

<cell x="0" y="0" width="l" height="10" value="255"/>

<cell x="l" y="0" width="8" height="l" value="255"/>

<cell x="9" y="0" width="l" height="10" value="255"/>

<cell x="l" y="9" width="6" height="l" value="255"/>

  • < !—Table Cells -->

<cell x="3" y="3" width="2" height="4" value="255"/>

<cell x="5" y="3" width="2" height="2" value="255"/>

  • < !-- Free Space Cells -->

<cell x="l" y="l" width="2" height="8" value="0"/>

<cell x="3" y="l" width="4" height="2" value="0"/>

<cell x="7" y="l" width="2" height="4" value="0"/>

<cell x="3" y="7" width="2" height="2" value="0"/>

<cell x="5" y="5" width="4" height="4" value="0"/>

<cell x="7" y="9" width="2" height="l" value="0"/>

</cells>

</grid_map>

<geometric_map id="GeometricMap" maptype="2">

coffset offset_x="0.0" offset_y="0.0" theta="0.0">

Cuncertainty covariance_xx="0.0" covariance_yy="0.0" covariance_thetatheta="0.0"

covariance_xy="0.О" covariance_xtheta="0.О" covariance_ytheta="0.0"/>

</offset>

ccoordinate_system />

<elements>

<!-- Wall Corners -->

cpoint x="0.2" y="0.2">

<uncertainty covariance_xx="0.1" covariance_xy="0.0" covariance_yy="0.l"/> </point>

cpoint x="0.2" y="1.8">

cuncertainty covariance_xx="0.1" covariance_xy="0.0" covariance_yy="0.1"/ c/point>

cpoint x="1.4" y="1.8">

cuncertainty covariance_xx="0.1" covariance_xy="0.0" covariance_yy="0.l"/> c/point>

cpoint x="1.4" y="2.0">

cuncertainty covariance_xx="0.1" covariance_xy="0.0" covariance_yy="0.l"/> c/point>

cpoint x="1.8" y="2.0">

cuncertainty covariance_xx="0.1" covariance_xy="0.0" covariance_yy="0.1"/> c/point>

cpoint x="1.8" y="0.2">

cuncertainty covariance_xx="0.1" covariance_xy="0.0" covariance_yy="0.1"/> c/point>

c!-- Table Corners --> cpoint x="0.6" y="0.6"> cuncertainty covariance_xx="0.1" covariance_xy="0.0" covariance_yy="0.l"/> c/point> cpoint x="0.6" y="1.4">

Cuncertainty covariance_xx="0.1" covariance_xy="0.0" covariance_yy="0.1"/> c/point> cpoint x="1.0" y="1.4">

cuncertainty covariance_xx="0.1" covariance_xy="0.0" covariance_yy="0.1"/ c/point> cpoint x="1.0" y="1.0">

cuncertainty covariance_xx="0.1" covariance_xy="0.0" covariance_yy="0.l"/> c/point> cpoint x="1.4" y="1.0">

cuncertainty covariance_xx="0.1" covariance_xy="0.0" covariance_yy="0.1"/> c/point> cpoint x="1.4" y="0.6">

cuncertainty covariance_xx="0.1" covariance_xy="0.0" covariance_yy="0.1"/> c/point>

Wall Edges -->

cline_segment rho="0.2" alpha="90.0" psi_a="0.2" psi_b="1.8"> Cuncertainty

covariance_rhorho ="0.1" covariance_rhoalpha ="0.0"

covariance_rhopsi_a ="0.0" covariance_rhopsi_b ="0.0" covariance_alphaalpha="0.1" covariance_alphapsi_a="0.0" covariance_alphapsi_b="0.0" covariance_psi_apsi_a="0.1" covariance_psi_apsi_b="0.0" covariance_psi_bpsi_b="0.l"/> c/line_segment> cline_segment rho="0.2" alpha="0.00" psi_a="0.2" psi_b="1.8"> cuncertainty

covariance_rhorho ="0.1" covariance_rhoalpha ="0.0"

covariance_rhopsi_a ="0.0" covariance_rhopsi_b ="0.0"

covariance_alphaalpha="0.1" covariance_alphapsi_a="0.0" covariance_alphapsi_b="0.0" covariance_psi_apsi_a="0.1" covariance_psi_apsi_b="0.0" covariance_psi_bpsi_b="0.l"/> </line_segment> cline_segment rho="1.8" alpha="90.0" psi_a="0.2" psi_b="1.4"> Cuncertainty

covariance_rhorho ="0.1" covariance_rhoalpha ="0.0"

covariance_rhopsi_a ="0.0" covariance_rhopsi_b ="0.0" covariance_alphaalpha="0.1" covariance_alphapsi_a ="0.0" covariance_alphapsi_b="0.0" covariance_psi_apsi_a ="0.1" covariance_psi_apsi_b="0.0" covariance_psi_bpsi_b ="0.1"/> </line_segment> <line_segment rho="1.4" alpha="0.00" psi_a="1.8" psi_b="2.0"> cuncertainty

covariance_rhorho ="0.1" covariance_rhoalpha ="0.0"

covariance_rhopsi_a ="0.0" covariance_rhopsi_b ="0.0" covariance_alphaalpha="0.1" covariance_alphapsi_a ="0.0" covariance_alphapsi_b="0.0" covariance_psi_apsi_a ="0.1" covariance_psi_apsi_b="0.0" covariance_psi_bpsi_b ="0.1"/> c/line_segment> cline_segment rho="1.8" alpha="0.00" psi_a="0.2" psi_b="2.0"> cuncertainty

covariance_rhorho ="0.1" covariance_rhoalpha ="0.0"

covariance_rhopsi_a ="0.0" covariance_rhopsi_b ="0.0"

covariance_alphaalpha="0.1" covariance_alphapsi_a ="0.0" covariance_alphapsi_b="0.0" covariance_psi_apsi_a ="0.1" covariance_psi_apsi_b="0.0" covariance_psi_bpsi_b ="0.1"/> c/line_segment>

c!-- Table Edges -->

cline_segment rho="0.6" alpha="90.0" psi_a="0.6" psi_b="1.4"> cuncertainty

covariance_rhorho ="0.1" covariance_rhoalpha ="0.0"

covariance_rhopsi_a ="0.0" covariance_rhopsi_b ="0.0" covariance_alphaalpha="0.1" covariance_alphapsi_a="0.0" covariance_alphapsi_b="0.0" covariance_psi_apsi_a="0.1" covariance_psi_apsi_b="0.0" covariance_psi_bpsi_b="0.1"/> c/line_segment>

cline_segment rho="0.6" alpha="0.00" psi_a="0.6" psi_b="1.4"> cuncertainty

covariance_rhorho ="0.1" covariance_rhoalpha ="0.0"

covariance_rhopsi_a ="0.0" covariance_rhopsi_b ="0.0"

covariance_alphaalpha="0.1" covariance_alphapsi_a="0.0"

covariance_alphapsi_b="0.0" covariance_psi_apsi_a="0.1"

covariance_psi_apsi_b="0.0" covariance_psi_bpsi_b="0.1"/> c/line_segment>

cline_segment rho="1.4" alpha="90.0" psi_a="0.6" psi_b="1.0"> Cuncertainty

covariance_rhorho ="0.1" covariance_rhoalpha ="0.0"

covariance_rhopsi_a ="0.0" covariance_rhopsi_b ="0.0"

covariance_alphaalpha="0.1" covariance_alphapsi_a="0.0"

covariance_alphapsi_b="0.0" covariance_psi_apsi_a="0.1"

covariance_psi_apsi_b="0.0" covariance_psi_bpsi_b="0.1"/> c/line_segment>

cline_segment rho="1.0" alpha="0.00" psi_a="1.0" psi_b="1.4"> cuncertainty

covariance_rhorho ="0.1" covariance_rhoalpha ="0.0" covariance_rhopsi_a ="0.0" covariance_rhopsi_b ="0.0" covariance_alphaalpha="0.1" covariance_alphapsi_a="0.0" covariance_alphapsi_b="0.0" covariance_psi_apsi_a="0.1" covariance_psi_apsi_b="0.0" covariance_psi_bpsi_b="0.1"/>

</line_segment>

<line_segment rho="1.0" alpha="90.0" psi_a="1.0" psi_b="1.4"> cuncertainty

covariance_rhorho ="0.1" covariance_rhoalpha ="0.0" covariance_rhopsi_a ="0.0" covariance_rhopsi_b ="0.0" covariance_alphaalpha="0.1" covariance_alphapsi_a="0.0" covariance_alphapsi_b="0.0" covariance_psi_apsi_a="0.1"

covariance_psi_apsi_b="0.0" covariance_psi_bpsi_b="0.1"/>

</line_segment>

<line_segment rho="1.4" alpha="0.00" psi_a="0.6" psi_b="1.0"> Cuncertainty

covariance_rhorho ="0.1" covariance_rhoalpha ="0.0" covariance_rhopsi_a ="0.0" covariance_rhopsi_b ="0.0" covariance_alphaalpha="0.1" covariance_alphapsi_a="0.0" covariance_alphapsi_b="0.0" covariance_psi_apsi_a="0.1"

covariance_psi_apsi_b="0.0" covariance_psi_bpsi_b="0.1"/>

</line_segment>

</elements>

</geometric_map> <topological_map id="Topological Map" maptype="3"> coffset offset_x="0.0" offset_y="0.0" theta="0.0"> cuncertainty

covariance_xx="0.0" covariance_yy="0.0" covariance_thetatheta="0.0" covariance_xy="0.0" covariance_xtheta="0.0" covariance_ytheta="0.0"/>

</offset>

ccoordinate_system />

<nodes>

cnode id="node0" property_num="0"xlooation x="1.6" y="l.9"/></node> cnode id="nodel" property_num="0"xlocation x="1.4" y=" 1.4"/x/node>

cnode id="node2" property_num="0"xlooation x="0.8" y="1.6"/>c/node>

cnode id="node3" property_num="0"xlocation x="0.4" y="l. 0"/x/node> cnode id="node4" property_num="0"xlocation x="1.0" y="0.4"/x/node>

cnode id="node5" property_num="l">

clocation x="1.6" y="0.6"/>

cproperties>

cproperty>

cname>DistNearestc/name>

cvalue>MC4xc/value>

ctypename>floatc/typename>

cdescription>Distance to the nearest obstaclec/description>

c/property> c/properties> c/node>

c/nodes>

cedges>

cedge id="edge0" property_num="0" head_node="node0" tail_node="nodel"x/edge>

cedge id="edgel" property_num="0" head_node="nodel" tail_node="node2"x/edge>

cedge id="edge2" property_num="0" head_node="node2" tail_node="node3"x/edge>

cedge id="edge3" property_num="0" head_node="node3" tail_node="node4">c/edge>

cedge id="edge4" property_num="0" head_node="node4" tail_node="node5"x/edge>

<edge id="edge5" property_num="2" head_node="node5" tail_node="nodel" <properties>

<property>

<name>EdgeLength</name>

<value>MC4 3MDcx</value>

<typename>float</typename>

<description>Edge length in meter unit</description>

</property>

<property>

<name>EdgeWidth</name>

<value>MC4 z</value>

<typename>float</typename>

<description>

Minimum distance between the boundary wall of a long hall way which is defined as an edge

</description>

</property>

<properties>

</edge>

</edges>

</topological_map> </mdr:maps>

Приложение ДА (справочное)

Сведения о соответствии ссылочных национальных стандартов международным стандартам, использованным в качестве ссылочных в примененном стандарте

Таблица ДА.1

Обозначение ссылочного национального стандарта

Степень соответствия

Обозначение и наименование ссылочного международного стандарта

ГОСТ Р 60.0.0.4—2023/ИСО 8373:2021

IDT

ISO 8373:2021 «Робототехника. Словарь»

Примечание — В настоящей таблице использовано следующее условное обозначение степени соответствия стандарта:

- IDT — идентичный стандарт.

Библиография

[7] ИСО 19128:2005


Географическая информация. Интерфейс картографического веб-сервера (Geographic information — Web тар server interface)

  • [2] ИСО 19136-1:2020 Гэографическая информация. Гэографический язык разметки (GML). Часть 1. Основные

положения [Geographic information Geography Markup Language (GML) Part 1: Fundamentals]

  • [3] Язык городской географической разметки OGC (CityGML). Часть 1: Стандарт концептуальной модели [OGC City Geography Markup Language (CityGML) Part 1: Conceptual Model Standard] http://docs.ogc.org/is/20-010/20-010.html

  • [4] Стандарт OGC на пространственную информацию внутри помещений (OGC Standard for Indoor Spatial Information) http://docs.opengeospatial.org/is/14-005r5/14-005r5.html

  • [5] ИСО/МЭК 9899:2018 Информационные технологии. Языки программирования. Си (Information technology —

Programming languages — C)

  • [6] ИСО/МЭК 10646:2020 Информационные технологии. Универсальный набор кодированных символов (UCS)

[Information technology— Universal Coded Character Set (UCS)]

  • [7] Язык определения схемы W3C XML (XSD) 1.1 Часть 2. Типы данных, Рекомендация W3C 5 апреля 2012 [W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes, W3C Recommendation 5 April 2012]

    УДК 007.52:004.622:006.72:006.354


ОКС 25.040.30

35.240.99

Ключевые слова: роботы, робототехнические устройства, представление картографических данных, навигация роботов, карта робота, карта с координатной сеткой, метрическая карта, топологическая карта

Редактор М.В. Митрофанова Технический редактор В.Н. Прусакова Корректор И.А. Королева Компьютерная верстка Е.О. Астатина

Сдано в набор 04.09.2023. Подписано в печать 13.09.2023. Формат 60x84%. Гарнитура Ариал. Усл. печ. л. 4,18. Уч.-изд. л. 3,76.

Подготовлено на основе электронной версии, предоставленной разработчиком стандарта

Создано в единичном исполнении в ФГБУ «Институт стандартизации» , 117418 Москва, Нахимовский пр-т, д. 31, к. 2.