СПОСОБЫ И ПРОЦЕССОРЫ ДЛЯ УПРАВЛЕНИЯ РУЛЕНИЕМ БЕСПИЛОТНЫМ АВТОМОБИЛЕМ
METHODS AND PROCESSORS FOR STEERING CONTROL OF SELF-DRIVING CAR

Область техники, к которой относится изобретение
[0001] Настоящая технология относится к беспилотным автомобилям, а конкретно, к способу и процессору для управления рулением беспилотным автомобилем (SDC).
Уровень техники
[0002] В предшествующем уровне техники предложены и реализованы несколько компьютерных навигационных систем, которые выполнены с возможностью помощи при навигации и/или управлении транспортным средством. Эти системы варьируются от более базовых решений на основе картографической локализации (т.е. от использования компьютерной системы для того, чтобы помогать водителю в осуществлении навигации по маршруту из начального пункта в пункт назначения) до более сложных решений (компьютеризированных и/или автономных от водителя систем вождения).
[0003] Некоторые из этих систем реализуются как то, что общеизвестно в качестве системы "автоматического поддержания скорости" (круиз-контроль). В этих системах компьютерная система на борту транспортных средств поддерживает заданную пользователем скорость транспортного средства. Часть системы автоматического поддержания скорости реализует систему "интеллектуального управления расстоянием", за счет которой пользователь может устанавливать расстояние до потенциального автомобиля впереди (к примеру, выбирать значение, выражаемое в числе транспортных средств), и компьютерная система регулирует скорость транспортного средства по меньшей мере частично на основе транспортного средства, приближающегося к впереди идущему потенциальному транспортному средству в пределах предварительно заданного расстояния. Некоторые системы автоматического поддержания скорости дополнительно оснащаются системой управления столкновениями, причем эти системы, при обнаружении транспортного средства (или другого препятствия) перед движущимся транспортным средством, замедляют или останавливают транспортное средство.
[0004] Часть усовершенствованной системы предоставляет полностью автономное вождение транспортного средства без прямого управления оператора (т.е. водителя), так называемых беспилотных автомобилей (SDC). Данный SDC включает в себя компьютерные системы, которые могут инструктировать SDC ускоряться, тормозить, останавливаться, сменять полосу движения и автоматически парковаться.
[0005] Одна из технических сложностей в реализации вышеуказанных компьютерных систем заключается в планировании траектории SDC относительно препятствия (например, другого транспортного средства), с которым может сталкиваться SDC при вождении. Другая из технических проблем в реализации вышеуказанных компьютерных систем заключается в определении того, как рулить SDC таким образом, что SDC фактически придерживается такой запланированной траектории для избегания препятствия.
Сущность изобретения
[0006] Задача настоящей технологии заключается в том, чтобы улучшать по меньшей мере некоторые неудобства, присутствующие в предшествующем уровне техники. Варианты осуществления настоящей технологии могут предоставлять и/или расширять объем подходов к способам достижения целей и задач настоящей технологии.
[0007] Разработчики настоящей технологии принимают во внимание по меньшей мере одну техническую проблему, ассоциированную с подходами предшествующего уровня техники. Разработчики настоящей технологии выяснили, что управление рулением беспилотным автомобилем (SDC) охватывает по меньшей мере две основных проблемы. Во-первых, управление рулением SDC является технически сложным, поскольку профиль руления SDC должен приводить к траектории, которая помогает в переходе из первого предварительно определенного состояния SDC в следующее предварительно определенное состояние SDC. Тем не менее, в дополнение к этому, даже если данный профиль руления приводит к траектории, которая позволяет SDC переходить из первого предварительно определенного состояния SDC в следующее предварительно определенное состояние SDC, профиль руления может охватывать позиции рулевого колеса, которые либо являются слишком опасными для выполнения в ситуациях из реальной жизни, либо находятся за пределами допустимого диапазона позиций рулевого колеса, которые SDC физически может иметь.
[0008] В первом широком аспекте настоящей технологии, предусмотрен реализованный посредством компьютера способ управления рулением беспилотным автомобилем (SDC). SDC соединен с возможностью связи с процессором. SDC имеет предварительно определенный диапазон позиций рулевого колеса, которые являются физически возможными для SDC. Способ осуществляется посредством процессора. Способ содержит получение, посредством процессора из запоминающего устройства, данных состояния SDC, ассоциированных с двумя последовательными вершинами на графовой структуре. Вершины графовой структуры задают последовательность целевых состояний SDC на маршруте. Первая из двух последовательных вершин задает первое целевое состояние SDC на маршруте. Вторая из двух последовательных вершин задает второе целевое состояние SDC на маршруте. Способ содержит использование, посредством процессора, данных состояния SDC для получения набора параметров для построения полиномиальной кривой. Полиномиальная кривая представляет возможный вариант профиля руления SDC для попытки перехода из первого целевого состояния во второе целевое состояние. Возможный вариант профиля руления представляет множество возможных вариантов позиций рулевого колеса для SDC в соответствующие моменты времени между (i) моментом времени, ассоциированным с первым целевым состоянием, и (ii) моментом времени, ассоциированным со вторым целевым состоянием. По меньшей мере один возможный вариант позиции рулевого колеса из множества возможных вариантов позиций рулевого колеса представляет собой неразрешенную позицию рулевого колеса. Неразрешенная позиция рулевого колеса находится за пределами предварительно определенного диапазона позиций рулевого колеса SDC. Способ содержит использование, посредством процессора, полиномиальной кривой для моделирования возможного варианта траектории SDC, как если SDC управляют с помощью руля в соответствии с множеством возможных вариантов позиций рулевого колеса в соответствующие моменты времени, и таким образом, что вместо неразрешенной позиции рулевого колеса используется ближайшая разрешенная позиция рулевого колеса относительно неразрешенной позиции рулевого колеса в предварительно определенном диапазоне позиций рулевого колеса . Возможный вариант траектории (i) начинается в первом целевом состоянии SDC и (ii) завершается в моделированном состоянии SDC. Способ содержит определение, посредством процессора, смещения между моделированным состоянием SDC и вторым целевым состоянием SDC. Способ содержит, в ответ на смещение, составляющее ниже предварительно определенного порогового значения, выбор, посредством процессора, возможного варианта профиля руления в качестве целевого профиля руления SDC. Способ содержит использование, посредством процессора, целевого профиля руления SDC для управления рулением SDC, когда SDC находится в первом целевом состоянии.
[0009] В некоторых вариантах осуществления способа до получения данных состояния SDC, способ дополнительно содержит формирование, посредством процессора, графовой структуры для маршрута, которого должен придерживаться SDC.
[0010] В некоторых вариантах осуществления способа запоминающее устройство представляет собой запоминающее устройство удаленного сервера.
[0011] В некоторых вариантах осуществления способа набор параметров получается из запоминающего устройства.
[0012] В некоторых вариантах осуществления способа запоминающее устройство выполнено с возможностью сохранять соответствующие наборы параметров для соответствующих пар последовательных предварительно определенных состояний SDC.
[0013] В некоторых вариантах осуществления способа данные состояния SDC, ассоциированные с данным состоянием SDC, содержат множество значений состояния.
[0014] В некоторых вариантах осуществления способа каждое из множества значений состояния содержит по меньшей мере: значение позиции, значение времени, значение ориентации транспортного средства и значение позиции руления.
[0015] В некоторых вариантах осуществления способа набор параметров содержит по меньшей мере четыре параметра.
[0016] В некоторых вариантах осуществления способа набор параметров содержит по меньшей мере один параметр, указывающий общую величину перемещения при рулении.
[0017] В некоторых вариантах осуществления способа полиномиальная кривая строится в качестве полиномиальной функции третьей степени.
[0018] В некоторых вариантах осуществления способа предварительно определенный диапазон позиций рулевого колеса указывает максимальную амплитуду руления, которое SDC физически выполнен с возможностью выполнять.
[0019] В некоторых вариантах осуществления способа способ дополнительно содержит сравнение, посредством процессора, смещения с предварительно определенным пороговым значением.
[0020] В некоторых вариантах осуществления способа смещение составляет ниже предварительно определенного порогового значения, когда моделированное состояние SDC совпадает со вторым целевым состоянием SDC.
[0021] В некоторых вариантах осуществления способа в ответ на смещение, составляющее выше предварительно определенного порогового значения, способ дополнительно содержит выполнение, посредством процессора, процедуры регулирования. Процедура регулирования содержит использование, посредством процессора, смещения для регулирования набора параметров, за счет этого определяя набор отрегулированных параметров для построения отрегулированной полиномиальной кривой. Отрегулированная полиномиальная кривая представляет отрегулированный профиль руления для SDC для попытки перехода из первого целевого состояния во второе целевое состояние. Процедура регулирования содержит использование, посредством процессора, отрегулированной полиномиальной кривой для моделирования второго возможного варианта траектории SDC, как если SDC управляют с помощью руля в соответствии с отрегулированным профилем руления. Второй возможный вариант траектории (i) начинается в первом целевом состоянии SDC и (ii) завершается во втором моделированном состоянии SDC. Процедура регулирования содержит определение, посредством процессора, второго смещения между вторым моделированным состоянием SDC и вторым целевым состоянием SDC. Процедура регулирования содержит, в ответ на второе смещение, составляющее ниже предварительно определенного порогового значения, выбор, посредством процессора, отрегулированного профиля руления в качестве целевого профиля руления для SDC.
[0022] В некоторых вариантах осуществления способа способ дополнительно содержит итеративное повторение, посредством процессора, процедуры регулирования до тех пор, пока данное смещение не составляет ниже предварительно определенного порогового значения.
[0023] В некоторых вариантах осуществления способа способ дополнительно содержит использование, посредством сервера, (i) первого целевого состояния, (ii) второго целевого состояния и (iii) целевого профиля руления SDC для того, чтобы обучить алгоритм машинного обучения (MLA) прогнозировать позицию рулевого колеса для SDC в ходе использования для текущего состояния в ходе использования SDC с учетом того, что траектория в ходе использования SDC должна завершаться во втором целевом состоянии в ходе использования.
[0024] Во втором широком аспекте настоящей технологии предусмотрен способ обучения алгоритма машинного обучения (MLA) для прогнозирования позиций рулевого колеса для управления рулением беспилотным автомобилем (SDC). SDC соединен с возможностью связи с процессором. Способ осуществляется посредством процессора. Способ содержит получение, посредством процессора, множества обучающих наборов данных, ассоциированных с обучающей траекторией SDC. Обучающая траектория имеет множество целевых состояний SDC. Множество целевых состояний включают в себя (i) первое целевое состояние SDC, (ii) набор промежуточных целевых состояний и (iii) второе целевое состояние SDC. Целевая траектория (i) начинается с нахождения SDC в первом целевом состоянии, (ii) продолжается с нахождением SDC последовательно в наборе промежуточных целевых состояний и (iii) завершается с нахождением SDC во втором целевом состоянии. Обучающая траектория ассоциирована с множеством фактических позиций рулевого колеса в различные моменты времени. Данная фактическая позиция рулевого колеса в данный момент времени служит для прихода из данного целевого состояния обучающей траектории в последовательное целевое состояние обучающей траектории. Данный один из множества обучающих наборов данных включает в себя (i) обучающий ввод и (ii) соответствующую метку. Обучающий ввод указывает (i) обучающее целевое состояние и (ii) второе целевое состояние. Обучающее целевое состояние представляет собой, по меньшей мере, одно из (i) первого целевого состояния и (ii) одного из множества промежуточных целевых состояний. Соответствующая метка указывает фактическую позицию рулевого колеса в соответствующий момент времени для прихода из обучающего целевого состояния в последовательное целевое состояние обучающей траектории. Способ содержит ввод, посредством процессора, данного обучающего набора данных в MLA для определения прогнозируемой позиции рулевого колеса для прихода из обучающего целевого состояния в соответствующий момент времени в последовательное целевое состояние с учетом того, что обучающая траектория должна завершаться вторым целевым состоянием. Способ содержит определение, посредством процессора, разности между прогнозируемой позицией рулевого колеса для обучающего целевого состояния и фактической позицией рулевого колеса для обучающего целевого состояния. Способ содержит обучение, посредством процессора, MLA на основе разности с возможностью прогнозировать позицию рулевого колеса в ходе использования для SDC для текущего состояния в ходе использования SDC с учетом того, что траектория в ходе использования SDC должна завершаться во втором целевом состоянии в ходе использования.
[0025] В некоторых вариантах осуществления способа ввод содержит итеративный ввод, посредством процессора, соответствующих обучающих наборов данных из множества обучающих наборов данных в MLA для определения соответствующих прогнозируемых позиций рулевого колеса. Обучение содержит итеративное обучение, посредством процессора, MLA на основе разностей между соответствующими прогнозируемыми позициями рулевого колеса и соответствующими фактическими позициями рулевого колеса.
[0026] В некоторых вариантах осуществления способа множество фактических позиций рулевого колеса, ассоциированных с обучающей траекторией, имеют форму профиля руления для обучающей траектории. Профиль руления построен посредством процессора в качестве полиномиальной кривой, представляющей данный профиль руления SDC, который позволяет SDC переходить из первого целевого состояния во второе целевое состояние.
[0027] В некоторых вариантах осуществления способа обучающая траектория и фактические позиции рулевого колеса, ассоциированные с ней, собраны посредством устройства, ассоциированного с одним из следующего: (i) транспортное средство в ходе своего управления водителем-человеком, (ii) обучающий SDC.
[0028] В некоторых вариантах осуществления способа множество целевых состояний обучающей траектории выбираются для избегания препятствия, и при этом обучающий ввод дополнительно указывает позицию препятствия.
[0029] В некоторых вариантах осуществления способа обучающий ввод указывает первое целевое состояние, одно из множества промежуточных целевых состояний и второе целевое состояние.
[0030] В некоторых вариантах осуществления способа обучающий ввод дополнительно указывает по меньшей мере одну из позиции центра полосы движения, на которой расположена оптимальная траектория.
[0031] В некоторых вариантах осуществления способа MLA реализована как рекуррентная нейронная сеть (RNN), имеющая внутреннее состояние, и при этом обучающий ввод дополнительно указывает предыдущее целевое состояние по отношению к одному из множества промежуточных целевых состояний.
[0032] В третьем широком аспекте настоящей технологии, предусмотрен процессор для обучения алгоритма машинного обучения (MLA) для прогнозирования позиций рулевого колеса для управления рулением беспилотным автомобилем (SDC). Процессор выполнен с возможностью получать множество обучающих наборов данных, ассоциированных с обучающей траекторией SDC. Обучающая траектория имеет множество целевых состояний SDC. Множество целевых состояний включают в себя (i) первое целевое состояние SDC, (ii) набор промежуточных целевых состояний и (iii) второе целевое состояние SDC. Целевая траектория (i) начинается с нахождения SDC в первом целевом состоянии, (ii) продолжается с нахождением SDC последовательно в наборе промежуточных целевых состояний и (iii) завершается с нахождением SDC во втором целевом состоянии. Обучающая траектория ассоциирована с множеством фактических позиций рулевого колеса в различные моменты времени. Данная фактическая позиция рулевого колеса в данный момент времени служит для прихода из данного целевого состояния обучающей траектории в последовательное целевое состояние обучающей траектории. Данный один из множества обучающих наборов данных включает в себя (i) обучающий ввод и (ii) соответствующую метку. Обучающий ввод указывает (i) обучающее целевое состояние и (ii) второе целевое состояние. Обучающее целевое состояние представляет собой по меньшей мере одно из (i) первого целевого состояния и (ii) одного из множества промежуточных целевых состояний. Соответствующая метка указывает фактическую позицию рулевого колеса в соответствующий момент времени для прихода из обучающего целевого состояния в последовательное целевое состояние обучающей траектории. Процессор выполнен с возможностью вводить данный обучающий набор данных в MLA для определения прогнозируемой позиции рулевого колеса для прихода из обучающего целевого состояния в соответствующий момент времени в последовательное целевое состояние с учетом того, что обучающая траектория должна завершаться вторым целевым состоянием. Процессор выполнен с возможностью определять разность между прогнозируемой позицией рулевого колеса для обучающего целевого состояния и фактической позицией рулевого колеса для обучающего целевого состояния. Процессор выполнен с возможностью обучать MLA на основе разности прогнозировать позицию рулевого колеса в ходе использования для SDC для текущего состояния в ходе использования SDC с учетом того, что траектория в ходе использования SDC должна завершаться во втором целевом состоянии в ходе использования.
[0033] В некоторых вариантах осуществления процессора ввод содержит процессор, выполненный с возможностью итеративно вводить соответствующие обучающие наборы данных из множества обучающих наборов данных в MLA для определения соответствующих прогнозируемых позиций рулевого колеса, и при этом обучение содержит процессор, выполненный с возможностью итеративно обучать MLA на основе разностей между соответствующими прогнозируемыми позициями рулевого колеса и соответствующими фактическими позициями рулевого колеса.
[0034] В некоторых вариантах осуществления процессора множество фактических позиций рулевого колеса, ассоциированных с обучающей траекторией, имеют форму профиля руления для обучающей траектории, причем профиль руления построен посредством процессора в качестве полиномиальной кривой, представляющей данный профиль руления SDC, который позволяет SDC переходить из первого целевого состояния во второе целевое состояние.
[0035] В некоторых вариантах осуществления процессора обучающая траектория и фактические позиции рулевого колеса, ассоциированные с ней, собраны посредством устройства, ассоциированного с одним из следующего: (i) транспортное средство в ходе своего управления водителем-человеком, (ii) обучающий SDC.
[0036] В некоторых вариантах осуществления процессора множество целевых состояний обучающей траектории выбираются для избегания препятствия, и при этом обучающий ввод дополнительно указывает позицию препятствия.
[0037] В некоторых вариантах осуществления процессора обучающий ввод указывает первое целевое состояние, одно из множества промежуточных целевых состояний и второе целевое состояние.
[0038] В некоторых вариантах осуществления процессора обучающий ввод дополнительно указывает по меньшей мере одну из позиции центра полосы движения, на которой расположена оптимальная траектория.
[0039] В некоторых вариантах осуществления процессора MLA реализована как рекуррентная нейронная сеть (RNN), имеющая внутреннее состояние, и при этом обучающий ввод дополнительно указывает предыдущее целевое состояние по отношению к одному из множества промежуточных целевых состояний.
[0040] В контексте настоящего описания изобретения "сервер" представляет собой компьютерную программу, которая выполняется на соответствующих аппаратных средствах и допускает прием запросов (например, из клиентских устройств) по сети и выполнение этих запросов либо инструктирование выполнения этих запросов. Аппаратные средства могут реализовываться как один физический компьютер или одна физическая компьютерная система, но ни одно из означенного не должно обязательно иметь место относительно настоящей технологии. В настоящем контексте, использование выражения "сервер" не означает, что каждая задача (например, принимаемые инструкции или запросы) или любая конкретная задача должна приниматься, выполняться или инструктироваться для выполнения посредством идентичного сервера (т.е. идентичного программного обеспечения и/или аппаратных средств); оно означает, что при приеме/отправке, выполнении или инструктировании для выполнения любой задачи или запроса, либо результатов любой задачи или запроса может быть предусмотрено любое число программных элементов или аппаратных устройств; и все это программное обеспечение и аппаратные средства могут представлять собой один сервер либо несколько серверов, причем все из означенного включается в выражение "по меньшей мере один сервер".
[0041] В контексте настоящего описания изобретения "электронное устройство" представляет собой любые компьютерные аппаратные средства, которые допускают выполнение программного обеспечения, соответствующего рассматриваемой релевантной задаче. В контексте настоящего описания изобретения термин "электронное устройство" подразумевает, что устройство может функционировать в качестве сервера для других электронных устройств и клиентских устройств; тем не менее, это не должно обязательно иметь место относительно настоящей технологии. Таким образом, некоторые (неограничивающие) примеры электронных устройств включают в себя персональные компьютеры (настольные компьютеры, переносные компьютеры, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует понимать, что в настоящем контексте тот факт, что устройство функционирует в качестве электронного устройства, не означает того, что оно не может функционировать в качестве сервера для других электронных устройств. Использование выражения "электронное устройство" не исключает использование нескольких клиентских устройств при приеме/отправке, выполнении или инструктировании для выполнения любой задачи или запроса либо результатов любой задачи или запроса, или этапов любого способа, описанного в данном документе.
[0042] В контексте настоящего описания изобретения, "клиентское устройство" представляет собой любые компьютерные аппаратные средства, которые допускают выполнение программного обеспечения, соответствующего рассматриваемой релевантной задаче. В контексте настоящего описания изобретения, в общем, термин "клиентское устройство" ассоциирован с пользователем клиентского устройства. Таким образом, некоторые (неограничивающие) примеры клиентских устройств включают в себя персональные компьютеры (настольные компьютеры, переносные компьютеры, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что устройство, выступающее в качестве клиентского устройства в настоящем контексте, не исключается из выступания в качестве сервера для других клиентских устройств. Использование выражения "клиентское устройство" не исключает использование нескольких клиентских устройств при приеме/отправке, выполнении или инструктировании для выполнения любой задачи или запроса либо результатов любой задачи или запроса, или этапов любого способа, описанного в данном документе.
[0043] В контексте настоящего описания изобретения, выражение "информация" включает в себя информацию вообще любого характера или вида, допускающую сохранение в базе данных. Таким образом, информация включает в себя, но не только, аудиовизуальные произведения (изображения, фильмы, звукозаписи, презентации и т.д.), данные (данные местоположения, числовые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы и т.д.
[0044] В контексте настоящего описания изобретения выражение "программный компонент" включает в себя программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для осуществления конкретной упоминаемой функцию(и).
[0045] В контексте настоящего описания изобретения выражение "компьютерные носители хранения информации" (также называемые "носителями хранения данных") включает в себя носители вообще любого характера и вида, в том числе, без ограничения, RAM, ROM, диски (CD-ROM, DVD, гибкие диски, накопители на жестких дисках и т.д.), флэш-накопители, твердотельные накопители, накопители на ленте и т.д. Множество компонентов могут комбинироваться, чтобы формировать компьютерные носители хранения информации, включающие в себя два или более компонентов носителей идентичного типа и/или два или более компонентов носителей различных типов.
[0046] В контексте настоящего описания изобретения, "база данных" представляет собой любую структурированную совокупность данных, независимо от ее конкретной структуры, программного обеспечения управления базами данных или компьютерных аппаратных средств, на которых данные сохраняются, реализуются или становятся доступными иными способами для использования. База данных может постоянно размещаться в идентичных аппаратных средствах с процессом, который сохраняет или использует информацию, сохраненную в базе данных, либо она может постоянно размещаться в отдельных аппаратных средствах, таких как выделенный сервер или множество серверов.
[0047] В контексте настоящего описания изобретения слова "первый", "второй", "третий" и т.д. использованы в качестве прилагательных только для целей обеспечения различения существительных, которые они модифицируют, друг от друга, а не для целей описания конкретных взаимосвязей между этими существительными. Таким образом, например, следует понимать, что использование терминов "первая база данных" и "третий сервер" не подразумевает конкретный порядок, тип, хронологию, иерархию или ранжирование (например) относительно сервера, и их использование не (непосредственно) подразумевает, что "второй сервер" должен обязательно существовать в любой данной ситуации. Дополнительно, как пояснено в данном документе в других контекстах, ссылка на "первый" элемент и "второй" элемент не исключает того, что два элемента представляют собой идентичный фактический элемент реального мира. Таким образом, например, в некоторых случаях, "первый" сервер и "второй" сервер могут представлять собой идентичные программные и/или аппаратные компоненты, в других случаях они могут представлять собой различные программные и/или аппаратные компоненты.
[0048] Реализации настоящей технологии имеют по меньшей мере одну из вышеуказанных целей и/или аспектов, но не обязательно имеют все из них. Следует понимать, что некоторые аспекты настоящей технологии, которые получены в результате попытки достичь вышеуказанной цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, не изложенным конкретно в данном документе.
[0049] Дополнительные и/или альтернативные признаки, аспекты и преимущества реализаций настоящей технологии должны становиться очевидными из нижеприведенного описания, прилагаемых чертежей и прилагаемой формулы изобретения.
Краткое описание чертежей
[0050] Эти и другие признаки, аспекты и преимущества настоящей технологии должны становиться более понятными при рассмотрении нижеприведенного описания, прилагаемой формулы изобретения и прилагаемых чертежей, на которых:
[0051] Фиг. 1 иллюстрирует принципиальную схему примерной компьютерной системы для реализации конкретных вариантов осуществления систем и/или способов настоящей технологии.
[0052] Фиг. 2 иллюстрирует сетевое вычислительное окружение, подходящее для использования с некоторыми реализациями настоящей технологии.
[0053] Фиг. 3 иллюстрирует графовую структуру, сохраненную в сетевом вычислительном окружении по фиг. 2, в соответствии по меньшей мере с некоторыми вариантами осуществления настоящей технологии.
[0054] Фиг. 4 иллюстрирует представления двух последовательных целевых состояний транспортного средства на графовой структуре по фиг. 3, в соответствии по меньшей мере с некоторыми вариантами осуществления настоящей технологии.
[0055] Фиг. 5 иллюстрирует данные формирования полиномов в форме таблицы, сохраненной в сетевом вычислительном окружении по фиг. 2, в соответствии по меньшей мере с некоторыми вариантами осуществления настоящей технологии.
[0056] Фиг. 6 иллюстрирует графическое представление полиномиальной кривой, сформированной посредством процессора компьютерной системы по фиг. 1, в соответствии по меньшей мере с некоторыми вариантами осуществления настоящей технологии.
[0057] Фиг. 7 иллюстрирует предварительно определенный диапазон позиций рулевого колеса и графическое представление полиномиальной кривой по фиг. 6.
[0058] Фиг. 8 иллюстрирует возможный вариант траектории, сформированной посредством процессора по фиг. 1 на основе полиномиальной кривой по фиг. 6.
[0059] Фиг. 9 иллюстрирует обучающую траекторию и множество обучающих наборов данных для обучения алгоритма машинного обучения (MLA), выполняемого в сетевом вычислительном окружении по фиг. 2, в соответствии по меньшей мере с некоторыми вариантами осуществления настоящей технологии.
[0060] Фиг. 10 иллюстрирует представление фазы в ходе использования MLA, выполняемой на множестве инкрементных этапов, в соответствии по меньшей мере с некоторыми вариантами осуществления настоящей технологии.
[0061] Фиг. 11 является блок-схемой последовательности операций способа для управления рулением транспортным средством в сетевом окружении по фиг. 2, в соответствии по меньшей мере с некоторыми вариантами осуществления настоящей технологии.
Подробное описание изобретения
[0062] Примеры и условный язык, изложенный в данном документе, преимущественно помогают читателю в понимании принципов настоящей технологии, а не ограничивают ее объем такими конкретно изложенными примерами и условиями. Следует принимать во внимание, что специалисты в данной области техники могут разрабатывать различные компоновки, которые, хотя и не описаны или показаны явно в данном документе, тем не менее, осуществляют принципы настоящей технологии и включены в пределы ее сущности и объема.
[0063] Кроме того, в качестве помощи в понимании, нижеприведенное описание может описывать относительно упрощенные реализации настоящей технологии. Специалисты в данной области техники должны понимать, что различные реализации настоящей технологии могут иметь большую сложность.
[0064] В некоторых случаях также может быть изложено то, что считается полезными примерами модификаций настоящей технологии. Это осуществляется просто в качестве помощи в понимании, а не для определения объема или изложения ограничений настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалисты в данной области техники могут вносить другие модификации при одновременном пребывании в пределах объема настоящей технологии. Дополнительно, если примеры модификаций не изложены, не следует интерпретировать это таким образом, что модификации невозможны, и/или таким образом, что то, что описывается, представляет собой единственный способ реализации этого элемента настоящей технологии.
[0065] Кроме того, все утверждения в данном документе, излагающие принципы, аспекты и реализации технологии, а также их конкретные примеры, охватывают их конструктивные и функциональные эквиваленты независимо от того, являются они известными в настоящее время или разрабатываются в будущем. Таким образом, например, специалисты в данной области техники должны признавать, что блок-схемы в данном документе представляют концептуальные виды иллюстративной схемы, осуществляющей принципы настоящей технологии.
[0066] Аналогично, следует принимать во внимание, что все блок-схемы последовательности операций, блок-схемы, схемы переходов состояния, псевдокод и т.п. представляют различные процессы, которые могут представляться большей частью на компьютерно-читаемых носителях, и в силу этого выполняются посредством компьютера или процессора, независимо от того, показан или нет в явной форме такой компьютер или процессор.
[0067] Функции различных элементов, показанных на чертежах, включающих в себя все функциональные блоки, помеченные как "процессор", могут предоставляться с помощью специализированных аппаратных средств, а также аппаратных средств, допускающих выполнение программного обеспечения, в ассоциации с надлежащим программным обеспечением. При предоставлении посредством процессора функции могут предоставляться посредством одного специализированного процессора, посредством одного совместно используемого процессора или посредством множества отдельных процессоров, некоторые из которых могут использоваться совместно.
[0068] Кроме того, явное использование термина "процессор" или "контроллер" не должно истолковываться как означающее исключительно аппаратные средства, допускающие выполнение программного обеспечения, и может неявно включать в себя, без ограничений, аппаратные средства процессора цифровых сигналов (DSP), сетевой процессор, специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянное запоминающее устройство (ROM) для сохранения программного обеспечения, оперативное запоминающее устройство (RAM) и энергонезависимое устройство хранения. Также могут быть включены другие аппаратные средства, традиционные и/или специализированные.
[0069] Программные модули или просто модули, которые подразумеваются как программные, могут представляться в данном документе в качестве любой комбинации элементов блок-схемы последовательности операций способа или других элементов, указывающих выполнение этапов процесса, и/или текстового описания. Такие модули могут выполняться посредством аппаратных средств, которые показаны явно или неявно.
[0070] С учетом этих основных принципов, далее рассматриваются некоторые неограничивающие примеры, чтобы иллюстрировать различные реализации аспектов настоящей технологии.
Компьютерная система
[0071] При обращении первоначально к фиг. 1, проиллюстрирована компьютерная система 100, подходящая для использования с некоторыми реализациями настоящей технологии, причем компьютерная система 100 содержит различные аппаратные компоненты, включающие в себя один или более одно- или многоядерных процессоров, совместно представленных посредством процессора 110, твердотельный накопитель 120, запоминающее устройство 130, которое может представлять собой оперативное запоминающее устройство или любой другой тип запоминающего устройства. Связь между различными компонентами компьютерной системы 100 может осуществляться посредством одной или более внутренних и/или внешних шин (не показаны) (например, посредством PCI-шины, универсальной последовательной шины, шины по стандарту IEEE1394 Firewire, шины SCSI, шины Serial ATA и т.д.), с которыми электронно соединяются различные аппаратные компоненты.
[0072] По меньшей мере в некоторых вариантах осуществления настоящей технологии твердотельный накопитель 120 сохраняет программные инструкции, подходящие для загрузки в запоминающее устройство 130 и выполняемые посредством процессора 110 для определения присутствия объекта. Например, программные инструкции могут представлять собой часть управляющего приложения транспортного средства, выполняемого посредством процессора 110.
[0073] По меньшей мере в некоторых вариантах осуществления настоящей технологии предполагается, что компьютерная система 100 может иметь дополнительные и/или необязательные компоненты, такие как модуль 140 сетевой связи для связи, через сеть связи (например, сеть 240 связи, проиллюстрированную на фиг. 2) с другими электронными устройствами и/или серверами, модули локализации (не проиллюстрированы) и т.п.
Сетевое компьютерное окружение
[0074] Фиг. 2 иллюстрирует сетевое компьютерное окружение 200, подходящее для использования с некоторыми вариантами осуществления систем и/или способов настоящей технологии. Сетевое компьютерное окружение 200 содержит электронное устройство 210, ассоциированное с транспортным средством 220 или ассоциированное с пользователем (не проиллюстрирован), который может управлять транспортным средством 220, сервер 235, поддерживающий связь с электронным устройством 210 через сеть 240 связи (например, через Интернет и т.п., как подробнее описывается ниже в данном документе). Опционально, сетевое компьютерное окружение 200 также может включать в себя GPS-спутник (не проиллюстрирован), передающий и/или принимающий GPS-сигнал в/из электронного устройства 210. Следует понимать, что настоящая технология не ограничена GPS и может использовать технологию позиционирования, отличную от GPS. Следует отметить, что GPS-спутник может вообще опускаться.
[0075] Транспортное средство 220, с которым ассоциировано электронное устройство 210, может содержать любое туристическое или перевозное транспортное средство, такое как личный или коммерческий автомобиль, грузовик, мотоцикл и т.п. Транспортное средство может представлять собой управляемое пользователем или безоператорное транспортное средство. Следует отметить, что конкретные параметры транспортного средства 220 не являются ограничивающими, причем эти конкретные параметры включают в себя: производителя транспортных средств, модель транспортного средства, год изготовления транспортного средства, вес транспортного средства, габариты транспортного средства, распределение веса транспортного средства, площадь поверхности транспортного средства, высоту транспортного средства, тип приводной передачи (например, 2x или 4x), тип шин, тормозную систему, топливную систему, пробег, идентификационный номер транспортного средства и рабочий объем двигателя.
[0076] Реализация электронного устройства 210 не ограничена конкретным образом, но в качестве примера, электронное устройство 210 может реализовываться как блок управления двигателем транспортного средства, CPU транспортного средства, навигационное устройство транспортного средства (например, TomTom™, Garmin™), планшетный компьютер и персональный компьютер, встроенный в транспортное средство 220 и т.п. Таким образом, следует отметить, что электронное устройство 210 может или не может быть постоянно ассоциировано с транспортным средством 220. Дополнительно или альтернативно, электронное устройство 210 может реализовываться в устройстве беспроводной связи, таком как мобильный телефон (например, смартфон или радиотелефон). В конкретных вариантах осуществления электронное устройство 210 имеет дисплей 270.
[0077] Электронное устройство 210 может содержать часть или все компоненты компьютерной системы 100, проиллюстрированной на фиг. 1. В конкретных вариантах осуществления электронное устройство 210 представляет собой бортовое компьютерное устройство и содержит процессор 110, твердотельный накопитель 120 и запоминающее устройство 130. Другими словами, электронное устройство 210 содержит аппаратные средства и/или программное обеспечение, и/или микропрограммное обеспечение либо комбинацию вышеозначенного для определения траектории транспортного средства 220 в данном сегменте дороги с учетом препятствий, как подробнее описано ниже.
Система датчиков
[0078] В неограничивающих вариантах осуществления настоящей технологии, электронное устройство 210 содержит или имеет доступ к системе 230 датчиков. Согласно этим вариантам осуществления, система 230 датчиков может содержать множество датчиков, обеспечивающих различные реализации настоящей технологии. Примеры множества датчиков включают в себя, но не только: камеры, лидарные датчики и радарные датчики и т.д. Система 230 датчиков функционально соединяется с процессором 110 для передачи такой захваченной информации в процессор 110 для ее обработки, как подробнее описывается ниже в данном документе.
[0079] Система 230 датчиков может монтироваться в салоне, в верхнем участке ветрового стекла транспортного средства 220, но другие местоположения находятся в пределах объема настоящего раскрытия сущности, в том числе заднее окно, боковые окна, передний капот, крыша, решетка радиатора или передний бампер транспортного средства 220. В некоторых неограничивающих вариантах осуществления настоящей технологии система 230 датчиков может монтироваться в выделенном кожухе (не проиллюстрирован), смонтированном поверх транспортного средства 220.
[0080] Дополнительно, пространственное размещение системы 230 датчиков может проектироваться с учетом ее конкретной технической конфигурации, конфигурации кожуха, погодных условий области, в которой должно использоваться транспортное средство 220 (таких как частый дождь, снег и другие пункты), и т.п.
[0081] В неограничивающих вариантах осуществления настоящей технологии система 230 датчиков может содержать датчик, выполненный с возможностью захватывать изображение окружающей области 250. В этом отношении, система 230 датчиков может представлять собой камеру либо множество камер (не проиллюстрированы отдельно).
[0082] То, как камера реализована, не ограничено конкретным образом. Например, в конкретных неограничивающих вариантах осуществления настоящей технологии, камера может быть реализована как монокамера с разрешением, достаточным для того, чтобы обнаруживать объекты на предварительно определенных расстояниях приблизительно до 30 м (хотя камеры с другими разрешениями и дальностями находятся в пределах объема настоящего раскрытия сущности).
[0083] В некоторых вариантах осуществления настоящей технологии камера (либо одна или более камер, которые составляют реализацию системы 230 датчиков) выполнена с возможностью захватывать предварительно определенный участок окружающей области 250 вокруг транспортного средства 220. В некоторых вариантах осуществления настоящей технологии камера выполнена с возможностью захватывать изображение (или последовательность изображений), которое представляет приблизительно 90 градусов окружающей области 250 вокруг транспортного средства 220, т.е. вдоль пути перемещения транспортного средства 220.
[0084] В других вариантах осуществления настоящей технологии камера выполнена с возможностью захватывать изображение (или последовательность изображений), которое представляет приблизительно 180 градусов окружающей области 250 вокруг транспортного средства 220, т.е. вдоль пути перемещения транспортного средства 220. В еще дополнительных вариантах осуществления настоящей технологии, камера выполнена с возможностью захватывать изображение (или последовательность изображений), которое представляет приблизительно 360 градусов окружающей области 250 вокруг транспортного средства 220, т.е. вдоль пути перемещения транспортного средства 220 (другими словами, окружающую область полностью вокруг транспортного средства 220).
[0085] В конкретном неограничивающем примере камера может иметь тип, предлагаемый компанией FLIR Integrated Imaging Solutions Inc., 12051 Riverside Way, Ричмонд, BC, V6W 1K7, Канада. Следует четко понимать, что камера может реализовываться в любом другом подходящем оборудовании.
8
[0086] В неограничивающих вариантах осуществления настоящей технологии система 230 датчиков дополнительно может содержать лидарный измерительный прибор (не проиллюстрирован отдельно). Лидар означает оптическое обнаружение и дальнометрию. Предполагается, что специалисты в данной области техники должны понимать функциональность лидарного измерительного прибора, но вкратце, передающее устройство (не проиллюстрировано) лидара отправляет лазерный импульс, и световые частицы (фотоны) рассеиваются обратно в приемное устройство (не проиллюстрировано) лидарного измерительного прибора. Фотоны, которые возвращаются в приемное устройство, собираются с помощью телескопа и подсчитываются в качестве функции от времени. С использованием скорости света (~3×10 м/с) процессор 110 затем может вычислять то, насколько далеко перемещены фотоны (при полном обходе). Фотоны могут рассеиваться с отражением от многих различных объектов, окружающих транспортное средство 220, таких как другие частицы (аэрозоли или молекулы) в атмосфере, другой автомобиль, стационарные объекты или потенциальные преграды перед транспортным средством 220.
[0087] В конкретном неограничивающем примере лидарный измерительный прибор, содержащийся в системе 230 датчиков, может реализовываться как лидарный датчик, который может иметь тип, предлагаемый компанией Velodyne LiDAR, Inc. 5521 Hellyer Avenue, Сан-Хосе, CA 95138, США. Следует четко понимать, что лидарный измерительный прибор может реализовываться в любом другом подходящем оборудовании.
[0088] В некоторых вариантах осуществления настоящей технологии лидарный измерительный прибор, содержащийся в системе 230 датчиков, может быть реализован как множество лидарных датчиков, к примеру, трех, например, или любого другого подходящего числа.
[0089] В неограничивающих вариантах осуществления настоящей технологии система 230 датчиков дополнительно может содержать (радарный) измерительный прибор на основе радиообнаружения и дальнометрии (не проиллюстрирован отдельно). Вкратце, радарный измерительный прибор представляет собой обнаруживающий измерительный прибор с использованием радиоволн, для определения дальности, угла и/или скорости объектов. Радарный измерительный прибор включает в себя передающее устройство, формирующее электромагнитные волны, антенну, используемую для передачи и приема электромагнитных волн, приемное устройство и процессор для того, чтобы определять свойства обнаруженных объектов.
[0090] В альтернативных вариантах осуществления настоящей технологии могут быть предусмотрены отдельная антенна для приема волн и отдельная антенна для передачи волн. Процессор, используемый для определения свойств окружающих объектов, может представлять собой процессор 110.
[0091] В некоторых вариантах осуществления настоящей технологии радарный измерительный прибор, используемый в системе 230 датчиков, может содержать радарные датчики большой, средней и малой дальности действия. В качестве неограничивающего примера, радарный датчик большой дальности действия может использоваться для адаптивной системы автоматического поддержания скорости, автоматического экстренного торможения и системы выдачи предупреждений относительно прямых столкновений, в то время как радарные датчики средней и малой дальности действия могут использоваться для помощи при парковке, оповещения относительно пересекающихся потоков движения, помощи на скрещении дорог и обнаружения на слепой стороне.
[0092] В конкретном неограничивающем примере, радарный измерительный прибор, содержащийся в системе 230 датчиков, может иметь тип, предлагаемый компанией Robert Bosch GmbH по адресу Robert-Bosch-Platz 1, 70839 Герлинген, Германия. Следует четко понимать, что радарный измерительный прибор может реализовываться в любом другом подходящем оборудовании.
[0093] В некоторых неограничивающих вариантах осуществления настоящей технологии система 230 датчиков может использоваться, посредством процессора 110, для калибровки изображения. Например, с использованием изображения, захваченного посредством камеры, и облака лидарных точек, захваченного посредством лидарного измерительного прибора, процессор 110 выполнен с возможностью идентифицировать данную область изображения как соответствующую данной области облака лидарных точек, захваченного посредством лидарного измерительного прибора. В других вариантах осуществления настоящей технологии, система 230 датчиков калибруется таким образом, что для изображения, захваченного посредством камеры, облака лидарных точек, захваченного посредством лидарного измерительного прибора, и радарных данных, захваченных посредством радарного измерительного прибора, процессор 110 выполнен с возможностью идентифицировать данную область изображения как соответствующую данной области облака лидарных точек и радарным данным.
[0094] В неограничивающих вариантах осуществления настоящей технологии, транспортное средство 220 дополнительно содержит или имеет доступ к другим датчикам (не проиллюстрированы отдельно). Другие датчики включают в себя одно или более из следующего: блок инерциальных измерений (IMU), измерительный прибор на основе глобальной навигационной спутниковой системы (GNSS), радары скорости относительно земли, ультразвуковые сонарные датчики, одометрические датчики, включающие в себя акселерометры и гироскопы, механические датчики наклона, магнитный компас и другие датчики, обеспечивающие работу транспортного средства 220.
[0095] В качестве неограничивающего примера, IMU может прикрепляться к транспортному средству 220 и содержать три гироскопа и три акселерометра для предоставления данных по вращательному движению и прямолинейному движению транспортного средства 220, которые могут использоваться для того, чтобы вычислять движение и позицию транспортного средства 220.
Сеть связи
[0096] В некоторых вариантах осуществления настоящей технологии сеть 240 связи представляет собой Интернет. В альтернативных неограничивающих вариантах осуществления сеть 240 связи может реализовываться как любая подходящая локальная вычислительная сеть (LAN), глобальная вычислительная сеть (WAN), частная сеть связи и т.п. Следует четко понимать, что реализации сети 240 связи предназначаются только для целей иллюстрации. То, как реализована линия связи (без отдельной ссылки с номером) между электронным устройством 210 и сетью 240 связи, должно зависеть, в числе прочего, от того, как реализовано электронное устройство 210. Просто в качестве примера, а не в качестве ограничения, в неограничивающих вариантах осуществления настоящей технологии, в которых электронное устройство 210 реализовано как устройство беспроводной связи, такое как смартфон или навигационное устройство, линия связи может быть реализована как линия беспроводной связи. Примеры линий беспроводной связи включают в себя, но не только, сетевую 3G-линию связи, сетевую 4G-линию связи и т.п. Сеть 240 связи также может использовать беспроводное соединение с сервером 235.
Сервер
[0097] В некоторых вариантах осуществления настоящей технологии сервер 235 реализован как традиционный компьютер-сервер и может содержать часть или все компоненты компьютерной системы 100 по фиг. 1. В одном неограничивающем примере, сервер 235 реализован как сервер Dell™ PowerEdge™ под управлением операционной системы Windows Server™ Microsoft™, но также может реализовываться в любых других подходящих аппаратных средствах, программном обеспечении и/или микропрограммном обеспечении либо в комбинации вышеозначенного. В проиллюстрированных неограничивающих вариантах осуществления настоящей технологии сервер представляет собой один сервер. В альтернативных неограничивающих вариантах осуществления настоящей технологии (не показаны) функциональность сервера 235 может распределяться и может реализовываться через несколько серверов.
[0098] В некоторых неограничивающих вариантах осуществления настоящей технологии процессор 110 электронного устройства 210 может поддерживать связь с сервером 235, чтобы принимать одно или более обновлений. Обновления могут представлять собой, но не только, обновления программного обеспечения, обновления карт, обновления маршрутов, обновления прогноза погоды и т.п.
[0099] В некоторых вариантах осуществления настоящей технологии процессор 110 также может быть выполнен с возможностью передавать на сервер 235 определенные рабочие данные, такие как проезжаемые маршруты, данные трафика, данные рабочих характеристик и т.п. Некоторые или все данные, передаваемые между транспортным средством 220 и сервером 235, могут шифроваться и/или анонимизироваться.
Устройство хранения данных
[0100] На фиг. 2, также проиллюстрировано устройство 250 хранения данных, соединен с возможностью связи с сервером 235. Тем не менее, в некоторых вариантах осуществления устройство 250 хранения данных может функционально соединяться с электронным устройством 210 и/или может реализовываться в электронном устройстве 210, и/или может функционально соединяться с любым другим процессором сетевого компьютерного окружения 200.
[0101] По меньшей мере в некоторых вариантах осуществления предполагается, что устройство 250 хранения данных может использоваться посредством сервера 235, электронного устройства 210 и/или любого другого процессора сетевого компьютерного окружения 200 в качестве запоминающего устройства для сохранения информации. Устройство 250 хранения данных выполнено с возможностью сохранять информацию, извлеченную, определенную и/или сформированную посредством процессора 110 сервера 235 и/или электронного устройства 210. Вообще говоря, устройство 250 хранения данных может принимать из процессора 110 данные, которые сформированы посредством процессора 110 во время обработки, для их временного и/или постоянного хранения и может предоставлять сохраненные данные в процессор 110 для их использования. Предполагается, что устройство 250 хранения данных может разбиваться на несколько распределенных устройств хранения данных, для предоставления отказоустойчивой системы хранения данных, например, без отступления от объема настоящей технологии.
[0102] Следует отметить, что по меньшей мере в некоторых вариантах осуществления настоящей технологии устройство 250 хранения данных может реализовываться локально на электронном устройстве 210 и/или сервере 235 (к примеру, на локальном запоминающем устройстве). Тем не менее, также предполагается, что устройство 250 хранения данных может реализовываться удаленно относительно электронного устройства 210 и/или сервера 235 (к примеру, на удаленном запоминающем устройстве).
[0103] В некоторых вариантах осуществления настоящей технологии устройство 250 хранения данных может быть выполнено с возможностью сохранять графовую структуру 300, проиллюстрированную на фиг. 3. Вообще говоря, графовая структура 300 содержит множество вершин, причем каждая вершина представляет время и переменные, задающие множество целевых состояний транспортного средства 220.
[0104] Как должно становиться очевидным из нижеприведенного подробного описания в данном документе, процессор 110 может быть выполнен с возможностью формировать графовую структуру 300 для данного маршрута, которого должно придерживаться транспортное средство 220, и при этом соответствующая вершина графовой структуры 300 задает соответствующее целевое состояние, в котором транспортное средство 220 может находиться на этом маршруте. Другими словами, графовая структура 300 задает последовательность целевых состояний, в которых транспортное средство 220 может потенциально находиться на маршруте.
[0105] Чтобы лучше иллюстрировать это, на фиг. 3, проиллюстрированы первая вершина 302 и вторая вершина 304 графовой структуры 300. Первая вершина 302 соединяется со второй вершиной 304 посредством ребра 350 графовой структуры 300. Как можно видеть, первая вершина 302 и вторая вершина 304 представляют собой две последовательные вершины графовой структуры 300. Следовательно, первая вершина 302 задает первое целевое состояние 320 транспортного средства 220 на маршруте, и вторая вершина 304 задает второе целевое состояние 340 транспортного средства 220 на маршруте, которое является последовательным по отношению к первому целевому состоянию 320. Ребро 350 представляет переход между (i) первым целевым состоянием 320 транспортного средства 220 и (ii) вторым целевым состоянием 340 транспортного средства 220.
[0106] Со ссылкой на фиг. 4, проиллюстрировано представление 400 в форме вида "с высоты птичьего полета" транспортного средства 220, находящегося в двух последовательных целевых состояниях на маршруте. Например, нахождение транспортного средства 220 в первом из двух последовательных целевых состояний (например, в первом целевом состоянии 320) проиллюстрировано через представление 402, тогда как нахождение транспортного средства 220 во втором из двух последовательных целевых состояний (например, во втором целевом состоянии 340) проиллюстрировано через представление 404.
[0107] Предполагается, что данная вершина графовой структуры 300 может задавать соответствующее целевое состояние транспортного средства 220 на маршруте в форме данных состояния транспортного средства. Это означает то, что устройство 250 хранения данных, сохраняющее графовую структуру 300, выполнено с возможностью сохранять данные состояния транспортного средства для каждой вершины графовой структуры 300, причем эти данные состояния транспортного средства представляют соответствующее целевое состояние транспортного средства 220 на маршруте.
[0108] Данные состояния транспортного средства, сохраненные для данной вершины графовой структуры 300, могут содержать множество значений состояния. Например, устройство 250 хранения данных может быть выполнено с возможностью сохранять, для соответствующей вершины графовой структуры 300 соответствующее множество значений состояния, которые содержат, по меньшей мере, часть из следующего: значение позиции, значение времени, значение ориентации транспортного средства, значение позиции рулевого колеса и т.п.
[0109] Следует отметить, что первое из двух последовательных целевых состояний 320 транспортного средства 220 (см. представление 402) представляется посредством первого множества значений 412 состояния. Первое множество значений 412 состояния может указывать позицию транспортного средства 220 в первый момент времени, ориентацию транспортного средства для транспортного средства 220 в первый момент времени, позицию рулевого колеса транспортного средства 220 в первый момент времени и т.п.
[0110] Аналогично, второе из двух последовательных целевых состояний 340 транспортного средства 220 (см. представление 404) представляется посредством второго множества значений 414 состояния. Второе множество значений 414 состояния может указывать позицию транспортного средства 220 во второй момент времени (последовательный относительно первого момента времени), ориентацию транспортного средства для транспортного средства 220 во второй момент времени, позицию рулевого колеса транспортного средства 220 во второй момент времени и т.п.
[0111] В целом, можно сказать, что устройство 250 хранения данных может быть выполнено с возможностью сохранять графовую структуру 300, которая задает последовательность целевых состояний транспортного средства 220 на маршруте, или другими словами, устройство 250 хранения данных может сохранять данные состояния транспортного средства для транспортного средства 220 на маршруте, и при этом данные транспортного средства состояния для транспортного средства 220 указывают позиции транспортного средства, ориентации транспортного средства и позиции рулевого колеса транспортного средства в различные моменты времени на маршруте.
[0112] Как должно становиться очевидным из нижеприведенного подробного описания в данном документе, разработчики настоящей технологии создали способы и процессоры для формирования траекторий для транспортного средства 220, в некотором смысле, для "перехода" из (i) данного целевого состояния транспортного средства 220 на графовой структуре 300 в (ii) последовательное целевое состояние транспортного средства 220 на графовой структуре 300.
[0113] Кроме того, разработчики настоящей технологии создали способы и процессоры для формирования "данных для управления рулем" для управления рулением транспортным средством 220 в ходе работы, которые разрешают транспортному средству 220, в некотором смысле, "переходить" из (i) данного целевого состояния транспортного средства 220 на графовой структуре 300 в (ii) последовательное целевое состояние транспортного средства 220 на графовой структуре 300.
[0114] Со ссылкой на фиг. 5, устройство 250 хранения данных также может быть выполнено с возможностью сохранять данные формирования полиномов в форме таблицы 500. Как можно видеть, таблица 500 содержит столбец 502 переходов состояния и столбец 504 параметров полиномов. Например, вторая строка 506 таблицы 500 включает в себя соответствующую пару 508 переходов состояния (т.е. данные, указывающие переход из первого состояния 510 во второе состояние 512) и соответствующий набор 514 параметров.
[0115] Вообще говоря, таблица 500 сформирована и сохранена в устройстве 250 хранения данных таким образом, что набор 514 параметров может использоваться посредством процессора 110 для того, чтобы формировать данную полиномиальную кривую, которая представляет множество позиций рулевого колеса транспортного средства 220 в соответствующие моменты времени, так что данное транспортное средство (такое как, например, транспортное средство 220), при рулении в соответствии с множеством позиций рулевого колеса, может переходить из первого состояния 510 во второе состояние 512. Следовательно, можно сказать, что набор 514 параметров может использоваться для того, чтобы формировать, в некотором смысле, данный "профиль руления", который представляет множество позиций рулевого колеса в различные моменты времени для разрешения данному транспортному средству переходить из первого состояния 510 во второе состояние 512.
[0116] Следует отметить, что способ, которым процессор 110 может быть выполнен с возможностью формировать/компоновать данную полиномиальную кривую на основе данного набора параметров (такого как набор 514 параметров), подробнее описывается в статье, озаглавленной "Motion Planning for Autonomous Driving with the Conformal Spatiotemporal Lattice", авторов Matthew McNaughton и др., содержимое которой полностью содержится в данном документе по ссылке.
[0117] В одном варианте осуществления, данный набор параметров, сохраненный в таблице 500, может содержать, по меньшей мере, четыре параметра. В другом варианте осуществления, данный набор параметров может содержать, по меньшей мере, один параметр, указывающий общую величину перемещения при рулении. В еще одном дополнительном варианте осуществления, процессор 110 может компоновать/формировать данную полиномиальную кривую в качестве полиномиальной функции третьей степени; например, процессор 110 может использовать данный набор параметров в качестве ввода в полиномиальную функцию для формирования/построения данной полиномиальной кривой.
[0118] В некоторых вариантах осуществления настоящей технологии предполагается, что данный набор параметров, извлеченный из таблицы 500, может указывать множество коэффициентов, которые должны использоваться посредством процессора 110 в качестве ввода в полиномиальную функцию для формирования/построения данной полиномиальной кривой.
[0119] Следует отметить, что данные формирования полиномов в таблице 500 могут определяться множеством способов. В одном примере, данные формирования полиномов таблицы 500 могут формироваться через водителя-человека, управляющего данным транспортным средством.
[0120] Чтобы лучше иллюстрировать это, допустим, что данное транспортное средство (потенциально транспортное средство 220), управляемое водителем-человеком, ассоциировано с электронным устройством (потенциально реализованным аналогично электронному устройству 210). Когда водитель-человек управляет данным транспортным средством, можно сказать, что данное транспортное средство едет по требуемой человеком траектории. Эта требуемая человеком траектория создается водителем-человеком, управляющим, в числе прочего, рулем данного транспортного средства. По мере того, как водитель-человек управляет данным транспортным средством, данное электронное устройство может быть выполнено с возможностью захватывать рабочие данные относительно данного транспортного средства. Например, данное электронное устройство может быть выполнено с возможностью собирать, для различных моментов времени в ходе работы данного транспортного средства, множество значений/параметров, представляющих, например: позиции данного транспортного средства, ориентации данного транспортного средства, позиции рулевого колеса данного транспортного средства и т.д. Эти рабочие данные представляют информацию относительно работы данного транспортного средства, когда данное транспортное средство едет по требуемой человеком траектории.
[0121] Данные формирования полиномов таблицы 500 могут формироваться на основе этих рабочих данных, собираемых посредством данного электронного устройства. Например, на основе рабочих данных, собираемых посредством электронного устройства, процессор 110 может быть выполнен с возможностью (i) определять число пар последовательных состояний данного транспортного средства в ходе его управления водителем-человеком и (ii), для каждой из пар последовательных состояний, определять соответствующий профиль руления, представляющий множество позиций рулевого колеса данного транспортного средства, которые водитель-человек выбирает за счет своего управления рулем, который разрешает данному транспортному средству переходить из первого состояния в данной паре состояний во второе состояние в данной паре состояний.
[0122] В этом случае, соответствующий профиль руления для данной пары состояний представляет различные позиции рулевого колеса, которые выбраны водителем-человеком для перехода из первого состояния в данной паре во второе состояние в данной паре в соответствии с требуемой человеком траекторией. Как результат, информация, указывающая этот соответствующий профиль руления, может сохраняться в форме набора параметров для полиномиальной функции, которая, при вводе с набором параметров, формирует полиномиальную кривую, соответствующую соответствующему профилю руления. Этот набор параметров для соответствующего профиля руления может сохраняться в таблице 500 в ассоциации с данными, указывающими пару состояний, включающую в себя первое состояние и второе состояние.
[0123] В целом, в некоторых вариантах осуществления можно сказать, что данные формирования полиномов таблицы 500 могут формироваться посредством (i) сбора рабочих данных относительно данного транспортного средства, едущего в соответствии с требуемой человеком траекторией, (ii) определения различных пар состояний данного транспортного средства в ходе работы в соответствии с требуемой человеком траекторией и (iii) определения соответствующих наборов параметров для различных пар состояний, которые указывают соответствующие профили руления, которые разрешают данному транспортному средству переходить между соответствующими парами состояний в соответствии с требуемой человеком траекторией.
[0124] По меньшей мере в некоторых вариантах осуществления настоящей технологии устройство 250 хранения данных может быть выполнено с возможностью сохранять данные, представляющие алгоритм машинного обучения (MLA), который процессор 110 выполнен с возможностью выполнять.
[0125] Вообще говоря, MLA могут обучаться из данных. Кроме того, MLA могут выполнять прогнозирования относительно данных. MLA обычно используются для того, чтобы сначала компоновать модель на основе обучающих вводов данных, чтобы затем осуществлять управляемые данными прогнозирования или решения, выражаемые как выводы, вместо следования статическим компьютерно-читаемым инструкциям. MLA обычно используются в качестве моделей оценки, моделей ранжирования, моделей классификации и т.п.
[0126] Следует понимать, что различные типы MLA, имеющих различные структуры или топологии, могут использоваться для различных задач.
[0127] Один конкретный тип MLA включает в себя нейронные сети (NN). Вообще говоря, данная NN состоит из взаимосвязанной группы искусственных "нейронов", которые обрабатывают информацию с использованием коннекционного подхода к вычислению. NN используются для того, чтобы моделировать сложные взаимосвязи между вводами и выводами (без фактического знания взаимосвязей) или находить шаблоны в данных. NN сначала обусловливаются в фазе обучения, в которой в них предоставляется известный набор «вводов» и информация для адаптации NN с возможностью формировать соответствующие выводы (для данной ситуации, для которой проводится попытка моделирования). В течение этой фазы обучения данная NN адаптируется к изучаемой ситуации и изменяет свою структуру таким образом, что данная NN должна иметь возможность предоставлять обоснованные прогнозируемые выводы для данных вводов в новой ситуации (на основе того, что изучено). Таким образом, вместо попытки определять сложные статистические компоновки или математические алгоритмы для данной ситуации, данная NN пытается предоставлять "интуитивный" ответ на основе "ощущения" для ситуации.
[0128] NN обычно используются во многих таких ситуациях, когда важно знать только вывод на основе данного ввода, но конкретно то, как этот вывод извлекается, имеет меньшую важность или является неважным. Например, NN обычно используются для того, чтобы оптимизировать распределение веб-трафика между серверами, и при оценке данных, обработке данных, включающей в себя фильтрацию, кластеризацию, векторное встраивание, и т.п.
[0129] По меньшей мере в одном варианте осуществления настоящей технологии MLA может быть реализован как рекуррентная нейронная сеть (RNN). Вообще говоря, RNN представляют собой класс NN, в которых соединения между узлами формируют направленный граф вдоль временной последовательности. Это обеспечивает возможность данной RNN, в некотором смысле, "изучать" и "демонстрировать" временное динамическое поведение. С этой целью внутренние состояния (запоминающее устройство) данной RNN могут использоваться для того, чтобы обрабатывать последовательности вводов. Как должно становиться очевидным из нижеприведенного подробного описания в данном документе, разработчики настоящей технологии выяснили, что это использование внутренних состояний RNN для последовательностей обработки вводов может быть полезным для выполнения прогнозирований, не только на основе текущего ввода, но также и, по меньшей мере, на основе одного предыдущего ввода.
[0130] Если обобщить, реализация данного MLA посредством процессора 110 может широко классифицироваться на две фазы: фаза обучения и фаза в ходе использования. Во-первых, данный MLA обучается в фазе обучения. Затем, после того как данный MLA знает то, какие данные следует ожидать в качестве вводов, и то, какие данные следует предоставлять в качестве выводов, данный MLA фактически работает с использованием данных в ходе использования в фазе в ходе использования. Предполагается, что в некоторых вариантах осуществления настоящей технологии MLA, выполняемый посредством процессора 110, может представлять собой один или более подходящих контролируемых, полуконтролируемых и неконтролируемых MLA.
Процессор
[0131] Как упомянуто выше, процессор 110 может быть выполнен с возможностью определять данные для управления рулением транспортным средством 220. Ниже описывается то, как процессор 110 может быть выполнен с возможностью определять эти данные для управления рулением транспортным средством 220.
[0132] Допустим, что, как упомянуто выше, процессор 110 формирует графовую структуру 300, и в силу этого последовательности целевых состояний транспортного средства 220 формируются для данного маршрута. Тем не менее, в дополнение к этой последовательности целевых состояний, процессор 110 может требовать дополнительных данных для управления рулением транспортным средством 220 таким образом, что транспортное средство 220 имеет возможность переходить из одного целевого состояния последовательно, во второе целевое состояние последовательно, в свою очередь в третье целевое состояние последовательно и т.д. Другими словами, предполагается, что процессор 110 может быть выполнен с возможностью определять для данной пары последовательных целевых состояний на графовой структуре 300, такой как пара, включающая в себя первое целевое состояние 320 и второе целевое состояние 340, то, как должно управление рулением транспортным средством 220 для того, чтобы приходить из первого целевого состояния 320 во второе целевое состояние 340.
[0133] Ниже подробнее описывается то, как процессор 110 выполнен с возможностью определять данный целевой профиль руления, представляющий множество целевых позиций руления в различный момент времени для разрешения транспортному средству 220 переходить из (i) первого целевого состояния 320 (см. представление 402 на фиг. 4) во (ii) второе целевое состояние 340 (см. представление 404 на фиг. 4). Тем не менее, следует отметить, что процессор 110 может быть выполнен с возможностью определять такой целевой профиль руления для любой пары двух последовательных целевых состояний на графовой структуре 300 аналогично тому, как процессор 110 выполнен с возможностью определять данный целевой профиль руления для пары последовательных целевых состояний, включающей в себя (i) первое целевое состояние 320 (см. представление 402 на фиг. 4) и (ii) второе целевое состояние 340 (см. представление 404 на фиг. 4).
[0134] В некоторых вариантах осуществления настоящей технологии предполагается, что процессор 110 может быть выполнен с возможностью выполнять операцию поиска в таблице 500, проиллюстрированной на фиг. 5, чтобы идентифицировать данный набор параметров, который ассоциирован с данной парой состояний, которая представляет собой наиболее аналогичную пару состояний из всех пар состояний в таблице 500 относительно пары, включающей в себя первое целевое состояние 320 и второе целевое состояние 340. Например, операция поиска может инициироваться в ответ на получение данных состояния транспортного средства, ассоциированных с первым целевым состоянием 320 и вторым целевым состоянием 340.
[0135] Как упомянуто выше, первое целевое состояние 320 ассоциировано с первым множеством значений 412 состояния (с данными состояния транспортного средства), в то время как второе целевое состояние 340 ассоциировано со вторым множеством значений 414 состояния (с данными состояния транспортного средства). В связи с этим, процессор 110 может выполнять поиск в таблице 500 посредством использования первого множества значений 412 состояния (представляющих собой данные состояния транспортного средства для первого целевого состояния 320) и второго множества значений 414 состояния (представляющих собой данные состояния транспортного средства для второго целевого состояния 340).
[0136] То, как операция поиска выполняется посредством процессора 110, не ограничено конкретным образом и может реализовываться любым подходящим способом для данного варианта применения. Тем не менее, после того как операция поиска выполняется, процессор 110 может быть выполнен с возможностью получать данный набор параметров, ассоциированный с данной парой состояний, которая представляет собой наиболее аналогичную пару состояний из всех пар состояний в таблице 500 относительно пары, включающей в себя первое целевое состояние 320 и второе целевое состояние 340.
[0137] Чтобы лучше иллюстрировать это, допустим, что данная пара состояний, которая представляет собой наиболее аналогичную пару состояний из всех пар состояний в таблице 500 относительно пары, включающей в себя первое целевое состояние 320 и второе целевое состояние 340, представляет собой пару 508 состояний, проиллюстрированную на фиг. 5 и 6. Можно сказать, что в этом примере, переход между первым целевым состоянием 320 и вторым целевым состоянием 340 является наиболее аналогичным относительно перехода между первым состоянием 510 и вторым состоянием 512, чем относительно любого другого перехода для соответствующих пар состояний таблицы 500.
[0138] После того, как пара 508 состояний идентифицируется в качестве наиболее аналогичной пары состояний из всех пар состояний в таблице 500 относительно пары, включающей в себя первое целевое состояние 320 и второе целевое состояние 340, процессор 110 может быть выполнен с возможностью получать соответствующий ассоциированный набор 514 параметров.
[0139] После того, как набор 514 параметров получается, процессор 110 может быть выполнен с возможностью формировать/компоновать, на основе набора 514 параметров, полиномиальную кривую 602, проиллюстрированную через графическое представление 600 на фиг. 6. Как можно видеть, графическое представление 600 включает в себя две оси, а именно, временную ось, идентифицированную в качестве оси T, и ось позиций рулевого колеса, идентифицированную в качестве оси SWP.
[0140] Следует отметить, что, поскольку пара 508 состояний представляет собой наиболее аналогичную пару состояний в таблице 500 относительно пары, включающей в себя первое целевое состояние 320 и второе целевое состояние 340, полиномиальная кривая 602, построенная на основе набора 514 параметров, может использоваться в качестве наилучшего приближения полиномиальной кривой, которая должна использоваться для перехода из первого целевого состояния 320 во второе целевое состояние 340.
[0141] Следует отметить, что позиции рулевого колеса идентифицируются в соответствии со своей угловой позицией относительно нейтральной позиции рулевого колеса для рулевого колеса. Например, данная позиция рулевого колеса в -60 соответствует данной позиции рулевого колеса, в которой руль вращается на 60 градусов против часовой стрелки из нейтральной позиции рулевого колеса. В идентичном примере, данная позиция рулевого колеса в +60 соответствует данной позиции рулевого колеса, в которой руль вращается на 60 градусов по часовой стрелке из нейтральной позиции рулевого колеса.
[0142] Следует отметить, что полиномиальная кривая 602 представляет возможный вариант профиля руления для транспортного средства 220 для перехода из первого целевого состояния 320 во второе целевое состояние 340. Фактически, этот возможный вариант профиля руления представляет множество возможных вариантов позиций рулевого колеса для транспортного средства 220 в различные моменты времени между (i) моментом времени, ассоциированным с первым целевым состоянием 320, и (ii) моментом времени, ассоциированным со вторым целевым состоянием 340.
[0143] Например, полиномиальная кривая 602 начинается в начальный момент 604 времени, который соответствует моменту времени, ассоциированному с первым целевым состоянием 320. Затем полиномиальная кривая 602 предоставляет индикаторы возможных вариантов позиций рулевого колеса в различные моменты времени после начального момента времени 604 и до конечного момента 606 времени, который соответствует моменту времени, ассоциированному со вторым целевым состоянием 340.
[0144] Следует отметить, что разработчики настоящей технологии выяснили, что в некоторых ситуациях данный возможный вариант профиля руления (данная полиномиальная кривая, сформированная на основе данного набора параметров) может включать в себя, по меньшей мере, некоторые возможные варианты позиций рулевого колеса, которые не являются физически возможными либо являются в других отношениях слишком опасными для использования, по меньшей мере, в некоторых обстоятельствах, в ходе работы транспортного средства 220. Другими словами, разработчики настоящей технологии выяснили, что транспортное средство 220 может быть ассоциировано с предварительно определенным диапазоном позиций рулевого колеса, которые либо являются физически возможными, либо являются в других отношениях безопасными для использования в ходе работы транспортного средства 220 в данной ситуации.
[0145] В некоторых вариантах осуществления настоящей технологии предполагается, что предварительно определенный диапазон позиций рулевого колеса может указывать максимальную амплитуду руления, которое транспортное средство 220 физически выполнено с возможностью выполнять или иными способами может безопасно выполнять в данной ситуации. Только в качестве примера, предварительно определенный диапазон позиций рулевого колеса может составлять [-900, +900]. В другом примере, предварительно определенный диапазон позиций рулевого колеса может составлять [-180, +180].
[0146] Предполагается, что в некоторых вариантах осуществления настоящей технологии данный диапазон позиций рулевого колеса может быть предварительно определен для соответствующей скорости, с которой в данный момент движется транспортное средство 220. Например, если транспортное средство 220 движется с относительно низкой скоростью (например, со скоростью во время маневров при парковке), предварительно определенный диапазон может составлять [-900, +900]. В другом примере, если транспортное средство 220 движется с относительно высокой скоростью (например, со скоростью на дороге и/или шоссе), предварительно определять диапазон может составлять [-180, +180]. В некоторых вариантах осуществления предварительно определенные диапазоны для соответствующих скоростей транспортного средства 220 могут предварительно вычисляться и сохраняться в устройстве 250 хранения данных для будущего использования.
[0147] В контексте настоящего описания, позиции рулевого колеса внутри этого предварительно определенного диапазона могут упоминаться как "разрешенные позиции рулевого колеса", в то время как позиции рулевого колеса за пределами этого предварительно определенного диапазона могут упоминаться как "неразрешенные позиции рулевого колеса".
[0148] В некоторых вариантах осуществления настоящей технологии предполагается, что процессор 110 может быть выполнен с возможностью выполнять операцию моделирования траектории на основе полиномиальной кривой 602. Другими словами, процессор 110 может быть выполнен с возможностью использовать полиномиальную кривую 602 для моделирования (например, формирования) возможного варианта траектории транспортного средства 220, как если транспортным средством 220 управляют с помощью руля в соответствии с множеством возможных вариантов позиций рулевого колеса для возможного варианта профиля руления, представленного посредством полиномиальной кривой 602.
[0149] Цель процессора 110, моделирующего возможный вариант траектории, состоит в том, чтобы определять (i) то, должно или нет транспортное средство 220 фактически переходить во второе целевое состояние 340 из первого целевого состояния 320, если транспортным средством 220 управляют с помощью руля в соответствии с множеством возможных вариантов позиций рулевого колеса полиномиальной кривой 602, и (ii) то, какой траектории должно придерживаться транспортное средство 220 для перехода во второе целевое состояние 340 из первой цели 320, если транспортным средством 220 управляют с помощью руля в соответствии с множеством возможных вариантов позиций рулевого колеса полиномиальной кривой 602.
[0150] Ниже подробнее описывается то, как процессор 110 выполнен с возможностью моделировать возможный вариант траектории на основе полиномиальной кривой 602, со ссылкой на фиг. 7 и 8.
[0151] На фиг. 7, графическое представление 600 проиллюстрировано подробнее с предварительно определенным диапазоном позиций рулевого колеса 700. Как упомянуто выше, полиномиальная кривая 602 начинается в начальный момент 604 времени, который соответствует моменту времени, ассоциированному с первым целевым состоянием 320. На фиг. 7, начальный момент времени соответствует моменту t0. В дополнение к моменту t0, также иллюстрируются множество моментов, а именно: моменты t2, t3, t4, t5, t6, t7, t8, t9, t10 и t11. Как упомянуто выше, полиномиальная кривая 602 завершается в конечный момент 606 времени, который соответствует моменту времени, ассоциированному со вторым целевым состоянием 340. На фиг. 7, конечный момент времени соответствует моменту t11.
[0152] Следовательно, можно сказать, то, что моменты t1, t2, t3, t4, t5, t6, t7, t8, t9 и t10 представляют собой различные моменты времени между начальным моментом времени 604 и конечным моментом 606 времени, для которых полиномиальная кривая 602 предоставляет индикаторы возможных вариантов позиций рулевого колеса. Как проиллюстрировано, полиномиальная кривая 602 предоставляет индикаторы:
- возможного варианта позиции рулевого колеса в 0 для момента t0;
- возможного варианта позиции рулевого колеса в +60 для момента t1;
- возможного варианта позиции рулевого колеса в -120 для момента t2;
- возможного варианта позиции рулевого колеса в +180 для момента t3;
- возможного варианта позиции рулевого колеса в +240 для момента t4;
- возможного варианта позиции рулевого колеса в +180 для момента t5;
- возможного варианта позиции рулевого колеса в +120 для момента t6;
- возможного варианта позиции рулевого колеса в +60 для момента t7;
- возможного варианта позиции рулевого колеса в -60 для момента t8;
- возможного варианта позиции рулевого колеса в -120 для момента t9;
- возможного варианта позиции рулевого колеса в -120 для момента t10; и
- возможного варианта позиции рулевого колеса в -120 для момента t11.
[0153] Само собой разумеется, что полиномиальная кривая 602 также может предоставлять индикаторы позиций рулевого колеса для моментов времени, которые находятся между моментами t0, t1, t2, t3, t4, t5, t6, t7, t8, t9 и t10, без отступления от объема настоящей технологии.
[0154] Как упомянуто выше, также на фиг. 7 проиллюстрирован предварительно определенный диапазон 700 позиций рулевого колеса. Как можно видеть, предварительно определенный диапазон 700 составляет [-180, +180], что означает то, что в этом примере, разрешенные позиции рулевого колеса представляют собой позиции рулевого колеса, которые попадают в диапазон [-180, +180].
[0155] Как упомянуто выше, процессор 110 может быть выполнен с возможностью формировать данный возможный вариант траектории для транспортного средства 220 на основе данного возможного варианта профиля руления (например, данной полиномиальной кривой). Как проиллюстрировано на фиг. 8, процессор 110 может быть выполнен с возможностью формировать возможный вариант 800 траектории для транспортного средства 220, как если транспортным средством 220 управляют с помощью руля в соответствии с множеством возможных вариантов позиций рулевого колеса для возможного варианта профиля руления, представленного посредством полиномиальной кривой 602.
[0156] Как можно видеть, возможный вариант 800 траектории начинается в первом целевом состоянии 320. Во время формирования возможного варианта 800 траектории, процессор 110 может быть выполнен с возможностью формировать набор 830 промежуточных моделированных состояний на основе множества возможных вариантов позиций рулевого колеса для возможного варианта профиля руления, представленного посредством полиномиальной кривой 602.
[0157] Например, на основе возможного варианта позиции рулевого колеса в 0 для момента t0, процессор 110 может быть выполнен с возможностью формировать первое промежуточное моделированное состояние 810, которое указывает состояние транспортного средства 220 в момент t1, как если транспортным средством 220 управляют с помощью руля в соответствии с возможным вариантом позиции рулевого колеса в 0 и постепенно изменяется на возможный вариант позиции рулевого колеса в +60 между моментом t0 и моментом t1 времени.
[0158] В идентичном примере, на основе возможного варианта позиции рулевого колеса в +60 для момента t1, процессор 110 может быть выполнен с возможностью формировать второе промежуточное моделированное состояние 811, которое указывает состояние транспортного средства 220 в момент t2, как если транспортным средством 220 управляют с помощью руля в соответствии с возможным вариантом позиции рулевого колеса в +60 и постепенно изменяется на возможный вариант позиции рулевого колеса в +120 между моментом t1 и моментом t2 времени.
[0159] Тем не менее, следует отметить, что второе промежуточное моделированное состояние 811 формируется не только на основе возможного варианта позиции рулевого колеса в +60 для момента t1, но также и на основе первого промежуточного моделированного состояния 810 транспортного средства 220 в момент t1. Следует отметить, что это может быть истиной для каждого промежуточного моделированного состояния во множестве промежуточных моделированных состояний 830, т.е. данное промежуточное моделированное состояние может зависеть от возможного варианта позиции рулевого колеса для предыдущего целевого состояния и непосредственно от предыдущего целевого состояния.
[0160] В идентичном примере, на основе возможного варианта позиции рулевого колеса в +120 для момента t2, процессор 110 может быть выполнен с возможностью формировать третье промежуточное моделированное состояние 813, которое указывает состояние транспортного средства 220 в момент t3, как если транспортным средством 220 управляют с помощью руля в соответствии с возможным вариантом позиции рулевого колеса в +120 и постепенно изменяется на возможный вариант позиции рулевого колеса в +180 между моментом t2 и моментом t3 времени.
[0161] Следует отметить, что возможный вариант позиции рулевого колеса в +180 для момента t3 по-прежнему находится внутри предварительно определенного диапазона 700, и в силу этого представляет собой разрешенную позицию рулевого колеса в этом примере. Тем не менее, как описано далее, после того как данный возможный вариант позиции рулевого колеса для данного момента времени находится за пределами предварительно определенного диапазона 700 и в силу этого представляет собой неразрешенную позицию рулевого колеса, процесс моделирования или формирование следующего промежуточного целевого состояния может выполняться посредством процессора 110 способом, отличающимся от способа для моментов времени, ассоциированных с возможными вариантами позиций рулевого колеса, которые находятся внутри предварительно определенного диапазона 700.
[0162] В идентичном примере, на основе возможного варианта позиции рулевого колеса в +180 для момента t3, процессор 110 может быть выполнен с возможностью формировать четвертое промежуточное моделированное состояние 814, которое указывает состояние транспортного средства 220 в момент t4, как если транспортным средством 220 управляют с помощью руля в соответствии с возможным вариантом позиции рулевого колеса в +180 между моментом t3 и моментом t4 времени, вместо формирования четвертого промежуточного моделированного состояния 814, как если транспортным средством 220 управляют с помощью руля в соответствии с возможным вариантом позиции рулевого колеса в +180 и постепенно изменяется на возможный вариант позиции рулевого колеса в +240 между моментом t3 и моментом t4 времени.
[0163] Следовательно, в некоторых вариантах осуществления настоящей технологии предполагается, что когда возможный вариант профиля руления представляет по меньшей мере один возможный вариант позиции рулевого колеса, который представляет собой неразрешенную позицию рулевого колеса (например, за пределами предварительно определенного диапазона 700), процессор 110 может быть выполнен с возможностью формировать промежуточные моделированные состояния, как если транспортным средством 220 управляют с помощью руля в соответствии с множеством возможных вариантов позиций рулевого колеса в соответствующие моменты времени, и таким образом, что вместо неразрешенной позиции рулевого колеса используется ближайшая разрешенная позиция рулевого колеса относительно неразрешенной позиции рулевого колеса в предварительно определенном диапазоне 700 позиций рулевого колеса .
[0164] Другими словами, это означает то, что процессор 110 может быть выполнен с возможностью использовать позицию рулевого колеса в +180 для формирования любого промежуточного моделированного состояния между моментом t3 и моментом t5.
[0165] Продолжая идентичный пример, процессор 110 может быть выполнен с возможностью формировать пятое промежуточное моделированное состояние 815, которое указывает состояние транспортного средства 220 в момент t5, как если транспортным средством 220 управляют с помощью руля в соответствии с возможным вариантом позиции рулевого колеса в +180 между моментом t4 и моментом t5 времени, вместо формирования четвертого промежуточного моделированного состояния 815, как если транспортным средством 220 управляют с помощью руля в соответствии с возможным вариантом позиции рулевого колеса в +240 и постепенно изменяется на возможный вариант позиции рулевого колеса в +180 между моментом t4 и моментом t5 времени.
[0166] Что касается остальных из множества промежуточных моделированных состояний 830, а именно, промежуточных моделированных состояний 816, 817, 818, 819, 820 и конечного моделированного состояния 821, они могут формироваться посредством процессора 110 аналогично тому, как процессор 110 выполнен с возможностью формировать любое из первого, второго и третьего промежуточных моделированных состояний.
[0167] Также на фиг. 8 проиллюстрировано второе целевое состояние 340. Тем не менее, следует отметить, что возможный вариант 800 траектории завершается в момент t11 в конечном моделированном состоянии 821. Следовательно, можно сказать, что имеется смещение 850 между вторым целевым состоянием 340 и конечным моделированным состоянием 821, в котором возможный вариант 800 траектории завершается.
[0168] Смещение 850 между конечным моделированным состоянием 821 и вторым целевым состоянием 340 может возникать по разным причинам. В одном примере, смещение 850 может возникать вследствие неточного совпадения между двумя последовательными целевыми состояниями и парой состояний 508. В другом примере, смещение 850 может возникать вследствие ограничения возможных вариантов позиций рулевого колеса (например, ограничения до +180 градусов) между моментом t3 и моментом t5 во время процесса моделирования.
[0169] Независимо от конкретной причины возникновения смещения 850, процессор 110 может быть выполнен с возможностью использовать смещение 850 для того, чтобы определять то, должен или нет возможный вариант профиля руления (например, полиномиальная кривая 602) выбираться в качестве целевого профиля руления для управления рулением транспортным средством 220 между первым целевым состоянием 320 и вторым целевым состоянием 340.
[0170] По меньшей мере, в некоторых вариантах осуществления процессор 110 может быть выполнен с возможностью сравнивать смещение 850 с предварительно определенным пороговым значением. Предварительно определенное пороговое значение может определяться любым подходящим способом для данного варианта применения. В некоторых случаях, если смещение 850 между конечным моделированным состоянием 821 и вторым целевым состоянием 340 находится в пределах приемлемого допустимого запаса смещения из второго целевого состояния 340, процессор 110 может выбирать возможный вариант профиля руления (например, полиномиальную кривую 602) в качестве целевого профиля руления для транспортного средства 220 и использовать целевой профиль руления для управления рулением транспортным средством 220.
[0171] Следует отметить, что, если полиномиальная кривая 602 выбирается в качестве целевого профиля руления для транспортного средства 220, процессор 110 может инициировать управление рулением транспортного средства 220 таким образом, что транспортное средство 220 управляется с помощью руля в соответствии с позициями рулевого колеса, которые ограничены значением в +180 между моментами t3 и t4.
[0172] Тем не менее, в других случаях, если может оказываться, что смещение 850 между конечным моделированным состоянием 821 и вторым целевым состоянием 340, находится за пределами приемлемого допустимого запаса смещения, процессор 110 может быть выполнен с возможностью выполнять процедуру регулирования. В ходе процедуры регулирования процессор 110 может быть выполнен с возможностью использовать смещение 850 для регулирования набора 514 параметров, который используется для того, чтобы формировать полиномиальную кривую 602, и в силу этого определять набор отрегулированных параметров для построения отрегулированной полиномиальной кривой.
[0173] То, как процессор 110 выполнен с возможностью использовать смещение 850 для регулирования набора 514 параметров и в силу этого определять набор отрегулированных параметров, описывается в статье, упомянутой выше, причем ее содержимое полностью содержится в данном документе по ссылке. После того, как набор отрегулированных параметров определяется, процессор 110 может быть выполнен с возможностью компоновать отрегулированную полиномиальную кривую на основе набора отрегулированных параметров, аналогично тому, как процессор 110 выполнен с возможностью компоновать полиномиальную кривую 602 на основе набора 514 параметров.
[0174] Аналогично тому, что описывается выше относительно полиномиальной кривой 602, процессор 110 может быть выполнен с возможностью использовать отрегулированную полиномиальную кривую для моделирования второго возможного варианта траектории для транспортного средства 220, как если транспортным средством 220 управляют с помощью руля в соответствии с отрегулированным профилем руления, представленным посредством отрегулированной полиномиальной кривой. Затем, аналогично тому, что описывается выше относительно возможного варианта 800 траектории, процессор 110 может быть выполнен с возможностью определять второе смещение между вторым целевым состоянием 340 и вторым конечным моделированным состоянием второго возможного варианта траектории.
[0175] Если второе смещение составляет ниже предварительно определенного порогового значения, процессор 110 может выбирать отрегулированный возможный вариант профиля руления (например, отрегулированную полиномиальную кривую) в качестве целевого профиля руления и использовать его для того, чтобы управлять рулением транспортным средством 220. Если второе смещение выше предварительно определенного порогового значения, процессор 110 может быть выполнен с возможностью повторять процедуру регулирования для отрегулированного набора параметров, аналогично тому, как процессор 110 выполнен с возможностью выполнять процедуру регулирования для набора 514 параметров. Следовательно, можно сказать, что процессор 110 может быть выполнен с возможностью итеративно повторять процедуру регулирования до тех пор, пока данное смещение не составляет ниже предварительно определенного порогового значения.
[0176] Следовательно, в ходе использования, после того как целевой профиль руления выбирается, как описано выше, электронное устройство 210 может быть выполнено с возможностью использовать целевой профиль руления для того, чтобы управлять работой транспортного средства 220. Более конкретно, если электронное устройство 210 определяет то, что транспортное средство 220 находится в данный момент в первом целевом состоянии 320, и транспортное средство 220 должно переходить во второе целевое состояние 340, электронное устройство 210 может быть выполнено с возможностью использовать целевой профиль руления, как определено выше, чтобы управлять рулением транспортным средством 220, когда транспортное средство 220 находится в первом целевом состоянии 320, и для разрешения транспортному средству 220 переходить во второе целевое состояние 340.
[0177] Как упомянуто выше, по меньшей мере в некоторых вариантах осуществления процессор 110 может быть выполнен с возможностью выполнять MLA. В некоторых вариантах осуществления MLA может обучаться и использоваться для прогнозирования позиции рулевого колеса в ходе использования для транспортного средства 220 для текущего состояния в ходе использования транспортного средства 220 с учетом того, что траектория в ходе использования транспортного средства 220 должна завершаться во втором из двух последовательных состояний на графовой структуре 300. Далее в свою очередь описывается то, как MLA может обучаться и использоваться для того, чтобы выполнять такое прогнозирование.
Обучение и использование MLA
[0178] Со ссылкой на фиг. 9, вообще говоря, процессор 110 выполнен с возможностью обучать MLA на основе обучающей траектории 900. Предполагается, что, по меньшей мере, в некоторых вариантах осуществления настоящей технологии обучающая траектория 900 может формироваться посредством процессора 110 (и потенциально сохраняться в устройстве 250 хранения данных), аналогично тому, как процессор 110 выполнен с возможностью формировать возможный вариант 800 траектории. В других вариантах осуществления, предполагается, что обучающая траектория 900 может собираться посредством электронного устройства, отслеживающего требуемую человеком траекторию, как пояснено выше.
[0179] Более конкретно, процессор 110 может быть выполнен с возможностью формировать множество обучающих наборов 980 данных на основе обучающей траектории 900 и затем обучать MLA на основе множества обучающих наборов 980 данных. Ниже описывается то, как процессор 110 выполнен с возможностью формировать множество обучающих наборов данных на основе обучающей траектории.
[0180] Как можно видеть, в этом случае, множество обучающих наборов 980 данных для обучающей траектории 900 включают в себя в сумме четыре (4) обучающих набора данных, а именно, первый обучающий набор 982 данных, второй обучающий набор 984 данных, третий обучающий набор 986 данных и четвертый обучающий набор 988 данных.
[0181] Следует отметить, что каждый обучающий набор данных из множества обучающих наборов 980 данных включает в себя соответствующий обучающий ввод и соответствующую метку. Например, первый обучающий набор 982 данных включает в себя первый обучающий ввод 950 и первую метку 952. В идентичном примере, второй обучающий набор 984 данных включает в себя второй обучающий ввод 954 и вторую метку 956. В идентичном примере, третий обучающий набор 986 данных включает в себя третий обучающий ввод 958 и третью метку 960. В идентичном примере, четвертый обучающий набор 988 данных включает в себя четвертый обучающий ввод 962 и четвертую метку 964.
[0182] Как видно на фиг. 9, обучающая траектория 900 содержит (i) первое целевое состояние 902, (ii) множество промежуточных целевых состояний, включающих в себя промежуточные целевые состояния 904, 906 и 908, и (iii) второе целевое состояние 910. Следует отметить, что обучающая траектория 900 ассоциирована с множеством фактических позиций рулевого колеса (аналогично тому, как возможный вариант 800 траектории ассоциирован с множеством возможных вариантов позиций рулевого колеса из полиномиальной кривой 602) в различные моменты времени, так что данная фактическая позиция рулевого колеса в данный момент времени разрешает приход из данного целевого состояния обучающей траектории 900 в последовательное целевое состояние в обучающей траектории 900.
[0183] В некоторых вариантах осуществления настоящей технологии предполагается, что данный обучающий набор данных может формироваться посредством процессора 110 на основе (i) целевых состояний из обучающей траектории 900 и (ii) множества фактических позиций руления, ассоциированных с обучающей траекторией 900.
[0184] Следует отметить, что данный обучающий ввод из данного обучающего набора данных включает в себя данные, указывающие (i) соответствующее обучающее состояние и (ii) второе целевое состояние 910, и при этом соответствующее обучающее состояние представляет собой одно из (i) первого целевого состояния 902 и (ii) любого из промежуточных целевых состояний 904, 906 и 908.
[0185] Например, первый обучающий ввод 950 включает в себя данные, указывающие (i) первое целевое состояние 902 и (ii) второе целевое состояние 910. Следует отметить, что данные, указывающие данное целевое состояние, могут иметь форму набора значений состояния, как описано выше. В этом примере, второй обучающий ввод 954 включает в себя данные, указывающие (i) промежуточное целевое состояние 904 и (ii) второе целевое состояние 910. В этом примере, третий обучающий ввод 958 включает в себя данные, указывающие (i) промежуточное целевое состояние 906 и (ii) второе целевое состояние 910. В этом примере, четвертый обучающий ввод 962 включает в себя данные, указывающие (i) промежуточное целевое состояние 908 и (ii) второе целевое состояние 910.
[0186] Следует отметить, что процессор 110 использует информацию, указывающую целевые состояния из обучающей траектории 900, для формирования обучающих вводов из множества обучающих наборов 980 данных. Тем не менее, также следует отметить, что процессор 110 использует информацию, указывающую множество фактических позиций рулевого колеса, ассоциированных с обучающей траекторией 900, для формирования соответствующих меток из множества обучающих наборов 980 данных.
[0187] Например, первая метка 952 указывает фактическую позицию(и) рулевого колеса в соответствующий момент(ы) времени для прихода из первого целевого состояния в промежуточное целевое состояние 904. В идентичном примере, вторая метка 956 указывает фактическую позицию(и) рулевого колеса в соответствующий момент(ы) времени для прихода из промежуточного целевого состояния 904 в промежуточное целевое состояние 906. В идентичном примере, третья метка 960 указывает фактическую позицию(и) рулевого колеса в соответствующий момент(ы) времени для прихода из промежуточного целевого состояния 906 в промежуточное целевое состояние 908. В идентичном примере, четвертая метка 960 указывает фактическую позицию(и) рулевого колеса в соответствующий момент(ы) времени для прихода из промежуточного целевого состояния 908 во второе целевое состояние 910.
[0188] В целом, данный обучающий набор данных содержит данный обучающий ввод и данную метку. Данный ввод указывает (i) соответствующее целевое состояние (либо первое целевое состояние 902, либо данное промежуточное целевое состояние) из обучающей траектории 900 и второе целевое состояние 910, представляющее собой последнее целевое состояние обучающей траектории 900 (поскольку обучающая траектория 900 завершается вторым целевым состоянием 910). Данная метка указывает фактическую позицию(и) рулевого колеса в соответствующий момент(ы) времени для прихода из соответствующего целевого состояния (либо первого целевого состояния 902, либо данного промежуточного целевого состояния) в последовательные целевые состояния из обучающей траектории 900.
[0189] Ниже описывается то, как данный обучающий набор данных используется посредством процессора 110 для того, чтобы обучать MLA. Чтобы лучше иллюстрировать это, рассмотрим пример первого обучающего набора 982 данных. Процессор 110 выполнен с возможностью вводить первый обучающий набор 982 данных в MLA. Другими словами, процессор 110 может быть выполнен с возможностью предоставлять первый обучающий ввод 950 первого обучающего набора 982 данных в MLA, который выполнен с возможностью определять прогнозируемую позицию(и) рулевого колеса для прихода из первого целевого состояния в соответствующий момент времени в последовательное целевое состояние обучающей траектории 900 с учетом того, что обучающая траектория 900 должна завершаться вторым целевым состоянием 910. Другими словами, MLA может быть выполнен с возможностью формировать вывод, указывающий прогнозируемую позицию(и) рулевого колеса для прихода из первого целевого состояния в соответствующий момент времени в последовательное целевое состояние обучающей траектории 900 с учетом того, что обучающая траектория 900 должна завершаться вторым целевым состоянием 910. Процессор 110 также может быть выполнен с возможностью сравнивать этот вывод MLA с первой меткой 982 первого обучающего набора 982 данных. Во время сравнения процессор 110 может быть выполнен с возможностью определять разность между этими прогнозируемыми позициями рулевого колеса (выведенными посредством MLA) для первого целевого состояния 902 и фактическими позициями рулевого колеса для первого целевого состояния 902.
[0190] После того как процессор 110 определяет разность между прогнозируемой(емыми) позицией(ями) рулевого колеса для первого целевого состояния 902 (вывод MLA) и фактической(ими) позицией(ями) рулевого колеса для первого целевого состояния (первая метка 952), процессор 110 может быть выполнен с возможностью обучать MLA на основе разности. Процессор 110 может в силу этого обучать MLA таким образом, чтобы прогнозировать позицию(и) рулевого колеса в ходе использования для транспортного средства 220 для текущего состояния в ходе использования транспортного средства 220 с учетом того, что траектория в ходе использования транспортного средства 220 должна завершаться во втором целевом состоянии в ходе использования.
[0191] Также следует отметить, что, по меньшей мере, в некоторых вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью итеративного ввода соответствующих обучающих наборов данных из множества обучающих наборов 980 данных в MLA для определения соответствующей прогнозируемой позиции(й) рулевого колеса для прихода из соответствующего обучающего целевого состояния в последовательное целевое состояние с учетом того, что обучающая траектория 900 должна завершаться во втором целевом состоянии 910.
[0192] Следовательно, предполагается, что в этих вариантах осуществления, процессор 110 может быть выполнен с возможностью обучать MLA на основе разностей между соответствующими прогнозируемыми позициями рулевого колеса и соответствующими фактическими позициями рулевого колеса, которые предоставляются в MLA в качестве соответствующих меток множества обучающих наборов 980 данных.
[0193] Предполагается, что в этих вариантах осуществления, MLA может представлять собой RNN MLA, имеющий внутренние состояния запоминающего устройства.
[0194] По меньшей мере, в некоторых вариантах осуществления настоящей технологии можно сказать, что множество целевых состояний обучающей траектории 900 выбрано для избегания препятствия. Чтобы лучше иллюстрировать это, допустим, что обучающая траектория 900 представляет собой данную требуемую человеком траекторию, выбранную человеком-оператором в ходе работы данного транспортного средства. Следует отметить, что человек-оператор может выбирать обучающую траекторию 900 для избегания данного препятствия на дороге в ходе работы данного транспортного средства. В таких случаях, информация, указывающая позицию препятствия относительно данного транспортного средства, управляемого человеком-оператором, возможно, собрана в ходе работы транспортного средства.
[0195] Следовательно, предполагается, что в случаях, если обучающая траектория собрана в ассоциации с информацией, указывающей позицию данного препятствия, позиция данного препятствия также может вводиться в MLA для целей обучения. Следовательно, можно сказать, что MLA может, в некотором смысле, "изучать" ассоциирование между позициями препятствий на дороге и позициями рулевого колеса в ходе использования, которые должен прогнозировать MLA для того, чтобы избегать препятствий на дороге.
[0196] Опционально, в дополнение к информации, указывающей позицию данного препятствия, в MLA может вводиться во время фазы обучения информация, указывающая позицию центра полосы движения, на которой присутствует обучающая траектория. Следовательно, можно сказать, что MLA может, в некотором смысле, также "изучать" ассоциирование между позицией центра полосы движения и позициями рулевого колеса в ходе использования, которые должен прогнозировать MLA для того, чтобы следовать в максимально возможной степени в центре полосы движения.
[0197] В ходе использования, электронное устройство 210 может быть выполнено с возможностью использовать MLA для того, чтобы определять позиции рулевого колеса для перехода из первого целевого состояния 320 во второе целевое состояние 340. Со ссылкой на фиг. 11, проиллюстрировано представление 1000 фазы в ходе использования MLA. Как должно становиться очевидным из нижеприведенного подробного описания в данном документе, во время фазы в ходе использования MLA, MLA используется посредством процессора 110 для того, чтобы инкрементно определять позиции рулевого колеса для транспортного средства 220 для перехода между первым целевым состоянием 320 и вторым целевым состоянием 340.
[0198] Например, как видно на фиг. 10, представление 1000 фазы в ходе использования проиллюстрировано как включающее в себя, по меньшей мере, четыре инкрементных этапа, а именно: первый инкрементный этап 1002, второй инкрементный этап 1004, третий инкрементный этап 1006 и четвертый инкрементный этап 1008. Во время соответствующего инкрементного этапа, процессор 110 выполнен с возможностью вводить данные в MLA для определения позиции(й) рулевого колеса для транспортного средства 220 до следующего инкрементного этапа фазы в ходе использования, с учетом того, что в конце фазы в ходе использования, транспортное средство 220 должно переходить во второе целевое состояние 340.
[0199] Чтобы лучше иллюстрировать это, допустим, что процессор 110 определяет то, что транспортное средство 220 находится в данный момент в первом целевом состоянии 320, и транспортное средство 220 должно переходить во второе целевое состояние 340. В этом случае, процессор 110 может быть выполнен с возможностью использовать MLA для определения позиций рулевого колеса для перехода из первого целевого состояния 320 во второе целевое состояние 340.
[0200] Во время первого инкрементного этапа 1002, процессор 110 может быть выполнен с возможностью вводить (i) данные состояния транспортного средства, ассоциированные с первым целевым состоянием 320, и (ii) данные состояния транспортного средства, ассоциированные со вторым целевым состоянием 340. В таком случае, MLA выполнен с возможностью выводить первую позицию(и) рулевого колеса для перехода в первое инкрементное состояние 1012 в ходе использования между первым целевым состоянием 320 и вторым целевым состоянием 340, с учетом того, что транспортное средство 220 должно переходить во второе целевое состояние 340 в конце фазы в ходе использования MLA. В связи с этим, первая позиция(и) рулевого колеса, предоставленная посредством MLA в ответ на первый ввод в электронное устройство 210, служит для перехода из первого целевого состояния 320 во второе целевое состояние 340 через первое промежуточное состояние 1012 в ходе использования.
[0201] Во время второго инкрементного этапа 1004, процессор 110 может быть выполнен с возможностью вводить в MLA (i) данные состояния транспортного средства для первого инкрементного состояния 1012 в ходе использования и (ii) данные состояния транспортного средства для второго целевого состояния 340. В таком случае, MLA выполнен с возможностью выводить вторую позицию(и) рулевого колеса для перехода во второе инкрементное состояние 1014 в ходе использования между первым целевым состоянием 320 и вторым целевым состоянием 340. В связи с этим, напомним, что MLA предоставляет первую позицию(и) рулевого колеса во время первого инкрементного этапа 1002, MLA выполнен с возможностью предоставлять во время второго инкрементного этапа 1004 вторую позицию(и) рулевого колеса для перехода из первого целевого состояния 320 во второе целевое состояние 340 через первое инкрементное состояние 1012 в ходе использования и второе инкрементное состояние 1014 в ходе использования.
[0202] Во время третьего инкрементного этапа 1006, процессор 110 может быть выполнен с возможностью вводить в MLA (i) данные состояния транспортного средства для второго инкрементного состояния 1014 в ходе использования и (ii) данные состояния транспортного средства для второго целевого состояния 340. В таком случае, MLA выполнен с возможностью выводить третью позицию(и) рулевого колеса для перехода в третье инкрементное состояние 1016 в ходе использования между первым целевым состоянием 320 и вторым целевым состоянием 340. В связи с этим, напомним, что MLA предоставляет первую позицию(и) рулевого колеса во время первого инкрементного этапа 1002 и вторую позицию(и) рулевого колеса во время второго инкрементного этапа 1004, MLA выполнен с возможностью предоставлять во время третьего инкрементного этапа 1006 третью позицию(и) рулевого колеса для перехода из первого целевого состояния 320 во второе целевое состояние 340 через первое инкрементное состояние 1012 в ходе использования, второе инкрементное состояние 1014 в ходе использования и третье инкрементное состояние 1016 в ходе использования.
[0203] Следует отметить, что четвертый инкрементный этап 1008 может выполняться для перехода в четвертое инкрементное состояние 1018 в ходе использования аналогично тому, как первый, второй и третий инкрементные этапы 1002, 1004 и 1006 выполняются посредством процессора 110 с использованием MLA. Следует отметить, что число инкрементных этапов фазы в ходе использования MLA может варьироваться на основе, в числе прочего, данной реализации настоящей технологии. Тем не менее, можно сказать, что во время фазы в ходе использования MLA, процессор 110 может использовать MLA для того, чтобы инкрементно определять позиции рулевого колеса для транспортного средства 220 для того, чтобы переходить из первого целевого состояния 320 во второе целевое состояние 340 через одно или более инкрементных состояний в ходе использования между первым целевым состоянием 320 и вторым целевым состоянием 340.
[0204] Со ссылкой на фиг. 11, например, проиллюстрирована блок-схема последовательности операций способа 1100 управления рулением SDC, таким как транспортное средство 220. Ниже в данном документе подробнее описываются различные этапы способа 1100.
Этап 1102 - получение данных состояния SDC, ассоциированных с двумя последовательными вершинами на графовой структуре
[0205] Способ 1100 начинается на этапе 1102 за счет выполнения процессора 110 с возможностью получать из запоминающего устройства данные состояния SDC, ассоциированные с двумя последовательными вершинами на графовой структуре 300. Например, процессор 110 может быть выполнен с возможностью получать данные состояния SDC, ассоциированные с первой вершиной 302, задающей первое целевое состояние 320 транспортного средства 220, и со второй вершиной 304, задающей второе целевое состояние 340 транспортного средства 220.
[0206] В некоторых вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью, до выполнения этапа 1102, формировать графовую структуру 300 для маршрута, которого должно придерживаться транспортное средство 220. Процессор 110 также может быть выполнен с возможностью сохранять ее в устройстве 250 хранения данных и/или другом запоминающем устройстве (до выполнения этапа 1102). В некоторых вариантах осуществления запоминающее устройство может представлять собой запоминающее устройство удаленного сервера, такого как, например, сервер 235 по фиг. 2.
[0207] Предполагается, что данные состояния SDC, ассоциированные с данным состоянием SDC (и данной вершиной графовой структуры 300), могут содержать множество значений состояния. В некоторых вариантах осуществления множество значений состояния для данной вершины графовой структуры 300 (данного состояния SDC) могут содержать, по меньшей мере, значение позиции, значение времени, значение ориентации транспортного средства и значение позиции рулевого колеса.
[0208] Предполагается, что устройство 350 хранения данных может быть выполнено с возможностью сохранять множество значений состояния в ассоциации с соответствующим состоянием SDC и в силу этого в ассоциации с соответствующей вершиной графовой структуры 300.
Этап 1104 - использование данных состояния SDC для получения набора параметров для построения полиномиальной кривой
[0209] Способ 1100 переходит к этапу 1104 за счет выполнения процессора 110 с возможностью использования данных состояния SDC, полученных в ходе этапа 1102, для получения данного набора параметров для построения данной полиномиальной кривой.
[0210] Например, процессор 110 может быть выполнен с возможностью использовать данные состояния транспортного средства, ассоциированные с первым целевым состоянием 320 и вторым целевым состоянием 340, для того, чтобы выполнять операцию поиска в таблице 500, как пояснено выше.
[0211] То, как операция поиска выполняется посредством процессора 110, не ограничено конкретным образом и может реализовываться любым подходящим способом для данного варианта применения. Тем не менее, после того как операция поиска выполняется, процессор 110 может быть выполнен с возможностью получать данный набор параметров, ассоциированный с данной парой состояний, которая представляет собой наиболее аналогичную пару состояний из всех пар состояний в таблице 500 относительно пары, включающей в себя первое целевое состояние 320 и второе целевое состояние 340.
[0212] Как пояснено выше, допустим, что данная пара состояний, которая представляет собой наиболее аналогичную пару состояний из всех пар состояний в таблице 500 относительно пары, включающей в себя первое целевое состояние 320 и второе целевое состояние 340, представляет собой пару 508 состояний, проиллюстрированную на фиг. 5 и 6. Можно сказать, что в этом примере, переход между первым целевым состоянием 320 и вторым целевым состоянием 340 является наиболее аналогичным относительно перехода между первым состоянием 510 и вторым состоянием 512, чем относительно любого другого перехода для соответствующих пар состояний таблицы 500.
[0213] После того как пара 508 состояний идентифицируется в качестве наиболее аналогичной пары состояний из всех пар состояний в таблице 500 относительно пары, включающей в себя первое целевое состояние 320 и второе целевое состояние 340, процессор 110 может быть выполнен с возможностью получать, соответственно, ассоциированный набор 514 параметров.
[0214] После того как набор 514 параметров получается, процессор 110 может быть выполнен с возможностью формировать/компоновать полиномиальную кривую 602 на основе набора 514 параметров, как пояснено выше.
[0215] Следует отметить, что, поскольку пара 508 состояний представляет собой наиболее аналогичную пару состояний в таблице 500 относительно пары, включающей в себя первое целевое состояние 320 и второе целевое состояние 340, полиномиальная кривая 602, построенная на основе набора 514 параметров, может использоваться в качестве наилучшего приближения полиномиальной кривой, которая должна использоваться для перехода из первого целевого состояния 320 во второе целевое состояние 340.
[0216] Предполагается, что набор 514 параметров может содержать, по меньшей мере, четыре параметра. Опционально, набор 514 параметров может содержать, по меньшей мере, один параметр, указывающий общую величину перемещения при рулении. Кроме того, предполагается, что полиномиальная кривая 602 может строиться посредством процессора 110 в качестве полиномиальной функции третьей степени.
[0217] Следует отметить, что полиномиальная кривая 602 представляет возможный вариант профиля руления транспортного средства 220 для попытки перехода из первого целевого состояния 320 во второе целевое состояние 340. Как пояснено выше, возможный вариант профиля руления представляет множество возможных вариантов позиций рулевого колеса для транспортного средства 220 в соответствующие моменты времени между (i) моментом времени, ассоциированным с первым целевым состоянием 320, и (ii) моментом времени, ассоциированным со вторым целевым состоянием 340.
[0218] Кроме того, как упомянуто выше, по меньшей мере, один возможный вариант позиции рулевого колеса из множества возможных вариантов позиций рулевого колеса полиномиальной кривой 602 может представлять собой неразрешенную позицию рулевого колеса, причем неразрешенная позиция рулевого колеса находится за пределами предварительно определенного диапазона 700 позиций рулевого колеса транспортного средства 220.
Этап 1106 - использование полиномиальной кривой для моделирования возможного варианта траектории SDC
[0219] Способ 1100 переходит к этапу 1106 за счет выполнения процессора 110 с возможностью использовать полиномиальную кривую 602 для моделирования возможного варианта 800 траектории (см. фиг. 8) транспортного средства 220, как если транспортным средством 220 управляют с помощью руля в соответствии с множеством возможных вариантов позиций рулевого колеса полиномиальной кривой 602 в соответствующие моменты времени, и таким образом, что вместо неразрешенной позиции рулевого колеса используется ближайшая разрешенная позиция рулевого колеса относительно неразрешенной позиции рулевого колеса (из полиномиальной кривой 602) в предварительно определенном диапазоне позиций рулевого колеса .
[0220] Как упомянуто выше, после того как данный возможный вариант позиции рулевого колеса для данного момента времени (из возможного варианта профиля руления, представленного посредством полиномиальной кривой 602) находится за пределами предварительно определенного диапазона 700 и в силу этого представляет собой неразрешенную позицию рулевого колеса, процесс моделирования или формирование следующего промежуточного целевого состояния может выполняться посредством процессора 110 способом, отличающимся от способа для моментов времени, ассоциированных с возможными вариантами позиций рулевого колеса, которые находятся внутри предварительно определенного диапазона 700.
[0221] Со ссылкой на фиг. 7 и 8, на основе возможного варианта позиции рулевого колеса в +180 для момента t3, процессор 110 может быть выполнен с возможностью формировать четвертое промежуточное моделированное состояние 814, которое указывает состояние транспортного средства 220 в момент t4, как если транспортным средством 220 управляют с помощью руля в соответствии с возможным вариантом позиции рулевого колеса в +180 между моментом t3 и моментом t4 времени, вместо формирования четвертого промежуточного моделированного состояния 814, как если транспортным средством 220 управляют с помощью руля в соответствии с возможным вариантом позиции рулевого колеса в +180 и постепенно изменяется на возможный вариант позиции рулевого колеса в +240 между моментом t3 и моментом t4 времени.
[0222] Следовательно, в некоторых вариантах осуществления настоящей технологии предполагается, что когда возможный вариант профиля руления представляет, по меньшей мере, один возможный вариант позиции рулевого колеса, который представляет собой неразрешенную позицию рулевого колеса (например, за пределами предварительно определенного диапазона 700), процессор 110 может быть выполнен с возможностью формировать промежуточные моделированные состояния, как если транспортным средством 220 управляют с помощью руля в соответствии с множеством возможных вариантов позиций рулевого колеса в соответствующие моменты времени, и таким образом, что вместо неразрешенной позиции рулевого колеса используется ближайшая разрешенная позиция рулевого колеса относительно неразрешенной позиции рулевого колеса в предварительно определенном диапазоне 700 позиций рулевого колеса .
[0223] Следует отметить, что возможный вариант 800 траектории, который моделируется посредством процессора 110 на основе полиномиальной кривой 602, начинается в первом целевом состоянии 320 и завершается в моделированном состоянии 821. В некоторых вариантах осуществления предполагается, что предварительно определенный диапазон 700 позиций рулевого колеса может указывать максимальную амплитуду руления, которое транспортное средство 220 физически выполнено с возможностью выполнять.
Этап 1108 - определение смещения между моделированным состоянием SDC и вторым целевым состоянием SDC
[0224] Способ 1100 переходит к этапу 1108 за счет выполнения процессора 110 с возможностью определять смещение 850 между моделированным состоянием 821 и вторым целевым состоянием 340. Как упомянуто выше, смещение 850 между конечным моделированным состоянием 821 и вторым целевым состоянием 340 может возникать по разным причинам. В одном примере смещение 850 может возникать вследствие неточного совпадения между двумя последовательными целевыми состояниями (первым целевым состоянием 320 и вторым целевым состоянием 340) и парой состояний 508. В другом примере смещение 850 может возникать вследствие ограничения возможных вариантов позиций рулевого колеса (например, ограничения до +180 градусов) между моментом t3 и моментом t5 во время процесса моделирования.
[0225] Независимо от конкретной причины возникновения смещения 850, процессор 110 может быть выполнен с возможностью использовать смещение 850 для того, чтобы определять то, должен или нет возможный вариант профиля руления (например, полиномиальная кривая 602) выбираться в качестве целевого профиля руления для управления рулением транспортным средством 220 между первым целевым состоянием 320 и вторым целевым состоянием 340.
[0226] По меньшей мере в некоторых вариантах осуществления процессор 110 может быть выполнен с возможностью сравнивать смещение 850 с предварительно определенным пороговым значением. Предварительно определенное пороговое значение может определяться любым подходящим способом для данного варианта применения. В некоторых случаях, если смещение 850 между конечным моделированным состоянием 821 и вторым целевым состоянием 340 находится в пределах приемлемого допустимого запаса смещения из второго целевого состояния 340, процессор 110 может выбирать возможный вариант профиля руления (например, полиномиальную кривую 602) в качестве целевого профиля руления для транспортного средства 220 и использовать целевой профиль руления для управления рулением транспортным средством 220.
Этап 1110 - в ответ на смещение, составляющее ниже предварительно определенного порогового значения, выбор возможного варианта профиля руления в качестве целевого профиля руления SDC
[0227] Способ 1100 переходит к этапу 1110 за счет выполнения процессора 110 с возможностью, в ответ на смещение 850, составляющее ниже предварительно определенного порогового значения, выбирать возможный вариант профиля руления (представленный посредством полиномиальной кривой 602) в качестве данного целевого профиля руления транспортного средства 220 для перехода между первым целевым состоянием 320 и вторым целевым состоянием 340.
[0228] Следует отметить, что, если полиномиальная кривая 602 выбирается в качестве целевого профиля руления для транспортного средства 220, процессор 110 может инициировать управление рулением транспортного средства 220 таким образом, что транспортным средством 220 управляют с помощью руля в соответствии с позициями рулевого колеса, которые ограничены значением в +180 между моментами t3 и t4.
[0229] Тем не менее, в других случаях, если может оказываться, что смещение 850 между конечным моделированным состоянием 821 и вторым целевым состоянием 340, находится за пределами приемлемого допустимого запаса смещения, процессор 110 может быть выполнен с возможностью выполнять процедуру регулирования. В ходе процедуры регулирования процессор 110 может быть выполнен с возможностью использовать смещение 850 для регулирования набора 514 параметров, который используется для того, чтобы формировать полиномиальную кривую 602, и в силу этого определять набор отрегулированных параметров для построения отрегулированной полиномиальной кривой.
[0230] То, как процессор 110 выполнен с возможностью использовать смещение 850 для регулирования набора 514 параметров и в силу этого определять набор отрегулированных параметров, описывается в статье, упомянутой выше, причем ее содержимое полностью содержится в данном документе по ссылке. После того, как набор отрегулированных параметров определяется, процессор 110 может быть выполнен с возможностью компоновать отрегулированную полиномиальную кривую на основе набора отрегулированных параметров, аналогично тому, как процессор 110 выполнен с возможностью компоновать полиномиальную кривую 602 на основе набора 514 параметров.
[0231] Аналогично тому, что описывается выше относительно полиномиальной кривой 602, процессор 110 может быть выполнен с возможностью использовать отрегулированную полиномиальную кривую для моделирования второго возможного варианта траектории для транспортного средства 220, как если транспортным средством 220 управляют с помощью руля в соответствии с отрегулированным профилем руления, представленным посредством отрегулированной полиномиальной кривой. Затем, аналогично тому, что описывается выше относительно возможного варианта 800 траектории, процессор 110 может быть выполнен с возможностью определять второе смещение между вторым целевым состоянием 340 и вторым конечным моделированным состоянием второго возможного варианта траектории.
[0232] Если второе смещение составляет ниже предварительно определенного порогового значения, процессор 110 может выбирать отрегулированный возможный вариант профиля руления (например, отрегулированную полиномиальную кривую) в качестве целевого профиля руления и использовать его для того, чтобы управлять рулением транспортным средством 220. Если второе смещение выше предварительно определенного порогового значения, процессор 110 может быть выполнен с возможностью повторять процедуру регулирования для отрегулированного набора параметров, аналогично тому, как процессор 110 выполнен с возможностью выполнять процедуру регулирования для набора 514 параметров. Следовательно, можно сказать, что процессор 110 может быть выполнен с возможностью итеративно повторять процедуру регулирования до тех пор, пока данное смещение не составляет ниже предварительно определенного порогового значения.
Этап 1112 - использование целевого профиля руления SDC для управления рулением SDC, когда SDC находится в первом целевом состоянии
[0233] Способ 1100 переходит к этапу 1112 за счет выполнения процессора 110 с возможностью использовать целевой профиль руления транспортного средства 220 для управления рулением транспортным средством 220, когда транспортное средство 220 находится в первом целевом состоянии 320.
[0234] Например, если возможный вариант профиля руления, представленный посредством полиномиальной кривой 602, выбирается в качестве целевого профиля руления, процессор 110 может быть выполнен с возможностью использовать полиномиальную кривую 602 для того, чтобы управлять рулением транспортным средством 220, когда транспортное средство 220 находится в первом целевом состоянии 320.
[0235] В другом примере, если отрегулированный возможный вариант профиля руления, представленный посредством отрегулированной полиномиальной кривой (построенной в результате процедуры регулирования, упомянутой выше), выбирается в качестве целевого профиля руления, процессор 110 может быть выполнен с возможностью использовать отрегулированную полиномиальную кривую 602 для того, чтобы управлять рулением транспортным средством 220, когда транспортное средство 220 находится в первом целевом состоянии 320.
[0236] В некоторых вариантах осуществления настоящей технологии также предполагается, что процессор 110 может быть выполнен с возможностью использовать (i) первое целевое состояние 320 (например, данные состояния транспортного средства, ассоциированные с первым целевым состоянием 320), (ii) второе целевое состояние (например, данные состояния транспортного средства, ассоциированные со вторым целевым состоянием 340) и (iii) целевой профиль руления транспортного средства 220 (представленный посредством одной из полиномиальной кривой 602 и любой из множества потенциальных отрегулированных полиномиальных кривых) для того, чтобы обучать MLA, как упомянуто выше, с возможностью прогнозировать позицию рулевого колеса в ходе использования для транспортного средства 220 для текущего состояния в ходе использования транспортного средства 220 с учетом того, что траектория в ходе использования транспортного средства 220 должна завершаться во втором целевом состоянии в ходе использования.
[0237] Следует четко понимать, что не все технические эффекты, упомянутые в данном документе, должны использоваться в каждом варианте осуществления настоящей технологии.
[0238] Модификации и улучшения вышеописанных реализаций настоящей технологии могут становиться очевидными для специалистов в данной области техники. Вышеприведенное описание должно быть примерным, а не ограничивающим. В силу этого объем настоящей технологии ограничивается исключительно посредством объема прилагаемой формулы изобретения.