СПОСОБЫ И СИСТЕМЫ ОБЕСПЕЧЕНИЯ ДАННЫХ СКАНИРОВАНИЯ ДЛЯ ПРИНЯТИЯ РЕШЕНИЙ САМОУПРАВЛЯЕМЫМ ТРАНСПОРТНЫМ СРЕДСТВОМ
METHODS AND SYSTEMS FOR PROVIDING SCAN DATA FOR DECISION-MAKING IN A SELF-DRIVING VEHICLE

Область техники, к которой относится изобретение
[01] Настоящая технология относится к компьютерным способам и системам для предоставления данных из сканирующего устройства в самоуправляемом транспортном средстве. В частности, эта технология относится к предоставлению свежих данных сканирования из сканирующего устройства, которое сканирует пространство вблизи самоуправляемого транспортного средства в последовательных циклах сканирования.
Уровень техники
[02] Множество датчиков, включая разнообразные сканирующие устройства, обеспечивают самоуправляемому транспортному средству информацию об его ближайшем окружении. Одно из часто используемых в самоуправляемых транспортных средствах сканирующих устройств представляет собой лидарную сканирующую систему. Типичная лидарная сканирующая система выполняет циклическое сканирование так, что после завершения цикла сканирования становятся доступными все данные, полученные во время цикла сканирования. Этот процесс периодически повторяется, обычно с заданной по умолчанию частотой, например, с периодом 100 мс.
[03] Это означает, что лидарные данные, используемые для принятия решений при работе самоуправляемого транспортного средства, могут поступать с задержкой, в худшем случае соответствующей полному циклу сканирования. Если цикл сканирования составляет 100 мс, то транспортное средство, движущееся со скоростью 80 км/ч, за время одного цикла сканирования перемещается приблизительно на 2,2 м. Поскольку обычная ширина полосы движения составляет приблизительно 2,7-4,6 м, расстояние, пройденное за один цикл сканирования, может влиять на безопасность работы самоуправляемого транспортного средства.
[04] Фактически, проблема может быть еще серьезнее, чем описано выше, поскольку полученные при сканировании данные должны быть обработаны и проанализированы до принятия решений. В зависимости от видов выполняемой обработки и анализа, возможно значительное увеличение задержки поступления информации, используемой для управления самоуправляемым транспортным средством. Очевидно, что в быстроизменяющейся среде, такой как дорога с интенсивным движением, эта задержка может создавать серьезную проблему безопасности.
[05] Один из подходов к решению этой проблемы заключается в попытке использования для принятия решений при работе транспортного средства более быстрых датчиков, таких как камеры. При этом камеры предоставляют только двумерное изображение без информации о глубине, которую обеспечивает лидарная система. Это означает, что камеры требуют более сложных в вычислительном отношении подходов к анализу данных и существует большая вероятность ошибки при определении, например, местоположения объектов вблизи транспортного средства в трехмерном пространстве. Другие подходы могут предусматривать использование более быстрых лидарных систем для уменьшения длительности цикла сканирования и более быстрого специализированного оборудования для обработки данных с целью ускорения анализа. Но это может заметно увеличивать затраты, связанные с лидарной системой и вычислительными устройствами, используемыми для анализа данных, что способно значительно увеличить стоимость самоуправляемого автомобиля.
Раскрытие изобретения
[06] Для устранения этих проблем разработчики настоящей технологии использовали систему управления, в которой необходимые сегменты данных сканирования могут быть быстро предоставлены для обработки до завершения полного цикла сканирования. Система управления запрашивает информацию о требуемом для принятия решения сегменте окружающего пространства транспортного средства. В зависимости от возраста данных для запрошенного сегмента и задержки, обусловленной ожиданием новых данных для запрошенного сегмента, система управления может выбрать немедленный доступ к данным уже просканированного сегмента или ожидание новых данных подлежащего сканированию сегмента. В результате система управления получает возможность быстрого доступа к актуальным данным и обеспечивается более безопасное принятие решений при маневрировании самоуправляемого транспортного средства.
[07] Согласно одному аспекту настоящей технологии, реализован способ управления самоуправляемым транспортным средством. Способ выполняется вычислительным устройством, связанным с самоуправляемым транспортным средством, оснащенным сканирующим датчиком, который сканирует пространство вблизи самоуправляемого транспортного средства в последовательных циклах сканирования. Способ включает в себя получение запроса информации сканирования, связанной с запрошенным сегментом пространства. Способ также включает в себя принятие решения об ожидании следующего сканирования запрошенного сегмента сканирующим датчиком и использовании данных сканирования из следующего сканирования запрошенного сегмента или о получении и использовании данных сканирования из предыдущего сканирования запрошенного сегмента сканирующим датчиком. Способ также включает в себя обработку данных сканирования с целью формирования информации сканирования для запрошенного сегмента, предоставление информации сканирования для запрошенного сегмента в ответ на запрос и управление самоуправляемым транспортным средством согласно решению относительно маневра, который должен быть выполнен самоуправляемым транспортным средством, принятому, по меньшей мере частично, на основе информации сканирования.
[08] В некоторых вариантах осуществления изобретения принятие решения относительно ожидания следующего сканирования запрошенного сегмента включает в себя: оценивание первого параметра времени, указывающего на время, прошедшее после предыдущего сканирования запрошенного сегмента сканирующим датчиком; оценивание второго параметра времени, указывающего на время до момента доступности данных следующего сканирования запрошенного сегмента сканирующим датчиком; и принятие решения, по меньшей мере частично, на основе первого параметра времени и второго параметра времени. В некоторых вариантах осуществления изобретения такое принятие решения, по меньшей мере частично, на основе первого параметра времени и второго параметра времени включает в себя сравнение первого параметра времени со вторым параметром времени и принятие решения об использовании данных предыдущего сканирования запрошенного сегмента, если первый параметр времени меньше второго параметра времени. В некоторых вариантах осуществления изобретения такое принятие решения, по меньшей мере частично, на основе первого параметра времени и второго параметра времени включает в себя сравнение первого параметра времени со вторым параметром времени и принятие решения об использовании данных следующего сканирования запрошенного сегмента, если первый параметр времени больше второго параметра времени.
[09] В некоторых вариантах осуществления изобретения принятие решения относительно ожидания следующего сканирования запрошенного сегмента включает в себя определение того, был ли запрошенный сегмент просканирован в текущем цикле сканирования, и принятие решения об использовании ранее полученных в результате сканирования данных текущего цикла сканирования для запрошенного сегмента, если запрошенный сегмент был просканирован в текущем цикле сканирования. В некоторых вариантах осуществления изобретения, если запрошенный сегмент не был просканирован в текущем цикле сканирования, то принятие решения относительно ожидания следующего сканирования запрошенного сегмента дополнительно включает в себя оценивание первого параметра времени, указывающего на время, прошедшее после сканирования запрошенного сегмента в предыдущем цикле сканирования, и принятие решения относительно ожидания следующего сканирования запрошенного сегмента, по меньшей мере частично, на основе первого параметра времени. В некоторых вариантах осуществления изобретения принятие решения относительно ожидания следующего сканирования запрошенного сегмента, по меньшей мере частично, на основе первого параметра времени включает в себя оценивание второго параметра времени, указывающего на время до момента доступности данных для запрошенного сегмента в текущем цикле сканирования, и сравнение первого параметра времени со вторым параметром времени. В некоторых вариантах осуществления изобретения, если первый параметр времени больше второго параметра времени, то принимается решение об ожидании данных для запрошенного сегмента в текущем цикле сканирования. В некоторых других вариантах осуществления изобретения, если первый параметр времени меньше второго параметра времени, то принимается решение об использовании данных для запрошенного сегмента из предыдущего цикла сканирования.
[010] В некоторых вариантах осуществления изобретения получение запроса информации сканирования дополнительно включает в себя получение предельного срока предоставления информации сканирования, связанной с запрошенным сегментом пространства. В некоторых вариантах осуществления изобретения принятие решения относительно ожидания следующего сканирования запрошенного сегмента сканирующим датчиком включает в себя оценивание параметра времени, указывающего на время до момента доступности данных при следующем сканировании запрошенного сегмента сканирующим датчиком, сравнение параметра времени с предельным сроком и принятие решения об использовании данных предыдущего сканирования запрошенного сегмента, если параметр времени указывает на то, что информация сканирования не будет доступна к предельному сроку. В некоторых вариантах осуществления изобретения оценивание параметра времени дополнительно включает в себя добавление времени обработки к этому параметру времени.
[011] В некоторых вариантах осуществления изобретения обработка данных сканирования с целью формирования информации сканирования для запрошенного сегмента включает в себя анализ данных сканирования в слое восприятия системы управления, управляющей самоуправляемым транспортным средством. Слой восприятия классифицирует объекты вблизи самоуправляемого транспортного средства, по меньшей мере частично, на основе данных сканирования. В некоторых вариантах осуществления изобретения решение относительно маневра, который должен быть выполнен самоуправляемым транспортным средством, принимается в слое поведения системы управления, управляющей самоуправляемым транспортным средством.
[012] В некоторых вариантах осуществления изобретения сканирующий датчик содержит лидарное устройство. В некоторых вариантах осуществления изобретения данные сканирования содержат облако лидарных точек.
[013] Согласно другому аспекту настоящей технологии реализовано самоуправляемое транспортное средство. Самоуправляемое транспортное средство содержит лидарное устройство, способное сканировать пространство вблизи самоуправляемого транспортного средства в последовательных циклах сканирования, и систему управления, управляющую самоуправляемым транспортным средством. Система управления содержит вычислительное устройство, содержащее процессор и память. В памяти хранятся запрограммированные команды, которые при их исполнении процессором обеспечивают выполнение системой управления следующих действий: получение слоем восприятия системы управления от слоя поведения системы управления запроса информации сканирования, связанной с запрошенным сегментом пространства; принятие в слое восприятия решения об ожидании следующего сканирования запрошенного сегмента лидарным устройством и использовании данных сканирования из следующего сканирования запрошенного сегмента или о получении и использовании данных сканирования из предыдущего сканирования запрошенного сегмента лидарным устройством; обработка данных сканирования в слое восприятия с целью формирования информации сканирования для запрошенного сегмента; предоставление информации сканирования для запрошенного сегмента слою поведения в ответ на запрос; и управление самоуправляемым транспортным средством согласно решению относительно маневра, который должен быть выполнен самоуправляемым транспортным средством, принятому в слое поведения, по меньшей мере частично, на основе информации сканирования.
[014] В некоторых вариантах осуществления изобретения в памяти также хранятся запрограммированные команды, которые при их исполнении процессором обеспечивают принятие системой управления решения относительно ожидания следующего сканирования запрошенного сегмента, по меньшей мере частично, путем: оценивания первого параметра времени, указывающего на время, прошедшее после предыдущего сканирования запрошенного сегмента лидарным устройством; оценивания второго параметра времени, указывающего на время до момента доступности данных следующего сканирования запрошенного сегмента лидарным устройством; сравнения первого параметра времени со вторым параметром времени; принятие решения об использовании данных предыдущего сканирования запрошенного сегмента, если первый параметр времени меньше второго параметра времени; и принятие решения об использовании данных следующего сканирования запрошенного сегмента, если первый параметр времени больше второго параметра времени.
[015] В некоторых вариантах осуществления изобретения в памяти также хранятся запрограммированные команды, которые при их исполнении процессором обеспечивают принятие системой управления решения относительно ожидания следующего сканирования запрошенного сегмента, по меньшей мере частично, путем: определения того, был ли запрошенный сегмент просканирован в текущем цикле сканирования; принятие решения об использовании ранее полученных в результате сканирования данных текущего цикла сканирования для запрошенного сегмента, если запрошенный сегмент был просканирован в текущем цикле сканирования; и принятие решения об ожидании следующего сканирования запрошенного сегмента, если запрошенный сегмент не был просканирован в текущем цикле сканирования. Такое решение принимается путем: оценивания первого параметра времени, указывающего на время, прошедшее после сканирования запрошенного сегмента в предыдущем цикле сканирования; оценивания второго параметра времени, указывающего на время до момента доступности данных для запрошенного сегмента в текущем цикле сканирования; сравнения первого параметра времени со вторым параметром времени; принятия решения об ожидании данных для запрошенного сегмента в текущем цикле сканирования, если первый параметр времени больше второго параметра времени; и принятия решения об использовании данных для запрошенного сегмента из предыдущего цикла сканирования, если первый параметр времени меньше второго параметра времени.
[016] В некоторых вариантах осуществления изобретения в памяти также хранятся запрограммированные команды, которые при их исполнении процессором обеспечивают выполнение системой управления следующих действий: получение слоем восприятия предельного срока предоставления слою поведения информации сканирования, связанной с запрошенным сегментом пространства; и принятие решения относительно ожидания следующего сканирования запрошенного сегмента. Это решение принимается, по меньшей мере частично, путем: оценивания параметра времени, указывающего на время до момента доступности данных следующего сканирования запрошенного сегмента лидарным устройством; сравнения параметра времени с предельным сроком; и принятия решения об использовании данных предыдущего сканирования запрошенного сегмента, если параметр времени указывает на то, что информация сканирования не будет доступна к предельному сроку.
[017] Дополнительные и/или альтернативные признаки, аспекты и преимущества вариантов осуществления настоящей технологии содержатся в дальнейшем описании, приложенных чертежах и формуле изобретения.
Краткое описание чертежей
[018] Эти и другие признаки, аспекты и преимущества настоящей технологии поясняются в дальнейшем описании, в приложенной формуле изобретения и на следующих чертежах.
[019] На фиг. 1 представлена схема примера компьютерной системы для реализации систем и/или способов согласно настоящей технологии.
[020] На фиг. 2 представлено самоуправляемое транспортное средство, пригодное для использования в некоторых вариантах осуществления настоящей технологии.
[021] На фиг. 3 представлена блок-схема высокого уровня для архитектуры системы управления самоуправляемого транспортного средства согласно некоторым вариантам осуществления настоящей технологии.
[022] На фиг. 4 представлен сценарий работы для некоторых вариантов осуществления настоящей технологии.
[023] На фиг. 5-7 представлены иллюстративные временные диаграммы работы для различных вариантов осуществления настоящей технологии.
[024] На фиг. 8 представлена блок-схема способа управления самоуправляемым транспортным средством согласно некоторым вариантам осуществления настоящей технологии.
[025] На фиг. 9-11 представлены блок-схемы способов принятия решения об ожидании следующего сканирования запрошенного сегмента или об использовании данных предыдущего сканирования запрошенного сегмента согласно различным вариантам осуществления настоящей технологии.
Осуществление изобретения
[026] Далее более подробно описаны различные иллюстративные варианты осуществления или реализации настоящей технологии со ссылкой на приложенные чертежи. Тем не менее, настоящая технология может быть реализована во многих различных формах и не должна рассматриваться как ограниченная описанными здесь вариантами осуществления или реализации. Абсолютные и относительные размеры слоев и областей могут быть показаны на чертежах в увеличенном виде для ясности. Одинаковые числовые обозначения относятся к одинаковым элементам.
[027] Представленные здесь примеры и условный язык предназначены для обеспечения лучшего понимания принципов настоящей технологии, а не для ограничения ее объема до таких специально приведенных примеров и условий. Очевидно, что специалисты в данной области техники способны разработать различные способы и устройства, которые здесь явно не описаны и не показаны, но реализуют принципы настоящей технологии в пределах ее существа и объема.
[028] Кроме того, чтобы способствовать лучшему пониманию, последующее описание может содержать упрощенные варианты реализации настоящей технологии. Специалистам в данной области должно быть понятно, что другие варианты осуществления настоящей технологии могут быть значительно сложнее.
[029] В некоторых случаях приводятся полезные примеры модификаций настоящей технологии. Они способствуют пониманию, но также не определяют объема или границ настоящей технологии. Представленный перечень модификаций не является исчерпывающим и специалист в данной области может разработать другие модификации в пределах объема настоящей технологии. Кроме того, если в некоторых случаях модификации не описаны, это не означает, что они невозможны и/или что описание содержит единственно возможный вариант реализации того или иного элемента настоящей технологии.
[030] Очевидно, что, несмотря на то, что числительные «первый», «второй», «третий» и т.д. могут использоваться здесь для описания различных элементов, эти элементы не должны ограничиваться этими числительными. Эти числительные используются лишь для указания различия между элементами. Таким образом, первый элемент, обсуждаемый ниже, можно было бы назвать вторым элементом без выхода за границы настоящей технологии. В контексте данного документа термин «и/или» соответствует любому элементу и всем сочетаниям элементов из числа перечисленных элементов.
[031] Должно быть понятно, что если здесь указано на соединение или связь элемента с другим элементом, то он может быть соединен или связан с другим элементом непосредственно либо при этом могут присутствовать промежуточные элементы. Если же указано, что элемент непосредственно соединен или непосредственно связан с другим элементом, то промежуточные элементы отсутствуют. Другие слова, используемые для описания взаимосвязи между элементами, следует интерпретировать аналогичным образом (например, «между» и «непосредственно между», «примыкающий» и «непосредственно примыкающий» и т.д.).
[032] Используемая здесь терминология предназначена лишь для описания конкретных иллюстративных вариантов осуществления или реализации, но не для ограничения объема охраны настоящей технологии. Используемые здесь слова в единственном числе также подразумевают слова во множественном числе, если контекст явно не указывает иное. Должно быть понятно, что используемые здесь термины «содержит» и/или «содержащий» соответствуют наличию указанных признаков, частей, шагов, операций, элементов и/или компонентов, но не исключают наличия или добавления одного или нескольких других признаков, частей, шагов, операций, элементов, компонентов и/или их групп.
[033] Функции различных элементов, показанных на чертежах, включая любой функциональный блок, обозначенный как «процессор», могут быть реализованы с использованием специализированных аппаратных средств, а также аппаратных средств, способных выполнять программное обеспечение. Если используется процессор, эти функции могут выполняться одним выделенным процессором, одним совместно используемым процессором или множеством отдельных процессоров, некоторые из которых могут использоваться совместно. В некоторых вариантах осуществления настоящей технологии процессор может представлять собой процессор общего назначения, такой как центральный процессор (CPU), или специализированный процессор, такой как цифровой сигнальный процессор (DSP). Кроме того, явное использование термина «процессор» не должно трактоваться как указание исключительно на аппаратные средства, способные выполнять программное обеспечение, и может, помимо прочего, подразумевать специализированную интегральную схему (ASIC), программируемую вентильную матрицу (FPGA), постоянное запоминающее устройство (ПЗУ) для хранения программного обеспечения, оперативное запоминающее устройство (ОЗУ) и энергонезависимое запоминающее устройство. Также могут подразумеваться другие аппаратные средства, общего назначения и/или заказные.
[034] Программные модули либо просто модули или блоки, реализация которых предполагается в виде программных средств, могут быть представлены здесь как любое сочетание элементов блок-схемы или других элементов, указывающих на выполнение шагов процесса и/или содержащих текстовое описание. Такие модули могут выполняться аппаратными средствами, показанными явно или подразумеваемыми. Кроме того, должно быть понятно, что модуль, помимо прочего, может, например, содержать обеспечивающие требуемые возможности компьютерную программную логику, компьютерные программные команды, прикладное программное обеспечение, стек, встроенное программное обеспечение, схемотехнику аппаратных средств либо их сочетание.
[035] В контексте настоящего описания термин «база данных» означает любой структурированный набор данных, независимо от его конкретной структуры, программного обеспечения для управления базой данных или компьютерных аппаратных средств для хранения этих данных, их применения или обеспечения их использования иным способом. База данных может располагаться в тех же аппаратных средствах, где реализован процесс, обеспечивающий хранение или использование информации, хранящейся в базе данных, либо база данных может располагаться в отдельных аппаратных средствах, таких как специализированный сервер или множество серверов.
[036] Настоящая технология может быть реализована в виде системы, способа и/или компьютерного продукта. Компьютерный программный продукт может содержать машиночитаемый носитель информации (или среду), хранящий машиночитаемые программные команды, при исполнении которых процессор обеспечивает реализацию аспектов настоящей технологии. Машиночитаемый носитель информации может, например, представлять собой электронное запоминающее устройство, магнитное запоминающее устройство, оптическое запоминающее устройство, электромагнитное запоминающее устройство, полупроводниковое запоминающее устройство или любое подходящее их сочетание. Открытый перечень конкретных примеров машиночитаемого носителя информации включает в себя портативный компьютерный диск, жесткий диск, ОЗУ, ПЗУ, флэш-память, оптический диск, карту памяти, гибкий диск, носитель с механическим или визуальным кодированием (например, перфокарту или штрих-код) и/или любое их сочетание. В данном контексте машиночитаемый носитель информации должен рассматриваться как машиночитаемый физический носитель информации. Он не должен рассматриваться как изменяющийся сигнал, такой как радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся через волновод или другую среду передачи (например, световые импульсы в волоконно-оптическом кабеле), или электрические сигналы, передаваемые по проводам.
[037] Должно быть понятно, что машиночитаемые программные команды могут быть загружены из машиночитаемого носителя информации в соответствующие вычислительные или обрабатывающие устройства либо во внешний компьютер или внешнее запоминающее устройство через сеть, например, через сеть Интернет, локальную сеть, глобальную сеть и/или беспроводную сеть. Сетевой интерфейс в вычислительном или обрабатывающем устройстве может получать машиночитаемые программные команды через сеть и пересылать машиночитаемые программные команды для хранения в машиночитаемом носителе информации в соответствующем вычислительном или обрабатывающем устройстве.
[038] Машиночитаемые программные команды для выполнения операций в настоящей технологии могут представлять собой команды ассемблера, машинные команды, команды встроенного программного обеспечения, данные конфигурации для интегральных схем либо другой исходный код или объектный код, написанный с использованием любого сочетания языков программирования. Машиночитаемые программные команды могут выполняться полностью на компьютере пользователя, частично на компьютере пользователя, как отдельный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере или полностью на удаленном компьютере либо сервере. В последнем случае удаленный компьютер может быть связан с компьютером пользователя через сеть любого вида.
[039] Описание принципов, аспектов и вариантов реализации настоящей технологии, а также их конкретные примеры предназначены для охвата их структурных и функциональных эквивалентов, независимо от того, известны они в настоящее время или будут разработаны в будущем. Например, специалистам в данной области техники должно быть понятно, что любые описанные здесь структурные схемы соответствуют концептуальным представлениям иллюстративных принципиальных схем, реализующих основы настоящей технологии. Также должно быть ясно, что любые блок-схемы, схемы процессов, диаграммы изменения состояния, псевдокоды и т.п. соответствуют различным процессам, которые могут быть реализованы в машиночитаемых программных командах. Эти машиночитаемые программные команды могут быть предоставлены процессору или другому программируемому устройству обработки данных для формирования вычислительного механизма так, чтобы команды, исполняемые процессором компьютера или другим программируемым устройством обработки данных, обеспечивали средства для реализации функций или действий, указанных в одном или нескольких блоках диаграммы и/или блок-схемы. Эти машиночитаемые программные команды также могут быть сохранены в машиночитаемом носителе информации и могут обеспечивать функционирование компьютера, программируемого устройства обработки данных и/или другого устройства таким образом, чтобы машиночитаемый носитель информации с хранящимися в нем командами содержал изделие с командами, реализующими аспекты функций или действий, указанных в блок-схемах, схемах процессов, диаграммах изменения состояния, псевдокодах и т.п.
[040] Эти машиночитаемые программные команды также могут быть загружены в компьютер, иное программируемое устройство обработки данных или другие устройства для обеспечения последовательности рабочих шагов, подлежащих выполнению в компьютере, ином программируемом устройстве или других устройствах, для формирования компьютерного процесса так, чтобы команды, исполняемые в компьютере, ином программируемом устройстве или других устройствах, реализовывали функции или действия, указанные в блок-схемах, схемах процессов, диаграммах изменения состояния, псевдокодах и т.п.
[041] В некоторых альтернативных вариантах осуществления изобретения функции, указанные в блок-схемах, схемах процессов, диаграммах изменения состояния, псевдокодах и т.п., могут реализовываться в порядке, отличном от указанного на чертежах. Например, два блока, представленные на блок-схеме как последовательные, фактически могут выполняться одновременно или блоки иногда могут выполняться в обратном порядке - в зависимости от реализуемой функции. Также следует отметить, что каждая функция, указанная на чертежах, и сочетания таких функций могут быть реализованы системами на основе специализированных аппаратных средств, выполняющих указанные функции или действия, либо сочетаниями специализированных аппаратных средств и компьютерных команд.
[042] Далее с учетом вышеизложенных принципов рассмотрены некоторые не имеющие ограничительного характера примеры, иллюстрирующие различные варианты реализации аспектов настоящей технологии.
Компьютерная система
[043] На фиг. 1 представлена компьютерная система 100. Компьютерная система 100 может представлять собой многопользовательский компьютер, однопользовательский компьютер, ноутбук, планшетный компьютер, смартфон, встроенную систему управления или любую другую компьютерную систему, которая известна в настоящее время или будет разработана в будущем. Кроме того, следует понимать, что некоторые или все элементы компьютерной системы 100 могут быть виртуализированы. Как показано на фиг. 1, компьютерная система 100 содержит один или несколько процессоров 102, память 110, интерфейс 120 хранилища данных и сетевой интерфейс 140. Эти элементы системы связаны друг с другом через шину 150, которая может содержать одну или несколько внутренних и/или внешних шин (не показаны) (таких как шина PCI, шина USB, шина FireWire стандарта IEEE 1394, шина SCSI, шина Serial-ATA и т.д.), с которыми различные аппаратные элементы соединены электронным образом.
[044] Память 110, которая может представлять собой ОЗУ или память любого другого вида, может содержать данные 112, операционную систему 114 и программу 116. Данные 112 могут представлять собой любые данные, соответствующие входным или выходным данным любой программы в компьютерной системе 100. Операционная система 114 представляет собой операционную систему, такую как Microsoft Windows или Linux. Программа 116 может представлять собой любую программу или набор программ, содержащих запрограммированные команды, которые могут быть выполнены процессором для управления действиями компьютерной системы 100.
[045] Интерфейс 120 хранилища данных используется для подключения запоминающих устройств, таких как запоминающее устройство 125, к компьютерной системе 100. Запоминающее устройство 125 одного вида представляет собой твердотельный накопитель, который может использовать блок интегральных схем для постоянного хранения данных. Запоминающее устройство 125 другого вида представляет собой накопитель на жестких дисках, такой как электромеханическое устройство, использующее магнитное запоминающее устройство для хранения и извлечения цифровых данных. Запоминающее устройство 125 также может представлять собой накопитель на оптических дисках, устройство для считывания карт памяти, таких как SD-карта, или устройство флэш-памяти, которое может быть подключено к компьютерной системе 100, например, через универсальную последовательную шину (USB).
[046] В некоторых вариантах реализации изобретения в компьютерной системе 100 могут использоваться хорошо известные механизмы виртуальной памяти, позволяющие программам компьютерной системы 100 работать так, как если бы они имели доступ к большому непрерывному адресному пространству, а не обращались к нескольким областям памяти меньшего размера, таким как память 110 и запоминающее устройство 125. Таким образом, несмотря на то, что данные 112, операционная система 114 и программы 116 показаны как размещенные в памяти 110, специалисту в данной области техники должно быть понятно, что эти элементы не обязательно должны одновременно полностью содержаться в памяти 110.
[047] Процессоры 102 могут содержать один или несколько микропроцессоров и/или других интегральных схем. Процессоры 102 исполняют программные команды, хранящиеся в памяти 110. При запуске компьютерной системы 100 процессоры 102 могут сначала выполнять процедуру загрузки и/или исполнять программные команды, образующие операционную систему 114.
[048] Сетевой интерфейс 140 используется для подключения компьютерной системы 100 к другим компьютерным системам или сетевым устройствам (не показаны) через сеть 160. Сетевой интерфейс 140 может содержать сочетание аппаратных и программных средств, обеспечивающих связь через сеть 160. В некоторых вариантах реализации изобретения сетевой интерфейс 140 может представлять собой беспроводной сетевой интерфейс. Программное обеспечение сетевого интерфейса 140 может содержать программное обеспечение, использующее один или несколько сетевых протоколов для связи через сеть 160. Например, сетевые протоколы могут включать в себя протокол TCP/IP (Transmission Control Protocol/Internet Protocol).
[049] Должно быть понятно, что компьютерная система 100 представляет собой лишь пример и что описанная технология может быть использована с компьютерными системами или другими компьютерными устройствами иной конфигурации.
Самоуправляемое транспортное средство
[050] На фиг. 2 представлено самоуправляемое транспортное средство 200. Самоуправляемое транспортное средство 200 изображено в виде пассажирского автомобиля, но должно быть понятно, что оно может представлять собой другое транспортное средство для отдыха или коммерческой деятельности, например, любой легковой автомобиль для личного или коммерческого использования, грузовой автомобиль, мотоцикл и т.д. Несмотря на то, что самоуправляемое транспортное средство 200 изображено в виде наземного транспортного средства, настоящая технология этим не ограничивается. Например, самоуправляемое транспортное средство 200 может представлять собой плавучее средство, такое как лодка, или летательный аппарат, такой как дрон.
[051] Самоуправляемое транспортное средство 200 может представлять собой полностью самоуправляемое транспортное средство или частично автономное транспортное средство, в котором водитель-человек управляет некоторыми аспектами работы транспортного средства, тогда как другие аспекты (например, автопилот на автомагистрали) автоматизированы. Следует отметить, что не накладывается каких-либо ограничений на параметры транспортного средства, такие как производитель, модель транспортного средства, год выпуска транспортного средства, масса транспортного средства, размеры транспортного средства, распределение массы транспортного средства, площадь поверхности транспортного средства, высота транспортного средства, вид трансмиссии (например, привод на два или на четыре колеса), вид шин, тормозная система, топливная система, пробег, идентификационный номер транспортного средства, рабочий объем двигателя или другие характеристики или параметры транспортного средства.
[052] Самоуправляемое транспортное средство 200 содержит вычислительное устройство 210, управляющее по меньшей мере некоторыми аспектами работы самоуправляемого транспортного средства 200. На реализацию вычислительного устройства 210 не накладывается каких-либо ограничений. Например, вычислительное устройство 210 может быть реализовано в виде блока управления двигателем транспортного средства, центрального процессора транспортного средства, автомобильного навигатора, планшета, персонального компьютера, встроенного в транспортное самоуправляемое транспортное средство 200, и т.п. Следует отметить, что вычислительное устройство 210 может быть связано или не связано с самоуправляемым транспортным средством 200 постоянным образом. Дополнительно или в качестве альтернативы, вычислительное устройство 210 может быть реализовано в устройстве беспроводной связи, таком как мобильный телефон (например, смартфон или радиотелефон). В некоторых вариантах осуществления изобретения вычислительное устройство 210 содержит дисплей 270.
[053] Вычислительное устройство 210 может содержать некоторые или все элементы компьютерной системы 100, представленной на фиг. 1. В общем случае вычислительное устройство 210 содержит аппаратные средства и/или прикладное программное обеспечение и/или встроенное программное обеспечение либо их сочетание для обработки данных, как более подробно описано ниже. Следует отметить, что вычислительное устройство 210 может осуществлять связь с другими компьютерными системами (не показаны) через сеть (не показана), включая серверы и компьютерные системы в других самоуправляемых транспортных средствах (например, в конфигурации одноранговой или самоорганизующейся ячеистой сети). Тем не менее, для работы самоуправляемого транспортного средства 200 эта связь не является необходимой, поскольку возможны ситуации, когда самоуправляемое транспортное средство 200 может находиться за пределами дальности связи беспроводной или сотовой сети либо может быть неспособным осуществлять связь через сеть по иной причине.
[054] Самоуправляемое транспортное средство 200 также содержит множество датчиков, используемых для получения информации об окружающей среде, чтобы самоуправляемое транспортное средство 200 могло перемещаться в окружающей среде. Эти датчики могут включать в себя датчики изображения, такие как одна или несколько камер (не показаны), и другие датчики, такие как датчик GPS или иное устройство определения местоположения (не показано), радиолокатор (не показан), блок инерциальных измерений (не показан), сонар (не показан) и/или другие датчики. В число этих датчиков входит лидарное устройство 230. Лидар (LiDAR, Light Detection And Ranging - световая система обнаружения и измерения дальности) представляет собой технологию датчиков для активного измерения расстояний до объектов окружающей среды с целью формирования облака точек, представляющего трехмерное положение и форму поверхностей в окружающей среде. Это обеспечивается с использованием одного или нескольких лазеров, измеряющих расстояния путем формирования лазерного импульса и обнаружения обратного импульса (при наличии), отраженного от объекта окружающей среды. Импульсы распространяются со скоростью света, поэтому расстояние до объекта может быть рассчитано на основе временной задержки между излученным импульсом и возвратом отраженного импульса. Каждый такой импульс относится к одной точке в облаке точек и лазеры сканируют зону для формирования облака точек, в котором каждая точка представляет расстояние до отражающей поверхности в просканированной области. Лидарное устройство 230 циклически повторяет сканирование, поэтому периодически формируются новые результаты сканирования зоны, которую охватывает лидарное устройство 230 (например, полное сканирование выполняется с периодом 100 мс). Сканируемая зона может представлять собой полную 360-градусную зону, окружающую транспортное средство, в пределах дальности действия лидарного устройства 230 (например, 100 м). Тем не менее, также могут использоваться и другие зоны сканирования.
[055] Датчики, такие как лидарное устройство 230, периодически сканирующие зону, называются здесь сканирующими датчиками. В качестве других примеров сканирующих датчиков можно привести радиолокатор и некоторые сонарные системы.
[056] Датчики, включая лидарное устройство 230, могут быть установлены в различных местах на самоуправляемом транспортном средстве в зависимости от вида датчика и способа его работы. Например, камера (не показана) может быть установлена с внутренней стороны на верхней части ветрового стекла самоуправляемого транспортного средства 200, но также возможны и другие местоположения, такие как передний капот, крыша, передняя решетка или передний бампер самоуправляемого транспортного средства 200. В некоторых вариантах осуществления настоящей технологии лидарное устройство 230 может быть установлено в специальном кожухе (не показан), расположенном сверху самоуправляемого транспортного средства 200.
Система управления
[057] На фиг. 3 представлена высокоуровневая блок-схема системы 300 управления самоуправляемого транспортного средства. Система 300 управления может быть реализована в вычислительном устройстве 210 самоуправляемого транспортного средства, описанном выше со ссылкой на фиг. 2, которое может быть реализовано с использованием компьютерной системы, такой как компьютерная система 100, описанная выше со ссылкой на фиг. 1. Система 300 управления содержит слой 302 поведения, слой 304 восприятия и один или несколько датчиков 306.
[058] Расположенные на «самом нижнем» уровне этой архитектуры датчики 306 могут представлять собой разнообразные датчики, предоставляющие информацию системе 300 управления так, чтобы система 300 управления могла должным образом управлять самоуправляемым транспортным средством. Эти датчики 306 могут включать в себя такие датчики, как камеры (например, видеокамеры, чувствительные к видимому свету, панорамные камеры, инфракрасные камеры и т.д.), датчики GPS (или других систем определения местоположения), блоки инерциальных измерений, сонар, радиолокатор (как малого, так и большого радиуса действия), лидар и другие датчики. Должно быть понятно, что самоуправляемые транспортные средства могут содержать только подмножество этих датчиков и видов датчиков. Кроме того, для предоставления входных данных системе 300 управления могут использоваться сочетания датчиков, при этом сочетание обычно осуществляется либо в слое 304 восприятия, либо в виде объединенного датчика среди датчиков 306.
[059] Согласно настоящей технологии, по меньшей мере один из датчиков 306 представляет собой сканирующий датчик 308, такой как лидар или радиолокатор, который сканирует (обычно циклически) зону, подлежащую сканированию. Несмотря на то, что датчики 306 могут включать в себя множество таких сканирующих датчиков, для целей этого описания и для лучшего понимания настоящей технологии рассматривается лишь один сканирующий датчик 308. Должно быть понятно, что по существу те же способы и системы могут использоваться с несколькими сканирующими датчиками. Для удобства рассматриваемый сканирующий датчик 308 представляет собой лидарную сканирующую систему. Лидары часто используются в самоуправляемых транспортных средствах. Тем не менее, должно быть понятно, что по существу те же системы и способы могут использоваться со сканирующими датчиками других видов.
[060] Как описано выше, для сканирующего датчика 308 процесс сканирования является циклическим. Это означает, что сканирующий датчик 308 выполняет сканирование зоны, подлежащей сканированию, а затем начинает новое сканирование. В случае лидарной системы для полного цикла сканирования может требоваться, например, 100 мс. Тем не менее, должно быть понятно, что могут использоваться более быстрые или более медленные лидарные системы.
[061] Слой 304 восприятия способен получать и анализировать информацию от датчиков 306, включая сканирующий датчик 308. Слой 304 восприятия осуществляет связь с датчиками 306 и анализирует исходные данные датчиков 306, включая сканирующий датчик 308. Исходные данные от сканирующего датчика 308 могут содержать данные облака точек, например, сформированные лидарным сканером. Такие данные облака точек могут содержать большую коллекцию трехмерных точек, описывающих обнаруживаемые объекты или поверхности. Слой 304 восприятия анализирует эти облака точек с целью классификации (т.е. распознавания) объектов вблизи самоуправляемого транспортного средства, таких как другие автомобили, неподвижные препятствия, дорожные знаки и т.д. Эта классификация может выполняться, например, с использованием традиционных алгоритмов машинного обучения. После выполнения анализа исходных данных датчика слоем 304 восприятия результаты этого анализа отправляются слою 302 поведения.
[062] С точки зрения временных соотношений, среднее время анализа для слоя 304 восприятия может быть определено, исходя из предположения о применении традиционных алгоритмов машинного обучения. Это среднее время анализа может быть задано путем оценочного испытания или может непрерывно обновляться, чтобы соответствовать фактическому времени, затрачиваемому на выполнение анализа. Время, требуемое слою 304 восприятия для выполнения анализа, может изменяться в зависимости от анализируемых входных данных от датчика или сочетания датчиков и в зависимости от запросов, которые могут отправляться слоем 302 поведения.
[063] Слой 302 использует обработанные данные от слоя восприятия для принятия решения относительно подлежащего выполнению маневра. Это может выполняться с использованием множества способов или алгоритмов, например, в зависимости от вида транспортного средства.
[064] В общем случае слой 302 поведения работает без особой синхронизации с циклами сканирующего датчика 308. Таким образом, слой 302 поведения может инициировать выполнение процесса принятия решений в любой момент времени текущего цикла сканирования сканирующего датчика 308.
[065] Для процесса принятия решений может быть полезно основываться на наиболее актуальных данных, доступных во время принятия решения. Соответственно, одна из целей настоящей технологии заключается в способствовании использованию наиболее актуальных данных, доступных при принятии решений относительно маневра.
Сканирование сегментов
[066] Со ссылкой на фиг. 4 описан сценарий работы согласно настоящей технологии. На схеме 400 показано самоуправляемое транспортное средство 402, которое приближается к Т-образному перекрестку 404, где второстепенная дорога 406, по которой движется самоуправляемое транспортное средство, примыкает к главной дороге 408. Для продолжения движения на перекрестке 404 слой поведения системы управления самоуправляемого транспортного средства 402 планирует маневр - правый поворот. Иными словами, самоуправляемому транспортному средству требуется повернуть направо и присоединиться к транспортному потоку, движущемуся по главной дороге 408 слева направо. Для выполнения этого маневра самоуправляемое транспортное средство должно убедиться в том, что сегмент 410 на главной дороге пуст. Сегмент 410 окружающего пространства самоуправляемого автомобиля сопряжен с наибольшим риском при планируемом маневре.
[067] Согласно настоящей технологии, для выполнения маневра на основе наиболее актуальных данных сканирования система управления самоуправляемого транспортного средства (такая как система управления, описанная со ссылкой на фиг. 3) выполняет несколько действий. Слой поведения отправляет слою восприятия запрос наиболее актуальной информации о сегменте 410. Слой восприятия отправляет запрос исходных данных, связанных с сегментом 410, сканирующему датчику.
[068] Во время «обычной» работы в случае отсутствия запроса информации сканирующий датчик выполняет регулярное циклическое сканирование. Таким образом, после завершения цикла сканирования полный набор данных сканирования, полученных во время этого цикла сканирования, отправляется слою восприятия для анализа. Этот процесс периодически повторяется с некоторой заданной по умолчанию частотой, например, с периодом 100 мс. Это означает, что в зависимости от положения сегмента 410 в цикле сканирования, задержка получения данных слоем восприятия может достигать продолжительности полного цикла. Согласно настоящей технологии, при наличии запроса информации сканирования для принятия решения слой восприятия может использовать частичные данные от сканирующего датчика с целью предоставления самой свежей информации слою поведения для принятия решения.
t
t
t
t
t
t
t
req
req
1
req
2
req
2
[069] На фиг. 5-7 представлены иллюстративные временные диаграммы для различных вариантов осуществления настоящей технологии. На фиг. 5 представлена иллюстративная временная диаграмма 500 для случая, когда слой восприятия и/или сканирующий датчик (т.е. способ может быть реализован в любом из них или в обоих при их совместной работе) сравнивает время, прошедшее после последнего сканирования запрошенного сегмента (например, сегмента 410 с фиг. 4), с интервалом времени до следующего сканирования запрошенного сегмента, чтобы определить подлежащие использованию данные. На временной диаграмме 500 момент времени запроса от слоя поведения обозначен как . Штриховыми отметками 502 обозначены крайние точки последовательных циклов сканирующего датчика, а выделенные серым цветом области 504 указывают на время сканирования запрошенного сегмента в каждом цикле. Промежуток времени между моментом времени  и моментом времени завершения последнего предыдущего сканирования 506 запрошенного сегмента обозначен как . Промежуток времени между моментом времени  и моментом времени завершения следующего сканирования 508 запрошенного сегмента обозначен как . Следует отметить, что поскольку следующее сканирование 508 запрошенного сегмента будет выполнено в будущем после момента времени , то время  представляет собой прогнозируемое время, которое может быть определено с высокой степенью достоверности вследствие циклического характера сканирования.
t
t
t
t
t
t
1
2
1
2
1
2
[070] Согласно этому варианту осуществления изобретения, если  ≤ , то могут быть использованы данные предыдущего сканирования запрошенного сегмента. В противном случае (если  > ) слой восприятия ожидает завершения следующего сканирования запрошенного сегмента, а затем использует данные следующего сканирования запрошенного сегмента. В представленном на фиг. 5 примере  > , поэтому слой восприятия ожидает следующего сканирования запрошенного сегмента.
t
t
t
t
t
1
2
1
2
2
[071] Согласно логике этого варианта осуществления изобретения, минимальное время между запросом и предоставлением слою поведения проанализированной информации обычно соответствует времени, которое требуется слою восприятия для анализа данных. Это происходит, когда  ≤ , поскольку данные для запрошенного сегмента немедленно доступны слою восприятия. В некоторых случаях возможно дополнительное уменьшение этого времени, если  <  и слой восприятия уже выполнил анализ предыдущего сканирования запрошенных данных. В общем случае максимальное время между запросом и предоставлением слою поведения проанализированной информации равно сумме  и времени, требуемого слою восприятия для анализа данных для запрошенного сегмента. Проанализированная информация предоставляется слою поведения с задержкой не более продолжительности одного цикла плюс время, требуемое для анализа, при этом в среднем задержка оказывается меньшей.
[072] На фиг. 6 представлены иллюстративные временные диаграммы 600 и 630 для второго варианта осуществления изобретения, подобного первому варианту осуществления изобретения за исключением того, что доступные данные сканирования используются немедленно, если запрошенный сегмент уже был просканирован в текущем цикле сканирования. В результате информация может быть менее актуальной, чем в первом варианте осуществления изобретения, но она раньше (в среднем) предоставляется слою 302 поведения. Иллюстративная временная диаграмма 600 соответствует такому случаю.
t
t
req
req
[073] Как и ранее, на временных диаграммах 600 и 630 показан момент времени  запроса от слоя 302 поведения. Штриховыми отметками 602 обозначены крайние точки последовательных циклов сканирующего датчика, а выделенные серым цветом области 604 указывают на время сканирования запрошенного сегмента в каждом цикле. На иллюстративной временной диаграмме 600 момент времени  наступает в текущем цикле 606 сканирования, в котором запрошенный сегмент уже просканирован. Согласно второму варианту осуществления изобретения, слой 304 восприятия получает данные сканирования для запрошенного сегмента из текущего цикла 606 сканирования без ожидания завершения текущего цикла 606 сканирования. Как показано на временной диаграмме 600, это выполняется, даже если время, прошедшее после завершения сканирования запрошенного сегмента в текущем цикле 606 сканирования, больше интервала времени до завершения сканирования запрошенного сегмента в следующем цикле 608 сканирования. Это обеспечивает быстрый ответ на запрос с использованием данных, возраст которых меньше одного цикла сканирования.
t
t
t
t
t
t
t
t
t
t
t
req
req
1
req
2
1
2
1
2
1
2
[074] На иллюстративной временной диаграмме 630 представлен второй случай, когда момент времени  наступает в текущем цикле 632 сканирования до завершения сканирования запрошенного сегмента в текущем цикле 632 сканирования. В этот момент времени слой 304 распознания выбирает между отправкой данных сканирования для запрошенного сегмента из предыдущего цикла 634 сканирования и ожиданием завершения сканирования запрошенного сегмента в текущем цикле 632 сканирования. Это решение принимается тем же образом, что и в первом варианте осуществления изобретения, описанном выше со ссылкой на фиг. 5. Промежуток времени между моментом времени  и моментом времени завершения последнего предыдущего сканирования запрошенного сегмента обозначен как . Промежуток времени между моментом времени  и моментом времени завершения следующего сканирования запрошенного сегмента обозначен как . Если  ≤ , то могут быть использованы данные предыдущего сканирования запрошенного сегмента. В противном случае, если  > , слой восприятия ожидает завершения сканирования запрошенного сегмента в текущем цикле 632 сканирования, а затем использует данные из текущего цикла 632 сканирования. В иллюстративной временной диаграмме 630  < , поэтому слой восприятия немедленно использует данные предыдущего сканирования.
t
t
t
t
t
t
req
1
2
1
2
2
[075] В этом варианте осуществления изобретения минимальное время между запросом и предоставлением слою поведения проанализированной информации обычно соответствует времени, требуемому слою восприятия для анализа данных. Это происходит, когда момент времени  наступает в текущем цикле 632 сканирования после завершения сканирования запрошенного сегмента и  ≤ , поскольку данные для запрошенного сегмента немедленно доступны слою 304 восприятия. В некоторых случаях возможно дополнительное уменьшение этого времени, если  <  и слой восприятия уже выполнил анализ предыдущего сканирования запрошенных данных. В общем случае максимальное время между запросом и предоставлением слою поведения проанализированной информации равно сумме  и времени, требуемого слою восприятия для анализа данных для запрошенного сегмента. Проанализированная информация предоставляется слою поведения с задержкой не более продолжительности одного цикла плюс время, требуемое для анализа, при этом в среднем задержка оказывается меньшей.
[076] В настоящей технологии может быть полезно, чтобы интервал времени между запросом и ответом слоя восприятия на запрос был как можно меньше. Слой 302 поведения может иметь лишь небольшой интервал времени для принятия решения. Это указывает на целесообразность использования уже полученных в результате сканирования данных для запрошенного сегмента, поскольку не требуется ожидание этих данных. Тем не менее, также полезно, чтобы используемые для принятия решения данные не были слишком старыми или утратившими актуальность. Условия на дорогах и в окружающей среде, где работает самоуправляемое транспортное средство, могут быстро изменяться. Это указывает на целесообразность ожидания поступления новых данных, когда это возможно. В вариантах осуществления изобретения согласно фиг. 5 и 6 предпринята попытка обеспечить оптимальное соотношение между этими подходами. При этом вариант осуществления изобретения согласно фиг. 6 несколько более ориентирован на предоставление быстрого ответа слою поведения.
t
d
t
req
proc
[077] Ниже со ссылкой на фиг. 7 описана иллюстративная временная диаграмма 700 для третьего варианта осуществления изобретения. В этом варианте осуществления изобретения слой 302 поведения отправляет запрос в момент времени . Запрос содержит информацию о сегменте пространства, для которого запрашивается информация, и предельный срок , к которому должна быть предоставлена информация. Время, требуемое слою восприятия для обработки данных просканированного сегмента, обозначено как . Как и ранее, штриховыми отметками 702 обозначены крайние точки последовательных циклов сканирующего датчика, а выделенные серым цветом области 704 указывают на время сканирования запрошенного сегмента в каждом цикле.
t
d
t
t
d
proc
req
proc
[078] Согласно варианту осуществления изобретения, представленному на на фиг. 7, слой 304 восприятия может ожидать завершения будущего сканирования запрошенного сегмента в текущем цикле или в следующем цикле, если будущее сканирование 706 запрошенного сегмента и последующий интервал времени  заканчиваются до предельного срока . В противном случае слой 304 восприятия использует данные предыдущего сканирования 708 запрошенного сегмента, которое уже завершено в текущем цикле сканирования или в предыдущем цикле сканирования. Эта ситуация представлена на иллюстративной временной диаграмме 700. Если следующее сканирование 706 запрошенного сегмента ожидается после момента времени , то информация будет отправлена слою поведения по истечении интервала времени  позже предельного срока . Поэтому используются данные предыдущего сканирования 708 запрошенного сегмента.
d
[079] В представленном на фиг. 7 варианте осуществления изобретения слою поведения предоставляется наиболее свежая доступная от сканирующего датчика информация, которая может быть предоставлена до того, как она потребуется слою поведения. При этом недостаток этого подхода заключается в том, что слой поведения должен задать предельный срок , к которому требуется эта информация.
[080] На фиг. 8 представлена блок-схема 800 обобщенного способа управления самоуправляемым транспортным средством согласно различным вариантам осуществления настоящей технологии. Например, самоуправляемое транспортное средство может представлять собой самоуправляемое транспортное средство 200, которое описано выше со ссылкой на фиг. 2 и содержит вычислительное устройство 210 и лидарное устройство 230. Самоуправляемое транспортное средство может управляться системой управления, такой как система управления 300, представленная на фиг. 3 и реализованная в вычислительном устройстве 210. Сканирующий датчик сканирует пространство вблизи самоуправляемого транспортного средства в последовательных циклах сканирования.
[081] В блоке 802 принимается запрос информации сканирования, связанной с запрошенным сегментом пространства. Этот запрос обычно принимается слоем восприятия системы управления от слоя поведения системы управления, но возможны и другие варианты. Сегмент пространства представляет собой зону в окружающей среде самоуправляемого транспортного средства, которая может сканироваться сканирующим датчиком и быть релевантной для решения, принимаемого относительно работы самоуправляемого транспортного средства.
[082] В блоке 804 принимается решение об ожидании следующего сканирования запрошенного сегмента и использовании данных следующего сканирования запрошенного сегмента или о получении и использовании данных предыдущего сканирования запрошенного сегмента. Следующее сканирование запрошенного сегмента может быть выполнено позже в текущем цикле сканирования или в следующем цикле сканирования, а предыдущее сканирование запрошенного сегмента может быть уже выполнено в текущем цикле сканирования или в предыдущем цикле сканирования. Согласно настоящей технологии, возможны различные способы принятия этого решения, как описано выше со ссылкой на фиг. 5-7 и дополнительно описано ниже. В системах, содержащих несколько сканирующих датчиков, для разных сканирующих датчиков могут использоваться разные способы принятия этого решения.
[083] Как описано выше, способ принятия решения способен обеспечить оптимальное соотношение между максимально быстрым ответом на запрос и предоставлением самых свежих данных, даже если может потребоваться ожидание этих данных. На это соотношение может влиять способ принятия решения: некоторые способы могут быть более ориентированы на быстрый ответ на запрос, а другие способы могут быть более ориентированы на предоставление самых свежих данных. В некоторых вариантах осуществления изобретения способ, используемый для принятия решения, может представлять собой настраиваемый параметр системы управления самоуправляемого транспортного средства.
[084] В блоке 806 данные для запрошенного сегмента обрабатываются с целью формирования информации сканирования для запрошенного сегмента. Например, эта обработка может выполняться в слое восприятия системы управления. Тем не менее, должно быть понятно, что возможны и другие варианты. Обработка может включать в себя анализ данных различных видов. Например, если сканирующий датчик представляет собой лидар, то обработка может предусматривать анализ облака лидарных точек для запрошенного сегмента с целью классификации (т.е. распознавания) объектов вблизи самоуправляемого транспортного средства, таких как другие автомобили, неподвижные препятствия, дорожные знаки и т.д. Эта классификация может выполняться, например, с использованием традиционных алгоритмов машинного обучения.
[085] В блоке 808 информация сканирования предоставляется в ответ на запрос. Например, это может включать в себя отправку слоем восприятия информации сканирования слою поведения системы управления, но возможны и другие варианты.
[086] В блоке 810 решение о подлежащем выполнению маневре принимается, по меньшей мере частично, на основе информации сканирования. Это решение используется для управления самоуправляемым транспортным средством.
[087] На фиг. 9 представлена блок-схема 900 первого варианта осуществления способа принятия решения об ожидании следующего сканирования запрошенного сегмента или об использовании данных предыдущего сканирования запрошенного сегмента. В частности, этот способ может быть использован в блоке 804 блок-схемы 800, описанной со ссылкой на фиг. 8. В общем случае блок-схема 900 соответствует варианту осуществления изобретения, описанному выше со ссылкой на фиг. 5.
t
1
[088] В блоке 902 оценивается первый параметр времени (обозначенный как  в блок-схеме 900), указывающий на время, прошедшее после предыдущего сканирования запрошенного сегмента. Момент времени завершения предыдущего сканирования запрошенного сегмента может быть определен на основе известной скорости сканирования зоны, охватываемой сканирующим датчиком. В качестве альтернативы, облака лидарных точек могут содержать данные синхронизации, которые могут использоваться для определения первого параметра времени. Должно быть понятно, что могут применяться и другие способы определения первого параметра времени.
t
2
[089] В блоке 904 оценивается второй параметр времени (обозначенный как  в блок-схеме 900), указывающий на время до момента доступности данных следующего сканирования запрошенного сегмента. Поскольку второй параметр времени относится к еще не произошедшему событию, при оценивании второго параметра времени оценивается время до момента доступности данных следующего сканирования запрошенного сегмента. Эта оценка может быть выполнена с достаточно высокой степенью достоверности, поскольку время сканирования конкретного сегмента зоны сканирования сканирующего датчика в цикле сканирования обычно известно и/или легко определяется вследствие циклического характера сканирования.
[090] В блоке 906 первый параметр времени сравнивается со вторым параметром времени. Если первый параметр времени меньше второго параметра времени, то в блоке 908 принимается решение об использовании данных предыдущего сканирования запрошенного сегмента. Эти данные обычно немедленно доступны в сканирующем датчике или в слое восприятия системы управления. Также должно быть понятно, что несмотря на описание такого решения как принимаемого на основе проверки того, что первый параметр времени меньше второго параметра времени, также предполагается, что это решение может быть принято, если первый параметр времени равен второму параметру времени.
[091] В противном случае, если первый параметр времени больше второго параметра времени, в блоке 910 принимается решение об использовании данных следующего сканирования запрошенного сегмента. Также должно быть понятно, что несмотря на описание такого решения как принимаемого на основе проверки того, что первый параметр времени больше второго параметра времени, также предполагается, что это решение может быть принято, если первый параметр времени равен второму параметру времени.
[092] В блоке 912 система ожидает завершения следующего сканирования запрошенного сегмента сканирующим датчиком.
[093] В блоке 914 система управления использует данные сканирования запрошенного сегмента для управления самоуправляемым транспортным средством. Например, это может включать в себя обработку исходных данных сканирования для формирования информации сканирования и отправку информации сканирования слою поведения, как описано выше со ссылкой на фиг. 8.
[094] На фиг. 10 представлена блок-схема 1000 второго варианта осуществления способа принятия решения об ожидании следующего сканирования запрошенного сегмента или об использовании данных предыдущего сканирования запрошенного сегмента. В частности, этот способ может быть использован в блоке 804 блок-схемы 800, описанной со ссылкой на фиг. 8. В общем случае блок-схема 1000 соответствует варианту осуществления изобретения, описанному выше со ссылкой на фиг. 6.
[095] В блоке 1002 система управления определяет, был ли просканирован запрошенный сегмент в текущем цикле сканирования. Если да, то в блоке 1004 система управления использует данные для запрошенного сегмента из текущего цикла сканирования для управления самоуправляемым транспортным средством.
t
1
[096] В противном случае в блоке 1006 оценивается первый параметр времени (обозначенный как  в блок-схеме 1000), указывающий на время, прошедшее после предыдущего сканирования запрошенного сегмента в предыдущем цикле сканирования. Как и в варианте осуществления изобретения, описанном со ссылкой на фиг. 9, он может быть определен на основе известной скорости сканирования зоны, охватываемой сканирующим датчиком, и/или на основе данных, предоставляемых сканирующим датчиком. Должно быть понятно, что могут использоваться и другие способы определения первого параметра времени.
t
2
[097] В блоке 1008 оценивается второй параметр времени (обозначенный как  в блок-схеме 1000), указывающий на время до момента доступности данных для запрошенного сегмента в текущем цикле сканирования. Как описано выше, второй параметр времени подвергается оценке, но эта оценка может выполняться с достаточно высокой степенью достоверности.
[098] В блоке 1010 первый параметр времени сравнивается со вторым параметром времени. Если первый параметр времени меньше второго параметра времени, то в блоке 1012 принимается решение об использовании данных сканирования для запрошенного сегмента из предыдущего цикла сканирования. Также должно быть понятно, что несмотря на описание такого решения как принимаемого на основе проверки того, что первый параметр времени меньше второго параметра времени, также предполагается, что это решение может быть принято, если первый параметр времени равен второму параметру времени.
[099] В противном случае, если первый параметр времени больше второго параметра времени, в блоке 1014 принимается решение об использовании данных сканирования для запрошенного сегмента из текущего цикла сканирования. Также должно быть понятно, что несмотря на описание такого решения как принимаемого на основе проверки того, что первый параметр времени больше второго параметра времени, также предполагается, что это решение может быть принято, если первый параметр времени равен второму параметру времени.
[0100] В блоке 1016 система ожидает завершения сканирования запрошенного сегмента сканирующим датчиком в текущем цикле сканирования.
[0101] В блоке 1018 система управления использует данные сканирования запрошенного сегмента для управления самоуправляемым транспортным средством.
[0102] На фиг. 11 представлена блок-схема 1100 третьего варианта осуществления способа принятия решения об ожидании следующего сканирования запрошенного сегмента или об использовании данных предыдущего сканирования запрошенного сегмента. В частности, этот способ может быть использован в блоке 804 блок-схемы 800, описанной выше со ссылкой на фиг. 8. В общем случае блок-схема 1100 соответствует варианту осуществления изобретения, описанному выше со ссылкой на фиг. 7.
[0103] В блоке 1102 система управления в качестве части запроса информации сканирования, связанной с сегментом пространства, получает предельный срок, к которому должен быть предоставлен ответ на запрос с информацией сканирования для запрошенного сегмента. Этот запрос более подробно описан выше со ссылкой на фиг. 8.
t
[0104] В блоке 1104 оценивается параметр времени (обозначенный как  в блок-схеме 1100), указывающий на время до момента доступности данных следующего сканирования запрошенного сегмента. Поскольку момент доступности данных следующего сканирования представляет собой еще не произошедшее событие, этот параметр времени подвергается оценке.
[0105] В блоке 1106 к параметру времени в некоторых случаях добавляется время обработки, чтобы учесть время, требуемое для обработки исходных данных следующего сканирования с целью формирования информации сканирования для следующего сканирования. Этот шаг не является обязательным и в некоторых вариантах осуществления изобретения время обработки может быть пренебрежимо малым, например, по сравнению со временем, требуемым для сканирования данных. Тем не менее, учитывая количество данных, которые, например, могут присутствовать в облаке лидарных точек даже для ограниченного сегмента, время, необходимое для обработки данных, может быть существенным для определения возможности соблюдения предельного срока.
[0106] В блоке 1108 параметр времени сравнивается с предельным сроком. В блоке 1110 принимается решение об использовании данных предыдущего сканирования запрошенного сегмента, если параметр времени указывает на то, что информация сканирования не будет доступна к предельному сроку. В противном случае в блоке 1112 принимается решение об использовании данных следующего сканирования запрошенного сегмента. В блоке 1114 система ожидает завершения следующего сканирования запрошенного сегмента сканирующим датчиком.
[0107] В блоке 1116 система управления использует данные сканирования запрошенного сегмента для управления самоуправляемым транспортным средством.
[0108] Для специалиста в данной области могут быть очевидными возможные изменения и усовершенствования описанных выше вариантов осуществления настоящей технологии. Предшествующее описание приведено лишь в иллюстративных целях, а не для ограничения объема изобретения. Объем охраны настоящей технологии определяется исключительно объемом приложенной формулы изобретения.