ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0001] Варианты осуществления настоящего изобретения в целом относятся к автоматизации промышленных транспортных средств и, более конкретно, к способу и системе определения точного местонахождения промышленного транспортного средства.
УРОВЕНЬ ТЕХНИКИ
[0002] Различные организации осуществляют на регулярной основе работу различных предприятий для решения задач, связанных с поставками и/или с запросами на поставку. Например, малые и большие компании, государственные организации и/или другие организационные единицы используют различные системы управления запасами и перемещениями этих запасов (например, сырьевые материалы, товары, машины и т.п.) в различных физических средах (например, на складах, в холодильных помещениях, на заводах и фабриках, в магазинах и т.п.). Транснациональные компании могут создавать склады в одной стране для хранения сырья, из которого производятся товары, перемещаемые для хранения на складе в другой стране для распространения на местных рынках. Склады должны быть хорошо организованы, чтобы поддерживать и/или улучшать производство и продажи. Если не обеспечивается оптимальная доставка сырья на завод, то производится меньше товаров. Таким образом, будут недополучены доходы за непроизведенные товары, в результате чего не будут компенсированы расходы на сырье.
[0003] К сожалению, физическая среда, такая как, например, складские помещения, накладывает различные ограничения, которые затрудняют своевременное выполнение различных задач. Складские помещения и другие совместно используемые площади должны быть безопасными для персонала. Некоторые работники управляют мощным оборудованием и промышленными транспортными средствами, такими как, вильчатые погрузчики, которые могут нанести людям тяжелые повреждения, в том числе и со смертельным исходом. Тем не менее, участие рабочих необходимо для управления промышленными транспортными средствами для выполнения различных производственных задач, таких как перемещение поддонов с товарами с одних мест на другие места в складских помещениях. В большинстве складов используется большое количество вильчатых погрузчиков, управляемых водителями, для перемещения различных грузов. Для повышения производительности на этих складах просто увеличивают количество таких погрузчиков, и, соответственно, увеличивается число водителей.
[0004] Для смягчения вышеуказанных проблем на некоторых складах используют оборудование автоматизации выполнения этих задач. Например, на этих складах могут использоваться автоматизированные промышленные транспортные средства, такие как вильчатые погрузчики, для перемещения грузов по различным маршрутам. При автоматизации промышленных транспортных средств ключевым требованием является возможность определения точного местонахождения транспортного средства на складе, и для обеспечения выполнения этой задачи часто используется большое количество датчиков для определения положения транспортного средства (координаты x, y и ориентация) в физической среде. В одном из решений для измерения расстояний до определенных маркеров используется поворачивающийся лазер или неподвижная камера. Однако недостаток такого решения заключается в необходимости проведения топографических работ в среде для измерения глобальных координат маркеров, что увеличивает время развертывания системы и ее стоимость. В другом решении используются трехмерные датчики, такие как трехмерные лазеры и/или камеры, для определения местонахождения промышленных транспортных средств. Однако в таком решении необходимо выполнять сложные вычисления, объем которых увеличивается при использовании увеличенных массивов информации, и в тех случаях когда используются опорные карты, необходимы значительные расходы и затраты времени на создание и проверку точности таких карт.
[0005] Поэтому существует потребность в способе и системе определения точного местонахождения с использованием двухмерных датчиков на промышленном транспортном средстве.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
В настоящем изобретении предложены способ и система определения точного местонахождения промышленного транспортного средства, включающие: обработку по меньшей мере одного входного сообщения от множества датчиков, причем указанное по меньшей мере одно входное сообщение содержит информацию, относящуюся к наблюдаемым деталям окружающей обстановки; получение измерений положения, связанных с промышленным транспортным средством, в соответствии по меньшей мере с одним входным сообщением датчика, причем множество датчиков включает двухмерный лазерный сканер и по меньшей мере один другой датчик, выбранный из группы, состоящей из одометра, ультразвукового датчика, компаса, акселерометра, гироскопа, инерциального измерительного блока и датчика изображений; и обновление состояния транспортного средства с использованием измерений его положения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0006] Для того чтобы можно было лучше понять вышеуказанные особенности настоящего изобретения, кратко охарактеризованного в предыдущем разделе, ниже приводится подробное описание изобретения на примерах некоторых вариантов, которые иллюстрируются на прилагаемых чертежах. Однако следует отметить, что прилагаемые чертежи иллюстрируют только типичные варианты осуществления изобретения и поэтому не должны рассматриваться как ограничения его объема, поскольку возможны и другие, в равной степени эффективные, варианты.
[0007] Фигура 1 - схематический вид в перспективе физической среды, в которой могут быть реализованы различные варианты осуществления настоящего изобретения.
[0008] Фигура 2 - схематический вид в перспективе вильчатого погрузчика, предназначенного для навигации в физической среде для выполнения различных задач по одному или нескольким вариантам.
[0009] Фигура 3 - структурная блок-схема системы, обеспечивающей определение точного положения промышленного транспортного средства по одному или нескольким вариантам.
[0010] Фигура 4 - функциональная блок-схема системы, обеспечивающей определение точного местонахождения промышленного транспортного средства по одному или нескольким вариантам.
[0011] Фигура 5 - схема, иллюстрирующая ошибки, связанные с движением транспортного средства внутри физической среды, по одному или нескольким вариантам
[0012] Фигура 6 - схема двухмерного лазерного сканера, осуществляющего сканирование в пределах зоны обзора по одному или нескольким вариантам.
[0013] Фигуры 7А, 7В - схемы взаимодействия, иллюстрирующие процесс определения местонахождения для промышленного транспортного средства по одному или нескольким вариантам.
[0014] Фигура 8 - пример временной диаграммы, иллюстрирующей обработку входного сообщения датчика по одному или нескольким вариантам.
[0015] Фигура 9 - часть схемы обработки входного сообщения датчика по одному или нескольким вариантам.
[0016] Фигура 10 - функциональная блок-схема, иллюстрирующая процесс определения местонахождения, а также составления и поддержания карты для определения местонахождения промышленного транспортного средства внутри физической среды по одному или нескольким вариантам.
[0017] Фигура 11 - блок-схема способа, обеспечивающего определение точного местонахождения промышленного транспортного средства по одному или нескольким вариантам.
[0018] Фигура 12 - блок-схема способа обновления состояния транспортного средства для промышленного транспортного средства с использованием фильтра по одному или нескольким вариантам.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0019] На фигуре 1 представлен схематический вид в перспективе физической среды 100, в которой могут быть реализованы различные варианты настоящего изобретения.
[0020] В некоторых вариантах физическая среда 100 содержит транспортное средство 102, соединенное с мобильным компьютером 104, центральный компьютер 106, а также группу 108 датчиков. Группа 108 датчиков содержит множество устройств для анализа различных объектов в физической среде 100 и передачи данных (например, двухмерных данных дальности, трехмерных данных дальности, информации изображений, видеоданных, данных о пройденном расстоянии (одометрических данных), данных ультразвукового дальномера, данных акселерометра, данных гироскопа, данных инерциального измерительного блока и т.п.) в мобильный компьютер 104 и/или в центральный компьютер 106, как это будет описано ниже. Группа 108 датчиков включает различные датчики, такие как, например, лазерные дальномеры, кодовые датчики положения, ультразвуковые дальномеры, камеры, датчики давления, компас, акселерометры, гироскопы, инерциальные измерительные блоки и т.п.
[0021] Физическая среда 100 содержит также пол 110, на котором расположено множество объектов. Эти объекты включают поддоны 112, множество единиц 114 хранения и/или другие объекты, указанные ниже. Физическая среда 100 также содержит различные препятствия (не показаны), мешающие нормальной работе транспортного средства 102. Некоторые объекты могут представлять собой препятствия для транспортных средств при их движении по различным маршрутам (например, по заранее запрограммированным или динамически расчитываемым маршрутам), если такие объекты нарушают выполнение задачи.
[0022] Физическая среда 100 также содержит множество маркеров 116. Множество маркеров 116 показаны как объекты, прикрепленные к потолку или к полу 110, однако они могут быть расположены и в других местах физической среды 100. В некоторых вариантах маркеры 116 представляют собой маячки, которые обеспечивают навигацию в физической среде, как это описано ниже. Множество маркеров 116, а также другие объекты, находящиеся в физической среде 100, являются деталями окружающей обстановки. Мобильный компьютер 104 извлекает информацию по этим деталям и определяет точное текущее положение транспортного средства.
[0023] Физическая среда 100 может быть складом или холодильным помещением для складирования множества единиц 114 хранения, подготавливаемых для транспортировки. На складе могут быть погрузочно-разгрузочные площадки для погрузки и разгрузки множества единиц хранения, транспортируемых коммерческими транспортными средствами, по железной дороге, по воздуху и/или по воде. Единицы 114 хранения обычно представляют собой различные товары, продукты, и/или сырьевые материалы, и т.п. Например, множество единиц 114 хранения могут быть потребительскими товарами, размещенными на стандартных ISO-поддонах, установленных вильчатыми погрузчиками на стеллажи, для последующей доставки в розничные магазины. Транспортное средство 102 участвует в обеспечении такой доставки путем перемещения потребительских товаров в указанные места, из которых их могут забрать коммерческие транспортные средства (например, грузовые автомобили) для последующей доставки этих товаров в один или несколько пунктов назначения.
[0024] В соответствии с одним или несколькими вариантами осуществления изобретения транспортное средство 102 может быть транспортным средством с автоматическим управлением, таким как автоматический вильчатый погрузчик, который приспособлен для обработки и/или перемещения множества единиц 114 хранения по полу НО. Транспортное средство 102 использует один или несколько подъемных органов, таких как вилочный захват, для подъема одного или нескольких единиц 114 хранения с последующей их транспортировкой по некоторому маршруту для размещения в заданном месте. В других вариантах одна или несколько единиц 114 хранения могут быть размещены на поддоне 112, который поднимается транспортным средством 102 и перемещается в заданное место.
[0025] Поддон 112 представляет собой плоскую транспортную конструкцию для удерживания товаров в устойчивом положении при подъеме транспортным средством 102 и/или другим подъемным устройством (например, устройством для подъема поддонов и/или фронтальным погрузчиком). Поддон 112 является несущим основанием для грузов, обеспечивающим их эффективную перевалку и хранение. Различные поддоны 112 могут использоваться в системе стеллажей (не показаны). В некоторых системах стеллажей используются роликовые или гравитационные транспортеры для подачи вперед одной или нескольких единиц 114 хранения на одном или нескольких поддонах 112. Один или несколько поддонов 112 подаются вперед, пока они не будут остановлены замедляющим устройством, физическим ограничителем или другим поддоном 112.
[0026] В некоторых вариантах мобильный компьютер 104 и центральный компьютер 106 - это вычислительные устройства, управляющие транспортным средством 102 для выполнения различных задач в физической среде 100. Мобильный компьютер 104 приспособлен для соединения с транспортным средством 102. Мобильный компьютер 104 может также принимать и объединять данные (например, информацию лазерного сканера, информацию изображений и/или другие данные от различных датчиков), поступающие из группы 108 датчиков. Различные программные модули в мобильном компьютере 104 управляют работой компонентов оборудования, связанного с транспортным средством 102, как это будет описано ниже.
[0027] На фигуре 1 иллюстрируется производственная площадка с вильчатыми погрузчиками, снабженными различными датчиками, такими как лазерные сканеры, кодовые датчики положения или камеры. Как это будет описано ниже, мобильный компьютер 104 рассчитывает изменение положения транспортного средства, используя ряд измерений, таких как число оборотов колеса. С колесами соединен один или несколько датчиков, обеспечивающих независимое измерение расстояния, пройденного каждым колесом, и по этой информации рассчитывается расстояние, пройденное транспортным средством (одометрическая информация). В других вариантах для измерения пройденного расстояния может использоваться инерциальный измерительный блок. Один или несколько двухмерных лазерных сканеров обеспечивают информацию о деталях физической среды 100 в форме измерений дальности до них и соответствующих углов, под которыми эти детали видны с транспортного средства 102. По информации, полученной от лазерных сканеров, мобильный компьютер 104 просчитывает характеристики деталей окружающей обстановки, то есть, определяет прямые линии, углы, дуги, маркеры и т.п. Камера может обеспечивать трехмерную информацию, включая измерения высоты. По данным, полученным от камеры, можно также на основе различных характеристик, таких как цвет, размер, глубина, положение, ориентация, текстура и т.п., определить ориентиры в дополнение к выделенным деталям.
[0028] Используя фильтр (например, обобщенный калмановский фильтр (EKF)), мобильный компьютер 104 воспроизводит положение транспортного средства в плоскости (координаты x, y и направление движения транспортного средства 102) как плотность распределения вероятности. Одометрическая информация используется для обновления расчетного положения транспортного средства, и детали окружающей обстановки, полученные по информации лазерных сканеров, могут быть сравнены с известной картой, которая содержит известные детали, и/или с перечнем динамических деталей, которые поддерживаются фильтром, для коррекции ошибок определения положения транспортного средства.
[0029] На фигуре 2 представлен схематический вид в перспективе вильчатого погрузчика 200, который может использоваться для выполнения различных задач в физической среде по одному или нескольким вариантам осуществления настоящего изобретения.
[0030] Вильчатый погрузчик 200 (то есть, автопогрузчик с вертикальной рамой, автоштабелер, погрузчик с боковым выдвижным грузоподъемником или вильчатый подъемник) представляет собой промышленный электрокар, который может иметь разную грузоподъемность и используется для подъема и транспортировки различных объектов. В некоторых вариантах вильчатый погрузчик 200 приспособлен для перемещения одного или нескольких поддонов (например, поддонов 112 на фигуре 1) с единицами хранения (например, единицами 114 хранения, указанными на фигуре 1) по маршрутам в физической среде (например, в физической среде 100 на фигуре 1). Маршруты могут быть рассчитаны заранее или рассчитываются динамически при получении задач. Вильчатый погрузчик 200 может въезжать в зону хранения, в которой размещено множество поддонов, для размещения или извлечения поддона. Вильчатый погрузчик 200 многократно въезжает в зону хранения и помещает поддон на консольные рычаги или на направляющие балки.
[0031] Вильчатый погрузчик 200 имеет вилы с двумя или несколькими зубцами для подъема и перемещения единиц хранения в физической среде. Вместо двух или нескольких зубцов вильчатый погрузчик 200 может иметь одну или несколько металлических стоек (не показаны) для подъема специфических грузов (например, рулонов ковров, катушек проволоки и/или т.п.). В одном из вариантов вильчатый погрузчик 200 имеет гидравлические телескопические вилы, которые обеспечивают возможность размещения двух или более поддонов друг за другом, без проходов между этими поддонами.
[0032] Вильчатый погрузчик 200 по одному или нескольким вариантам может также включать различные исполнительные механизмы с механическим, гидравлическим и/или электрическим приводом. В некоторых вариантах вильчатый погрузчик 200 снабжен одним или несколькими гидравлическими механизмами (на фигуре 2 не указаны), которые обеспечивают боковое и/или вращательное движение двух или более зубцов вил. В одном из вариантов вильчатый погрузчик 200 содержит гидравлический исполнительный механизм для сближения и раздвижения зубцов вил. В другом варианте вильчатый погрузчик 200 содержит механический или гидравлический компонент для сжатия транспортируемых грузов (например, бочки, кеги, рулоны бумаги и/или т.п.).
[0033] Вильчатый погрузчик 200 может быть соединен с мобильным компьютером 104, который содержит программные модули для управления работой вильчатого погрузчика 200 в соответствии с одной или несколькими задачами. Вильчатый погрузчик 200 также соединен с различными датчиками (например, с группой 108 датчиков фигуры 1), которые передают информацию измерений (например, двухмерные данные дальности, информацию изображений, трехмерные данные дальности и т.п.) в мобильный компьютер 104 для извлечения информации, связанной с деталями окружающей обстановки. Эти датчики могут быть установлены на вильчатом погрузчике 200 в любом месте внутри или снаружи погрузчика или же могут быть установлены в известных местах физической среды 100. Типовые варианты вильчатого погрузчика 200 обычно содержат двухмерные лазерные сканеры 204, установленные на каждой стороне погрузчика, и/или кодовые датчики 206 положения, прикрепленные к каждому колесу 208. В других вариантах вильчатый погрузчик 200 содержит камеру 202, и/или двухмерный лазерный сканер 204, и/или кодовый датчик 206 положения. Кодовые датчики 206 положения обеспечивают информацию, относящуюся к движению транспортного средства. Датчики, установленные снаружи погрузчика, могут включать лазерные сканеры или камеры, размещенные таким образом, чтобы можно было получить как можно больше информации, помогающей осуществлять операции погрузчика в автоматическом режиме. Внешние датчики могут включать ограниченное количество приемопередатчиков и/или других активных или пассивных средств, с помощью которых автоматизированное транспортное средство может определять свое примерное положение и/или осуществлять фильтрацию для определения своего состояния.
[0034] В некоторых вариантах количество датчиков (например, лазерных сканеров, лазерных дальномеров, кодовых датчиков положения, датчиков давления и т.п.), а также их положение на вильчатом погрузчике 200 зависят от транспортного средства, и местонахождение этих датчиков на погрузчике влияет на обработку информации измерений. Например, если все лазерные сканеры размещены в местах, координаты которых могут быть определены, группа 108 датчиков может обрабатывать эту информацию и приводить ее к центральной точке для вильчатого погрузчика 200 или к другой общей системе координат. Далее, группа 108 датчиков может объединять информацию сканирования, получаемую от нескольких лазеров, в информацию сканирования одного виртуального лазера, которая может использоваться различными программными модулями для управления вильчатым погрузчиком 200.
[0035] На фигуре 3 приведена структурная блок-схема системы 300 определения точного положения промышленного транспортного средства по одному или нескольким вариантам. В некоторых вариантах система 300 включает мобильный компьютер 104, центральный компьютер 106 и группу 108 датчиков, причем компоненты системы 300 связаны друг с другом по сети 302.
[0036] Мобильный компьютер 104 может быть вычислительным устройством (например, таким как настольный компьютер, ноутбук, планшет, смартфон, iPad и т.п.), содержащим центральный процессор 304, различные вспомогательные схемы 306 и запоминающее устройство 308. Центральный процессор 304 может содержать один или несколько микропроцессоров или микроконтроллеров, которые обеспечивают обработку данных и их промежуточное хранение. Различные вспомогательные схемы 306 обеспечивают работу центрального процессора 304 и могут содержать тактовые генераторы, шины, источники питания, схемы ввода/вывода и т.п. Запоминающее устройство 308 включает постоянное ЗУ, оперативное ЗУ, ЗУ на магнитных дисках, ЗУ на оптических дисках, съемные устройства хранения информации и т.п. Запоминающее устройство 308 может содержать различные данные, такие как очередь 310 по приоритету, содержащую входные сообщения 312 датчиков и отметки 312 времени, данные 316 измерений датчиков и информацию 318 о состоянии транспортного средства. Каждая отметка 314 времени указывает момент времени измерения для соответствующего входного сообщения 312 датчика. Запоминающее устройство 308 содержит различные программные модули, такие как модуль 320 навигации в физической среде.
[0037] Центральный компьютер 106 представляет собой вычислительное устройство (например, настольный компьютер, ноутбук, планшет, смартфон, iPad и т.п.), содержащее центральный процессор 322, различные вспомогательные схемы 324 и запоминающее устройство 326. Центральный процессор 322 может содержать один или несколько микропроцессоров или микроконтроллеров, которые обеспечивают обработку данных и их промежуточное хранение. Различные вспомогательные схемы 324 обеспечивают работу центрального процессора 322 и могут содержать тактовые генераторы, шины, источники питания, схемы ввода/вывода и т.п. Запоминающее устройство 326 включает постоянное ЗУ, оперативное ЗУ, ЗУ на магнитных дисках, ЗУ на оптических дисках, съемные устройства хранения информации и т.п. Запоминающее устройство 326 содержит различные программные модули, такие как управляющая программа 328, а также различные данные, такие как данные 330 задач и данные 332 карты.
[0038] Сеть 302 представляет собой систему связи, которая соединяет компьютеры по проводам, по кабелю, по волоконно-оптическому кабелю и/или по каналам беспроводной связи, и работа которой обеспечивается различными известными компонентами сетей, такими как концентраторы, коммутаторы, маршрутизаторы и т.п. Сеть 302 может использовать различные хорошо известные протоколы для обмена информацией между ресурсами сети. Например, сеть 302 может быть частью сети Интернет или интрасети, использующей различные инфраструктуры связи, такие как Ethernet, WiFi, WiMax, GPRS и т.п., а также может включать "облачные" инфраструктуры, платформы и приложения.
[0039] Группа 108 датчиков соединена с мобильным компьютером 104, который соединен с автоматическим транспортным средством, таким как вильчатый погрузчик (например, вильчатый погрузчик 200 фигуры 2), с возможностью обмена информацией. Группа 108 датчиков содержит множество датчиков 332 для контроля физической среды и получения различной информации, которая записывается мобильным компьютером 104 как входные сообщения 312 датчиков (или просто "входные сообщения"). В некоторых вариантах группа 108 датчиков может содержать любую комбинацию датчиков, таких как, один или несколько лазерных сканеров, кодовые датчики положения, камеры, датчик пройденного расстояния, ультразвуковой датчик, компас, акселерометр, гироскоп, инерциальный измерительный блок, формирователь изображений и т.п. Например, лазерный сканер может быть двухмерным лазерным сканером, который закреплен неподвижно на корпусе вильчатого погрузчика, чтобы его поле обзора покрывало зону возле вильчатого погрузчика. Множество датчиков 332 (например, таких как датчики 108, камеры 202, лазерные сканеры 204, кодовые датчики 206 положения и т.п.) могут быть распределены по физической среде в неподвижных и/или подвижных точках.
[0040] В некоторых вариантах данные 316 измерений датчиков включают объединения информации датчиков, которые представляют собой измерения множества датчиков, относящиеся к физической среде. Объединенные данные датчиков могут включать информацию, связанную со статическими и/или динамическими деталями окружающей обстановки. В некоторых вариантах данные 316 измерений датчиков корректируются с учетом ошибок времени и/или движения, чтобы определить текущее положение транспортного средства и обновить информацию 318 о состоянии транспортного средства, как это будет описано ниже.
[0041] Очередь 310 по приоритету содержит данные измерений датчиков в течение некоторого интервала времени в форме входных сообщений 312 датчиков вместе с указанием источников данных и отметками 314 моментов времени измерения. В некоторых вариантах модуль 320 навигации в физической среде вводит входные сообщения 312 датчиков в очередь 310 в соответствии с их приоритетом. В некоторых вариантах модуль 320 навигации в физической среде использует различные характеристики, такие как, например, момент времени получения, для установления приоритета каждого входного сообщения 312.
[0042] Информация 318 о состоянии транспортного средства описывает одно или несколько состояний (например, предыдущее и/или текущее состояния) транспортного средства в различные моменты ki времени. В некоторых вариантах информация 318 о состоянии транспортного средства содержит оценку его положения (координаты x, y и ориентация), которая может указываться в настоящем описании как расчетное положение транспортного средства. В некоторых вариантах информация 318 о состоянии транспортного средства включает обновление расчетного положения, определяемое с учетом предыдущего положения транспортного средства, одометрических данных и/или измерений двухмерных лазерных сканеров. В некоторых вариантах информация 318 о состоянии транспортного средства включает его скорость и другие параметры его движения. Другим параметром движения, например, является временная характеристика, представляющая ошибку лазерного сканирования, связанную с движением транспортного средства.
[0043] Модуль 320 навигации в физической среде использует фильтр (например, такой как обобщенный калмановский фильтр) для получения расчетного положения на основе предыдущего состояния транспортного средства с последующим обновлением расчетного положения на основе данных 310 измерений положения. На основе данных одометрии, полученных из группы 108 датчиков, таких как кодовый датчик положения, прикрепленный к колесу, или другой информации о положении, например, полученной от инерциального измерительного блока, модуль 320 навигации в физической среде вычисляет текущее состояние транспортного средства. Модуль 320 навигации в физической среде по известному диаметру колеса вычисляет расстояние, пройденное промышленным транспортным средством 102 из его предыдущего положения. В другом варианте кодовый датчик положения может непосредственно измерять окружную скорость колеса и передавать измерения в модуль 320 навигации в физической среде. Эта информация о пройденном расстоянии вместе с ранее вычисленным состоянием используется для определения нового расчетного состояния транспортного средства. Модуль 320 навигации в физической среде может также использовать фильтр для оценки погрешностей и/или шумов, связанных с текущим состоянием транспортного средства (например, с его положением).
[0044] Модуль 320 навигации в физической среде обращается к очереди 310 по приоритету и рассматривает входные сообщения 312 датчиков в порядке моментов времени получения. В некоторых вариантах модуль 320 навигации в физической среде реорганизует (например, сортирует) входные сообщения 312 датчиков перед обновлением информации 318 о состоянии транспортного средства. Входные сообщения 312 датчиков должны сортироваться в соответствии с внутренними задержками в системе и/или с характеристическими задержками измерений, связанными с датчиками. Каждый источник данных имеет измеряемую внутреннюю задержку в системе, которая может использоваться для определения момента времени измерения. Обработка реорганизованных входных сообщений 312 датчиков обеспечивает определение точного местонахождения и картографирования, поскольку порядок, в котором считываются входные сообщения 312 датчиков, будет соответствовать порядку, в котором информация была получена датчиками 332.
[0045] В некоторых вариантах модуль 320 навигации в физической среде осуществляет обновление измерений в порядке моментов времени измерения, а не времени получения информации измерения. На основе предыдущего состояния транспортного средства и расчетного текущего положения модуль 320 навигации в физической среде осуществляет слияние данных для интегрирования имеющейся одометрической информации и корректировки расчетного текущего положения. Модуль 320 навигации в физической среде использует расчетное текущее положение для обновления информации 318 о состоянии транспортного средства точным положением транспортного средства (координаты x, y и направление движения).
[0046] На фигуре 4 приведена функциональная блок-схема системы 400 определения точного местонахождения промышленного транспортного средства по одному или нескольким вариантам. Система 400 содержит мобильный компьютер 104, который соединен с промышленным транспортным средством, таким как вильчатый погрузчик, а также с группой 108 датчиков. Различные программные модули в мобильном компьютере 104 вместе формируют модуль навигации в физической среде (например, модуль 320 навигации фигуры 3).
[0047] Мобильный компьютер 104 содержит различные программные модули (компоненты) для выполнения функций навигации, такие как модуль 402 определения местонахождения, модуль 404 карты, модуль 408 коррекции и контроллер 410 транспортного средства. Мобильный компьютер 104 обеспечивает определение точного положения промышленного транспортного средства и может обновлять информацию 406 карты данными, относящимися к деталям окружающей обстановки. Модуль 402 определения местонахождения содержит разные компоненты, такие как фильтр 414 и модуль 416 извлечения деталей для определения состояния 418 транспортного средства. Модуль 404 карты содержит различную информацию, такую как динамические детали 422 и статические детали 424 окружающей обстановки. Модуль 404 карты также содержит различные компоненты, такие как модуль 420 отбора деталей.
[0048] В некоторых вариантах модуль 408 коррекции обрабатывает входные сообщения одного или нескольких датчиков и анализирует содержащуюся в них информацию измерений. Модуль 408 коррекции исключает искажения, вызванные ошибками, связанными с движением и задержками информации, перед обработкой информации фильтром 414.
[0049] На фигуре 5 иллюстрируется схема двухмерного лазерного сканера 204, осуществляющего сканирование 500 в пределах зоны обзора по одному или нескольким вариантам. Как уже указывалось, вильчатый погрузчик 200 может двигаться в определенном направлении (например, вперед) в процессе лазерного сканирования 500. Как это описано ниже, мобильный компьютер (например, мобильный компьютер 104 фигуры 1) выполняет программный модуль 320 навигации в физической среде, который корректирует данные лазерного сканирования для учета движения транспортного средства, что обеспечивает точное определение его местонахождения.
[0050] Двухмерный лазерный сканер 204 осуществляет сканирование в зоне обзора между границами P1 и P2 в интервале Ts 502 времени сканирования. В другом варианте, когда двухмерный лазерный сканер представляет собой лазер, вращающийся по часовой стрелке для измерения дальности в диапазоне от P1 до P2, он может обеспечивать в интервале Ts 502 времени сканирования массив дискретных отсчетов дальность-азимут с указанием моментов времени измерения. Интервал времени, необходимый для обработки данных лазерного сканера, запоминается как время Tp обработки. Затем данные сканирования лазера передаются в обрабатывающий фильтр в форме входного сообщения датчика в интервале Tt 506 времени передачи. Вместе интервалы Ts 502, Tp 504 и Tt 506 составляют время задержки между измерением и обработкой данных фильтром для обновления состояния транспортного средства. Модуль навигации в физической среде учитывает эту задержку, используя постоянную величину (например, сумму величин, равных половине интервалов Ts 502, Tp 504 и Tt 506). Если интервал Tp 504 времени не может быть рассчитан, поскольку неизвестно время внутренней обработки лазера, то в фильтре для оценки величины Tp 504 используется время, связанное с готовностью входного сообщения датчика для обработки, и период лазерного сканирования.
[0051] На фигуре 6 приведена схема, иллюстрирующая ошибки, связанные с движением транспортного средства 102 внутри физической среды 100 по одному или нескольким вариантам. На этой схеме транспортное средство 102 показано приближающимся к детали окружающей обстановки, например, к стенке 604, в процессе сканирования разными датчиками, такими как, например, вращающиеся двухмерные лазерные сканеры. Транспортное средство 102 начинает свое движение в позиции 600, перемещается вперед по прямой линии и останавливается в положении 602, и в процессе го движения лазерные сканеры осуществляют сканирование. Движение транспортного средства 102 приводит к искажениям в информации лазерного сканера, в результате чего координаты различных деталей окружающей обстановки будут получены с ошибками. Движение транспортного средства в процессе сканирования приводит к угловой ошибке 608 направления стенки, в результате чего расчетное положение 606 стенки 604 будет отличаться от действительного. Специалистам в данной области техники будет понятно, что вращение лазерного сканера может быть причиной более сложных искажений положения наблюдаемых деталей, которые, если их не корректировать, будут приводить к существенным ошибкам в определении расчетного положения транспортного средства. Эти ошибки увеличиваются с увеличением скорости транспортного средства.
[0052] Модуль навигации в физической среде собирает данные движения транспортного средства, такие как одометрические данные, в интервале Ts 502 времени сканирования и корректирует данные двухмерного лазерного сканера. В некоторых вариантах информация движения транспортного средства включает параметры, обеспечивающие определение расстояния и/или направления движения, которые используются для корректировки координат, относящихся к различным деталям окружающей обстановки. После устранения искажений, вызванных движением транспортного средства, модуль навигации в физической среде использует интервал Ts 502 времени для обновления предыдущего расчетного положения транспортного средства и определения его текущего состояния.
[0053] В некоторых вариантах модуль 408 коррекции вводит одно или несколько входных сообщений датчиков в очередь. Затем модуль 408 коррекции сортирует входные сообщения датчиков в соответствии с откорректированными моментами времени измерения. Когда входное сообщение датчика, поступающее из запускающего источника данных, становится доступным модулю 408 коррекции, модуль 402 определения местонахождения выполняет процесс обновления над сообщениями в очереди, в результате чего остающиеся данные датчиков вводятся в измерения положения для определения текущего положения транспортного средства. Например, запускающий источник данных может быть датчиком конкретного типа, таким как, например, лазерный сканер.
[0054] В дополнение к фильтру 414 для вычисления состояния 418 транспортного средства модуль 402 определения местонахождения также содержит модуль 416 извлечения деталей для извлечения деталей из откорректированной информации датчиков. Модуль карты 404 сравнивает информацию 418 о состоянии транспортного средства со статическими деталями 424 и/или динамическими деталями 422 для исключения деталей, не имеющих никакого значения, в результате чего уменьшается общее количество деталей, которые должны обрабатываться. Модуль 420 отбора деталей управляет добавлением динамических деталей 422 к информации 406 карты и их модификацией. Модуль 420 отбора деталей может обновлять информацию 406 карты для указания зон, недавно занятых некоторыми деталями или освобожденных от этих деталей, таких как известные размещенные или отобранные единицы хранения.
[0055] Фильтр 414 сравнивает детали, извлеченные из скорректированных данных датчиков, с известными деталями, имеющимися на карте, и/или объединяет данные датчиков, а также корректирует расчетное положение для учета ошибок расчетов и/или погрешностей определения характеристик полученных деталей и обновляет состояние 418 транспортного средства. Фильтр 414 определяет состояние 418 транспортного средства и может передать в модуль 404 карты команду на обновление информации 406 кары информацией, относящейся к динамическим деталям 422. Состояние 418 транспортного средства, которое воспроизводится фильтром 414, относится к текущему состоянию транспортного средства и включает данные, определяющие его положение (например, координаты x, y и ориентацию), а также движение (например, скорость, ускорение и т.п.). Модуль 402 определения местонахождения передает информацию, связанную с состоянием 418 транспортного средства в модуль 404 карты, а также в контроллер 410 транспортного средства. На основе информации о положении транспортного средства контроллер 410 осуществляет его навигацию к месту назначения.
[0056] Следует понимать, что в системе 400 для выполнения задачи навигации в физической среде может использоваться несколько вычислительных устройств. Любые из программных модулей вычислительного устройства 104 могут использоваться в разных физических аппаратных компонентах, таких как другие вычислительные устройства. Например, модуль 404 карты может выполняться на сервере (например, на центральном компьютере 102 фигуры 1) с использованием сети (например, сети 302 фигуры 1) для соединения с множеством мобильных вычислительных устройств для совместного использования информации 406 карты и ее обновления текущим положением транспортного устройства.
[0057] В некоторых вариантах модуль 408 коррекции обрабатывает входные сообщения датчиков, поступающие от различных источников информации, таких как группа 108 датчиков с разными интервалами выборки и передачи информации, относящейся к положению 418 транспортного средства, а также с разными (внутренними) системными задержками. Из-за разных интервалов выборки и системных задержек порядок, в котором получены измерения, записанные во входных сообщениях датчиков, отличается от порядка, в котором они становятся доступными вычислительному устройству 104. Модуль 416 извлечения деталей извлекает из этих сообщений информацию измерений, относящуюся к деталям окружающей обстановки. Модуль 402 определения местонахождения проверяет отдельно каждое сообщение для обеспечения корректности каждого измерения. Такая проверка может выполняться вместо слияния данных датчиков для предотвращения каких-либо ошибок счисления пути.
[0058] На фигуре 7А представлена схема взаимодействия, иллюстрирующая способ 700 определения местонахождения и поддержания карты для промышленного транспортного средства по одному или нескольким вариантам. В частности, система 700 определения местонахождения и под держания карты содержит блоки обработки и передачи различной информации, такие как блок 702 коррекции информации датчиков, блок 704 сопряжения, блок 706 извлечения деталей, блок 708 связывания данных, блок 710 обобщенной калмановской фильтрации (EKF), а также блок 712 динамической карты. Способ 700 определения местонахождения, а также поддержания карты поддерживает работу промышленных транспортных средств, используя в первую очередь детали окружающей обстановки. Блок 704 сопряжения обеспечивает управление уровнями и входит в модуль навигации в физической среде.
[0059] Блок 706 извлечения деталей проверяет информацию, полученную от датчиков, и извлекает обнаруженные детали (например, линии и углы). Блок 708 связывания данных сравнивает обнаруженные детали с информацией об известных деталях карты для определения соответствия обнаруженных деталей и имеющейся информации о статических 424 и/или динамических 422 деталях. Блок EKF 510 осуществляет обобщенную калмановскую фильтрацию, которая обеспечивает наиболее вероятное текущее положение транспортного средства на основе полученных измерений, связанных с совпадающими деталями, и предыдущего положения транспортного средства. Блок 712 динамической карты поддерживает актуальную динамическую карту деталей, которых нет на заранее составленной статической карте, однако которые используются для определения местонахождения. Блок 712 динамической карты обеспечивает доступность деталей для блока 708 связывания данных, так что проверяются и статические, и динамические детали окружающей обстановки.
[0060] На фигуре 7В представлена схема взаимодействия, иллюстрирующая способ 714 определения местонахождения с использованием данных движения, относящихся к промышленному транспортному средству, по одному или нескольким вариантам. Данные движения транспортного средства относятся к движению промышленного транспортного средства, которое может вносить погрешности в расчет его положения, выполняемый блоком 710 фильтра. Например, промышленное транспортное средство может двигаться, когда из датчиков поступают входные сообщения (например, во время лазерного сканирования). Эти входные сообщения содержат неточные данные датчиков, которые в конечном счете приводят к погрешностям расчета положения транспортного средства и к неточностям расчета его следующего состояния. Характеристики движения транспортного средства могут быть измерены датчиками из группы 108 датчиков, такими как, например, кодовые датчики положения на колесах и/или инерциальный измерительный блок и т.п.
[0061] В соответствии с некоторыми вариантами блок 702 корректировки информации датчиков осуществляет удаление из информации датчиков искажений, связанных с ошибками времени и/или движения, перед определением расчетного положения транспортного средства. Блок 702 коррекции информации датчиков обрабатывает характеристики движения транспортного средства, которые определяются из информации, полученной от разных датчиков, и затем передает обработанную информацию в блок 704 сопряжения. Например, блок 702 коррекции информации датчиков использует диаметр колес и информацию кодовых датчиков положения для вычисления скорости и корректировки моментов времени получения информации. Характеристики движения транспортного средства передаются в блок 710 фильтра EKF через блок 704 сопряжения. Блок 710 фильтра EKF осуществляет расчет положения для оценки информации текущего местонахождения и погрешности положения на основе информации о движении транспортного средства. Скорректированная информация текущего положения через блок 704 сопряжения передается обратно в транспортное средство.
[0062] На фигуре 8 приведен пример временной диаграммы, иллюстрирующей обработку 800 входного сообщения сенсора по одному или нескольким вариантам. В некоторых вариантах различные датчики, такие как, например, лазерный сканер 802, лазерный сканер 804 и одометр 806 из группы датчиков (например, из группы 108 датчиков фигуры 1) передают входные сообщения датчиков в модуль 808 навигации в физической среде. Лазерные сканеры 802 и 804 могут быть различными двухмерными лазерными датчиками, имеющими разные частоты выдачи информации и произведенными разными компаниями.
[0063] Чтобы уменьшить или свести к минимуму ошибки, вызванные погрешностями, вносимыми движением, и ошибками привязки времени, модуль 808 навигации в физической среде получает измерения положения в соответствии с моментами времени измерения информации, записанной во входных сообщениях датчиков. Датчики обычно обеспечивают информацию в момент времени получения информации (измерения) внутри датчика, или отметка времени формируется, когда данные передаются из датчика. Затем такие данные передаются в программные модули, которые формируют модуль 808 навигации в физической среде, для обработки, причем поскольку разные данные передаются с использованием различных технических средств (например, последовательный канал, канал Ethernet или программный процесс), то происходит нарушение временной последовательности сообщений на приемной стороне.
[0064] Т802, T804 и T806 - это периоды широковещательной передачи информации лазерным сканером 802, лазерным сканером 804 и одометром 806 соответственно. δ802, δ804 и δ806 - это системные задержки, связанные с обработкой и передачей входных сообщений датчиков в модуль 808 навигации в физической среде. Из-за разных интервалов выборки и системных задержек порядок, в котором информация получена датчиками, отличается от порядка, в котором входные сообщения становятся доступными модулю 808 навигации в физической среде. Например, первое входное сообщение от лазерного сканера 802 включает информацию о наблюдаемых деталях окружающей обстановки, относящуюся к состоянию транспортного средства в самый первый момент времени. Однако это сообщение поступает после по меньшей мере одного более позднего входного сообщения от лазерного сканера 804 и/или одометра 806, которое содержит информацию о наблюдаемых деталях окружающей обстановки и/или о движении транспортного средства, относящуюся к его состоянию в более поздний момент времени. Когда первое входное сообщение, наконец, становится доступным модулю 808 навигации в физической среде, он уже получил два входных сообщения от одометра 806.
[0065] В некоторых вариантах интервалы (Т) передачи измерений и/или системные задержки (δ) не являются фиксированными величинами. Модуль 808 навигации в физической среде (ΕΒΝ) использует очередь по приоритету (например, очередь 310 по приоритету фигуры 3) для выборки входных сообщений датчиков. Модуль ΕΒΝ выполняет процесс расчета-обновления после обработки наиболее "медленного" входного сообщения, который также предшествует предыдущему процессу расчета-обновления. В соответствии со моментом времени измерения, связанным с каждым сообщением, модуль 808 использует данные датчиков для модификации измерений наблюдаемых деталей. После рассмотрения каждого входного сообщения датчика модуль 808 корректирует расчетное положение промышленного транспортного средства.
[0066] Таким образом, каждый последующий процесс расчета-обновления представляет собой последовательность стадий расчета с использованием фильтра и обновления расчетного положения, на которых каждое входное сообщение датчика в очереди по приоритету обрабатывается в порядке отметок времени измерения (например, отметок 314 времени измерения фигуры 3). На стадии обновления модуль 808 навигации в физической среде корректирует расчетное положение. В другом варианте модуль 808 интегрирует информацию датчиков для определения точных измерений положения. Например, модуль 808 интегрирует по времени информацию одометра (то есть, осуществляется счисление пути).
[0067] Как показано на фигуре 8, сообщения одометра 806 характеризуются наименьшей системной задержкой среди датчиков и имеют наибольшую частоту измерений. Когда сообщения одометра 806 вводятся в очередь по приоритету, модуль 808 выполняет одну или несколько стадий расчета положения и непрерывно обновляет расчетное положение транспортного средства (то есть, текущее или предыдущее положение). Затем модуль 808 задерживает выполнение стадии обновления, на которой он интегрирует информацию одометра, и не корректирует расчетное положение транспортного средства, пока не будет запущена стадия обновления. В некоторых вариантах сообщение от датчика определенного типа, такого как лазерного сканера 802, является запускающим сообщением, инициирующим стадию обновления.
[0068] Результатом выполнения процесса расчета-обновления модулем 808 является обновление расчетного положения транспортного средства. В некоторых вариантах модуль 808 корректирует координаты x, y и направление движения, относящиеся к положению транспортного средства. Эти координаты соотносятся с информацией карты, связанной с физической средой совместного использования. В некоторых вариантах положение транспортного средства обновляется, когда информация датчика из запускающего сообщения становится доступной модулю 808 (то есть, в момент широковещательной передачи). После того как модулю 808 станет доступным запускающее сообщение, он обрабатывает каждое входное сообщение датчиков в очереди по приоритету в порядке моментов времени получения. Обновленное положение транспортного средства будет соответствовать измерениям в момент времени получения в запускающего сообщения.
[0069] В некоторых вариантах стадия обновления запускается, прежде чем ошибка счисления пути превысит заданное пороговое значение. Модуль 808 навигации в физической среде определяет причины слишком большой ошибки счисления пути. Например, если размер очереди по приоритету превысит определенную величину (то есть, определенное количество входных сообщений), на обработку входных сообщений потребуется много времени. Модуль 808 навигации в физической среде задерживает стадию обновления на время, достаточное для того, чтобы все обрабатываемые сообщения были расположены в порядке моментов времени получения. В некоторых вариантах стадия обновления задерживается, пока не станет доступным входное сообщение из источника данных, связанного с наибольшей системной задержкой. Если такие данные не получены, модуль 808 навигации в физической среде выполняет стадию обновления в соответствии с моментом времени получения каждого доступного входного сообщения. В некоторых вариантах модуль 808 удаляет одно или несколько входных сообщений, если текущее расчетное положение транспортного средства имеет высокую достоверность и/или с целью снижения загрузки ресурсов системы.
[0070] На фигуре 9 приведена часть схемы обработки 900 входных сообщений датчиков по одному или нескольким вариантам. В частности, часть схемы обработки 900 входных сообщений соответствует времени получения (Т902) и коррекции времени (C918) для лазерного сканера 902. Информация измерений 910 обрабатывается, корректируется и записывается в очередь 912 в качестве входных сообщений, в которых указывается источник информации, то есть, датчик, из которого получена информация измерений. Входные сообщения, получаемые из лазерного сканера 902 и лазерного сканера 904, содержат записи "Лазер А" и "Лазер В" соответственно. Аналогично, входные сообщения, содержащие одометрическую информацию, содержат запись "Одом." для указания одометра 906 в качестве источника. Кроме того, входные сообщения в очереди 912 организованы в соответствии с моментами времени измерения, а не с моментами времени поступления сообщений.
[0071] Первая информация измерений получена в момент времени t=0,5 из лазерного сканера 902 и записана в очередь 912 в качестве входного сообщения, соответствующего моменту времени t=0,1 измерения, с вышеуказанной коррекцией 918 времени. В некоторых вариантах очередь 912 реорганизуется таким образом, что входное сообщение будет обрабатываться следующим вместо сообщений, которые стали доступными раньше этого сообщения, однако были получены датчиками позже первого измерения. В некоторых вариантах блок 914 обобщенной калмановской фильтрации (EKF) использует одометрические данные, которые записаны во входных сообщениях датчика с более ранним моментом времени измерения, для определения расчетного положения для момента времени t=0,1. Поскольку лазерный сканер 902 является запускающим источником данных, то входное сообщение является запускающим сообщением, в соответствии с которым фильтр 914 обновляет расчетное положение и определяет предыдущее положение. Одометрические данные записываются в очереди 912 после слияния с запускающим сообщением и используются для расчета текущего положения в момент времени t=0,4 с учетом предыдущего положения.
[0072] Одометр 906 передает второе измерение одометрических данных в момент времени t=0,7 с коррекцией момента времени t=0,6 измерения на задержку 920 измерения. Когда второе измерение становится доступным блоку 908 навигации в физической среде в качестве входного сообщения, фильтр 914 вычисляет положение транспортного средства в момент времени t=0,6. Затем блок 908 записывает входное сообщение, связанное с третьим измерением, в конце очереди 912. Затем третье измерение лазерного сканера 904 поступает в блок 908 и записывается в очередь 912 в соответствии с моментом времени получения, скорректированного на задержку 922 получения. Третье измерение не обрабатывается, поскольку лазерный сканер 904 не является запускающим источником данных. Затем поступает четвертое измерение от одометра 906, которое корректируется и используется для расчета положения транспортного средства в момент времени t=0.8. Блок 908 интегрирует одометрические данные, связанные с четвертым измерением, с одометрическими данными, связанными со вторым измерением.
[0073] Наконец, осуществляется обработка пятого измерения, полученного из лазерного сканера 902, и полученные данные записываются в качестве входного сообщения в очереди 912 в соответствии с моментом времени получения. Поскольку пятое измерение получено в момент времени t=0,5, входное сообщение вводится в положение перед сообщениями с более поздними моментами времени получения (то есть в моменты времени от t=0,6 до 0,8) и после сообщений с более ранними моментами времени получения (то есть, в моменты времени от t=0,1 до 0,4). Поскольку входное сообщение является запускающим сообщением, то информация из сообщений с более ранними моментами времени получения объединяется с информацией лазерного сканера, связанной с пятым измерением.
[0074] Затем информация лазерного сканера используется для получения измерений положения для момента времени t=0,5 для обновления состояния транспортного средства для момента времени t=0,1, которое является его последним известным состоянием. Используя одометрическую информацию из четвертого измерения, фильтр 914 в соответствии с некоторыми вариантами корректирует расчетное положение для момента времени t=0,4, которое получено на основе последнего известного состояния транспортного средства. И, наконец, блок 908 использует сообщения с более поздними моментами времени измерения для упреждающего расчета текущего положения транспортного средства на момент времени t=0,8. В некоторых вариантах блок 908 осуществляет слияние одометрических данных, записанных в этих сообщениях, и интегрирует одометрические данные, полученные в результате слияния, в расчетное текущее положение транспортного средства.
[0075] На фигуре 10 приведена функциональная блок-схема, иллюстрирующая процесс определения местонахождения, а также составления и под держания карты для определения местонахождения промышленного транспортного средства внутри физической среды по одному или нескольким вариантам. Множество датчиков, таких как, например, двухмерные лазерные сканеры, обеспечивают информацию, относящуюся к деталям окружающей обстановки. Измерения, получаемые из некоторых датчиков, таких как, например, одометры и/или инерциальные измерительные блоки, обеспечивают информацию о движении транспортного средства, описывающую относительное изменение различных параметров, таких как координаты, скорость, ускорение и/или другие характеристики.
[0076] По мере передачи информации различных датчиков процесс 1002 коррекции моментов времени измерений и ошибок, вызванных движением, в соответствии с некоторыми вариантами может устранить любую вычисленную ошибку во времени или искажение, связанное с движением транспортного средства, передать команду в процесс 1004 на извлечение из откорректированной информации, такой как информация двумерного лазерного сканера, деталей окружающей обстановки и записать упорядоченные данные в очередь 1006 по приоритету. Процесс 1004 извлечения деталей окружающей обстановки просматривает упорядоченную информацию, полученную из датчиков, и идентифицирует стандартные детали, которые сравниваются с перечнем 1008 известных деталей, содержащим известные статические и/или динамические детали окружающей обстановки, в фильтре 1010 для определения положения транспортного средства. Процесс 1004 извлечения деталей окружающей обстановки определяет характеристики, относящиеся к этим деталям, такие как линии, углы, дуги или маркеры, которые передаются в стандартном формате для использования в фильтре 1010. Используя упорядоченные данные датчиков, фильтр 1010 обновляет текущее расчетное положение для промышленного транспортного средства в соответствии с извлеченными деталями окружающей обстановки, наблюдаемыми с этого транспортного средства.
[0077] В некоторых вариантах процесс 1002 коррекции моментов времени измерения и ошибок, вызванных движением, также использует информацию о движении транспортного средства, для корректировки информации лазерных сканеров (например, дальности и азимута относительно измеренных точек), поскольку эта информация может содержать неточности, вызванные движением транспортного средства. Например, используя скорость транспортного средства, измеренную в момент времени получения данных лазерного сканера, или возле этого момента (например, непосредственно после или до), процесс 1002 коррекции ошибок времени и движения корректирует измерения, относящиеся к деталям окружающей обстановки.
[0078] В общем случае фильтр 1010 обеспечивает в режиме реального времени информацию о местонахождении автоматического промышленного транспортного средства или транспортного средства с ручным управлением. Фильтр 1010 также обеспечивает получение информации о погрешности измерений положения транспортного средства. Таким образом, если промышленное транспортное средство временно двигается в пустом пространстве, где нет каких-либо деталей или маркеров, фильтр 1010 продолжает обеспечивать точное местонахождение транспортного средства путем обновления его положения, используя информацию о его движении вместе с определением указанной погрешности. Фильтр 1010 извлекает из очереди по приоритету следующее входное сообщение (например, сообщение, имеющее самое раннее время измерения) и анализирует информацию, относящуюся к извлеченным стандартным деталям окружающей обстановки. Перечень 1008 известных деталей содержит статические и/или динамические детали окружающей обстановки, связанных с картой физической среды. Фильтр 810 сравнивает детали, отобранные из перечня 1008 известных деталей, с извлеченными стандартными деталями для расчета положения транспортного средства.
[0079] В соответствии с требованиями по безопасности промышленное транспортное средство может работать в пределах заданной погрешности его состояния, прежде чем будет сформирован сигнал ошибки блоком 1014 тревоги. Если процесс 1012 определяет, что погрешность превышает заданное пороговое значение, то блок 1014 тревоги передает соответствующее сообщение в компьютер, такой как мобильный компьютер, соединенный с промышленным транспортным средством, или в центральный компьютер для контроля физической среды. С другой стороны, если процесс 1012 определяет, что погрешность превышает заданное пороговое значение, процесс 1016 упреждающего расчета вычисляет текущее состояние транспортного средства, как это будет описано ниже, и процесс 1018 передачи состояния обновляет переданное состояние транспортного средства.
[0080] При работе процесса 1002 коррекции моментов времени измерения и ошибок, вызванных движением, из каждого датчика передаются измерения. Измерения могут быть обеспечены двухмерным и/или трехмерным лазером, и/или камерой, или датчиком любого другого типа, и из этих измерений могут быть получены детали окружающей обстановки. На стадии коррекции моментов времени измерения и ошибок, вызванных движением, процесс 1002 также корректирует любые искажения, которые могут возникать в связи с конечным временем измерений и/или скоростью движения промышленного транспортного средства. Эти искажения возникают, поскольку транспортное средство и датчики двигаются (например, в процессе сканирования), и, таким образом, с данными, извлеченными из информации измерений, связана временная характеристика.
[0081] В некоторых вариантах состояние транспортного средства включает положение (координаты x, y и ориентация), связанное с его местонахождением на карте. В некоторых вариантах состояние транспортного средства включает различные измерения скорости. Одометрическая информация позволяет определить линейную скорость и угловую скорость. Линейная скорость относится к средней линейной скорости колес, над которыми установлены кодовые датчики положения или другие устройства измерения скорости. Угловая скорость прямо пропорциональна разнице между линейными скоростями противолежащих колес и указывает, насколько изменилось направление движения транспортного средства в глобальной системе координат. Фильтр 1010 корректирует шумовые помехи (например, шумы одометрической информации, такие как проскальзывание колес и угловое скольжение) путем сравнения расчетных шумов процесса движения с шумами измерения (например, измерений от двухмерного лазерного дальномера) и статистической обработки для получения более точного расчетного положения.
[0082] Поскольку фильтр 1010 обрабатывает входные сообщения датчиков в соответствии с моментами времени измерения, он может обновлять состояние транспортного средства для включения его положения в момент времени, предшествующий текущему времени. Как уже указывалось, фильтр 1010 обновляет состояние транспортного средства в ответ на запускающее сообщение. Обновленное состояние транспортного средства может указываться как его предыдущее состояние. В некоторых вариантах после обновления состояния транспортного средства процесс 1016 упреждающего расчета использует одометрическую информацию из очереди 1022, которая получена в моменты времени после момента времени измерения запускающего сообщения, для дополнительного обновления предыдущего состояния транспортного средства, чтобы включить его текущее положение, путем интегрирования одометрической информации. В некоторых вариантах перед включением процесса 1016 упреждающего расчета входные сообщения, поступающие от одометров, передаются в очередь 1022 одометрических данных. Одометрические данные могут использоваться при выполнении процесса 1016 упреждающего расчета.
[0083] Если некоторые детали окружающей обстановки, извлеченные в блоке 1004, отсутствуют в перечне 1008 известных деталей, то фильтр 1010 может обеспечивать добавление этих отсутствующих деталей в перечень динамических деталей, связанных с картой, такой как карта 406 на фигуре 4, или же если некоторых деталей перечня 1008 нет среди деталей, извлеченных блоком 1004, то фильтр 1010 обеспечивает удаление этих деталей из перечня динамических деталей, который может затем использоваться как часть перечня 1008 известных деталей в следующий раз, когда осуществляется доступ к перечню 1008.
[0084] На фигуре 11 приведена структурная блок-схема способа, обеспечивающего определение точного местонахождения промышленного транспортного средства по одному или нескольким вариантам. В некоторых вариантах все стадии способа 1100 выполняет модуль навигации в физической среде (например, модуль 420 навигации в физической среде фигуры 4). В других вариантах некоторые стадии могут быть пропущены. Выполнение способа 1100 начинается на стадии 1102 и продолжается на стадии 1104.
[0085] На стадии 1104 способа 1100 инициализируются различные датчики. Например, инициализируется один или несколько двухмерных лазерных сканеров, и/или камер, и/или одометров и т.п. На стадии 1106 определяется, было ли передано входное сообщение каким-либо из датчиков. Если от одного из датчиков принято входное сообщение, выполняется переход на стадию 1110. В противном случае, способ 1100 ожидает на стадии 1108 получения входного сообщения от одного из датчиков. Как только становится доступным входное сообщение (например, модулю навигации в физической среде) выполняется переход на стадию 1110.
[0086] На стадии 1110 осуществляется обработка входного сообщения. На стадии 1112 осуществляется извлечение входного сообщения стандартных деталей (например, деталей окружающей обстановки). На стадии 1114 к входному сообщению присоединяется отметка момента времени измерения.
[0087] На стадии 1116 осуществляется запись входного сообщения в очередь по приоритету. Далее, осуществляется реорганизация входных сообщений в очереди по приоритету в соответствии с моментами времени измерения, вместо времени получения сообщений. Соответственно, момент времени измерения для каждого входного сообщения представляет приоритет (очередность обработки), который используется для упорядочения входных сообщений датчиков в очереди. В способе 1100 измерения положения используются в соответствии с моментом времени измерения, связанным с каждым входным сообщением, путем выборки следующего сообщения из очереди по приоритету, которое имеет наиболее ранний момент времени измерения. В некоторых вариантах в способе 1100 осуществляется коррекция расчетного положения в соответствии с измерениями положения, полученными от датчиков.
[0088] На стадии 1118 определяется, содержит ли следующая запись в очереди по приоритету одометрические данные. Если запись содержит одометрические данные, выполняется переход на стадию 1120. На стадии 1120 осуществляется интегрирование одометрических данных из очереди по приоритету и обновляется положение транспортного средства. Если же следующая запись в очереди по приоритету не содержит одометрические данные, выполняется переход на стадию 1122. На стадии 1122 определяется, сформировано ли и передано входное сообщение от запускающего источника данных. Если входное сообщение поступило от запускающего источника данных, выполняется переход на стадию 1124. Если же входное сообщение поступило не от запускающего источника данных, выполняется переход на стадию 1106. На стадии 1124 осуществляется фильтрация для определения точного положения транспортного средства и обновления его состояния. В некоторых вариантах в способе 1100 корректируется расчетное положение, которое определяется с использованием информации датчиков и предыдущего состояния транспортного средства.
[0089] На стадии 1126 осуществляется запись скорректированного положения транспортного средства в информацию о его состоянии (например, в информацию 318 о состоянии транспортного средства на фигуре 3). На стадии 1128 определяется, следует ли завершить процесс определения местонахождения. Если процесс определения местонахождения должен быть завершен, выполняется переход на стадию 1130. Если процесс определения местонахождения не должен быть завершен, выполняется переход на стадию 1106. Выполнение способа 1100 заканчивается на стадии 1130.
[0090] На фигуре 12 приведена блок-схема способа 1200 обновления состояния транспортного средства для промышленного транспортного средства с использованием фильтра по одному или нескольким вариантам. В некоторых вариантах модуль навигации в физической среде выполняет все стадии способа 1200. В других вариантах некоторые стадии могут быть пропущены. В некоторых вариантах в способе 1200 выполняется стадия 924 способа 1100, схема которого приведена на фигуре П. Соответственно, способ 1200 осуществляется, когда поступает или становится доступным входное сообщение от запускающего источника данных (то есть, запускающее сообщение). Перед выполнением процесса фильтрации для обновления состояния транспортного средства фильтр (например, обобщенный калмановский фильтр) определяет расчетное текущее положение транспортного средства на основе его предыдущего состояния (например, на основе его предыдущего положения). Выполнение способа 1200 начинается на стадии 1202 и продолжается на стадии 1204.
[0091] На стадии 1204 осуществляется обработка следующего входного сообщения. В некоторых вариантах осуществляется извлечение из очереди (например, из очереди по приоритету, упорядоченной в порядке моментов времени измерения) следующего входного сообщения. В некоторых вариантах определяется следующее входное сообщение с самым ранним моментом времени измерения и осуществляется извлечение из данных лазерного сканера информации, относящейся к стандартным статическим и/или динамическим деталям окружающей обстановки. Также осуществляется интегрирование доступных одометрических данных и рассчитывается текущее положение транспортного средства. Следует понимать, что при выполнении способа 1200 в некоторых вариантах формируется дополнительная информация, относящаяся к деталям окружающей обстановки, полученным от других датчиков, таких как кодовые датчики положения.
[0092] На стадии 1206 определяется, является ли следующее входное сообщение запускающим сообщением. Как уже указывалось, в соответствии с некоторыми вариантами запускающее сообщение передается запускающим источником данных (например, определенным датчиком). Если следующее входное сообщение также является запускающим сообщением, выполняется переход на стадию 1208, на которой обрабатываются данные измерений положения транспортного средства, связанные со следующим входным сообщением. В некоторых вариантах в способе 1200 осуществляется обновление расчетного положения с использованием данных от лазерного сканера и одометрических данных, которые были получены ранее запускающего сообщения.
[0093] На стадии 1210 осуществляется интегрирование остальных одометрических данных для получения расчетного текущего положения транспортного средства с учетом его текущего движения и обновления его состояния (например, с использованием информации 318 о состоянии транспортного средства на фигуре 3). Стадия 1210 может указываться в настоящем описании как процесс упреждающего расчета положения. Если входное сообщение не является запускающим сообщением, выполняется переход на стадию 1204 и из очереди по приоритету извлекается другое входное сообщение. Выполнение способа 1200 заканчивается на стадии 1212.
[0094] Различные элементы, устройства и модули раскрыты в настоящем описании в связи с их соответствующими функциями. Эти элементы, устройства и модули являются средствами выполнения их соответствующих вышеописанных функций.
[0095] Хотя все вышеизложенное относится к некоторым вариантам осуществления настоящего изобретения, однако могут быть предложены и другие варианты, не выходящие за пределы объема изобретения, который определяется прилагаемой формулой.
Изобретение относится к области радионавигации. Техническим результатом является повышение точности определения местонахождения с использованием двухмерных датчиков на промышленном транспортном средстве. Предложены способ и система, включающие: обработку по меньшей мере одного входного сообщения от множества датчиков, причем указанное по меньшей мере одно входное сообщение содержит информацию, относящуюся к наблюдаемым деталям окружающей обстановки; получение измерений положения, связанных с промышленным транспортным средством, в соответствии по меньшей мере с одним входным сообщением датчика, причем множество датчиков включает двухмерный лазерный сканер и по меньшей мере один другой датчик, выбранный из группы, состоящей из одометра, ультразвукового датчика, компаса, акселерометра, гироскопа, инерциального измерительного блока и датчика изображений; и обновление состояния транспортного средства с использованием измерений его положения. 3 н. и 14 з.п. ф-лы, 13 ил.
1. Способ управления промышленным транспортным средством в физической среде, в котором:
промышленное транспортное средство содержит мобильный компьютер и множество датчиков;
множество датчиков содержит кодовый датчик положения колеса и/или инерциальный измерительный блок (IMU) и один или несколько двухмерных лазерных сканеров;
кодовый датчик положения колеса и/или IMU обеспечивают одометрическую информацию промышленного транспортного средства;
двухмерный лазерный сканер обеспечивает детали физической среды;
мобильный компьютер содержит модуль навигации в физической среде (модуль EBN), использующий очередь по приоритету, в которую поступают входные сообщения от множества датчиков, причем с каждым входным сообщением в очереди связывается указание источника данных и отметка момента времени получения;
множество датчиков имеют разные периоды проведения замеров и разные задержки полученных данных, так что порядок, в котором получены данные, поступающие от датчиков, отличается от порядка, в котором данные датчиков становятся доступными модулю EBN; и
промышленное транспортное средство перемещается по маршруту с использованием обобщенного калмановского фильтра мобильного компьютера для моделирования положения промышленного транспортного средства в двумерной плоскости как плотности распределения вероятности, для использования одометрической информации для обновления расчетного положения промышленного транспортного средства, и для коррекции ошибок расчетного положения промышленного транспортного средства с использованием деталей окружающей обстановки, извлеченных из информации двухмерного лазерного сканера, путем сравнения извлеченных деталей с известной картой физической среды;
обновление расчетного положения транспортного средства обобщенным калмановским фильтром задерживается до того момента, когда модуль EBN получит запускающее сообщение, инициирующее обновление положения транспортного средства; и
модуль EBN обрабатывает входные сообщения в очереди по приоритету в порядке моментов времени получения после того, как запускающее сообщение становится доступным.
2. Способ по п. 1, в котором запускающее сообщение формируется, когда ошибка счисления пути, связанная с одометрической информацией, превышает заданное пороговое значение.
3. Способ по п. 1, в котором запускающее сообщение формируется, когда размер очереди по приоритету превышает определенную величину.
4. Способ по п. 1, в котором обновление расчетного положения транспортного средства обобщенным калмановским фильтром задерживается на время, достаточное для исключения возможности обработки какого-либо входного сообщения с нарушением порядка моментов времени получения.
5. Способ по п. 1, в котором
один из датчиков имеет наибольшую задержку полученных данных; и
обновление расчетного положения транспортного средства обобщенным калмановским фильтром задерживается до тех пор, пока не будет получено входное сообщение от датчика, имеющего наибольшую задержку полученных данных.
6. Способ по п. 1, в котором модуль ЕВN удаляет одно или несколько входных сообщений из очереди по приоритету, когда расчетное текущее положение транспортного средства имеет высокую достоверность.
7. Способ по п. 1, в котором модуль ЕВN удаляет одно или несколько входных сообщений из очереди по приоритету для снижения загрузки ресурсов.
8. Способ по п. 1, в котором запускающее сообщение, инициирующее обновление положения транспортного средства, поступает от одного из двухмерных лазерных сканеров.
9. Способ по п. 1, в котором последовательные входные сообщения в очереди по приоритету:
интегрируются, используются для обновления состояния транспортного средства и становятся доступными для обработки после получения запускающего сообщения, если входное сообщение представляет собой одометрическую информацию;
используются для инициирования обновления расчетного положения транспортного средства, если входное сообщение является запускающим сообщением; и
записываются в очередь по приоритету, причем одно или несколько последовательных входных сообщений не используются для обновления состояния транспортного средства или для инициирования обновления его расчетного положения, если входное сообщение не является одометрической информацией или запускающим сообщением.
10. Способ по п. 1, в котором перед обработкой входных сообщений в очереди по приоритету модуль EBN переставляет эти сообщения в соответствии с их отметками моментов времени получения, используя задержку источника данных, связанную с каждым входным сообщением.
11. Способ по п. 10, в котором задержка источника данных содержит внутреннюю системную задержку, связанную с конкретным датчиком.
12. Способ по п. 10, в котором задержка источника данных содержит характеристическую задержку измерения, связанную с конкретным датчиком.
13. Способ по п. 1, в котором известная карта физической среды содержит известные детали окружающей обстановки.
14. Способ по п. 1, в котором известная карта физической среды содержит перечень динамических деталей окружающей обстановки.
15. Способ по п. 1, в котором модуль EBN обновляет расчетное положение промышленного транспортного средства путем интегрирования одометрической информации по времени.
16. Способ управления промышленным транспортным средством в физической среде, в котором:
промышленное транспортное средство содержит мобильный компьютер и множество датчиков;
множество датчиков содержит кодовый датчик положения колеса и/или инерциальный измерительный блок (IMU) и множество двухмерных лазерных сканеров;
кодовый датчик положения колеса и/или IMU обеспечивают одометрическую информацию промышленного транспортного средства;
двухмерные лазерные сканеры обеспечивают детали окружающей обстановки и установлены в различных местах промышленного транспортного средства, координаты которых могут быть измерены;
мобильный компьютер содержит модуль EBN, который преобразует данные сканирования двухмерных лазерных сканеров, приводя их к общей системе координат, и объединяет преобразованные данные сканирования в информацию сканирования одного виртуального лазера; и
модуль EBN использует информацию сканирования одного виртуального лазера для управления движением промышленного транспортного средства по маршруту.
17. Способ управления промышленным транспортным средством в физической среде, в котором:
промышленное транспортное средство содержит мобильный компьютер и множество датчиков;
множество датчиков содержит кодовый датчик положения колеса и/или инерциальный измерительный блок (IMU) для обеспечения одометрической информации промышленного транспортного средства;
по меньшей мере один дополнительный датчик обеспечивает детали окружающей обстановки;
мобильный компьютер содержит модуль навигации в физической среде (модуль EBN), использующий очередь по приоритету, в которую поступают входные сообщения от множества датчиков, причем с каждым входным сообщением в очереди связывается указание источника данных и отметка момента времени получения;
множество датчиков имеют разные периоды проведения замеров и разные задержки полученных данных, так что порядок, в котором получены данные, поступающие от датчиков, отличается от порядка, в котором данные датчиков становятся доступными модулю EBN; и
промышленное транспортное средство перемещается по маршруту с использованием обобщенного калмановского фильтра мобильного компьютера для моделирования положения промышленного транспортного средства в двухмерной плоскости как плотности распределения вероятности, для использования одометрической информации для обновления расчетного положения промышленного транспортного средства и для коррекции ошибок его расчетного положения с использованием деталей окружающей обстановки, извлеченных из информации дополнительного датчика, путем сравнения извлеченных деталей с известной картой физической среды;
обновление расчетного положения транспортного средства обобщенным калмановским фильтром задерживается до того момента, когда модуль EBN получит запускающее сообщение, инициирующее обновление положения транспортного средства; и
модуль EBN обрабатывает входные сообщения в очереди по приоритету в порядке моментов времени получения после того, как запускающее сообщение становится доступным.
US2006012493 A1, 19.01.2006 | |||
US2007244640 A1, 18.10.2007 | |||
US5938710 A, 17.08.1999 | |||
US5961571 A, 05.10.1999 | |||
МОБИЛЬНЫЙ РОБОТ И СПОСОБ КОРРЕКТИРОВКИ ЕГО КУРСА | 2001 |
|
RU2210492C2 |
US2002120400 A1, 29.08.2002. |
Авторы
Даты
2015-12-10—Публикация
2012-05-22—Подача