RU2842879C2 - Method and server for updating map view - Google Patents
Method and server for updating map view Download PDFInfo
- Publication number
- RU2842879C2 RU2842879C2 RU2021139428A RU2021139428A RU2842879C2 RU 2842879 C2 RU2842879 C2 RU 2842879C2 RU 2021139428 A RU2021139428 A RU 2021139428A RU 2021139428 A RU2021139428 A RU 2021139428A RU 2842879 C2 RU2842879 C2 RU 2842879C2
- Authority
- RU
- Russia
- Prior art keywords
- unmanned vehicle
- server
- point cloud
- probable
- map
- Prior art date
Links
Abstract
Description
Область техники, к которой относится изобретениеField of technology to which the invention relates
[001] Настоящая технология относится к лидарным системам в целом и, в частности, к способам и серверам для обновления представления карты.[001] The present technology relates to lidar systems in general and, in particular, to methods and servers for updating a map representation.
Уровень техникиState of the art
[002] В известных решениях предложены и реализованы компьютерные навигационные системы для оказания помощи в навигации и/или в управлении транспортными средствами. К ним относится целый ряд систем - от простых решений, основанных на определении местоположения по карте и использующих компьютерную систему для оказания помощи водителю в навигации на маршруте от пункта отправления до пункта назначения, до более сложных решений, таких как компьютеризированные и/или автономные системы вождения.[002] In known solutions, computer navigation systems are proposed and implemented to assist in navigation and/or in driving vehicles. These include a whole range of systems - from simple solutions based on determining the location on a map and using a computer system to assist the driver in navigating along a route from the point of departure to the point of destination, to more complex solutions, such as computerized and/or autonomous driving systems.
[003] Некоторые из таких систем реализованы в виде широко известной системы круиз-контроля. В системах этого типа компьютерная система, установленная на транспортном средстве, поддерживает заданную пользователем скорость транспортного средства. Некоторые системы круиз-контроля реализуют систему интеллектуального контроля дистанции, в которой пользователь может задавать расстояние до движущегося впереди автомобиля (например, выбирать значение, выраженное в количестве транспортных средств), а компьютерная система регулирует скорость транспортного средства, по меньшей мере частично, при его приближении к движущемуся впереди транспортному средству на заданное расстояние. Некоторые из систем круиз-контроля дополнительно оснащены системой предотвращения столкновений, которая при обнаружении транспортного средства (или других препятствий) перед движущимся транспортным средством замедляет или останавливает его.[003] Some of these systems are implemented in the form of the well-known cruise control system. In systems of this type, a computer system installed in the vehicle maintains the vehicle speed set by the user. Some cruise control systems implement an intelligent distance control system, in which the user can set the distance to the vehicle moving in front (for example, select a value expressed in the number of vehicles), and the computer system regulates the speed of the vehicle, at least in part, when it approaches the vehicle moving in front by a set distance. Some of the cruise control systems are additionally equipped with a collision avoidance system, which, upon detection of a vehicle (or other obstacles) in front of the moving vehicle, slows down or stops it.
[004] Некоторые из наиболее передовых систем обеспечивают полностью автономное движение транспортного средства без непосредственного участия оператора (т.е. водителя) в управлении. Такие автономные транспортные средства содержат системы, способные ускорять, замедлять, останавливать, перестраивать в другой ряд и самостоятельно парковать транспортное средство.[004] Some of the most advanced systems provide fully autonomous vehicle operation without direct operator (i.e. driver) involvement in the control. Such autonomous vehicles contain systems capable of accelerating, decelerating, stopping, changing lanes, and parking the vehicle independently.
[005] Одной из основных технических проблем при реализации вышеуказанных систем является обеспечение способности обнаруживать объекты вокруг транспортного средства. В частности, в таких системах может возникать необходимость в обнаружении перед транспортным средством с установленной системой другого транспортного средства, которое представляет опасность для данного транспортного средства и может потребовать принятия системой упреждающих мер, таких как торможение или иное изменение скорости, остановка или перестроение в другой ряд. Кроме того, в таких системах может возникать необходимость в обнаружении пешеходов или животных, переходящих дорогу перед транспортным средством или двигающихся иным образом в окружающем пространстве транспортного средства.[005] One of the main technical problems in implementing the above systems is to ensure the ability to detect objects around the vehicle. In particular, in such systems there may be a need to detect another vehicle in front of the vehicle with the installed system that poses a danger to the vehicle and may require the system to take preventive measures, such as braking or otherwise changing speed, stopping or changing lanes. In addition, in such systems there may be a need to detect pedestrians or animals crossing the road in front of the vehicle or otherwise moving in the vehicle's surrounding space.
[006] Обнаружение объектов с использованием лидара, как правило, предполагает испускание световых лучей в интересующую область и обнаружение отраженных световых лучей, в частности, от объектов в этой области, для формирования представления интересующей области, содержащей какие-либо объекты. В качестве источника излучения (света) часто используются лазеры, излучающие импульсы света в узком диапазоне длин волн. Положение объекта и расстояние до него могут быть определены, среди прочего, путем расчета времени пролета излученного и обнаруженного световых лучей. Вычисляя такие положения как «точки данных», можно сформировать многомерное цифровое представление окружающего пространства.[006] Detecting objects using lidar typically involves emitting light beams into an area of interest and detecting reflected light beams, particularly from objects in the area, to form a representation of the area of interest containing any objects. Lasers, which emit pulses of light in a narrow range of wavelengths, are often used as the radiation (light) source. The position of and distance to an object can be determined, among other things, by calculating the time of flight of the emitted and detected light beams. By calculating such positions as "data points", a multi-dimensional digital representation of the surrounding space can be formed.
[007] Такое трехмерное представление частично создается за счет отраженных лучей, принимаемых лидаром, который формирует точки данных, представляющие объекты окружающего пространства. Эти точки образуют облака, характеризующие окружающее пространство и формирующие трехмерную карту. Каждая точка в таком облаке точек связана с координатами в пространстве координат. Кроме того, каждая точка может быть связана с некоторой дополнительной информацией, например, с расстоянием от самоуправляемого транспортного средства до объекта. С точками в облаке точек может быть связана и другая информация.[007] This three-dimensional representation is created in part by the reflected rays received by the lidar, which forms data points representing objects in the surrounding space. These points form clouds that characterize the surrounding space and form a three-dimensional map. Each point in such a point cloud is associated with coordinates in the coordinate space. In addition, each point may be associated with some additional information, such as the distance from the self-driving vehicle to the object. Other information may also be associated with the points in the point cloud.
[008] Облака точек, полученные беспилотным автомобилем (SDC, Self-Driving Car), могут использоваться не только для обнаружения объектов в окружающем пространстве, но и для определения текущего местоположения беспилотного автомобиля. Такой процесс называется локализацией. Один из способов локализации основан на комбинировании имеющегося облака точек, полученного лидаром, и карты. Такая локализация может быть неудовлетворительной, особенно если карта неактуальна.[008] Point clouds obtained by a self-driving car (SDC) can be used not only to detect objects in the surrounding space, but also to determine the current location of the self-driving car. This process is called localization. One method of localization is based on combining the existing point cloud obtained by lidar and a map. Such localization may be unsatisfactory, especially if the map is not up-to-date.
[009] В патентной публикации US2019204092 раскрыто транспортное средство, осуществляющее локализацию для определения своего текущего местоположения во время движения с использованием различных методов локализации.[009] Patent publication US2019204092 discloses a vehicle that performs localization to determine its current location while driving using various localization methods.
Раскрытие изобретенияDisclosure of invention
[010] Таким образом, существует потребность в системах и способах, позволяющих исключить, уменьшить или преодолеть недостатки известных технических решений.[010] Thus, there is a need for systems and methods that can eliminate, reduce or overcome the shortcomings of known technical solutions.
[011] Лазерные системы обнаружения и измерения дальности, т.е. лидарные (LIDAR, Light Detection and Ranging) системы, широко применяются в беспилотных транспортных средствах для обнаружения объектов и для навигации в окружающем пространстве. Они накапливают точки, соответствующие световым лучам, отраженным от объектов в окружающем пространстве, и формируют из них облако точек, которое служит трехмерным представлением карты окружающего пространства.[011] Laser detection and ranging systems, i.e., LIDAR (Light Detection and Ranging) systems, are widely used in unmanned vehicles to detect objects and navigate in the surrounding space. They accumulate points corresponding to light rays reflected from objects in the surrounding space and form a point cloud from them, which serves as a three-dimensional representation of a map of the surrounding space.
[012] В процессе навигации облака точек, полученные лидарной системой, наряду с представлением карты географического региона, в котором действует беспилотный автомобиль, могут использоваться для определения текущего местоположения беспилотного автомобиля. Соответственно, такие представления карты могут использоваться в беспилотных автомобилях для безопасной навигации к местам назначения без участия человека или с ограниченным участием человека.[012] During navigation, point clouds obtained by the lidar system, along with a map representation of the geographic region in which the self-driving car operates, can be used to determine the current location of the self-driving car. Accordingly, such map representations can be used in self-driving cars to safely navigate to destinations without human intervention or with limited human intervention.
[013] В некоторых вариантах осуществления представлением карты может являться карта высокого разрешения (HD, High Definition). В общем случае термин «карта высокого разрешения» относится к представлению карты, данные которого характеризуются очень низкой погрешностью, как правило, 5-10 см. Например, карты высокого разрешения могут содержать пространственную геометрическую информацию о дорогах, по которым может передвигаться беспилотный автомобиль. Таким образом, созданные карты высокого разрешения включают в себя информацию, необходимую для обеспечения безопасной навигации беспилотного автомобиля без вмешательства человека. В других вариантах осуществления предполагается, что представление карты может быть построено на основе данных лидара, полученных в географическом регионе, которые были объединены в один массив, представляющий этот географический регион. Карта высокого разрешения может быть представлена в виде облака точек, воксельного массива и/или объектно-ориентированной структуры.[013] In some embodiments, the map representation may be a high definition (HD) map. In general, the term "high definition map" refers to a map representation whose data is characterized by a very low error, typically 5-10 cm. For example, high resolution maps may contain spatial geometric information about roads along which an unmanned vehicle may travel. Thus, the created high resolution maps include information necessary to ensure safe navigation of an unmanned vehicle without human intervention. In other embodiments, it is assumed that the map representation may be constructed based on lidar data obtained in a geographic region, which were combined into a single array representing this geographic region. The high resolution map may be represented as a point cloud, a voxel array and/or an object-oriented structure.
[014] Как упоминалось выше, для навигации беспилотному автомобилю требуется осуществлять локализацию, то есть определять свое текущее местоположение с высокой точностью. Для определения текущего местоположения беспилотного автомобиля может применяться целый ряд методов локализации.[014] As mentioned above, in order to navigate, a self-driving car needs to perform localization, that is, determine its current location with high accuracy. A number of localization methods can be used to determine the current location of a self-driving car.
[015] В некоторых вариантах осуществления метод локализации может быть основан на одометрии, которая представляет собой процесс оценки относительного перемещения транспортного средства с использованием данных, последовательно получаемых датчиками транспортного средства. Одометрия может использоваться в алгоритме локализации при определении положения транспортного средства с целью осуществления локального поиска алгоритмом локализации. Кроме того, одометрия может использоваться в алгоритме локализации для оценки скорости и ускорения автомобиля путем экстраполяции положения транспортного средства в периоды между моментами снятия показаний датчиков, предназначенных для локализации. Например, в случае отказа каких-либо источников данных локализации беспилотный автомобиль может прибегать к одометрии для оценки своего перемещения относительно известного предыдущего положения по сигналам инерциального измерительного блока (IMU, Inertial Measurement Unit) или по сигналам управления транспортным средством. Другим методом локализации является лидарная локализация. Источники данных локализации на основе лидарной локализации предполагают различные варианты локализации по наземным или неназемным объектам, в которых осуществляются раздельная обработка и сравнительный анализ признаков наземных и неназемных объектов, лидарную локализацию, в которой осуществляются обработка и сравнительный анализ всех точек вместо точек с высокой интенсивностью сигнала, лидарную локализацию, в которой производится сопоставление цветов, лидарную локализацию, в которой разделяются искусственный ландшафт (твердые поверхности, например, поверхности зданий) и естественный ландшафт (растительность) и т.д. Еще одним методом локализации является локализация на основе признаков, в которой производится выделение признаков с использованием данных с датчиков, таких как изображения с камеры, а лидар сканирует эти признаки и сравнивает их с признаками на карте высокого разрешения, чтобы определять местоположение транспортного средства. В еще одном методе локализации для определения местоположения транспортного средства используется визуальная одометрия. В различных вариантах визуальной одометрии местоположение транспортного средства определяется путем сравнения различных признаков, выделенных на изображениях камеры, с признаками на карте, в частности, с рельефом поверхности, характерными признаками изображений, контурами и т.д. В еще одном методе локализации для определения местоположения транспортного средства используется лидарная одометрия. В различных вариантах лидарной одометрии применяется итеративный алгоритм ближайших точек (ICP, Iterative Closest Point) с попарным сравнением или итеративный алгоритм ближайших точек с многократным сканированием. Различные варианты указанных выше методов реализуются путем замены тех или иных параметров, таких как предельные количества итераций, радиус поиска, весовые коэффициенты и т.д. К другим методам локализации относятся локализация на основе глобальной навигационной спутниковой системы (GNSS, Global Navigation Satellite System) и одометрия на основе инерциального измерительного блока. В различных вариантах этих методов применяются разнообразные способы интегрирования и методы коррекции.[015] In some embodiments, the localization method may be based on odometry, which is the process of estimating the relative movement of a vehicle using data sequentially obtained by the vehicle's sensors. Odometry may be used in the localization algorithm to determine the position of the vehicle for the purpose of performing a local search by the localization algorithm. In addition, odometry may be used in the localization algorithm to estimate the speed and acceleration of the vehicle by extrapolating the position of the vehicle between the times of taking readings from the sensors intended for localization. For example, in the event of a failure of any localization data sources, the unmanned vehicle may resort to odometry to estimate its movement relative to a known previous position from signals from an inertial measurement unit (IMU) or from vehicle control signals. Another localization method is lidar localization. Localization data sources based on lidar localization include various localization options based on terrestrial or non-terrestrial objects, in which the features of terrestrial and non-terrestrial objects are processed and compared separately, lidar localization in which all points are processed and compared instead of points with high signal intensity, lidar localization in which color matching is performed, lidar localization in which artificial terrain (hard surfaces, such as building surfaces) and natural terrain (vegetation) are distinguished, etc. Another localization method is feature-based localization in which features are extracted using sensor data such as camera images, and the lidar scans these features and compares them with features on a high-resolution map to determine the location of the vehicle. Another localization method uses visual odometry to determine the location of the vehicle. In various versions of visual odometry, the vehicle location is determined by comparing various features identified in camera images with features on a map, such as surface relief, image features, contours, etc. Another localization method uses lidar odometry to determine the vehicle location. In various versions of lidar odometry, the iterative closest point (ICP) algorithm with pairwise comparison or the iterative closest point algorithm with multiple scans is used. Various versions of the above methods are implemented by replacing certain parameters, such as iteration limits, search radius, weighting factors, etc. Other localization methods include GNSS-based localization and inertial measurement unit-based odometry. Various versions of these methods use a variety of integration methods and correction techniques.
[016] Эффективность метода локализации может зависеть от различных факторов, например, от текущей окружающей обстановки, в которой находится автономное транспортное средство, включая геометрические характеристики структур вокруг автономного транспортного средства, идентифицируемые фотометрические признаки и т.д. Следует отметить, что эффективность методов локализации, в которых используются представления карты, снижается, когда представление карты становится неактуальным.[016] The effectiveness of the localization method may depend on various factors, such as the current environment in which the autonomous vehicle is located, including the geometric characteristics of the structures around the autonomous vehicle, identifiable photometric features, etc. It should be noted that the effectiveness of localization methods that use map representations decreases when the map representation becomes irrelevant.
[017] В некоторых вариантах осуществления настоящей технологии разработаны способы и устройства для определения частей представления карты, нуждающихся в обновлении. В других вариантах осуществления разработаны способы и устройства, в которых для определения сходимости вероятных местоположений в заданной части представления карты могут применяться одна или несколько метрик. В дополнительных вариантах осуществления разработаны способы и устройства, которые позволяют оценивать достоверность результатов работы алгоритма локализации во время действий беспилотного автомобиля с тем, чтобы результаты работы алгоритма локализации исключались из массива данных, поступающих от различных источников данных локализации для управления беспилотным автомобилем, в тех случаях, когда алгоритм локализации признается неэффективным (например, формирующим расходящиеся вероятные местоположения) в рассматриваемой части представления карты.[017] In some embodiments of the present technology, methods and devices are developed for determining portions of a map representation that need to be updated. In other embodiments, methods and devices are developed in which one or more metrics can be used to determine the convergence of probable locations in a given portion of a map representation. In additional embodiments, methods and devices are developed that allow evaluating the reliability of the results of the localization algorithm during the actions of the unmanned vehicle so that the results of the localization algorithm are excluded from the array of data coming from various sources of localization data for controlling the unmanned vehicle, in cases where the localization algorithm is recognized as ineffective (e.g., generating divergent probable locations) in the considered portion of the map representation.
[018] Можно утверждать, что в некоторых вариантах осуществления используются первое представление карты и второе представление карты. Второе представление карты может строиться по облакам точек для первой траектории. Для второй траектории локализация может оказываться неудовлетворительной при использовании первого представления карты и удовлетворительной при использовании второго представления карты. В некоторых вариантах осуществления первая траектория может использоваться в процессе предварительного выявления устаревших частей карты. В других вариантах осуществления, когда устанавливается, что та или иная часть карты является устаревшей, вторая траектория может использоваться для подтверждения необходимости обновления, а первая траектория - при фактическом обновлении.[018] It may be stated that in some embodiments, a first map representation and a second map representation are used. The second map representation may be constructed from point clouds for the first trajectory. For the second trajectory, localization may be unsatisfactory when using the first map representation and satisfactory when using the second map representation. In some embodiments, the first trajectory may be used in the process of preliminary detection of outdated portions of the map. In other embodiments, when it is determined that a particular portion of the map is outdated, the second trajectory may be used to confirm the need for updating, and the first trajectory - in the actual updating.
[019] В соответствии с первым широким аспектом настоящей технологии реализован способ обновления представления карты географического региона. Представление карты создавалось на основе данных облака точек, собранных лидарной системой беспилотного автомобиля, действовавшего в этом географическом регионе. Способ реализуется на сервере. Способ предусматривает для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, формирование сервером с помощью алгоритма локализации множества вероятных местоположений с использованием набора облаков точек и представления карты. Набор облаков точек связан с заданным местом. Заданное место находится в рассматриваемой части представления карты. Способ предусматривает для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, определение сервером с помощью метрики сходимости параметра для оценки качества локализации, обеспечиваемого алгоритмом локализации при нахождении беспилотного автомобиля в рассматриваемой части представления карты. Это параметр характеризует сходимость вероятных местоположений из множества вероятных местоположений. Способ предусматривает для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, признание сервером рассматриваемой части представления карты устаревшей частью представления карты на основе этого параметра. Такое признание происходит, когда значение параметра превышает заданный пороговый радиус. Способ предусматривает обновление сервером устаревшей части представления карты с использованием данных облака точек, собранных лидарной системой.[019] According to a first broad aspect of the present technology, a method for updating a map representation of a geographic region is implemented. The map representation was created based on point cloud data collected by a lidar system of an unmanned vehicle operating in this geographic region. The method is implemented on a server. The method provides for a time stamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was in a given place of the geographic region, the server, using a localization algorithm, forming a plurality of probable locations using a set of point clouds and a map representation. The set of point clouds is associated with a given place. The given place is in the considered part of the map representation. The method provides for a time stamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was in a given place of the geographic region, the server, using a convergence metric, determining a parameter for assessing the quality of localization provided by the localization algorithm when the unmanned vehicle is in the considered part of the map representation. This parameter characterizes the convergence of probable locations from a plurality of probable locations. The method provides for the time stamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was in a given location of the geographic region, recognition by the server of the considered part of the map representation as an outdated part of the map representation based on this parameter. Such recognition occurs when the value of the parameter exceeds a specified threshold radius. The method provides for updating by the server of the outdated part of the map representation using point cloud data collected by the lidar system.
[020] В некоторых вариантах осуществления параметр характеризует сходимость первого вероятного местоположения и второго вероятного местоположения в пределах заданного порогового значения.[020] In some embodiments, the parameter characterizes the convergence of the first probable location and the second probable location within a specified threshold.
[021] В некоторых вариантах осуществления способа первое вероятное местоположение представляет собой первое вероятное положение беспилотного автомобиля, причем заданным пороговым значением является заданный радиус, а рассматриваемая часть представления карты признается устаревшей частью представления карты, если первое вероятное положение и второе вероятное положение не попадают в окружность заданного радиуса.[021] In some embodiments of the method, the first probable location is a first probable position of the unmanned vehicle, wherein the specified threshold value is a specified radius, and the portion of the map representation under consideration is recognized as an outdated portion of the map representation if the first probable position and the second probable position do not fall within a circle of the specified radius.
[022] В некоторых вариантах осуществления способа первое вероятное местоположение дополнительно включает в себя первую вероятную ориентацию беспилотного автомобиля, причем заданным пороговым значением дополнительно является заданный угол, а рассматриваемая часть представления карты признается устаревшей частью представления карты, если первое вероятное положение и второе вероятное положение не попадают в окружность заданного радиуса и/или если первая вероятная ориентация и вторая вероятная ориентация не попадают в сектор заданного угла.[022] In some embodiments of the method, the first probable location further includes a first probable orientation of the unmanned vehicle, wherein the specified threshold value is further a specified angle, and the considered portion of the map representation is recognized as an outdated portion of the map representation if the first probable position and the second probable position do not fall within a circle of a specified radius and/or if the first probable orientation and the second probable orientation do not fall within a sector of a specified angle.
[023] В соответствии со вторым широким аспектом настоящей технологии реализован способ обновления представления карты географического региона. Представление карты создавалось на основе данных облака точек, собранных лидарной системой беспилотного автомобиля, действовавшего в этом географическом регионе. Способ реализуется на сервере. Способ предусматривает определение сервером предыдущей траектории беспилотного автомобиля в географическом регионе. Предыдущая траектория связана со множеством облаков точек из данных журнала беспилотного автомобиля. Множество облаков точек было получено лидарной системой во время движения беспилотного автомобиля по этой траектории в географическом регионе. Способ предусматривает для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, определение сервером первого облака точек из множества облаков точек, которые были получены лидарной системой в момент, соответствующий этой метке времени. Способ предусматривает для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, расположенном в рассматриваемой части представления карты, формирование сервером с помощью алгоритма локализации первого вероятного местоположения на основе первого облака точек и представления карты. Способ предусматривает для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, определение сервером второго облака точек, связанного с заданным местом. Способ предусматривает для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, формирование сервером с помощью алгоритма локализации второго вероятного местоположения на основе второго облака точек и представления карты. Способ предусматривает для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, определение сервером с помощью метрики сходимости параметра для оценки качества локализации, обеспечиваемого алгоритмом локализации в рассматриваемой части представления карты. Этот параметр характеризует сходимость первого вероятного местоположения и второго вероятного местоположения. Способ предусматривает для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, признание сервером рассматриваемой части представления карты устаревшей частью представления карты на основе этого параметра. Способ предусматривает обновление сервером устаревшей части представления карты с использованием данных облака точек, собранных лидарной системой.[023] According to a second broad aspect of the present technology, a method for updating a representation of a map of a geographic region is implemented. The representation of the map was created based on point cloud data collected by a lidar system of an unmanned vehicle operating in this geographic region. The method is implemented on a server. The method involves determining, by the server, a previous trajectory of the unmanned vehicle in the geographic region. The previous trajectory is associated with a plurality of point clouds from the log data of the unmanned vehicle. The plurality of point clouds were obtained by the lidar system during the movement of the unmanned vehicle along this trajectory in the geographic region. The method involves, for a time stamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was at a given location in the geographic region, determining by the server a first point cloud from a plurality of point clouds that were obtained by the lidar system at a time corresponding to this time stamp. The method provides for a timestamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was in a given location of the geographic region located in the considered part of the map representation, the formation by the server using a localization algorithm of the first probable location based on the first point cloud and the map representation. The method provides for a timestamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was in a given location of the geographic region, the determination by the server of a second point cloud associated with the given location. The method provides for a timestamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was in a given location of the geographic region, the formation by the server using a localization algorithm of a second probable location based on the second point cloud and the map representation. The method provides for a timestamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was in a given location of the geographic region, the determination by the server using a convergence metric of a parameter for assessing the quality of localization provided by the localization algorithm in the considered part of the map representation. This parameter characterizes the convergence of the first probable location and the second probable location. The method provides for the time stamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was in a given location of the geographic region, recognition by the server of the considered part of the map representation as an outdated part of the map representation based on this parameter. The method provides for updating by the server the outdated part of the map representation using the point cloud data collected by the lidar system.
[024] В некоторых вариантах осуществления способа определение второго облака точек включает в себя формирование сервером на основе первого облака точек имитационного облака точек, являющегося ухудшенным вариантом первого облака точек.[024] In some embodiments of the method, determining the second point cloud includes generating by the server, based on the first point cloud, a simulated point cloud that is a degraded version of the first point cloud.
[025] В некоторых вариантах осуществления способа ухудшенный вариант первого облака точек представляет собой первое облако точек без некоторого подмножества точек.[025] In some embodiments of the method, the degraded version of the first point cloud is the first point cloud without some subset of the points.
[026] В некоторых вариантах осуществления способа формирование имитационного облака точек включает в себя применение сервером фильтра, отражающего воздействие условий окружающей среды на первое облако точек.[026] In some embodiments of the method, generating the simulated point cloud includes the server applying a filter that reflects the effect of environmental conditions on the first point cloud.
[027] В некоторых вариантах осуществления способа условия окружающей среды представляют собой дождь, снег и/или грязь, препятствующие работе лидарной системы.[027] In some embodiments of the method, the environmental conditions are rain, snow, and/or dirt that interfere with the operation of the lidar system.
[028] В некоторых вариантах осуществления способа определение второго облака точек включает в себя определение сервером второго облака точек по данным журнала второго беспилотного автомобиля, действовавшего в географическом регионе и оснащенного второй лидарной системой, причем второе облако точек было получено второй лидарной системой, когда второй беспилотный автомобиль находился в заданном месте.[028] In some embodiments of the method, determining the second point cloud includes determining by the server the second point cloud based on log data of a second unmanned vehicle operating in the geographic region and equipped with a second lidar system, wherein the second point cloud was obtained by the second lidar system when the second unmanned vehicle was in a given location.
[029] В некоторых вариантах осуществления способа сервер выполнен с возможностью выполнять алгоритм машинного обучения (MLA, Machine Learning Algorithm). Способ дополнительно предусматривает формирование сервером обучающего набора, содержащего исходные данные для обучения, которые включают в себя представление карты, первое вероятное местоположение и первое облако точек, и обучающую метку, основанную на параметре. Способ дополнительно предусматривает обучение севером алгоритма машинного обучения для формирования второго параметра с использованием обучающего набора. Второй параметр указывает на способность алгоритма локализации формировать сходящиеся вероятные местоположения для беспилотного автомобиля в рассматриваемой части представления карты.[029] In some embodiments of the method, the server is configured to execute a Machine Learning Algorithm (MLA). The method further comprises the server generating a training set containing initial data for training, which includes a map representation, a first probable location and a first point cloud, and a training label based on the parameter. The method further comprises the server training a machine learning algorithm for generating a second parameter using the training set. The second parameter indicates the ability of the localization algorithm to generate converging probable locations for the unmanned vehicle in the considered part of the map representation.
[030] В некоторых вариантах осуществления способа считается, что вероятные местоположения сходятся, если алгоритм локализации формирует вероятные местоположения, сходящиеся в пределах заданного порогового значения.[030] In some embodiments of the method, the probable locations are considered to converge if the localization algorithm generates probable locations that converge within a specified threshold.
[031] В некоторых вариантах осуществления способа сервер выполнен с возможностью выполнять алгоритм машинного обучения. Способ дополнительно предусматривает формирование сервером обучающего набора, содержащего исходные данные для обучения, которые включают в себя представление карты, второе вероятное местоположение, второе облако точек и обучающую метку, основанную на параметре. Способ дополнительно предусматривает обучение севером алгоритма машинного обучения для формирования второго параметра с использованием обучающего набора. Второй параметр указывает на способность алгоритма локализации формировать сходящиеся вероятные местоположения для беспилотного автомобиля в рассматриваемой части представления карты.[031] In some embodiments of the method, the server is configured to execute a machine learning algorithm. The method further comprises generating by the server a training set containing initial data for training, which includes a map representation, a second probable location, a second point cloud, and a training label based on the parameter. The method further comprises training by the server a machine learning algorithm for generating a second parameter using the training set. The second parameter indicates the ability of the localization algorithm to generate converging probable locations for the unmanned vehicle in the considered part of the map representation.
[032] В некоторых вариантах осуществления способ дополнительно предусматривает для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, определение сервером с помощью второй метрики сходимости второго параметра для оценки качества локализации, обеспечиваемого алгоритмом локализации в рассматриваемой части представления карты. Второй параметр служит признаком склонности алгоритма локализации формировать расходящиеся вероятные местоположения для беспилотного автомобиля в рассматриваемой части представления карты. Способ дополнительно предусматривает для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, признание сервером рассматриваемой части представления карты устаревшей частью представления карты с использованием параметра и/или второго параметра.[032] In some embodiments, the method further comprises, for a timestamp on a previous trajectory of the unmanned vehicle, when the unmanned vehicle was at a given location of the geographic region, determining by the server, using a second convergence metric, a second parameter for assessing the quality of localization provided by the localization algorithm in the considered portion of the map representation. The second parameter serves as an indication of the tendency of the localization algorithm to generate divergent probable locations for the unmanned vehicle in the considered portion of the map representation. The method further comprises, for a timestamp on a previous trajectory of the unmanned vehicle, when the unmanned vehicle was at a given location of the geographic region, recognizing by the server the considered portion of the map representation as an outdated portion of the map representation using the parameter and/or the second parameter.
[033] В соответствии с третьим аспектом настоящей технологии реализован способ управления действиями беспилотного автомобиля. Беспилотный автомобиль связан с лазерной системой обнаружения и измерения дальности (лидарной системой) и электронным устройством, содержащим процессор. Процессор выполнен с возможностью сбора данных от множества источников данных локализации для определения местоположения беспилотного автомобиля на представлении карты географического региона. Способ реализуется процессором. Способ предусматривает в моменты действий беспилотного автомобиля, соответствующие меткам времени, когда беспилотный автомобиль находится в текущем месте географического региона, формирование процессором с помощью алгоритма локализации вероятного местоположения беспилотного автомобиля на основе облака точек, полученного лидарной системой, представления карты и начального приближения текущего местоположения беспилотного автомобиля на представлении карты. Способ предусматривает в моменты действий беспилотного автомобиля, соответствующие меткам времени, когда беспилотный автомобиль находится в текущем месте географического региона, формирование процессором с помощью алгоритма машинного обучения параметра, указывающего на способность алгоритма локализации формировать сходящиеся вероятные местоположения беспилотного автомобиля в рассматриваемой части представления карты, включающей в себя текущее местоположение, при разнообразных условиях. Способ предусматривает в моменты действий беспилотного автомобиля, соответствующие меткам времени, когда беспилотный автомобиль находится в текущем месте географического региона, определение процессором на основе параметра того, является ли алгоритм локализации ненадежным источником данных локализации в рассматриваемой части представления карты. Способ предусматривает в моменты действий беспилотного автомобиля, соответствующие меткам времени, когда беспилотный автомобиль находится в текущем месте географического региона, определение сервером местоположения беспилотного автомобиля на основе данных из множества источников, с использованием данных, собранных от сокращенного множества источников данных локализации, которое представляет собой множество источников данных локализации за исключением алгоритма локализации. Способ предусматривает в моменты действий беспилотного автомобиля, соответствующие меткам времени, когда беспилотный автомобиль находится в текущем месте географического региона, управление процессором действиями беспилотного автомобиля, при котором в качестве текущего местоположения беспилотного автомобиля используется местоположение, определенное на основе данных из множества источников.[033] According to a third aspect of the present technology, a method for controlling the actions of an unmanned vehicle is implemented. The unmanned vehicle is connected to a laser detection and ranging system (lidar system) and an electronic device containing a processor. The processor is configured to collect data from a plurality of localization data sources to determine the location of the unmanned vehicle on a map representation of a geographic region. The method is implemented by the processor. The method provides for, at the moments of the actions of the unmanned vehicle corresponding to the time marks when the unmanned vehicle is in the current location of the geographic region, the formation by the processor, using a localization algorithm, of a probable location of the unmanned vehicle based on a point cloud obtained by the lidar system, a map representation and an initial approximation of the current location of the unmanned vehicle on the map representation. The method involves, at the moments of the unmanned vehicle actions corresponding to the time marks, when the unmanned vehicle is in the current location of the geographic region, the formation by the processor using the machine learning algorithm of a parameter indicating the ability of the localization algorithm to form converging probable locations of the unmanned vehicle in the considered part of the map representation, including the current location, under various conditions. The method involves, at the moments of the unmanned vehicle actions corresponding to the time marks, when the unmanned vehicle is in the current location of the geographic region, the processor determining, based on the parameter, whether the localization algorithm is an unreliable source of localization data in the considered part of the map representation. The method involves, at the moments of the unmanned vehicle actions corresponding to the time marks, when the unmanned vehicle is in the current location of the geographic region, the determination by the server of the location of the unmanned vehicle based on data from a plurality of sources, using data collected from a reduced plurality of localization data sources, which is a plurality of localization data sources excluding the localization algorithm. The method provides for, at the moments of the actions of the unmanned vehicle corresponding to the time marks, when the unmanned vehicle is in the current location of the geographic region, control by the processor of the actions of the unmanned vehicle, in which the current location of the unmanned vehicle is a location determined on the basis of data from a plurality of sources.
[034] В соответствии с четвертым аспектом настоящей технологии реализован сервер для обновления представления карты географического региона. Представление карты создавалось на основе данных облака точек, собранных лидарной системой беспилотного автомобиля, действовавшего в этом географическом регионе. Сервер способен определять предыдущую траекторию беспилотного автомобиля в географическом регионе, связанную со множеством облаков точек из данных журнала беспилотного автомобиля, которое было получено лидарной системой во время движения беспилотного автомобиля по этой траектории в географическом регионе. Сервер способен для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, определять первое облако точек из множества облаков точек, которые были получены лидарной системой в момент, соответствующий этой метке времени. Сервер способен для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, расположенном в рассматриваемой части представления карты, формировать с помощью алгоритма локализации первое вероятное местоположение с использованием первого облака точек и представления карты. Сервер способен для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, определять второе облако точек, связанное с заданным местом. Сервер способен для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, формировать с помощью алгоритма локализации второе вероятное местоположение на основе второго облака точек и представления карты. Сервер способен для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, определять с помощью метрики сходимости параметр для оценки качества локализации, обеспечиваемого алгоритмом локализации в рассматриваемой части представления карты, который характеризует сходимость первого вероятного местоположения и второго вероятного местоположения. Сервер способен для метки времени на предыдущей траектории беспилотного автомобиля, когда беспилотный автомобиль находился в заданном месте географического региона, признавать рассматриваемую часть представления карты устаревшей частью представления карты на основе этого параметра. Сервер способен обновлять устаревшую часть представления карты с использованием данных облака точек, собранных лидарной системой.[034] According to a fourth aspect of the present technology, a server is implemented for updating a map representation of a geographic region. The map representation was created based on point cloud data collected by a lidar system of an unmanned vehicle operating in this geographic region. The server is capable of determining a previous trajectory of the unmanned vehicle in the geographic region associated with a plurality of point clouds from the log data of the unmanned vehicle, which was obtained by the lidar system during the movement of the unmanned vehicle along this trajectory in the geographic region. The server is capable, for a time stamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was at a given location of the geographic region, of determining a first point cloud from a plurality of point clouds that were obtained by the lidar system at a moment corresponding to this time stamp. The server is capable, for a time stamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was at a given location of the geographic region located in the considered part of the map representation, of generating, using a localization algorithm, a first probable location using the first point cloud and the map representation. The server is capable of determining a second point cloud associated with the specified location for a timestamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was in a given location of the geographic region. The server is capable of forming a second probable location based on the second point cloud and the map representation for a timestamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was in a given location of the geographic region, using a localization algorithm. The server is capable of determining, for a timestamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was in a given location of the geographic region, using a convergence metric, a parameter for assessing the quality of localization provided by the localization algorithm in the considered part of the map representation, which characterizes the convergence of the first probable location and the second probable location. The server is capable of recognizing the considered part of the map representation as an outdated part of the map representation based on this parameter for a timestamp on the previous trajectory of the unmanned vehicle, when the unmanned vehicle was in a given location of the geographic region. The server is able to update the outdated portion of the map view using point cloud data collected by the lidar system.
[035] В некоторых вариантах осуществления сервера его способность определять второе облако точек включает в себя способность формировать с использованием первого облака точек имитационное облако точек, являющееся ухудшенным вариантом первого облака точек.[035] In some embodiments of the server, its ability to determine a second point cloud includes the ability to generate, using the first point cloud, a simulated point cloud that is a degraded version of the first point cloud.
[036] В некоторых вариантах осуществления сервера ухудшенный вариант первого облака точек представляет собой первое облако точек без некоторого подмножества точек.[036] In some embodiments of the server, the degraded version of the first point cloud is the first point cloud without some subset of the points.
[037] В некоторых вариантах осуществления сервера его способность формировать имитационное облако точек включает в себя способность применять фильтр, отражающий воздействие условий окружающей среды на первое облако точек.[037] In some embodiments of the server, the ability to generate a simulated point cloud includes the ability to apply a filter reflecting the effect of environmental conditions on the first point cloud.
[038] В некоторых вариантах осуществления сервера условия окружающей среды представляют собой дождь, снег и/или грязь, препятствующие работе лидарной системы.[038] In some embodiments of the server, the environmental conditions are rain, snow, and/or dirt that interfere with the operation of the lidar system.
[039] В контексте данного описания термин «источник света» в широком смысле относится к любому устройству, способному испускать излучение, в частности, передавать сигнал в виде луча, например, среди прочего, светового луча с одной или несколькими длинами волн в спектре электромагнитного излучения. В одном примере осуществления источником света может быть лазерный источник. Таким образом, источник света может содержать лазер, например, твердотельный лазер, лазерный диод, лазер высокой мощности, или альтернативный источник света, например, источник света на основе светоизлучающих диодов. Некоторыми (не имеющими ограничительного характера) примерами лазерного источника являются лазерный диод Фабри-Перо, лазер на квантовых ямах, лазер с распределенным брэгговским отражателем (DBR, Distributed Bragg Reflector), лазер с распределенной обратной связью (DFB, Distributed FeedBack), волоконный лазер или поверхностно-излучающий лазер с вертикальным резонатором (VCSEL, Vertical-Cavity Surface-Emitting Laser). Кроме того, лазерный источник может излучать световые лучи в различных форматах, например, в виде световых импульсов, непрерывных колебаний, квазинепрерывных колебаний и т.д. В некоторых не имеющих ограничительного характера примерах лазерный источник может содержать лазерный диод, способный излучать свет с длиной волны в диапазоне приблизительно 650-1150 нм. В альтернативном варианте источник света может содержать лазерный диод, способный излучать световые лучи с длиной волны в диапазоне приблизительно 800-1000 нм, приблизительно 850-950 нм, приблизительно 1300-1600 нм или в любом другом подходящем диапазоне. Если не указано иное, термин «приблизительно» применительно к числовому значению определяется как отклонение, не превышающее 10% указанного значения.[039] As used herein, the term "light source" broadly refers to any device capable of emitting radiation, in particular transmitting a signal in the form of a beam, such as, but not limited to, a light beam of one or more wavelengths in the electromagnetic spectrum. In one embodiment, the light source may be a laser source. Thus, the light source may comprise a laser, such as a solid-state laser, a laser diode, a high-power laser, or an alternative light source, such as a light source based on light emitting diodes. Some (non-limiting) examples of a laser source are a Fabry-Perot laser diode, a quantum well laser, a Distributed Bragg Reflector (DBR) laser, a Distributed FeedBack (DFB) laser, a fiber laser, or a Vertical-Cavity Surface-Emitting Laser (VCSEL). In addition, the laser source may emit light beams in various formats, such as light pulses, continuous oscillations, quasi-continuous oscillations, etc. In some non-limiting examples, the laser source may comprise a laser diode capable of emitting light with a wavelength in the range of about 650-1150 nm. Alternatively, the light source may comprise a laser diode capable of emitting light beams with a wavelength in the range of about 800-1000 nm, about 850-950 nm, about 1300-1600 nm, or any other suitable range. Unless otherwise specified, the term "about" with respect to a numerical value is defined as a deviation that does not exceed 10% of the specified value.
[040] В контексте настоящего описания термин «выходной луч» может относиться к пучку излучения, например, к лучу света, формируемому источником излучения и направленному в сторону интересующей области. Выходной луч может характеризоваться одним или несколькими параметрами, такими как продолжительность излучения, угловая расходимость луча, длина волны, мгновенная мощность, плотность фотонов на разных расстояниях от источника света, средняя мощность, удельная мощность пучка, ширина луча, частота повторения импульсов излучения, последовательность излучаемых импульсов, скважность импульсов, длина волны, фаза и т.д. Выходной луч может быть неполяризованным или случайно поляризованным, может не иметь определенной или постоянной поляризации (например, поляризация может меняться со временем) или может иметь определенную поляризацию (например, линейную, эллиптическую или круговую поляризацию).[040] In the context of the present description, the term "output beam" may refer to a beam of radiation, such as a beam of light, generated by a radiation source and directed toward a region of interest. The output beam may be characterized by one or more parameters such as radiation duration, beam angular divergence, wavelength, instantaneous power, photon density at different distances from the light source, average power, beam power density, beam width, radiation pulse repetition frequency, emitted pulse sequence, pulse duty cycle, wavelength, phase, etc. The output beam may be unpolarized or randomly polarized, may have no defined or constant polarization (e.g., polarization may change over time), or may have a defined polarization (e.g., linear, elliptical, or circular polarization).
[041] В контексте настоящего описания «входной луч» представляет собой пучок излучения или света, попадающий в систему, как правило, после отражения от одного или нескольких объектов в интересующей области. «Входной луч» также может называться лучом излучения или световым лучом. Под термином «отраженный» подразумевается, что по меньшей мере часть выходного луча попадает на один или несколько объектов в интересующей области и отражается от них. Входной луч может характеризоваться одним или несколькими параметрами, такими как время пролета (т.е. время от момента излучения до момента обнаружения), мгновенная мощность (например, сигнатура мощности), средняя мощность обратного импульса, распределение фотонов в сигнале по периоду обратного импульса и т.д. В некоторых случаях применения часть излучения или света во входном луче может являться не отраженным выходным лучом, а излучением других источников. Например, по меньшей мере некоторая часть входного луча может представлять сбой световой шум из окружающего пространства (в том числе рассеянный солнечный свет) или от других источников света, внешних по отношению к данной системе.[041] As used herein, an "input beam" is a beam of radiation or light that enters the system, typically after being reflected from one or more objects in the region of interest. An "input beam" may also be referred to as a radiation beam or a light beam. The term "reflected" means that at least a portion of the output beam is incident on and reflected from one or more objects in the region of interest. The input beam may be characterized by one or more parameters such as time of flight (i.e., the time from the moment of emission to the moment of detection), instantaneous power (e.g., power signature), average power of the return pulse, distribution of photons in the signal over the period of the return pulse, etc. In some applications, some of the radiation or light in the input beam may not be the reflected output beam, but radiation from other sources. For example, at least some portion of the input beam may represent glitches, light noise from the surrounding environment (including diffuse sunlight) or from other light sources external to the system.
[042] В контексте настоящего описания термин «окружающее пространство» или «окружающая среда» транспортного средства относится к области или объему вокруг этого транспортного средства, включая часть его текущей окружающей среды, доступную для сканирования с использованием одного или нескольких датчиков, установленных на этом транспортном средстве, например, для создания трехмерной карты окружающего пространства или для обнаружения в нем объектов.[042] In the context of the present description, the term "surrounding space" or "environment" of a vehicle refers to the area or volume around that vehicle, including that portion of its current environment that is accessible for scanning using one or more sensors mounted on that vehicle, such as to create a three-dimensional map of the surrounding space or to detect objects in it.
[043] В контексте настоящего описания термин «интересующая область» в широком смысле может включать в себя часть наблюдаемого окружающего пространства лидарной системы, в которой могут быть обнаружены один или несколько объектов. Следует отметить, что на интересующую область лидарной системы могут влиять различные условия, такие как, среди прочего, ориентация лидарной системы (например, направление оптической оси лидарной системы), положение лидарной системы в окружающем пространстве (например, расстояние над поверхностью земли, а также рельеф местности и препятствия в непосредственной близи от системы), рабочие параметры лидарной системы (например, мощность излучения, вычислительные настройки, заданные углы работы) и т.д. Интересующая область лидарной системы может задаваться, например, плоским или телесным углом. В одном примере интересующая область также может быть задана диапазоном дальности (например, приблизительно до 200 м).[043] In the context of the present description, the term "region of interest" in a broad sense may include a portion of the observed surrounding space of the lidar system in which one or more objects can be detected. It should be noted that the region of interest of the lidar system may be affected by various conditions, such as, among other things, the orientation of the lidar system (e.g., the direction of the optical axis of the lidar system), the position of the lidar system in the surrounding space (e.g., the distance above the ground, as well as the terrain and obstacles in the immediate vicinity of the system), the operating parameters of the lidar system (e.g., the radiant power, computing settings, specified operating angles), etc. The region of interest of the lidar system can be defined, for example, by a plane or solid angle. In one example, the region of interest can also be defined by a range (e.g., up to approximately 200 m).
[044] В контексте настоящего описания «сервер» представляет собой компьютерную программу, выполняемую соответствующими аппаратными средствами и способную принимать по сети запросы (например, от электронных устройств), а также выполнять эти запросы или инициировать их выполнение. Такие аппаратные средства могут быть реализованы в виде одного физического компьютера или одной физической компьютерной системы, что не имеет существенного значения для настоящей технологии. В данном контексте при употреблении выражения «сервер» не подразумевается, что какая-либо конкретная задача или все задачи (например, принятые команды или запросы) принимаются, выполняются или запускаются на одном и том же сервере (т.е. одними и теми же программными и/или аппаратными средствами), а имеется в виду, что участвовать в приеме, передаче, выполнении или инициировании выполнения каких-либо задач или запросов либо результатов каких-либо задач или запросов может любое количество программных или аппаратных средств, и все эти программные и аппаратные средства могут представлять собой один сервер или несколько серверов, причем выражение «по меньшей мере один сервер» охватывает оба этих случая.[044] As used herein, a "server" is a computer program executed by appropriate hardware and capable of receiving requests (e.g., from electronic devices) over a network and of executing or causing these requests to be executed. Such hardware may be implemented as a single physical computer or a single physical computer system, which is not essential to the present technology. As used herein, the term "server" does not imply that any particular task or all tasks (e.g., received commands or requests) are received, executed or started on the same server (i.e., by the same software and/or hardware), but rather that any number of software or hardware may participate in receiving, transmitting, executing or causing the execution of any tasks or requests or the results of any tasks or requests, and all of these software and hardware may represent a single server or multiple servers, and the term "at least one server" includes both of these cases.
[045] В контексте настоящего описания «электронное устройство» представляет собой любые компьютерные аппаратные средства, способные обеспечивать работу программного обеспечения, подходящего для поставленной задачи. В контексте настоящего описания термин «электронное устройство» подразумевает, что устройство может функционировать в качестве сервера для других электронных устройств, причем это не носит обязательного характера для настоящей технологии. Таким образом, примерами (не имеющими ограничительного характера) электронных устройств являются блок автономного вождения, персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), смартфоны и планшеты, а также сетевое оборудование, например, маршрутизаторы, коммутаторы и шлюзы. Следует понимать, что в данном контексте факт функционирования оборудования в качестве электронного устройства не означает, что оно не может функционировать в качестве сервера для других электронных устройств.[045] In the context of the present description, an "electronic device" is any computer hardware capable of running software suitable for the task. In the context of the present description, the term "electronic device" implies that the device can function as a server for other electronic devices, although this is not a requirement for the present technology. Thus, non-limiting examples of electronic devices include an autonomous driving unit, personal computers (desktop computers, laptops, netbooks, etc.), smartphones and tablets, as well as network equipment such as routers, switches and gateways. It should be understood that in this context, the fact that equipment functions as an electronic device does not mean that it cannot function as a server for other electronic devices.
[046] В контексте данного описания выражение «информация» включает в себя информацию любого рода или вида, допускающую хранение в базе данных. Таким образом, информация включает в себя, среди прочего, визуальные произведения (например, карты), аудиовизуальные произведения (например, изображения, фильмы, звукозаписи, презентации и т.д.), данные (например, данные о местоположении, данные о погоде, данные о трафике, числовые данные и т.д.), текст (например, отзывы, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы и т.д.[046] In the context of this description, the term "information" includes information of any kind or type capable of being stored in a database. Thus, information includes, among other things, visual works (e.g., maps), audiovisual works (e.g., images, films, sound recordings, presentations, etc.), data (e.g., location data, weather data, traffic data, numerical data, etc.), text (e.g., reviews, comments, questions, messages, etc.), documents, spreadsheets, etc.
[047] В контексте данного описания термин «база данных» означает любой структурированный набор данных, независимо от его конкретной структуры, программного обеспечения для управления базой данных и компьютерных аппаратных средств для хранения таких данных, их применения или обеспечения их использования иным способом. База данных может размещаться в тех же аппаратных средствах, где реализован процесс, обеспечивающий хранение или использование информации, хранящейся в базе данных, либо в отдельных аппаратных средствах, таких как специализированный сервер или группа серверов.[047] As used herein, the term "database" means any structured collection of data, regardless of its specific structure, software for managing the database, and computer hardware for storing such data, using it, or otherwise enabling its use. A database may reside on the same hardware as the process that enables the storage or use of the information stored in the database, or on separate hardware such as a dedicated server or group of servers.
[048] В контексте настоящего описания числительные «первый», «второй», «третий» и т.д. служат лишь для указания на различие между существительными, к которым они относятся, а не для описания каких-либо определенных взаимосвязей между этими существительными. Кроме того, как встречается в настоящем описании в другом контексте, ссылки на «первый» элемент и «второй» элемент не исключают того, что эти два элемента в действительности могут быть одним и тем же элементом.[048] In the context of the present description, the numerals "first," "second," "third," etc., serve merely to indicate a distinction between the nouns to which they refer, and do not describe any specific relationships between those nouns. Furthermore, as occurs in other contexts in the present description, references to a "first" element and a "second" element do not exclude the possibility that these two elements may in fact be the same element.
[049] Каждый вариант осуществления настоящей технологии относится к по меньшей мере одной из вышеупомянутых целей и/или к одному из вышеупомянутых аспектов, но не обязательно ко всем ним. Следует понимать, что некоторые аспекты настоящей технологии, связанные с попыткой достижения вышеупомянутой цели, могут не соответствовать этой цели и/или могут соответствовать другим целям, не упомянутым здесь явным образом.[049] Each embodiment of the present technology relates to at least one of the above-mentioned objectives and/or to one of the above-mentioned aspects, but not necessarily to all of them. It should be understood that some aspects of the present technology associated with an attempt to achieve the above-mentioned objective may not correspond to this objective and/or may correspond to other objectives not explicitly mentioned herein.
[050] Дополнительные и/или альтернативные признаки, аспекты и преимущества вариантов осуществления настоящей технологии содержатся в дальнейшем описании, на приложенных чертежах и в формуле изобретения.[050] Additional and/or alternative features, aspects and advantages of embodiments of the present technology are contained in the following description, in the attached drawings and in the claims.
Краткое описание чертежейBrief description of the drawings
[051] Эти и другие признаки, аспекты и преимущества настоящей технологии содержатся в дальнейшем описании, в приложенной формуле изобретения и на следующих чертежах.[051] These and other features, aspects and advantages of the present technology are contained in the following description, in the appended claims and in the following drawings.
[052] На фиг. 1 схематически представлен пример компьютерной системы, пригодной для реализации некоторых не имеющих ограничительного характера вариантов осуществления настоящей технологии.[052] Fig. 1 is a schematic representation of an example of a computer system suitable for implementing certain non-limiting embodiments of the present technology.
[053] На фиг. 2 схематически представлена сетевая компьютерная среда, пригодная для использования с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.[053] Fig. 2 is a schematic representation of a networked computing environment suitable for use with certain non-limiting embodiments of the present technology.
[054] На фиг. 3 схематически представлен пример лидарной системы, реализованной в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.[054] Fig. 3 is a schematic representation of an example of a lidar system implemented in accordance with certain non-limiting embodiments of the present technology.
[055] На фиг. 4 показаны данные, хранящиеся в устройстве хранения данных, к которому имеют доступ сервер и электронное устройство из сетевой компьютерной среды, представленной на фиг. 2.[055] Fig. 4 shows data stored in a data storage device that is accessed by a server and an electronic device from the networked computer environment shown in Fig. 2.
[056] На фиг. 5 показано множество компьютерных процедур, выполняемых сервером и электронным устройством.[056] Fig. 5 shows a plurality of computer procedures performed by a server and an electronic device.
[057] На фиг. 6 показано, как определяется множество облаков точек, связанных с предыдущей траекторией транспортного средства из сетевой компьютерной среды, представленной на фиг. 2, и формируется имитационное облако точек в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.[057] Fig. 6 illustrates how a plurality of point clouds associated with a previous trajectory of a vehicle are determined from the networked computer environment shown in Fig. 2 and a simulated point cloud is generated in accordance with some non-limiting embodiments of the present technology.
[058] На фиг. 7 изображен алгоритм локализации, используемый для формирования вероятных местоположений транспортного средства.[058] Fig. 7 shows a localization algorithm used to generate probable vehicle locations.
[059] На фиг. 8 изображена первая метрика, применяемая к вероятным местоположениям, формируемым с помощью алгоритма локализации.[059] Fig. 8 shows the first metric applied to the probable locations generated by the localization algorithm.
[060] На фиг. 9 показаны итерация обучения и итерация использования для второй метрики в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.[060] Fig. 9 shows a training iteration and a usage iteration for a second metric in accordance with some non-limiting embodiments of the present technology.
[061] На фиг. 10 представлена блок-схема способа, реализованного в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.[061] Fig. 10 is a block diagram of a method implemented in accordance with some non-limiting embodiments of the present technology.
Осуществление изобретенияImplementation of the invention
[062] Представленные здесь примеры и условный язык предназначены для обеспечения лучшего понимания принципов настоящей технологии, а не для ограничения ее объема до таких специально приведенных примеров и условий. Следует понимать, что специалисты в данной области техники способны разработать различные способы и устройства, которые явно не описаны и не показаны, но реализуют принципы настоящей технологии в пределах ее существа и объема.[062] The examples and conventional language provided herein are intended to provide a better understanding of the principles of the present technology and are not intended to limit its scope to such specifically provided examples and conditions. It should be understood that those skilled in the art are capable of developing various methods and devices that are not explicitly described or shown, but implement the principles of the present technology within its spirit and scope.
[063] Кроме того, чтобы способствовать лучшему пониманию, последующее описание может содержать упрощенные варианты реализации настоящей технологии. Специалисты в данной области должны понимать, что различные варианты осуществления настоящей технологии могут быть значительно сложнее.[063] Furthermore, to facilitate better understanding, the following description may contain simplified embodiments of the present technology. Those skilled in the art will understand that various embodiments of the present technology may be significantly more complex.
[064] В некоторых случаях приводятся предположительно полезные примеры модификаций настоящей технологии. Они призваны лишь способствовать пониманию и также не определяют объема или границ настоящей технологии. Представленный перечень модификаций не является исчерпывающим и специалист в данной области может разработать другие модификации в пределах объема настоящей технологии. Кроме того, если в некоторых случаях модификации не описаны, это не означает, что они невозможны и/или что описание содержит единственно возможный вариант реализации того или иного элемента настоящей технологии.[064] In some cases, supposedly useful examples of modifications of the present technology are given. They are intended only to facilitate understanding and also do not define the scope or boundaries of the present technology. The list of modifications provided is not exhaustive and a person skilled in the art can develop other modifications within the scope of the present technology. In addition, if in some cases modifications are not described, this does not mean that they are impossible and/or that the description contains the only possible embodiment of a particular element of the present technology.
[065] Описание принципов, аспектов и вариантов реализации настоящей технологии, а также их конкретные примеры предназначены для охвата их структурных и функциональных эквивалентов, независимо от того, известны они в настоящее время или будут разработаны в будущем. Например, специалисты в данной области техники должны понимать, что все приведенные здесь блок-схемы соответствуют концептуальным представлениям иллюстративных принципиальных схем, реализующих принципы настоящей технологии. Также следует понимать, что все блок-схемы, схемы процессов, диаграммы изменения состояния, псевдокоды и т.п. соответствуют различным процессам, которые могут быть представлены на машиночитаемом физическом носителе информации и могут выполняться компьютером или процессором независимо от того, показан такой компьютер или процессор в явном виде или нет.[065] The description of the principles, aspects and embodiments of the present technology, as well as specific examples thereof, are intended to cover their structural and functional equivalents, regardless of whether they are currently known or will be developed in the future. For example, those skilled in the art should understand that all block diagrams provided herein correspond to conceptual representations of illustrative circuit diagrams implementing the principles of the present technology. It should also be understood that all block diagrams, process diagrams, state transition diagrams, pseudocodes, etc. correspond to various processes that can be represented on a machine-readable physical storage medium and can be executed by a computer or processor, regardless of whether such a computer or processor is explicitly shown or not.
[066] Функции различных элементов, показанных на чертежах, включая все функциональные блоки, обозначенные как «процессор», могут быть реализованы с использованием специализированных аппаратных средств, а также аппаратных средств, способных обеспечивать работу соответствующего программного обеспечения. Если используется процессор, эти функции могут выполняться одним выделенным процессором, одним совместно используемым процессором или несколькими отдельными процессорами, некоторые из которых могут использоваться совместно. Кроме того, явное использование термина «процессор» или «контроллер» не должно трактоваться как указание исключительно на аппаратные средства, способные обеспечивать работу программного обеспечения, и может подразумевать, среди прочего, аппаратные средства цифрового сигнального процессора (DSP), сетевой процессор, специализированную интегральную схему (ASIC), программируемую вентильную матрицу (FPGA), ПЗУ для хранения программного обеспечения, ОЗУ и энергонезависимое ЗУ. Также могут подразумеваться другие аппаратные средства, общего назначения и/или заказные.[066] The functions of the various elements shown in the drawings, including all functional blocks designated as a "processor", may be implemented using dedicated hardware as well as hardware capable of running associated software. If a processor is used, these functions may be performed by a single dedicated processor, a single shared processor, or multiple separate processors, some of which may be shared. Furthermore, the explicit use of the term "processor" or "controller" shall not be construed as referring exclusively to hardware capable of running software, and may include, but are not limited to, a digital signal processor (DSP), a network processor, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), ROM for storing software, RAM, and non-volatile memory. Other general-purpose and/or custom hardware may also be included.
[067] Программные модули или просто модули, реализация которых предполагается на базе программных средств, могут быть представлены здесь в виде любого сочетания элементов блок-схемы или других элементов, указывающих на выполнение шагов процесса и/или содержащих текстовое описание. Такие модули могут реализовываться с помощью аппаратных средств, показанных явно или подразумеваемых.[067] Software modules or simply modules, the implementation of which is supposed to be based on software, may be represented here as any combination of flow chart elements or other elements indicating the execution of process steps and/or containing a text description. Such modules may be implemented using hardware, shown explicitly or implied.
[068] С учетом вышеизложенных принципов ниже рассмотрены некоторые не имеющие ограничительного характера примеры, иллюстрирующие различные варианты реализации аспектов настоящей технологии.[068] Taking into account the above principles, some non-limiting examples are discussed below to illustrate various embodiments of aspects of the present technology.
Компьютерная системаComputer system
[069] На фиг. 1 представлена схема компьютерной системы 100, подходящей для использования в некоторых вариантах осуществления настоящей технологии. Компьютерная система 100 содержит различные аппаратные элементы, включая один или несколько одноядерных или многоядерных процессоров, совместно представленных процессором 110, твердотельный накопитель 120 и память 130, которая может быть памятью с произвольным доступом или памятью любого другого вида.[069] Fig. 1 is a diagram of a computer system 100 suitable for use in some embodiments of the present technology. The computer system 100 includes various hardware elements, including one or more single-core or multi-core processors, collectively represented by a processor 110, a solid-state drive 120, and a memory 130, which may be random access memory or any other type of memory.
[070] Связь между элементами компьютерной системы 100 может осуществляться через одну или несколько внутренних и/или внешних шин (не показаны), таких как шина PCI, шина USB, шина FireWire стандарта IEEE 1394, шина SCSI, шина Serial-ATA и т.д., с которыми различные аппаратные элементы соединены электронными средствами. Согласно вариантам осуществления настоящей технологии, твердотельный накопитель 120 хранит программные команды, пригодные для загрузки в память 130 и исполнения процессором 110 с целью определения наличия объекта. Например, программные команды могут входить в состав управляющего приложения транспортного средства, выполняемого процессором 110. Следует отметить, что компьютерная система 100 может содержать дополнительные и/или необязательные элементы (не показаны), например, модули передачи данных по сети, модули определения местоположения и т.д.[070] Communication between elements of the computer system 100 may be accomplished via one or more internal and/or external buses (not shown), such as a PCI bus, a USB bus, an IEEE 1394 FireWire bus, a SCSI bus, a Serial-ATA bus, etc., to which various hardware elements are electronically connected. According to embodiments of the present technology, the solid-state drive 120 stores software instructions suitable for loading into the memory 130 and executing by the processor 110 to determine the presence of an object. For example, the software instructions may be part of a vehicle control application executed by the processor 110. It should be noted that the computer system 100 may contain additional and/or optional elements (not shown), such as network data communication modules, location determination modules, etc.
Сетевая компьютерная средаNetworked computing environment
[071] На фиг. 2 представлена сетевая компьютерная среда 200, пригодная для использования с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии. Сетевая компьютерная среда 200 содержит электронное устройство 210, связанное с транспортным средством 220 и/или с пользователем (не показан), который связан с транспортным средством 220 (в частности, с оператором транспортного средства 220). Сетевая компьютерная среда 200 также содержит сервер 235, соединенный с электронным устройством 210 через сеть 240 связи (например, через сеть Интернет и т.п., как более подробно описано ниже).[071] Fig. 2 illustrates a networked computing environment 200 suitable for use with certain non-limiting embodiments of the present technology. The networked computing environment 200 includes an electronic device 210 coupled to a vehicle 220 and/or to a user (not shown) who is coupled to the vehicle 220 (in particular, to an operator of the vehicle 220). The networked computing environment 200 also includes a server 235 coupled to the electronic device 210 via a communications network 240 (e.g., via the Internet, etc., as described in more detail below).
[072] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сетевая компьютерная среда 200 может содержать спутник глобальной системы позиционирования (GPS) (не показан), передающий сигнал GPS электронному устройству 210 и/или принимающий сигнал GPS от него. Следует понимать, что настоящая технология не ограничивается применением системы GPS и может быть реализована на базе любой другой технологии определения местоположения. Следует отметить, что спутник GPS может вовсе отсутствовать.[072] In some non-limiting embodiments of the present technology, the networked computer environment 200 may comprise a global positioning system (GPS) satellite (not shown) that transmits a GPS signal to the electronic device 210 and/or receives a GPS signal from it. It should be understood that the present technology is not limited to the use of the GPS system and may be implemented based on any other location determination technology. It should be noted that a GPS satellite may be completely absent.
[073] Транспортное средство 220, с которым связано электронное устройство 210, может представлять собой любое транспортное средство для отдыха или иных целей, например, автомобиль индивидуального или коммерческого использования, грузовой автомобиль, мотоцикл и т.д. Несмотря на то, что транспортное средство 220 изображено как наземное транспортное средство, это не обязательно для каждого не имеющего ограничительного характера варианта осуществления настоящей технологии. Например, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии транспортным средством 220 может быть водное транспортное средство, например, лодка, или воздушное транспортное средство, например, беспилотный летательный аппарат.[073] The vehicle 220 to which the electronic device 210 is associated may be any recreational or other vehicle, such as a personal or commercial automobile, a truck, a motorcycle, etc. Although the vehicle 220 is depicted as a land vehicle, this is not necessarily the case for every non-limiting embodiment of the present technology. For example, in some non-limiting embodiments of the present technology, the vehicle 220 may be a watercraft, such as a boat, or an aircraft, such as an unmanned aerial vehicle.
[074] Транспортное средство 220 может управляться пользователем или представлять собой беспилотное транспортное средство. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии предполагается, что транспортное средство 220 может быть реализовано в виде беспилотного автомобиля. Следует отметить, что при этом не накладывается ограничений на конкретные параметры транспортного средства 220, к числу которых, например, относятся производитель транспортного средства, модель транспортного средства, год выпуска транспортного средства, масса транспортного средства, размеры транспортного средства, распределение массы транспортного средства, площадь поверхности транспортного средства, высота транспортного средства, вид трансмиссии (например, с приводом на два или четыре колеса), вид шин, тормозная система, топливная система, пробег, идентификационный номер транспортного средства и рабочий объем двигателя.[074] The vehicle 220 may be controlled by a user or may be an unmanned vehicle. In some non-limiting embodiments of the present technology, it is contemplated that the vehicle 220 may be implemented as an unmanned automobile. It should be noted that there are no restrictions on the specific parameters of the vehicle 220, which include, for example, the manufacturer of the vehicle, the model of the vehicle, the year of manufacture of the vehicle, the mass of the vehicle, the dimensions of the vehicle, the distribution of the mass of the vehicle, the surface area of the vehicle, the height of the vehicle, the type of transmission (e.g., with two-wheel drive or four-wheel drive), the type of tires, the braking system, the fuel system, the mileage, the identification number of the vehicle and the working volume of the engine.
[075] Согласно настоящей технологии, на реализацию электронного устройства 210 не накладывается особых ограничений. Например, электронное устройство 210 может быть реализовано в виде блока управления двигателем транспортного средства, центрального процессора транспортного средства, навигационного устройства транспортного средства (например, TomTom™, Garmin™), планшета, персонального компьютера, встроенного в транспортное средство 220, и т.д. Следует отметить, что электронное устройство 210 может быть связано или не связано с транспортным средством 220 постоянным образом. Дополнительно или в качестве альтернативы, электронное устройство 210 может быть реализовано в виде устройства беспроводной связи, такого как мобильный телефон (например, смартфон или радиотелефон). В некоторых вариантах осуществления электронное устройство 210 содержит дисплей 270.[075] According to the present technology, there are no particular limitations on the implementation of the electronic device 210. For example, the electronic device 210 can be implemented as an engine control unit of the vehicle, a central processor of the vehicle, a navigation device of the vehicle (e.g., TomTom™, Garmin™), a tablet, a personal computer built into the vehicle 220, etc. It should be noted that the electronic device 210 may or may not be permanently connected to the vehicle 220. Additionally or alternatively, the electronic device 210 can be implemented as a wireless communication device, such as a mobile phone (e.g., a smartphone or a radiotelephone). In some embodiments, the electronic device 210 comprises a display 270.
[076] Электронное устройство 210 может содержать некоторые или все элементы компьютерной системы 100, представленной на фиг. 1, в зависимости от конкретного варианта осуществления. В некоторых вариантах осуществления электронное устройство 210 представляет собой бортовое компьютерное устройство и содержит процессор 110, твердотельный накопитель 120 и память 130. Иными словами, электронное устройство 210 содержит аппаратные средства и/или программное обеспечение и/или микропрограммное обеспечение либо их комбинацию для осуществления обработки данных, как более подробно описано ниже.[076] The electronic device 210 may comprise some or all of the elements of the computer system 100 shown in Fig. 1, depending on the particular embodiment. In some embodiments, the electronic device 210 is an on-board computer device and comprises a processor 110, a solid-state drive 120, and a memory 130. In other words, the electronic device 210 comprises hardware and/or software and/or firmware, or a combination thereof, for performing data processing, as described in more detail below.
[077] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сеть 240 связи представляет собой сеть Интернет. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии сеть 240 связи может быть реализована как любая подходящая локальная сеть (LAN, Local Area Network), глобальная сеть (WAN, Wide Area Network), частная сеть связи и т.п. Следует понимать, что варианты осуществления сети 240 связи приведены лишь в иллюстративных целях. Между электронным устройством 210 и сетью 240 связи предусмотрена линия связи (отдельно не обозначена), реализация которой зависит, среди прочего, от реализации электронного устройства 210. Для примера можно отметить, что в тех не имеющих ограничительного характера вариантах осуществления настоящей технологии, где электронное устройство 210 реализовано в виде устройства беспроводной связи, такого как смартфон или навигационное устройство, линия связи может быть реализована в виде беспроводной линии связи, но не ограничивается этим. Примерами беспроводных линий связи могут служить, помимо прочего, канал сети связи 3G, канал сети связи 4G и т.п. В сети 240 связи также может использоваться беспроводное соединение с сервером 235.[077] In some non-limiting embodiments of the present technology, the communication network 240 is the Internet. In other non-limiting embodiments of the present technology, the communication network 240 may be implemented as any suitable local area network (LAN), wide area network (WAN), private communication network, etc. It should be understood that the embodiments of the communication network 240 are given for illustrative purposes only. A communication link (not separately indicated) is provided between the electronic device 210 and the communication network 240, the implementation of which depends, among other things, on the implementation of the electronic device 210. For example, in those non-limiting embodiments of the present technology, where the electronic device 210 is implemented as a wireless communication device, such as a smartphone or a navigation device, the communication link may be implemented as a wireless communication link, but is not limited to this. Examples of wireless communication links can be, among other things, a 3G communication network channel, a 4G communication network channel, etc. The communication network 240 may also use a wireless connection to the server 235.
[078] В некоторых вариантах осуществления настоящей технологии сервер 235 реализован в виде компьютерного сервера и может содержать некоторые или все элементы компьютерной системы 100, представленной на фиг. 1. В одном не имеющем ограничительного характера примере сервер 235 реализован в виде сервера Dell™ PowerEdge™, работающего под управлением операционной системы Microsoft™ Windows Server™, но он также может быть реализован на базе любых других подходящих видов аппаратных средств, программного обеспечения и/или микропрограммного обеспечения либо их сочетания. В представленных не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 235 представляет собой одиночный сервер. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии функции сервера 235 могут быть распределены между несколькими серверами (не показаны).[078] In some embodiments of the present technology, the server 235 is implemented as a computer server and may include some or all of the elements of the computer system 100 shown in Fig. 1. In one non-limiting example, the server 235 is implemented as a Dell™ PowerEdge™ server running a Microsoft™ Windows Server™ operating system, but it may also be implemented on any other suitable types of hardware, software, and/or firmware, or a combination thereof. In the presented non-limiting embodiments of the present technology, the server 235 is a single server. In other non-limiting embodiments of the present technology, the functions of the server 235 may be distributed among multiple servers (not shown).
[079] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии процессор 110 электронного устройства 210 может быть связан с сервером 235 для получения одного или нескольких обновлений. Такие обновления могут включать в себя, среди прочего, обновления программного обеспечения, обновления карт, обновления маршрутов, обновления погодных данных и т.п. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии процессор 110 также способен отправлять на сервер 235 определенные рабочие данные, например, информацию о пройденных маршрутах, данные о дорожной обстановке, эксплуатационные данные и т.п. Некоторые или все такие данные, передаваемые между транспортным средством 220 и сервером 235, могут быть зашифрованы и/или обезличены.[079] In some non-limiting embodiments of the present technology, the processor 110 of the electronic device 210 may be connected to the server 235 to receive one or more updates. Such updates may include, among other things, software updates, map updates, route updates, weather data updates, and the like. In some non-limiting embodiments of the present technology, the processor 110 is also capable of sending certain operational data to the server 235, such as information about the routes taken, traffic data, operational data, and the like. Some or all of such data transmitted between the vehicle 220 and the server 235 may be encrypted and/or anonymized.
[080] Следует отметить, что электронное устройство 210 может использовать разнообразные датчики и системы для сбора информации об окружающем пространстве 250 транспортного средства 220. Как показано на фиг. 2, транспортное средство 220 может быть оборудовано множеством систем 280 датчиков. Следует отметить, что для сбора различных видов данных об окружающем пространстве 250 транспортного средства 220 могут применяться различные системы датчиков из множества систем 280 датчиков.[080] It should be noted that the electronic device 210 can use a variety of sensors and systems to collect information about the surrounding space 250 of the vehicle 220. As shown in Fig. 2, the vehicle 220 can be equipped with a plurality of sensor systems 280. It should be noted that different sensor systems from the plurality of sensor systems 280 can be used to collect different types of data about the surrounding space 250 of the vehicle 220.
[081] В одном примере множество систем 280 датчиков может содержать различные оптические системы, в том числе одну или несколько систем датчиков типа «камера», установленных на транспортном средстве 220 и связанных с процессором 110 электронного устройства 210. В целом, одна или несколько систем датчиков типа «камера» могут собирать данные изображения о разных частях окружающего пространства 250 транспортного средства 220. В некоторых случаях данные изображения, предоставленные одной или несколькими системами датчиков типа «камера», могут использоваться электронным устройством 210 для выполнения процедур обнаружения объектов. Например, электронное устройство 210 может передавать данные изображения, предоставленные одной или несколькими системами датчиков типа «камера», в нейронную сеть обнаружения объектов (ODNN, Object Detection Neural Network), обученную определению местоположения и классификации потенциальных объектов в окружающем пространстве 250 транспортного средства 220.[081] In one example, the plurality of sensor systems 280 may comprise various optical systems, including one or more camera-type sensor systems mounted on the vehicle 220 and coupled to the processor 110 of the electronic device 210. In general, the one or more camera-type sensor systems may collect image data about different portions of the surrounding space 250 of the vehicle 220. In some cases, the image data provided by the one or more camera-type sensor systems may be used by the electronic device 210 to perform object detection procedures. For example, the electronic device 210 may transmit the image data provided by the one or more camera-type sensor systems to an Object Detection Neural Network (ODNN) trained to determine the location and classify potential objects in the surrounding space 250 of the vehicle 220.
[082] В другом примере множество систем 280 датчиков может содержать одну или несколько систем датчиков типа «радиолокатор», установленных на транспортном средстве 220 и связанных с процессором 110. В целом, одна или несколько систем датчиков типа «радиолокатор» могут использовать радиоволны для сбора данных о разных частях окружающего пространства 250 транспортного средства 220. Например, одна или несколько систем датчиков типа «радиолокатор» могут собирать радиолокационные данные о потенциальных объектах в окружающем пространстве 250 транспортного средства 220 и такие данные могут относиться к расстоянию от системы датчиков типа «радиолокатор» до объектов, ориентации объектов, векторной и/или скалярной скорости объектов и т.п.[082] In another example, the plurality of sensor systems 280 may comprise one or more radar sensor systems mounted on the vehicle 220 and coupled to the processor 110. In general, the one or more radar sensor systems may use radio waves to collect data about different portions of the surrounding space 250 of the vehicle 220. For example, the one or more radar sensor systems may collect radar data about potential objects in the surrounding space 250 of the vehicle 220, and such data may relate to the distance from the radar sensor system to the objects, the orientation of the objects, the vector and/or scalar velocity of the objects, and the like.
[083] Следует отметить, что множество систем 280 датчиков может включать в себя системы датчиков других типов в дополнение к тем, что описаны выше неисчерпывающим образом, в пределах объема настоящей технологии.[083] It should be noted that the plurality of sensor systems 280 may include sensor systems of other types in addition to those described above in a non-exhaustive manner, within the scope of the present technology.
Лидарная системаLidar system
[084] В соответствии с не имеющими ограничительного характера вариантами осуществления настоящей технологии, как показано на фиг. 2, транспортное средство 220 оборудовано по меньшей мере одной лазерной системой обнаружения и измерения дальности (лидарной системой), например, лидарной системой 300, для сбора информации об окружающем пространстве 250 транспортного средства 220. Несмотря на то, что описание здесь приводится в контексте установки на транспортном средстве 220, также предполагается, что лидарная система 300 может работать автономно или с подключением к другой системе.[084] According to non-limiting embodiments of the present technology, as shown in Fig. 2, the vehicle 220 is equipped with at least one laser detection and ranging system (lidar system), such as a lidar system 300, for collecting information about the surrounding space 250 of the vehicle 220. Although described herein in the context of installation on the vehicle 220, it is also contemplated that the lidar system 300 may operate independently or in connection with another system.
[085] В зависимости от варианта осуществления, транспортное средство 220 может содержать больше или меньше лидарных систем 300, чем показано на чертежах. В зависимости от конкретного варианта осуществления, выбор конкретных систем из множества систем 280 датчиков может зависеть от конкретного варианта осуществления лидарной системы 300. Лидарная система 300 может быть установлена на транспортном средстве 220 изначально или при его модернизации в разных местах и/или в разных конфигурациях.[085] Depending on the embodiment, the vehicle 220 may include more or fewer lidar systems 300 than shown in the drawings. Depending on the particular embodiment, the selection of particular systems from the plurality of sensor systems 280 may depend on the particular embodiment of the lidar system 300. The lidar system 300 may be installed on the vehicle 220 initially or as a retrofit in different locations and/or in different configurations.
[086] Например, в зависимости от исполнения транспортного средства 220 и лидарной системы 300, лидарная система 300 может быть установлена в верхней части лобового стекла транспортного средства 220 с его внутренней стороны. При этом, как показано на фиг. 2, установка лидарной системы 300 в других местах, включая заднее окно, боковые окна, передний капот, крышу, переднюю решетку, передний бампер и боковину транспортного средства 220, не выходит за пределы объема настоящей технологии. В некоторых случаях лидарная система 300 может монтироваться в специальном корпусе, установленном сверху транспортного средства 220.[086] For example, depending on the design of the vehicle 220 and the lidar system 300, the lidar system 300 can be installed in the upper part of the windshield of the vehicle 220 on its inner side. In this case, as shown in Fig. 2, installing the lidar system 300 in other places, including the rear window, side windows, front hood, roof, front grille, front bumper and side of the vehicle 220, does not go beyond the scope of the present technology. In some cases, the lidar system 300 can be mounted in a special housing installed on top of the vehicle 220.
[087] В некоторых не имеющих ограничительного характера вариантах осуществления изобретения, например, в показанном на фиг. 2, одна из множества лидарных систем 300 установлена на крыше транспортного средства 220 и способна вращаться. Например, лидарная система 300, установленная на транспортном средстве 220 и способная вращаться, может содержать по меньшей мере некоторые элементы, способные поворачиваться на 360 градусов вокруг оси вращения лидарной системы 300. Лидарная система 300, установленная с возможностью вращения, может собирать данные о большей части окружающего пространства 250 транспортного средства 220.[087] In some non-limiting embodiments of the invention, such as that shown in FIG. 2, one of the plurality of lidar systems 300 is mounted on the roof of the vehicle 220 and is capable of rotation. For example, the lidar system 300 mounted on the vehicle 220 and capable of rotation may include at least some elements capable of rotating 360 degrees about the axis of rotation of the lidar system 300. The lidar system 300 mounted with the ability to rotate can collect data about a large portion of the surrounding space 250 of the vehicle 220.
[088] В других не имеющих ограничительного характера вариантах осуществления настоящей технологии, таких как показанный на фиг. 2, лидарная система 300 установлена на боковой стороне или на передней решетке и не способна вращаться. В частности, лидарная система 300, установленная на транспортном средстве 220 без возможности вращения, может содержать по меньшей мере некоторые элементы, не способные поворачиваться на 360 градусов, но способные собирать данные о заданных частях окружающего пространства 250 транспортного средства 220.[088] In other non-limiting embodiments of the present technology, such as shown in Fig. 2, the lidar system 300 is mounted on the side or on the front grille and is not capable of rotation. In particular, the lidar system 300 mounted on the vehicle 220 without the ability to rotate may include at least some elements that are not capable of rotating 360 degrees, but are capable of collecting data about specified portions of the surrounding space 250 of the vehicle 220.
[089] Независимо от конкретного места установки и/или конкретного варианта исполнения, лидарная система 300 способна собирать данные об окружающем пространстве 250 транспортного средства 220, например, для построения многомерной карты объектов окружающего пространства 250 транспортного средства 220. Ниже приводится описание устройства лидарных систем 300 с точки зрения сбора данных об окружающем пространстве 250 транспортного средства 220.[089] Regardless of the specific installation location and/or specific embodiment, the lidar system 300 is capable of collecting data about the surrounding space 250 of the vehicle 220, for example, to construct a multidimensional map of objects in the surrounding space 250 of the vehicle 220. Below is a description of the design of the lidar systems 300 from the point of view of collecting data about the surrounding space 250 of the vehicle 220.
[090] Следует отметить, что в приведенном здесь описании лидарная система 300 реализована как «времяпролетная» лидарная система и в связи этим содержит соответствующие элементы, свойственные такой реализации, но также допускаются и другие варианты осуществления лидарной системы 300 без отклонения от существа и объема настоящей технологии. Например, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии лидарная система 300 может быть также реализована как лидарная система с непрерывным частотно-модулированным сигналом (FMCW, Frequency-Modulated Continuous Wave) согласно одному или нескольким вариантам реализации и на базе соответствующих элементов, как изложено в патентной заявке RU2020117983 «Способы и системы обнаружения лидаров»), поданной 1 июня 2020 года, содержание которой полностью включено в настоящий документ посредством ссылки.[090] It should be noted that in the description given herein, the lidar system 300 is implemented as a "time-of-flight" lidar system and therefore contains the corresponding elements inherent in such an implementation, but other embodiments of the lidar system 300 are also allowed without deviating from the essence and scope of the present technology. For example, in some non-limiting embodiments of the present technology, the lidar system 300 can also be implemented as a lidar system with a continuous frequency-modulated signal (FMCW, Frequency-Modulated Continuous Wave) according to one or more embodiments and based on the corresponding elements, as set forth in patent application RU2020117983 "Methods and systems for detecting lidars"), filed on June 1, 2020, the content of which is fully incorporated herein by reference.
[091] На фиг. 3 представлена схема одного конкретного варианта осуществления лидарной системы 300, реализованного в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.[091] Fig. 3 is a diagram of one specific embodiment of a lidar system 300 implemented in accordance with certain non-limiting embodiments of the present technology.
[092] В общем случае лидарная система 300 содержит множество внутренних элементов, в том числе, (1) источник 302 света (также называемый «лазерным источником» или «источником излучения»), (2) светорасщепляющий элемент 304, (3) блок 308 сканирования (также называемый «сканером» или «сканирующим узлом»), (4) блок 306 обнаружения (также называемый «системой обнаружения», «приемным узлом» или «детектором») и (5) контроллер 310. Предполагается, что в дополнение к элементам, перечисленным выше неисчерпывающим образом, лидарная система 300 может содержать множество датчиков (например, датчик температуры, датчик влажности и т.д.), которые для простоты не показаны на фиг. 3.[092] In general, the lidar system 300 includes a plurality of internal elements, including (1) a light source 302 (also referred to as a “laser source” or “radiation source”), (2) a light-splitting element 304, (3) a scanning unit 308 (also referred to as a “scanner” or “scanning node”), (4) a detection unit 306 (also referred to as a “detection system,” “receiver node,” or “detector”), and (5) a controller 310. It is contemplated that, in addition to the elements listed above in a non-exhaustive manner, the lidar system 300 may include a plurality of sensors (e.g., a temperature sensor, a humidity sensor, etc.), which are not shown in Fig. 3 for simplicity.
[093] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии один или несколько внутренних элементов лидарной системы 300 размещены в общем корпусе 330, как показано на фиг. 3. В некоторых вариантах осуществления настоящей технологии контроллер 310 может быть расположен вне общего корпуса 330 и связан с находящимися в нем элементами. Согласно приведенному ниже описанию, корпус 330 имеет окно 380 со стороны окружающего пространства транспортного средства 220, через которое световые лучи выходят из корпуса 330 и входят в него.[093] In some non-limiting embodiments of the present technology, one or more internal components of the lidar system 300 are housed in a common housing 330, as shown in Fig. 3. In some embodiments of the present technology, the controller 310 may be located outside the common housing 330 and communicate with the components therein. As described below, the housing 330 has a window 380 on the side of the surrounding space of the vehicle 220, through which light beams exit and enter the housing 330.
[094] В общем случае лидарная система 300 работает следующим образом: источник 302 света лидарной системы 300 излучает импульсы света, формируя выходной луч 314, блок 308 сканирования сканирует выходным лучом 314 окружающее пространство 250 транспортного средства 220 через окно 380 для сбора данных о находящихся в нем заранее неизвестных объектах (таких как объект 320) и для определения их местоположения, например, с целью создания многомерной карты окружающего пространства 250, объекты (включая объект 320) на которой представляются в виде одной или нескольких точек данных. Источник 302 света и блок 308 сканирования более подробно описаны ниже.[094] In general, the lidar system 300 operates as follows: the light source 302 of the lidar system 300 emits light pulses, forming an output beam 314, the scanning unit 308 scans the output beam 314 into the surrounding space 250 of the vehicle 220 through the window 380 to collect data on previously unknown objects (such as the object 320) located therein and to determine their location, for example, in order to create a multidimensional map of the surrounding space 250, the objects (including the object 320) on which are represented as one or more data points. The light source 302 and the scanning unit 308 are described in more detail below.
[095] В некоторых не имеющих ограничительного характера примерах объект 320 может представлять собой, полностью или частично, человека, транспортное средство, мотоцикл, грузовик, поезд, велосипед, инвалидную коляску, детскую коляску, пешехода, животное, дорожный знак, светофор, разметку полосы движения, разметку дорожного покрытия, парковочное пространство, пилон, ограждение, дорожный барьер, выбоину, железнодорожный переезд, препятствие на дороге или рядом с ней, бордюр, остановившееся транспортное средство на дороге или рядом с ней, электрический столб, дом, здание, мусорный бак, почтовый ящик, дерево, а также любой другой подходящий объект или любое подходящее сочетание, полностью или частично, двух и более объектов.[095] In some non-limiting examples, object 320 may represent, in whole or in part, a person, a vehicle, a motorcycle, a truck, a train, a bicycle, a wheelchair, a baby carriage, a pedestrian, an animal, a road sign, a traffic light, a lane marking, a pavement marking, a parking space, a pylon, a guardrail, a road barrier, a pothole, a railroad crossing, an obstruction on or near a road, a curb, a stopped vehicle on or near a road, a utility pole, a house, a building, a trash can, a mailbox, a tree, as well as any other suitable object, or any suitable combination, in whole or in part, of two or more objects.
[096] Предположим, что объект 320 расположен на некотором расстоянии 318 от лидарной системы 300. Когда выходной луч 314 достигает объекта 320, по меньшей мере часть света выходного луча 314, как правило, отражается от объекта 320, и некоторые из отраженных световых лучей могут вернуться в лидарную систему 300 в виде входного луча 316. Под термином «отражается» подразумевается, что по меньшей мере часть света выходного луча 314 отражается от объекта 320. Свет выходного луча 314 может частично поглощаться или рассеиваться объектом 320.[096] Assume that the object 320 is located at some distance 318 from the lidar system 300. When the output beam 314 reaches the object 320, at least a portion of the light of the output beam 314 is typically reflected from the object 320, and some of the reflected light rays may return to the lidar system 300 as an input beam 316. By "reflected" is meant that at least a portion of the light of the output beam 314 is reflected from the object 320. The light of the output beam 314 may be partially absorbed or scattered by the object 320.
[097] Соответственно, входной луч 316 улавливается и регистрируется лидарной системой 300 с помощью блока 306 обнаружения. При этом блок 306 обнаружения способен формировать один или нескольких сигналов репрезентативных данных. Например, блок 306 обнаружения может формировать выходной электрический сигнал (не показан), представляющий входной луч 316. Кроме того, блок 306 обнаружения может передавать сформированный таким образом электрический сигнал в контроллер 310 для дальнейшей обработки. Наконец, измеряя время между моментом излучения выходного луча 314 и моментом приема входного луча 316, контроллер 310 вычисляет расстояние 318 до объекта 320.[097] Accordingly, the input beam 316 is captured and registered by the lidar system 300 using the detection unit 306. In this case, the detection unit 306 is capable of generating one or more representative data signals. For example, the detection unit 306 can generate an output electrical signal (not shown) representing the input beam 316. In addition, the detection unit 306 can transmit the electrical signal thus generated to the controller 310 for further processing. Finally, by measuring the time between the moment of emission of the output beam 314 and the moment of reception of the input beam 316, the controller 310 calculates the distance 318 to the object 320.
[098] Как более подробно описано ниже, светорасщепляющий элемент 304 направляет выходной луч 314 от источника 302 света к блоку 308 сканирования, а входной луч 316 от блока сканирования - к блоку 306 обнаружения.[098] As described in more detail below, the light-splitting element 304 directs the output beam 314 from the light source 302 to the scanning unit 308 and the input beam 316 from the scanning unit to the detection unit 306.
[099] Использование и варианты реализации этих элементов лидарной системы 300 в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии описаны ниже.[099] Uses and embodiments of these elements of the lidar system 300 in accordance with some non-limiting embodiments of the present technology are described below.
Источник светаLight source
[0100] Источник 302 света связан с контроллером 310 и способен излучать свет с заданной рабочей длиной волны. Для этого в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии источник 302 света может содержать по меньшей мере один лазер для работы на заданной рабочей длине волны. Рабочая длина волны источника 302 света может находиться в инфракрасной, видимой или ультрафиолетовой части электромагнитного спектра. Например, источник света 302 может содержать по меньшей мере один лазер с рабочей длиной волны в диапазоне приблизительно 650-1150 нм. В другом варианте источник 302 света может содержать лазерный диод, способный излучать свет с длиной волны в диапазоне приблизительно 800-1000 нм, приблизительно 850-950 нм или приблизительно 1300-1600 нм. В некоторых других вариантах осуществления изобретения источник 302 света может содержать светоизлучающий диод.[0100] The light source 302 is connected to the controller 310 and is capable of emitting light with a given operating wavelength. For this purpose, in some non-limiting embodiments of the present technology, the light source 302 may comprise at least one laser for operating at a given operating wavelength. The operating wavelength of the light source 302 may be in the infrared, visible or ultraviolet part of the electromagnetic spectrum. For example, the light source 302 may comprise at least one laser with an operating wavelength in the range of approximately 650-1150 nm. In another embodiment, the light source 302 may comprise a laser diode capable of emitting light with a wavelength in the range of approximately 800-1000 nm, approximately 850-950 nm or approximately 1300-1600 nm. In some other embodiments of the invention, the light source 302 may comprise a light-emitting diode.
[0101] Как правило, источник 302 света лидарной системы 300 представляет собой безопасный для зрения лазер. Иными словами, лидарная система 300 может быть классифицирована как безопасная для зрения лазерная система или безопасное для зрения лазерное изделие. В общем случае безопасными для зрения лазером, лазерной системой или лазерным изделием может считаться система с таким сочетанием характеристик, а именно длины волны излучения, средней мощности, пиковой мощности, пиковой интенсивности, энергии импульса, размера луча, расходимости луча, длительности излучения, или с таким сканирующим выходным лучом, при котором вероятность нарушения зрения человека из-за воздействия излучаемого этой системой света мала или равна нулю.[0101] Typically, the light source 302 of the lidar system 300 is a vision-safe laser. In other words, the lidar system 300 can be classified as a vision-safe laser system or a vision-safe laser product. In general, a vision-safe laser, laser system or laser product can be considered a system with such a combination of characteristics, namely, the emission wavelength, average power, peak power, peak intensity, pulse energy, beam size, beam divergence, emission duration, or with such a scanning output beam, in which the probability of visual impairment of a person due to exposure to light emitted by this system is small or equal to zero.
[0102] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, рабочая длина волны источника 302 света может находиться в области электромагнитного спектра, соответствующей свету, который излучает Солнце. Поэтому в некоторых случаях солнечный свет может действовать как фоновый шум, способный маскировать световой сигнал, обнаруживаемый лидарной системой 300. Этот солнечный фоновый шум может приводить к ложным обнаружениям и/или иным образом искажать результаты измерений, выполняемых лидарной системой 300. Несмотря на то, что в отдельных случаях может быть целесообразно увеличивать отношение сигнал-шум (SNR, Signal-to-Noise Ratio) лидарной системы 300 за счет повышения уровня мощности выходного луча 314, в по меньшей мере некоторых обстоятельствах это нежелательно. Например, в некоторых вариантах реализации изобретения может быть нежелательным повышение мощности выходного луча 314 до уровня, превышающего безопасное для зрения пороговое значение.[0102] According to some non-limiting embodiments of the present technology, the operating wavelength of the light source 302 may be in a region of the electromagnetic spectrum corresponding to light emitted by the Sun. Therefore, in some cases, sunlight may act as background noise that can mask the light signal detected by the lidar system 300. This solar background noise may lead to false detections and/or otherwise distort the results of measurements performed by the lidar system 300. Although it may be desirable in some cases to increase the signal-to-noise ratio (SNR) of the lidar system 300 by increasing the power level of the output beam 314, in at least some circumstances this is undesirable. For example, in some embodiments of the invention, it may be undesirable to increase the power of the output beam 314 to a level exceeding the eye-safe threshold.
[0103] Источник 302 света содержит импульсный лазер, способный формировать или излучать импульсы света определенной длительности. Например, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии источник 302 света может излучать импульсы с длительностью (т.е. с шириной импульса) в диапазоне от 10 пс до 100 нс. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии источник 302 света может излучать импульсы с частотой повторения в диапазоне приблизительно от 100 кГц до 5 МГц или с периодом повторения импульсов (т.е. с временным интервалом между соседними импульсами) в диапазоне приблизительно от 200 нс до 10 мкс. В общем случае источник 302 света может формировать выходной луч 314 с любой подходящей средней оптической мощностью, а выходной луч 314 может представлять собой оптические импульсы с любой энергией импульса или пиковой оптической мощностью, подходящей для данной области применения.[0103] The light source 302 comprises a pulsed laser capable of generating or emitting light pulses of a certain duration. For example, in some non-limiting embodiments of the present technology, the light source 302 can emit pulses with a duration (i.e., with a pulse width) in the range of 10 ps to 100 ns. In other non-limiting embodiments of the present technology, the light source 302 can emit pulses with a repetition rate in the range of approximately 100 kHz to 5 MHz or with a pulse repetition period (i.e., with a time interval between adjacent pulses) in the range of approximately 200 ns to 10 μs. In general, the light source 302 can generate an output beam 314 with any suitable average optical power, and the output beam 314 can be optical pulses with any pulse energy or peak optical power suitable for a given application.
[0104] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии источник 302 света может содержать один или несколько лазерных диодов, в том числе, среди прочего, лазерный диод Фабри-Перо, лазер на квантовых ямах, лазер с распределенным брэгговским отражателем (DBR, Distributed Bragg Reflector), лазер с распределенной обратной связью (DFB, Distributed FeedBack) или поверхностно-излучающий лазер с вертикальным резонатором (VCSEL, Vertical-Cavity Surface-Emitting Laser). В качестве примера, лазерный диод в источнике 302 света может представлять собой лазерный диод на основе арсенида алюминия-галлия (AlGaAs), арсенида индия-галлия (InGaAs) или арсенид-фосфида индия-галлия (InGaAsP) или любой другой подходящий лазерный диод. Также предполагается, что источник 302 света может содержать один или несколько лазерных диодов с модуляцией током для формирования оптических импульсов.[0104] In some non-limiting embodiments of the present technology, the light source 302 may comprise one or more laser diodes, including, but not limited to, a Fabry-Perot laser diode, a quantum well laser, a distributed Bragg Reflector (DBR) laser, a distributed feedback (DFB) laser, or a vertical-cavity surface-emitting laser (VCSEL). As an example, the laser diode in the light source 302 may be an aluminum gallium arsenide (AlGaAs), indium gallium arsenide (InGaAs), or indium gallium arsenide phosphide (InGaAsP) laser diode, or any other suitable laser diode. It is also contemplated that the light source 302 may comprise one or more current-modulated laser diodes for generating optical pulses.
[0105] В некоторых не имеющих ограничительного характера вариантах осуществления изобретения источник 302 света, как правило, способен излучать выходной луч 314, который является коллимированным оптическим лучом, однако предполагается, что такой луч может иметь любую расходимость, подходящую для данной области применения. В общем случае расходимость выходного луча 314 является угловой мерой увеличения поперечного размера луча (например, радиуса или диаметра луча) по мере удаления выходного луча 314 от источника 302 света или лидарной системы 300. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии выходной луч 314 может иметь по существу круглое поперечное сечение.[0105] In some non-limiting embodiments of the invention, the light source 302 is typically capable of emitting an output beam 314 that is a collimated optical beam, but it is contemplated that such a beam may have any divergence suitable for a given application. In general, the divergence of the output beam 314 is an angular measure of the increase in the transverse size of the beam (e.g., the radius or diameter of the beam) as the output beam 314 moves away from the light source 302 or the lidar system 300. In some non-limiting embodiments of the present technology, the output beam 314 may have a substantially circular cross-section.
[0106] Также предполагается, что выходной луч 314, излучаемый источником 302 света, может быть неполяризованным или случайно поляризованным, может не иметь определенной или постоянной поляризации (например, его поляризация может изменяться со временем) или может иметь определенную поляризацию (например, выходной луч 314 может иметь линейную, эллиптическую или круговую поляризацию).[0106] It is also contemplated that the output beam 314 emitted by the light source 302 may be unpolarized or randomly polarized, may have no specific or constant polarization (e.g., its polarization may change over time), or may have a specific polarization (e.g., the output beam 314 may have linear, elliptical, or circular polarization).
[0107] В по меньшей мере некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии выходной луч 314 и входной луч 316 могут быть по существу коаксиальными. Иными словами, входной луч 316 и выходной луч 314 могут по меньшей мере частично перекрываться или иметь общее направление распространения с тем, чтобы они проходили по существу по одному оптическому пути (но в противоположных направлениях). При этом в других не имеющих ограничительного характера вариантах осуществления настоящей технологии выходной луч 314 и входной луч 316 могут быть некоаксиальными или, иными словами, могут не перекрываться или не иметь общей оси распространения внутри лидарной системы 300 без отступления от существа и объема настоящей технологии.[0107] In at least some non-limiting embodiments of the present technology, the output beam 314 and the input beam 316 may be substantially coaxial. In other words, the input beam 316 and the output beam 314 may at least partially overlap or have a common propagation direction so that they travel along substantially the same optical path (but in opposite directions). However, in other non-limiting embodiments of the present technology, the output beam 314 and the input beam 316 may be non-coaxial or, in other words, may not overlap or have a common propagation axis within the lidar system 300 without departing from the spirit and scope of the present technology.
[0108] Следует отметить, что в по меньшей мере некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии источник 302 света может поворачиваться, например, на угол на 360 градусов или меньше, вокруг оси вращения (не показана) лидарной системы 300, если лидарная система 300 выполнена с возможностью вращения. Тем не менее, в других вариантах осуществления источник 302 света может быть неподвижным, даже если лидарная система 300 реализована с возможностью вращения, без отступления от существа и объема настоящей технологии.[0108] It should be noted that in at least some non-limiting embodiments of the present technology, the light source 302 may rotate, for example, by an angle of 360 degrees or less, about the rotation axis (not shown) of the lidar system 300, if the lidar system 300 is configured to rotate. However, in other embodiments, the light source 302 may be stationary, even if the lidar system 300 is implemented to rotate, without departing from the spirit and scope of the present technology.
Светорасщепляющий элементLight-splitting element
[0109] Как показано на фиг. 3, дополнительно предусмотрен светорасщепляющий элемент 304, расположенный в корпусе 330. Например, как упоминалось ранее, светорасщепляющий элемент 304 способен направлять выходной луч 314 от источника 302 света к блоку 308 сканирования. Светорасщепляющий элемент 304 также способен направлять входной луч 316, отраженный от объекта 320, к блоку 306 обнаружения для его дальнейшей обработки контроллером 310.[0109] As shown in Fig. 3, a light-splitting element 304 is further provided, located in the housing 330. For example, as mentioned earlier, the light-splitting element 304 is capable of directing the output beam 314 from the light source 302 to the scanning unit 308. The light-splitting element 304 is also capable of directing the input beam 316 reflected from the object 320 to the detection unit 306 for further processing by the controller 310.
[0110] При этом в соответствии с другими не имеющими ограничительного характера вариантами осуществления настоящей технологии, светорасщепляющий элемент 304 может расщеплять выходной луч 314 на по меньшей мере две составляющие меньшей интенсивности, в том числе на сканирующий луч (отдельно не показан) для сканирования окружающего пространства 250 лидарной системы 300 и опорный луч (отдельно не показан), который далее направляется к блоку 306 обнаружения.[0110] In other non-limiting embodiments of the present technology, the beam-splitting element 304 may split the output beam 314 into at least two components of lower intensity, including a scanning beam (not separately shown) for scanning the surrounding space 250 of the lidar system 300 and a reference beam (not separately shown), which is then directed to the detection unit 306.
[0111] Иными словами, можно утверждать, что в таких вариантах осуществления светорасщепляющий элемент 304 способен распределять интенсивность (оптическую мощность) выходного луча 314 между сканирующим лучом и опорным лучом. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии светорасщепляющий элемент 304 может распределять интенсивность выходного луча 314 между сканирующим лучом и опорным лучом в равной мере. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии светорасщепляющий элемент 304 может распределять интенсивность выходного луча 314 с любым заданным коэффициентом расщепления. Например, светорасщепляющий элемент 304 может использовать до 80% интенсивности выходного луча 314 для формирования сканирующего луча, а оставшуюся часть, составляющую до 20% интенсивности выходного луча 314, - для формирования опорного луча. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии светорасщепляющий элемент 304 может изменять коэффициент расщепления для формирования сканирующего луча (например, в диапазоне от 1% до 95% интенсивности выходного луча 314).[0111] In other words, it can be stated that in such embodiments, the light-splitting element 304 is capable of distributing the intensity (optical power) of the output beam 314 between the scanning beam and the reference beam. In some non-limiting embodiments of the present technology, the light-splitting element 304 can distribute the intensity of the output beam 314 between the scanning beam and the reference beam equally. In other non-limiting embodiments of the present technology, the light-splitting element 304 can distribute the intensity of the output beam 314 with any given splitting ratio. For example, the light-splitting element 304 can use up to 80% of the intensity of the output beam 314 to form the scanning beam, and the remaining portion, up to 20% of the intensity of the output beam 314, to form the reference beam. In some non-limiting embodiments of the present technology, the beam splitting element 304 may vary the splitting ratio to form the scanning beam (e.g., in the range of 1% to 95% of the intensity of the output beam 314).
[0112] Также следует отметить, что некоторая доля (например, до 10%) интенсивности выходного луча 314 может поглощаться материалом светорасщепляющего элемента 304 в зависимости от конструкции последнего.[0112] It should also be noted that some portion (for example, up to 10%) of the intensity of the output beam 314 may be absorbed by the material of the light-splitting element 304, depending on the design of the latter.
[0113] В зависимости от реализации лидарной системы 300, светорасщепляющий элемент 304 может быть представлен в различных формах, в том числе, среди прочего, как светорасщепляющий элемент на основе стеклянной призмы, светорасщепляющий элемент на основе полупосеребренного зеркала, светорасщепляющий элемент на основе дихроичной зеркальной призмы, волоконно-оптический светорасщепляющий элемент и т.п.[0113] Depending on the implementation of the lidar system 300, the light-splitting element 304 may be represented in various forms, including, among others, as a glass prism-based light-splitting element, a half-silvered mirror-based light-splitting element, a dichroic mirror prism-based light-splitting element, a fiber-optic light-splitting element, and the like.
[0114] Таким образом, в соответствии с не имеющими ограничительного характера вариантами осуществления настоящей технологии, открытый перечень регулируемых параметров, связанных со светорасщепляющим элементом 304, в зависимости от конкретной области его применения, может включать в себя, например, рабочий диапазон длин волн, который может варьироваться от конечного числа длин волн до более широкого светового спектра (например, от 1200 до 1600 нм), входной угол падения, наличие или отсутствие поляризации и т.п.[0114] Thus, in accordance with non-limiting embodiments of the present technology, an open list of adjustable parameters associated with the light-splitting element 304, depending on the specific area of its application, may include, for example, an operating range of wavelengths, which can vary from a finite number of wavelengths to a wider light spectrum (e.g., from 1200 to 1600 nm), an input angle of incidence, the presence or absence of polarization, etc.
[0115] В конкретном не имеющем ограничительного характера примере светорасщепляющий элемент 304 может быть реализован как волоконно-оптический светорасщепляющий элемент, выпускаемый компанией OZ Optics Ltd., 219 Westbrook Rd Ottawa, Ontario K0A 1L0, Canada (Канада). Должно быть понятно, что светорасщепляющий элемент 304 может быть реализован на базе любого другого подходящего оборудования.[0115] In a specific non-limiting example, the light-splitting element 304 may be implemented as a fiber optic light-splitting element available from OZ Optics Ltd., 219 Westbrook Rd Ottawa, Ontario K0A 1L0, Canada. It should be understood that the light-splitting element 304 may be implemented on any other suitable equipment.
Внутренние пути распространения лучейInternal paths of ray propagation
[0116] Как схематически показано на фиг. 3, лидарная система 300 имеет множество внутренних путей 312 распространения лучей, по которым распространяются выходной луч 314 (формируемый источником 302 света) и входной луч 316 (принимаемый из окружающего пространства 250). В частности, свет распространяется по внутренним путям 312 распространения лучей следующим образом: свет от источника 302 света проходит через светорасщепляющий элемент 304 к блоку 308 сканирования, а блок 308 сканирования, в свою очередь, направляет выходной луч 314 наружу в окружающее пространство 250.[0116] As schematically shown in Fig. 3, the lidar system 300 has a plurality of internal beam paths 312 along which the output beam 314 (generated by the light source 302) and the input beam 316 (received from the surrounding space 250) propagate. In particular, the light propagates along the internal beam paths 312 as follows: the light from the light source 302 passes through the beam splitting element 304 to the scanning unit 308, and the scanning unit 308, in turn, directs the output beam 314 outward into the surrounding space 250.
[0117] Входной луч 316 подобным образом проходит множество внутренних путей 312 распространения лучей к блоку 306 обнаружения. В частности, входной луч 316 направляется блоком 308 сканирования в лидарную систему 300 через светорасщепляющий элемент 304 к блоку 306 обнаружения. В некоторых вариантах реализации в лидарной системе 300 могут быть предусмотрены пути распространения лучей для прохождения входного луча 316 из окружающего пространства 250 непосредственно к блоку 306 обнаружения (минуя блок 308 сканирования).[0117] The input beam 316 similarly passes through a plurality of internal beam paths 312 to the detection unit 306. In particular, the input beam 316 is directed by the scanning unit 308 into the lidar system 300 through the beam splitting element 304 to the detection unit 306. In some embodiments, the lidar system 300 may be provided with beam paths for the input beam 316 to pass from the surrounding space 250 directly to the detection unit 306 (bypassing the scanning unit 308).
[0118] Следует отметить, что в различных не имеющих ограничительного характера вариантах осуществления настоящей технологии множество внутренних путей 312 распространения лучей может содержать самые разные оптические элементы. Например, лидарная система 300 может содержать один или несколько оптических элементов, способных изменять параметры и форму, производить фильтрацию и модификацию, а также изменять или задавать направление выходного луча 314 и/или входного луча 316. Например, лидарная система 300 может содержать линзы, зеркала, фильтры (например, полосовые или режекторные), оптические волокна, циркуляторы, светорасщепители, поляризаторы, поляризационные светорасщепители, волновые (например, полуволновые или четвертьволновые) пластины, дифракционные элементы, микроэлектромеханические элементы, коллиматорные элементы или голографические элементы в количестве одной или нескольких единиц.[0118] It should be noted that in various non-limiting embodiments of the present technology, the plurality of internal beam paths 312 may comprise a variety of optical elements. For example, the lidar system 300 may comprise one or more optical elements capable of changing the parameters and shape, filtering and modifying, and changing or setting the direction of the output beam 314 and/or the input beam 316. For example, the lidar system 300 may comprise lenses, mirrors, filters (e.g., bandpass or rejection), optical fibers, circulators, beam splitters, polarizers, polarizing beam splitters, wave (e.g., half-wave or quarter-wave) plates, diffraction elements, microelectromechanical elements, collimating elements, or holographic elements in an amount of one or more units.
[0119] Предполагается, что в по меньшей мере некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии на тех или иных внутренних путях распространения лучей из множества внутренних путей 312 распространения лучей могут совместно использоваться по меньшей мере несколько общих оптических элементов, хотя это не обязательно для всех вариантов осуществления настоящей технологии.[0119] It is contemplated that in at least some non-limiting embodiments of the present technology, at least some common optical elements may be shared among some or other of the plurality of internal beam paths 312, although this is not required for all embodiments of the present technology.
Блок сканированияScanning block
[0120] В общем случае блок 308 сканирования направляет выходной луч 314 по одному или нескольким направлениям в окружающее пространство 250. Блок 308 сканирования связан с контроллером 310. Соответственно, контроллер 310 способен управлять блоком 308 сканирования, направляя выходной луч 314 в нужном направлении и/или в соответствии с заданной схемой сканирования. В целом, в контексте настоящего описания под «схемой сканирования» подразумевается схема или траектория, по которой блок 308 сканирования направляет выходной луч 314 во время работы.[0120] In general, the scanning unit 308 directs the output beam 314 in one or more directions into the surrounding space 250. The scanning unit 308 is connected to the controller 310. Accordingly, the controller 310 is capable of controlling the scanning unit 308, directing the output beam 314 in a desired direction and/or in accordance with a predetermined scanning pattern. In general, in the context of the present description, a “scanning pattern” means a pattern or trajectory along which the scanning unit 308 directs the output beam 314 during operation.
[0121] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии контроллер 310 способен обеспечивать сканирование пространства выходным лучом 314 с помощью блока 308 сканирования в нескольких диапазонах горизонтальных и/или вертикальных углов, при этом полный диапазон углов, в котором блок 308 сканирования осуществляет сканирование пространства выходным лучом 314, в отдельных случаях называется здесь полем обзора. Предполагается, что расположение элементов, ориентация и/или угловые диапазоны могут зависеть от конкретной реализации лидарной системы 300. Поле обзора, как правило, включает в себя несколько интересующих областей, которые определяются как части поля обзора, которые могут содержать, например, представляющие интерес объекты. В некоторых вариантах реализации блок 308 сканирования может обследовать выбранную интересующую область 325. Интересующей областью 325 лидарной системы 300 может быть площадь, объем, область, угловой диапазон и/или часть (части) окружающего пространства 250, где лидарная система 300 способна выполнять сканирование и/или сбор данных.[0121] In some non-limiting embodiments of the present technology, the controller 310 is capable of scanning the space with the output beam 314 using the scanning unit 308 in several ranges of horizontal and/or vertical angles, wherein the total range of angles in which the scanning unit 308 scans the space with the output beam 314 is referred to herein in some cases as a field of view. It is contemplated that the arrangement of elements, orientation and/or angular ranges may depend on a particular implementation of the lidar system 300. The field of view typically includes several regions of interest, which are defined as portions of the field of view that may contain, for example, objects of interest. In some embodiments, the scanning unit 308 may survey a selected region of interest 325. The region of interest 325 of the lidar system 300 may be an area, a volume, a region, an angular range, and/or a portion(s) of the surrounding space 250 where the lidar system 300 is capable of performing scanning and/or data collection.
[0122] Следует отметить, что интересующая область 325 лидарной системы 300 может перекрывать, охватывать или вмещать, по меньшей мере частично, место расположения объекта 320 в окружающем пространстве 250 транспортного средства 220.[0122] It should be noted that the region of interest 325 of the lidar system 300 may overlap, encompass, or contain, at least partially, the location of the object 320 in the surrounding space 250 of the vehicle 220.
[0123] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, блок 308 сканирования может сканировать пространство выходным лучом 314 по горизонтали и/или по вертикали, а интересующая область 325 лидарной системы 300, соответственно, может быть ориентирована в горизонтальном и/или в вертикальном направлении. Например, интересующая область 325 может быть ограничена углом 45° в горизонтальном направлении и углом 45° в вертикальном направлении. В некоторых вариантах реализации оси сканирования могут иметь разную ориентацию.[0123] According to some non-limiting embodiments of the present technology, the scanning unit 308 can scan the space with the output beam 314 horizontally and/or vertically, and the region of interest 325 of the lidar system 300, accordingly, can be oriented in the horizontal and/or vertical direction. For example, the region of interest 325 can be limited by an angle of 45° in the horizontal direction and an angle of 45° in the vertical direction. In some embodiments, the scanning axes can have different orientations.
[0124] Блок 308 сканирования включает в себя первый отражающий элемент 350 и второй отражающий элемент 360. Первый отражающий элемент 350 способен перенаправлять выходной луч 314 от светорасщепляющего элемента ко второму отражающему элементу 350 при развертке выходного луча по первой оси. Второй отражающий элемент 360 способен перенаправлять выходной луч 314 от первого отражающего элемента 350 в окружающее пространство 250 (через окно 380 корпуса 330) при развертке выходного луча по второй оси. Вторая ось может быть перпендикулярна и/или ортогональна первой оси. Таким образом, перенаправление и развертка выходного луча 314 совместно первым отражающим элементом 350 и вторым отражающим элементом 360 позволяют сканировать окружающее пространство 250 транспортного средства 220 по меньшей мере по двум перпендикулярным (ортогональным) осям.[0124] The scanning unit 308 includes a first reflective element 350 and a second reflective element 360. The first reflective element 350 is capable of redirecting the output beam 314 from the light-splitting element to the second reflective element 350 when the output beam is scanned along the first axis. The second reflective element 360 is capable of redirecting the output beam 314 from the first reflective element 350 into the surrounding space 250 (through the window 380 of the housing 330) when the output beam is scanned along the second axis. The second axis can be perpendicular and/or orthogonal to the first axis. Thus, the redirection and scanning of the output beam 314 together with the first reflective element 350 and the second reflective element 360 make it possible to scan the surrounding space 250 of the vehicle 220 along at least two perpendicular (orthogonal) axes.
[0125] Можно утверждать, что блок сканирования способен сканировать окружающее пространство по двум осям. Например, первый отражающий элемент 350 может развертывать выходной луч 314 по первой оси, а второй отражающий элемент 360 - по второй оси. В одном из вариантов осуществления первая ось может быть вертикальной осью, а вторая ось - горизонтальной осью. В другом варианте осуществления первая ось может быть горизонтальной осью, а вторая ось - вертикальной осью.[0125] It can be stated that the scanning unit is capable of scanning the surrounding space along two axes. For example, the first reflective element 350 can sweep the output beam 314 along the first axis, and the second reflective element 360 along the second axis. In one embodiment, the first axis can be a vertical axis, and the second axis can be a horizontal axis. In another embodiment, the first axis can be a horizontal axis, and the second axis can be a vertical axis.
[0126] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии данный блок сканирования может дополнительно содержать еще несколько оптических и/или механических элементов для обеспечения сканирования выходным лучом. Например, блок сканирования может содержать зеркала, призмы, линзы, микроэлектромеханические элементы, пьезоэлектрические элементы, оптические волокна, делители, дифракционные элементы, коллиматорные элементы и т.п. в количестве одной или нескольких единиц. Следует отметить, что блок сканирования также может содержать один или несколько дополнительных исполнительных механизмов (отдельно не показанных), приводящих в действие по меньшей мере некоторые другие оптические элементы, например, для их вращения, наклона, поворота или перемещения под углом относительно одной или нескольких осей.[0126] In some non-limiting embodiments of the present technology, the scanning unit may further comprise several more optical and/or mechanical elements to provide scanning with the output beam. For example, the scanning unit may comprise mirrors, prisms, lenses, microelectromechanical elements, piezoelectric elements, optical fibers, splitters, diffraction elements, collimator elements, etc. in an amount of one or more units. It should be noted that the scanning unit may also comprise one or more additional actuators (not separately shown) that drive at least some other optical elements, for example, for their rotation, tilt, rotation, or movement at an angle relative to one or more axes.
[0127] Таким образом, как показано на фиг. 3, лидарная система 300 может использовать заданную схему сканирования для формирования облака точек, по существу охватывающего интересующую область 325 лидарной системы 300. Это облако точек лидарной системы 300 также может использоваться для визуализации многомерной карты объектов в окружающем пространстве 250 транспортного средства 220.[0127] Thus, as shown in Fig. 3, the lidar system 300 can use a given scanning pattern to generate a point cloud that substantially covers the region of interest 325 of the lidar system 300. This point cloud of the lidar system 300 can also be used to visualize a multidimensional map of objects in the surrounding space 250 of the vehicle 220.
Блок обнаруженияDetection Block
[0128] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, блок 306 обнаружения связан с контроллером 310 и может быть реализован множеством способов. В соответствии с настоящей технологией, блок 306 обнаружения содержит фотодетектор, но может содержать фотоприемник, оптический приемник, оптический датчик, детектор, оптический детектор, оптические волокна и т.п., не ограничиваясь ими. Как указано выше, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии блок 306 обнаружения может принимать или обнаруживать по меньшей мере часть входного луча 316 и формировать электрический сигнал, соответствующий входному лучу 316. Например, если входной луч 316 включает в себя оптический импульс, блок 306 обнаружения может формировать импульс электрического тока или напряжения, соответствующий оптическому импульсу, обнаруженному блоком 306 обнаружения.[0128] According to some non-limiting embodiments of the present technology, the detection unit 306 is coupled to the controller 310 and can be implemented in a variety of ways. According to the present technology, the detection unit 306 comprises a photodetector, but may comprise a photodetector, an optical receiver, an optical sensor, a detector, an optical detector, optical fibers, and the like, without being limited thereto. As noted above, in some non-limiting embodiments of the present technology, the detection unit 306 can receive or detect at least a portion of the input beam 316 and generate an electrical signal corresponding to the input beam 316. For example, if the input beam 316 includes an optical pulse, the detection unit 306 can generate an electrical current or voltage pulse corresponding to the optical pulse detected by the detection unit 306.
[0129] Предполагается, что в различных не имеющих ограничительного характера вариантах осуществления настоящей технологии блок 306 обнаружения может быть реализован с использованием одного или нескольких лавинных фотодиодов (APD, Avalanche Photo Diode), одного или нескольких однофотонных лавинных диодов (SPAD, Single-Photon Avalanche Diode), одного или нескольких PN-фотодиодов (т.е. фотодиодной структуры, образованной полупроводником p-типа и полупроводником n-типа), одного или несколько PIN-фотодиодов (т.е. фотодиодной структуры с нелегированной областью полупроводника с собственной проводимостью, расположенной между областями p-типа и n-типа) и т.п.[0129] It is contemplated that in various non-limiting embodiments of the present technology, the detection unit 306 may be implemented using one or more avalanche photodiodes (APD), one or more single-photon avalanche diodes (SPAD), one or more PN photodiodes (i.e., a photodiode structure formed by a p-type semiconductor and an n-type semiconductor), one or more PIN photodiodes (i.e., a photodiode structure with an undoped region of intrinsic semiconductor located between the p-type and n-type regions), and the like.
[0130] В некоторых не имеющих ограничительного характера вариантах осуществления блок 306 обнаружения также может содержать электронные схемы, выполняющие усиление, дискретизацию, фильтрацию сигнала, преобразование формы сигнала, аналого-цифровое преобразование, время-цифровое преобразование, детектирование импульсов, пороговое детектирование, детектирование переднего фронта, детектирование заднего фронта и т.п. Например, блок 306 обнаружения может содержать электронные элементы, способные преобразовывать принятый фототок (в частности, ток, создаваемый диодом APD под действием принимаемого оптического сигнала) в сигнал напряжения. Блок 306 обнаружения также может содержать дополнительные схемы для формирования аналогового или цифрового выходного сигнала, соответствующего одной или нескольким характеристикам (например, переднему фронту, заднему фронту, амплитуде, длительности и т.п.) принятого оптического импульса.[0130] In some non-limiting embodiments, the detection unit 306 may also comprise electronic circuits that perform amplification, sampling, signal filtering, waveform conversion, analog-to-digital conversion, time-to-digital conversion, pulse detection, threshold detection, leading edge detection, trailing edge detection, and the like. For example, the detection unit 306 may comprise electronic elements that are capable of converting a received photocurrent (in particular, a current generated by the APD diode under the influence of a received optical signal) into a voltage signal. The detection unit 306 may also comprise additional circuits for generating an analog or digital output signal corresponding to one or more characteristics (e.g., a leading edge, a trailing edge, an amplitude, a duration, and the like) of the received optical pulse.
[0131] Разработчики настоящей технологии учли, что фотодетектор действует, когда к нему приложено рабочее напряжение (например, напряжение обратного смещения). Значение рабочего напряжения может варьироваться, среди прочего, в зависимости от варианта реализации настоящей технологии. Разработчики настоящей технологии также учли, что рабочие параметры фотодетектора (такие как рабочее напряжение) при активном использовании лидарной системы могут ухудшаться и/или изменяться, в частности, в зависимости от влажности, температуры, перемещения, освещенности и т.д. Следовательно, для обеспечения требуемого качества данных, формируемых лидарной системой, целесообразно постоянно калибровать и/или регулировать один или несколько рабочих параметров фотодетектора.[0131] The developers of the present technology took into account that the photodetector operates when an operating voltage (e.g., a reverse bias voltage) is applied to it. The value of the operating voltage may vary, among other things, depending on the embodiment of the present technology. The developers of the present technology also took into account that the operating parameters of the photodetector (such as the operating voltage) may deteriorate and/or change during active use of the lidar system, in particular, depending on humidity, temperature, movement, illumination, etc. Therefore, in order to ensure the required quality of the data generated by the lidar system, it is advisable to constantly calibrate and/or adjust one or more operating parameters of the photodetector.
[0132] В контексте настоящей технологии значение напряжения, устанавливаемое фотодетектором в процессе калибровки в ответ на прием особого обратного светового луча, сравнивается с базовым значением напряжения. В частности, в процессе калибровки блок 308 сканирования способен перенаправлять поступающий световой луч к внутренней поверхности корпуса 330, не допуская его выхода из корпуса 330. При этом обратный световой луч отражается к фотодетектору блока 306 обнаружения от внутренней поверхности корпуса 330, а не поступает туда из окружающего пространства.[0132] In the context of the present technology, the voltage value established by the photodetector during the calibration process in response to receiving a special return light beam is compared with a base voltage value. In particular, during the calibration process, the scanning unit 308 is capable of redirecting the incoming light beam to the inner surface of the housing 330, preventing it from exiting the housing 330. In this case, the return light beam is reflected to the photodetector of the detection unit 306 from the inner surface of the housing 330, and does not enter there from the surrounding space.
[0133] Как указано выше, значение напряжения, устанавливаемое в ответ на улавливание особого обратного светового луча, сравнивается с базовым значением напряжения. В общем случае базовое значение напряжения характеризует значение напряжения, которое устанавливается фотодетектором, находящимся в калиброванном состоянии (т.е. в нормальном или базовом рабочем состоянии), в ответ на улавливание особого обратного светового луча. Таким образом, калибровка фотодетектора выполняется по разности между этими двумя значениями напряжения.[0133] As indicated above, the voltage value set in response to capturing a special return light beam is compared with a base voltage value. In general, the base voltage value characterizes the voltage value that is set by the photodetector in a calibrated state (i.e., in a normal or base operating state) in response to capturing a special return light beam. Thus, the calibration of the photodetector is performed based on the difference between these two voltage values.
[0134] Способность блока сканирования, предусмотренного в некоторых вариантах осуществления настоящей технологии, формировать особый обратный световой луч для калибровки блока обнаружения более подробно описана ниже со ссылкой на фиг. 6 и 7.[0134] The ability of the scanning unit provided in some embodiments of the present technology to generate a special return light beam for calibrating the detection unit is described in more detail below with reference to Figs. 6 and 7.
КонтроллерController
[0135] В зависимости от реализации, контроллер 310 может содержать один или несколько процессоров, специализированную интегральную схему (ASIC, Application-Specific Integrated Circuit), программируемую вентильную матрицу (FPGA, Field-Programmable Gate Array) и/или другие подходящие схемы. Контроллер 310 также может содержать физическую машиночитаемую память для хранения команд, выполняемых контроллером 310, а также данных, которые контроллер 310 может формировать на основе сигналов, полученных от других внутренних элементов лидарной системы 300, и/или сигналов, выдаваемых другим внутренним элементам лидарной системы 300. Память может содержать энергозависимые (например, ОЗУ) и/или энергонезависимые (например, флэш-память, жесткий диск) элементы. Контроллер 310 может формировать данные во время работы и сохранять их в памяти. Например, такие данные, создаваемые контроллером 310, могут быть связаны с точками данных в облаке точек лидарной системы 300.[0135] Depending on the implementation, the controller 310 may comprise one or more processors, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or other suitable circuits. The controller 310 may also comprise physical machine-readable memory for storing instructions executed by the controller 310, as well as data that the controller 310 may generate based on signals received from other internal elements of the lidar system 300 and/or signals output to other internal elements of the lidar system 300. The memory may comprise volatile (e.g., RAM) and/or non-volatile (e.g., flash memory, hard disk) elements. The controller 310 may generate data during operation and store it in the memory. For example, such data generated by the controller 310 may be associated with data points in a point cloud of the lidar system 300.
[0136] Предполагается, что в по меньшей мере некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии контроллер 310 может быть реализован аналогично электронному устройству 210 и/или компьютерной системе 100 без отступления от существа и объема настоящей технологии. В дополнение к сбору данных от блока 306 обнаружения, контроллер 310 также может выдавать управляющие сигналы для источника 302 света и блока 308 сканирования и, возможно, принимать от них данные диагностики.[0136] It is contemplated that in at least some non-limiting embodiments of the present technology, the controller 310 may be implemented similarly to the electronic device 210 and/or the computer system 100 without departing from the spirit and scope of the present technology. In addition to collecting data from the detection unit 306, the controller 310 may also output control signals for the light source 302 and the scanning unit 308 and, possibly, receive diagnostic data from them.
[0137] Как указано выше, контроллер 310 связан с источником 302 света, блоком 308 сканирования и блоком 306 обнаружения. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии контроллер 310 может принимать электрические пусковые импульсы от источника 302 света, причем каждый электрический пусковой импульс соответствует излучению оптического импульса источником 302 света. Контроллер 310 может дополнительно выдавать источнику 302 света команды, управляющий сигнал и/или пусковой сигнал, указывающие на то, когда источник 302 света должен формировать оптические импульсы, например, для выходного луча 314.[0137] As indicated above, the controller 310 is coupled to the light source 302, the scanning unit 308, and the detection unit 306. In some non-limiting embodiments of the present technology, the controller 310 can receive electrical trigger pulses from the light source 302, where each electrical trigger pulse corresponds to the emission of an optical pulse by the light source 302. The controller 310 can further provide the light source 302 with commands, a control signal, and/or a trigger signal indicating when the light source 302 should generate optical pulses, for example, for the output beam 314.
[0138] В качестве примера, контроллер 310 может выдавать электрический пусковой сигнал, содержащий электрические импульсы, чтобы источник 302 света излучал оптический импульс, представленный выходным лучом 314, в ответ на каждый импульс электрического пускового сигнала. Также предполагается, что контроллер 310 может обеспечивать изменение источником 302 света одной или нескольких характеристик выходного луча 314, создаваемого источником 302 света, таких как, среди прочего, частота, период, длительность, энергия импульса, пиковая мощность, средняя мощность и длина волны оптических импульсов.[0138] As an example, the controller 310 may output an electrical trigger signal comprising electrical pulses so that the light source 302 emits an optical pulse represented by the output beam 314 in response to each pulse of the electrical trigger signal. It is also contemplated that the controller 310 may cause the light source 302 to change one or more characteristics of the output beam 314 generated by the light source 302, such as, among other things, the frequency, period, duration, pulse energy, peak power, average power and wavelength of the optical pulses.
[0139] В соответствии с настоящей технологией контроллер 310 способен определять значение «времени пролета» оптического импульса для вычисления расстояния между лидарной системой 300 и одним или несколькими объектами в поле обзора, как описано ниже. Время пролета определяется на основе информации о времени, связанной (1) с первым моментом времени, когда оптический импульс (например, выходной луч 314) был излучен источником 302 света, и (2) со вторым моментом времени, когда часть этого оптического импульса (например, из входного луча 316) была зарегистрирована или принята блоком 306 обнаружения. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии первый момент времени может соответствовать моменту передачи контроллером 310 электрического импульса, связанного с оптическим импульсом, а второй момент времени может соответствовать моменту приема контроллером 310 от блока 306 обнаружения электрического сигнала, сформированного в ответ на прием части оптического импульса входного луча 316.[0139] According to the present technology, the controller 310 is configured to determine a "time of flight" value of an optical pulse for calculating a distance between the lidar system 300 and one or more objects in the field of view, as described below. The time of flight is determined based on time information associated with (1) a first time when an optical pulse (e.g., output beam 314) was emitted by the light source 302, and (2) a second time when a portion of this optical pulse (e.g., from the input beam 316) was detected or received by the detection unit 306. In some non-limiting embodiments of the present technology, the first time may correspond to the time when the controller 310 transmits an electrical pulse associated with the optical pulse, and the second time may correspond to the time when the controller 310 receives from the detection unit 306 an electrical signal generated in response to receiving the portion of the optical pulse of the input beam 316.
[0140] В других не имеющих ограничительного характера вариантах осуществления настоящей технологии, в которых светорасщепляющий элемент 304 способен расщеплять выходной луч 314 на сканирующий луч (не показан) и опорный луч (не показан), первый момент времени может представлять собой момент приема от блока 306 обнаружения первого электрического сигнала, сформированного в ответ на прием части опорного луча. Соответственно, в этих вариантах осуществления второй момент времени может быть определен как момент приема контроллером 310 от блока 306 обнаружения второго электрического сигнала, сформированного в ответ на прием другой части оптического импульса входного луча 316.[0140] In other non-limiting embodiments of the present technology, in which the light-splitting element 304 is capable of splitting the output beam 314 into a scanning beam (not shown) and a reference beam (not shown), the first moment in time may be the moment of receiving from the detection unit 306 a first electrical signal generated in response to receiving a portion of the reference beam. Accordingly, in these embodiments, the second moment in time may be determined as the moment of receiving by the controller 310 from the detection unit 306 a second electrical signal generated in response to receiving another portion of the optical pulse of the input beam 316.
[0141] В соответствии с настоящей технологией контроллер 310 способен определять на основе первого и второго моментов времени значение времени пролета и/или величину фазовой модуляции излученного импульса выходного луча 314. Значение времени T пролета в некотором смысле представляет собой время прохождения излученного импульса «туда и обратно», т.е. от лидарной системы 300 до объекта 320 и обратно до лидарной системы 300. Таким образом, контроллер 310 в общем случае способен определять расстояние 318 по следующей формуле:[0141] According to the present technology, the controller 310 is capable of determining, based on the first and second moments of time, the time of flight value and/or the amount of phase modulation of the emitted pulse of the output beam 314. The time of flight value T in a sense represents the time of travel of the emitted pulse “there and back”, i.e. from the lidar system 300 to the object 320 and back to the lidar system 300. Thus, the controller 310 is generally capable of determining the distance 318 according to the following formula:
(1) (1)
где D - расстояние 318, T - время пролета, а c - скорость света (приблизительно 3,0×108 м/с).where D is the distance 318, T is the time of flight, and c is the speed of light (approximately 3.0×10 8 m/s).
[0142] Как упоминалось ранее, лидарная система 300 может использоваться для определения расстояния 318 до одного или нескольких других потенциальных объектов, расположенных в окружающем пространстве 250. Производя сканирование выходным лучом 314 интересующей области 325 лидарной системы 300 в соответствии с заданной схемой сканирования, контроллер 310 способен отображать расстояния (аналогичные расстоянию 318) до соответствующих точек данных в интересующей области 325 лидарной системы 300. При этом контроллер 310, как правило, способен представлять эти поочередно получаемые точки данных (например, облака точек) в виде многомерной карты. В некоторых вариантах реализации данные, связанные с определенным временем пролета и/или с расстояниями до объектов, могут отображаться в различных информационных форматах.[0142] As mentioned earlier, the lidar system 300 can be used to determine a distance 318 to one or more other potential objects located in the surrounding space 250. By scanning the output beam 314 of the region of interest 325 of the lidar system 300 in accordance with a predetermined scanning pattern, the controller 310 is able to display distances (similar to the distance 318) to corresponding data points in the region of interest 325 of the lidar system 300. In this case, the controller 310, as a rule, is able to represent these successively obtained data points (e.g., point clouds) in the form of a multi-dimensional map. In some embodiments, data associated with a certain time of flight and/or distances to objects can be displayed in various information formats.
[0143] Например, такая многомерная карта может использоваться электронным устройством 210 для обнаружения объектов или идентификации их иным образом либо для определения формы или расстояния до потенциальных объектов в интересующей области 325 лидарной системы 300. Предполагается, что лидарная система 300 способна многократно или итеративно получать и/или формировать облака точек с любой скоростью, пригодной для данного применения.[0143] For example, such a multidimensional map may be used by the electronic device 210 to detect objects or otherwise identify them, or to determine the shape of or distance to potential objects in the region of interest 325 of the lidar system 300. It is contemplated that the lidar system 300 is capable of repeatedly or iteratively obtaining and/or generating point clouds at any rate suitable for a given application.
[0144] Следует отметить, что многомерные карты могут записываться и храниться в составе данных журнала, связанных с транспортным средством 220. Таким образом, данные облаков точек, полученные лидарными системами на транспортных средствах из парка транспортных средств, могут сохраняться для последующего использования. Кроме того, многомерные карты, полученные той или иной лидарной системой, обеспечивают определение местоположения беспилотного автомобиля во время его работы. В приведенном ниже описании поясняется, как можно определять местоположение транспортного средства 220, используя данные облаков точек, полученные лидарной системой во время работы.[0144] It should be noted that the multidimensional maps can be recorded and stored as part of the log data associated with the vehicle 220. In this way, the point cloud data obtained by the lidar systems on the vehicles in the fleet of vehicles can be stored for subsequent use. In addition, the multidimensional maps obtained by one or another lidar system provide for determining the location of the unmanned vehicle during its operation. The description below explains how the location of the vehicle 220 can be determined using the point cloud data obtained by the lidar system during operation.
Хранение данныхData storage
[0145] На фиг. 4 представлено устройство 400 хранения данных. Устройство 400 хранения данных может быть связано с сервером 235 и с электронным устройством 210 транспортного средства 220. Устройство 400 хранения данных может использоваться сервером 235 и/или электронным устройством 210 для хранения данных, собранных во время работы транспортного средства 220. Устройство 400 хранения данных может использоваться сервером 235 и/или электронным устройством 210 для выявления по меньшей мере части подлежащих обновлению сохраненных данных. Устройство 400 хранения данных может использоваться сервером 235 и/или электронным устройством 210 для извлечения данных, подлежащих использованию во время работы транспортного средства 220.[0145] Fig. 4 shows a data storage device 400. The data storage device 400 may be connected to the server 235 and to the electronic device 210 of the vehicle 220. The data storage device 400 may be used by the server 235 and/or the electronic device 210 to store data collected during operation of the vehicle 220. The data storage device 400 may be used by the server 235 and/or the electronic device 210 to identify at least a portion of the stored data to be updated. The data storage device 400 may be used by the server 235 and/or the electronic device 210 to retrieve data to be used during operation of the vehicle 220.
[0146] В некоторых вариантах осуществления настоящей технологии устройство 400 хранения данных может получать данные, собранные датчиками на множестве транспортных средств 404, например, включающем в себя сотни или тысячи транспортных средств, реализованных аналогично транспортному средству 220. Транспортные средства собирают данные с датчиков, полученные во время движения по различным маршрутам, и передают их в устройство 400 хранения данных. В связи с этим можно утверждать, что устройство 400 хранения данных может хранить данные 406 журнала для множества транспортных средств 404 (парка транспортных средств).[0146] In some embodiments of the present technology, the data storage device 400 may receive data collected by sensors on a plurality of vehicles 404, for example, including hundreds or thousands of vehicles implemented similarly to the vehicle 220. The vehicles collect data from sensors obtained during movement along various routes and transmit them to the data storage device 400. In this regard, it can be stated that the data storage device 400 may store log data 406 for a plurality of vehicles 404 (a fleet of vehicles).
[0147] В других вариантах осуществления настоящей технологии сервер 235 может использовать данные 406 журнала для создания и/или обновления представления 402 карты географического региона, в котором действует и/или действовало множество транспортных средств 404. Предполагается, что сервер 235 может формировать представление 402 карты географического региона на основе совокупной информации, полученной от множества транспортных средств 404, и сохранять представление 402 карты в устройстве 400 хранения данных.[0147] In other embodiments of the present technology, the server 235 may use the log data 406 to create and/or update a map representation 402 of a geographic region in which the plurality of vehicles 404 operate and/or have operated. It is contemplated that the server 235 may generate the map representation 402 of the geographic region based on the aggregate information received from the plurality of vehicles 404 and store the map representation 402 in the data storage device 400.
[0148] Сервер 235 способен передавать данные, характеризующие представление 402 карты, в электронные устройства, связанные с соответствующими транспортными средствами из множества транспортных средств 404. Например, если транспортное средство 220 должно двигаться по некоторому маршруту, электронное устройство 210 может предоставлять серверу 235 информацию с описанием проходимого маршрута. В ответ на это сервер 235 передает представление 402 карты (или его части) для обеспечения движения по маршруту. Предполагается, что без отступления от существа и объема настоящей технологии представление 402 карты может периодически передаваться для локального хранения в электронном устройстве 210 с целью его использования.[0148] The server 235 is capable of transmitting data characterizing the map representation 402 to the electronic devices associated with the respective vehicles of the plurality of vehicles 404. For example, if the vehicle 220 is to travel along a certain route, the electronic device 210 can provide the server 235 with information describing the route to be traveled. In response to this, the server 235 transmits the map representation 402 (or portions thereof) to ensure travel along the route. It is contemplated that, without departing from the spirit and scope of the present technology, the map representation 402 can be periodically transmitted for local storage in the electronic device 210 for the purpose of its use.
[0149] В одном из вариантов осуществления сервер 235 передает части представления 402 карты в транспортные средства в сжатом формате с тем, чтобы передаваемые данные занимали меньшую полосу пропускания канала связи. Сервер 235 может получать от различных транспортных средств информацию с описанием данных, которые локально хранятся на электронном устройстве 210. Если сервер 235 обнаруживает, что в локальной памяти транспортного средства 220 отсутствует какая-либо часть представления 402 карты, сервер 235 может передавать эту часть представления 402 карты. Если сервер 235 обнаруживает, что транспортное средство 220 уже получало эту конкретную часть представления карты, но соответствующие данные были обновлены сервером 235 после последнего получения данных транспортным средством 220, сервер 235 может передавать обновление для этой части представления 402 карты электронному устройству 210.[0149] In one embodiment, the server 235 transmits portions of the map representation 402 to the vehicles in a compressed format so that the transmitted data takes up less bandwidth of the communication channel. The server 235 can receive information from various vehicles describing data that is locally stored on the electronic device 210. If the server 235 detects that any portion of the map representation 402 is missing from the local memory of the vehicle 220, the server 235 can transmit this portion of the map representation 402. If the server 235 detects that the vehicle 220 has already received this particular portion of the map representation, but the corresponding data has been updated by the server 235 since the last time the data was received by the vehicle 220, the server 235 can transmit an update for this portion of the map representation 402 to the electronic device 210.
[0150] Следует отметить, что сервер 235 может формировать представление 402 карты на основе данных 406 журнала. Сервер 235 обновляет сформированные ранее данные карты, получая более актуальную информацию от транспортных средств, недавно передвигавшихся по маршрутам, для которых изменились данные карты. В одном из вариантов осуществления на сервере 235 могут использоваться методы сопоставления карт на основе итеративных алгоритмов ближайших точек (и их вариантов), которые обеспечивают установление связи между максимально близкими точками на различных картах облаков из данных 406 журнала, что позволяет объединять их и расширять представление карты географического региона, для которого собирались данные облаков из данных 406 журнала.[0150] It should be noted that the server 235 may generate the map representation 402 based on the log data 406. The server 235 updates the previously generated map data by receiving more current information from vehicles that have recently traveled along routes for which the map data has changed. In one embodiment, the server 235 may use map matching techniques based on iterative closest point algorithms (and their variants), which ensure that the closest points on different cloud maps from the log data 406 are associated, which allows them to be combined and expand the map representation of the geographic region for which the cloud data from the log data 406 was collected.
Компьютерные процедурыComputer procedures
[0151] На фиг. 5 представлено множество компьютерных процедур 500, которые могут выполняться по меньшей мере одним сервером 235 и электронным устройством 210.[0151] Fig. 5 shows a plurality of computer procedures 500 that can be performed by at least one server 235 and electronic device 210.
[0152] Множество компьютерных процедур 500 включает в себя алгоритм 502 обновления карты. Когда рассматриваемая часть представления 402 карты признается устаревшей, сервер 235 может получать данные наиболее актуальных облаков точек, связанные с рассматриваемой частью представления 402 карты, и использовать один или несколько методов сопоставления карт, например, на основе итеративных алгоритмов ближайших точек, для установления связи между максимально близкими точками в этих наиболее актуальных облаках точек с целью их объединения и замены рассматриваемой части представления 402 карты. В некоторых вариантах осуществления, когда значение по меньшей мере одной из двух метрик указывает на то, что часть представления 402 карты подлежит обновлению, сервер 235 может выполнять алгоритм 502 обновления карты для получения соответствующих наиболее актуальных облаков точек и запускать один или несколько методов сопоставления карт. В дополнительных вариантах осуществления, если оказывается, что наиболее актуальные облака точек были сформированы раньше заданного момента времени, алгоритм 502 обновления карты может отложить обновление до получения более актуальных облаков точек в рассматриваемой части представления 402 карты.[0152] The plurality of computer procedures 500 includes a map update algorithm 502. When a considered portion of the map representation 402 is recognized as outdated, the server 235 can receive the most current point cloud data associated with the considered portion of the map representation 402 and use one or more map matching methods, for example, based on iterative closest point algorithms, to establish a relationship between the closest points in these most current point clouds in order to combine them and replace the considered portion of the map representation 402. In some embodiments, when the value of at least one of the two metrics indicates that the portion of the map representation 402 is subject to update, the server 235 can execute the map update algorithm 502 to receive the corresponding most current point clouds and run one or more map matching methods. In further embodiments, if it appears that the most current point clouds were generated earlier than a specified time, the map update algorithm 502 may defer the update until more current point clouds are received in the considered portion of the map view 402.
[0153] Множество компьютерных процедур 500 включает в себя процедуру 502 слияния данных с датчиков. В общем случае слияние данных с датчиков представляет собой метод объединения данных, полученных из различных источников, для формирования согласованной информации. Итоговая информация может оказаться более точной, чем информация из отдельных источников. Такой метод обработки данных может быть особенно эффективен при объединении различных видов информации. Например, компьютерное зрение может быть реализовано с помощью камеры, а дополнительная информация о препятствиях и расстояниях может собираться с помощью других датчиков, например, лидарного датчика и/или датчика типа «радиолокатор». Для обобщения информации об окружающем пространстве транспортного средства 220, полученной из нескольких источников, могут использоваться один или несколько методов слияния данных с датчиков. В некоторых вариантах осуществления могут применяться начальное слияние данных с датчиков и/или конечное слияние данных с датчиков. В методах начального слияния данных с датчиков трехмерные облака точек объединяются с двумерными изображениями. При начальном слиянии данных с датчиков объединяются не результаты обнаружения, а исходные (необработанные) данные, такие как пиксели и облака точек. Можно утверждать, что при начальном слиянии данных с датчиков перед обнаружением объекта выполняется проецирование из трехмерного пространства в двумерное. Конечное слияние данных с датчиков производится после обнаружения и отслеживания объекта.[0153] The plurality of computer routines 500 include a sensor data fusion routine 502. In general, sensor data fusion is a method of combining data obtained from various sources to form consistent information. The resulting information may be more accurate than the information from the individual sources. This data processing method may be particularly effective when combining different types of information. For example, computer vision may be implemented using a camera, and additional information about obstacles and distances may be collected using other sensors, such as a lidar sensor and/or a radar sensor. One or more sensor data fusion methods may be used to summarize information about the surrounding space of the vehicle 220 obtained from multiple sources. In some embodiments, initial sensor data fusion and/or final sensor data fusion may be used. In initial sensor data fusion methods, three-dimensional point clouds are combined with two-dimensional images. Initial sensor fusion does not merge detection results, but rather raw data such as pixels and point clouds. It can be argued that initial sensor fusion performs a projection from 3D to 2D before object detection. Final sensor fusion occurs after object detection and tracking.
[0154] Множество компьютерных процедур 500 включает в себя алгоритм 750 локализации. Как описано ниже, алгоритм 750 локализации способен формировать вероятное местоположение транспортного средства 220 на основе представления 402 карты, заданного облака точек, полученного транспортным средством 220, и начального приближения текущего местоположения транспортного средства 220. В одном из вариантов осуществления алгоритм локализации 750 может применять к данным облака точек и к представлению 402 карты тот или иной итеративный алгоритм ближайших точек. В общем случае в процессе работы итеративного алгоритма ближайших точек одно облако точек (облако вершин) - контрольное или целевое - сохраняется неизменным, а другое - исходное - преобразуется таким образом, чтобы обеспечивалось его наилучшее соответствие контрольному. Алгоритм итеративно вносит в преобразование (комбинацию параллельного переноса и поворота) изменения, необходимые для сведения к минимуму метрики ошибки, которой, как правило, служит расстояние от исходного облака точек до контрольного, например, сумма квадратов разностей между координатами сопоставляемых пар. Итеративный алгоритм ближайших точек является одним из алгоритмов сопоставления трехмерных моделей, которые широко используются для «начального предположения» при строгом преобразовании.[0154] The plurality of computer procedures 500 includes a localization algorithm 750. As described below, the localization algorithm 750 is capable of generating a probable location of the vehicle 220 based on the map representation 402, a given point cloud obtained by the vehicle 220, and an initial estimate of the current location of the vehicle 220. In one embodiment, the localization algorithm 750 can apply one or another iterative closest point algorithm to the point cloud data and to the map representation 402. In general, during the operation of the iterative closest point algorithm, one point cloud (vertex cloud) - the control or target - is kept unchanged, and the other - the original - is transformed in such a way as to ensure its best match to the control. The algorithm iteratively makes the necessary changes to the transformation (a combination of translation and rotation) to minimize the error metric, which is typically the distance from the original point cloud to the reference point cloud, such as the sum of the squared differences between the coordinates of the pairs being matched. The iterative closest point algorithm is one of the 3D model matching algorithms that are widely used to "initialize" the rigorous transformation.
[0155] Множество компьютерных процедур 500 включает в себя другие алгоритмы 506 локализации. В некоторых вариантах осуществления источник данных локализации может определять вероятное местоположение транспортного средства на основе одометрии, которая представляет собой процесс оценки относительного перемещения транспортного средства с использованием данных, последовательно получаемых датчиками транспортного средства. Одометрия может использоваться в алгоритме локализации для инициализации положения транспортного средства с целью выполнения алгоритмом локализации поиска локальных объектов. Кроме того, одометрия может использоваться в алгоритме локализации для оценки скорости и ускорения автомобиля путем экстраполяции положения транспортного средства в периоды между моментами снятия показаний датчиков, которые могут использоваться при локализации.[0155] The plurality of computer routines 500 include other localization algorithms 506. In some embodiments, the localization data source may determine a probable location of the vehicle based on odometry, which is the process of estimating the relative movement of the vehicle using data sequentially obtained by sensors of the vehicle. Odometry may be used in the localization algorithm to initialize the position of the vehicle for the purpose of performing a search for local objects by the localization algorithm. In addition, odometry may be used in the localization algorithm to estimate the speed and acceleration of the car by extrapolating the position of the vehicle in periods between the moments of taking sensor readings that can be used in localization.
[0156] В дополнительных вариантах осуществления источники данных локализации для определения местоположения транспортного средства могут включать в себя визуальную одометрию. В различных вариантах визуальной одометрии местоположение транспортного средства определяется путем сравнения различных признаков, выделенных на изображениях с камеры, с признаками на карте, в частности, с рельефом поверхности, характерными признаками изображений, контурами и т.д.[0156] In additional embodiments, the sources of localization data for determining the location of the vehicle may include visual odometry. In various embodiments of visual odometry, the location of the vehicle is determined by comparing various features highlighted in camera images with features on a map, in particular, with surface relief, characteristic features of images, contours, etc.
[0157] В других вариантах осуществления в качестве источников данных локализации могут использоваться один или несколько методов лидарной локализации. Предполагается, что источником данных локализации может служить локализация на основе признаков, в которой производится выделение признаков с использованием данных с датчиков, таких как изображения с камеры, а лидар сканирует эти признаки и сравнивает их с признаками на одном или нескольких представлениях карты региона, чтобы определять местоположение транспортного средства.[0157] In other embodiments, one or more lidar localization methods may be used as sources of localization data. It is contemplated that the source of localization data may be feature-based localization, in which features are extracted using sensor data, such as camera images, and the lidar scans these features and compares them with features on one or more representations of a map of a region to determine the location of the vehicle.
[0158] В по меньшей мере некоторых вариантах осуществления настоящей технологии источником данных локализации для определения местоположения транспортного средства могут быть методы лидарной одометрии. В различных вариантах лидарной одометрии применяется итеративный алгоритм ближайших точек с попарным сравнением или итеративный алгоритм ближайших точек с многократным сканированием. Различные варианты всех указанных выше методов реализуются путем замены тех или иных параметров, таких как предельные количества итераций, радиус поиска, весовые коэффициенты и т.д.[0158] In at least some embodiments of the present technology, the source of localization data for determining the location of the vehicle may be lidar odometry methods. In various embodiments of lidar odometry, an iterative closest point algorithm with pairwise comparison or an iterative closest point algorithm with multiple scans is used. Various embodiments of all of the above methods are implemented by replacing certain parameters, such as the maximum number of iterations, the search radius, weighting factors, etc.
[0159] Источники данных локализации, описанные выше неисчерпывающим образом, могут дополнительно включать в себя другие источники данных локализации, в которых используются локализация на основе глобальной навигационной спутниковой системы (GNSS, Global Navigation Satellite System) и одометрия на основе инерциального измерительного блока. В различных вариантах этих методов применяются разнообразные методы интегрирования и методы коррекции.[0159] The localization data sources described above in a non-exhaustive manner may further include other localization data sources that utilize GNSS-based localization and inertial measurement unit-based odometry. Various integration methods and correction methods are used in various embodiments of these methods.
[0160] Множество компьютерных процедур 500 включает в себя алгоритм 650 моделирования. Как более подробно описано ниже, алгоритм 650 моделирования способен формировать имитационные облака точек, используя облака точек, извлеченные из данных 406 журнала. Алгоритм 650 моделирования предназначен для формирования ухудшенного варианта исходного облака точек. Ухудшение, вызываемое алгоритмом 650 моделирования, призвано отражать влияние различных условий, в которых может действовать транспортное средство. В одном из примеров ухудшение может отражать влияние дорожной обстановки, например, нахождения рядом крупногабаритных транспортных средств, создающих помехи для лидарного датчика. В другом примере ухудшение может отражать влияние условий окружающей среды, таких как дождь, грязь и/или снег, препятствующих работе лидарной системы.[0160] The plurality of computer routines 500 include a modeling algorithm 650. As described in more detail below, the modeling algorithm 650 is capable of generating simulated point clouds using point clouds extracted from the log data 406. The modeling algorithm 650 is designed to generate a degraded version of the original point cloud. The degradation caused by the modeling algorithm 650 is designed to reflect the influence of various conditions in which the vehicle may operate. In one example, the degradation may reflect the influence of the road environment, such as the presence of large vehicles nearby that interfere with the lidar sensor. In another example, the degradation may reflect the influence of environmental conditions, such as rain, mud and/or snow, that interfere with the operation of the lidar system.
[0161] Множество компьютерных процедур 500 включает в себя вычисление первой метрики 508 и второй метрики 950. В общем случае сервер 235 и/или электронное устройство 210 могут использовать первую метрику 508 и/или вторую метрику 950, чтобы определять, является ли часть представления карты неактуальной. Дополнительно или в качестве альтернативы, сервер 235 и/или электронное устройство 210 могут использовать первую метрику 508 и/или вторую метрику 950, чтобы определять, являются ли результаты работы алгоритма 750 локализации в той или иной мере «достоверными» в этой части представления 402 карты. Как более подробно описано ниже, сервер 235 может обучать алгоритм машинного обучения на основе результатов, полученных с помощью первой метрики 508, и использовать такой обученный алгоритм машинного обучения в качестве второй метрики 950.[0161] The plurality of computer procedures 500 include calculating a first metric 508 and a second metric 950. In general, the server 235 and/or the electronic device 210 may use the first metric 508 and/or the second metric 950 to determine whether a portion of the map representation is out of date. Additionally or alternatively, the server 235 and/or the electronic device 210 may use the first metric 508 and/or the second metric 950 to determine whether the results of the localization algorithm 750 are somewhat "trustworthy" in this portion of the map representation 402. As described in more detail below, the server 235 may train a machine learning algorithm based on the results obtained using the first metric 508 and use such trained machine learning algorithm as the second metric 950.
[0162] В общем случае этот алгоритм машинного обучения первоначально создается (или обучается) с использованием обучающих данных и целей обучения. На итерации обучения в алгоритм машинного обучения вводятся исходные данные для обучения и алгоритм формирует соответствующий прогноз. Затем сервер 106 может в некотором смысле «настраивать» алгоритм машинного обучения в результате сравнения прогноза с целью обучения применительно к исходным данным для обучения. Например, такая настройка может производиться сервером 106 с использованием одного или нескольких методов машинного обучения, таких как, среди прочего, метод обратного распространения. Соответственно, после большого количества итераций обучения алгоритм машинного обучения «настраивается» таким образом, чтобы его прогнозы, формируемые на основе введенных данных, были близки к целям обучения. В некоторых вариантах осуществления обученный алгоритм машинного обучения может служить метрикой, используемой для определения подлежащей обновлению части представления 402 карты. В некоторых вариантах осуществления обученный алгоритм машинного обучения может служить метрикой, используемой для того, чтобы определять, являются ли текущие результаты работы алгоритма 750 локализации достаточно достоверными для использования во время работы транспортного средства 220.[0162] In general, this machine learning algorithm is initially created (or trained) using training data and training objectives. In a training iteration, the machine learning algorithm is fed with initial training data and the algorithm generates a corresponding prediction. The server 106 may then, in a sense, "tune" the machine learning algorithm as a result of comparing the prediction with the training objective with respect to the initial training data. For example, such tuning may be performed by the server 106 using one or more machine learning methods, such as, among others, the back propagation method. Accordingly, after a large number of training iterations, the machine learning algorithm is "tuned" such that its predictions, generated based on the input data, are close to the training objectives. In some embodiments, the trained machine learning algorithm may serve as a metric used to determine which portion of the map view 402 to update. In some embodiments, the trained machine learning algorithm may serve as a metric used to determine whether the current results of the localization algorithm 750 are reliable enough to be used during operation of the vehicle 220.
[0163] Ниже приводится более подробное описание того, как сервер 235 способен использовать первую метрику 508 для определения подлежащей обновлению части представления 402 карты.[0163] Below is a more detailed description of how the server 235 is able to use the first metric 508 to determine the portion of the map view 402 to be updated.
Предыдущие траектории и ухудшение данныхPrevious trajectories and data degradation
[0164] Сервер 235 способен использовать данные 604 журнала транспортного средства 602 (беспилотного автомобиля в парке) для формирования в процессе моделирования траектории 606 беспилотного автомобиля 602 на представлении 402 карты. Следует отметить, что транспортное средство 602 действовало в географическом регионе, который охватывается представлением 402 карты. Таким образом, сервер 235 способен определять предыдущую траекторию транспортного средства 602 и использовать ее в качестве траектории 606. Соответственно, траектория 606 может называться предыдущей траекторией 606. Сервер 235 способен извлекать из данных 604 журнала множество облаков 610 точек, которые представляют собой облака точек, полученные лидарной системой транспортного средства 602 на предыдущей траектории 606.[0164] The server 235 is capable of using the log data 604 of the vehicle 602 (the unmanned vehicle in the fleet) to form, in the process of modeling, a trajectory 606 of the unmanned vehicle 602 on the map representation 402. It should be noted that the vehicle 602 operated in a geographic region that is covered by the map representation 402. Thus, the server 235 is capable of determining the previous trajectory of the vehicle 602 and using it as the trajectory 606. Accordingly, the trajectory 606 can be called the previous trajectory 606. The server 235 is capable of extracting from the log data 604 a plurality of point clouds 610, which are point clouds obtained by the lidar system of the vehicle 602 on the previous trajectory 606.
[0165] Следует отметить, что облака точек из множества облаков 610 точек связаны с дополнительными данными 604 журнала. Например, облако 612 точек связано с дополнительными данными 622, облако 614 точек - с дополнительными данными 624, а облако 616 точек - с дополнительными данными 626. Дополнительные данные могут включать в себя метки времени, представляющие моменты времени, в которые было получено соответствующее облако точек, данные системы GPS, приблизительно характеризующие местоположение транспортного средства 602 на момент получения соответствующего облака точек, кинематические данные или данные одометрии (скалярную и векторную скорость, ускорение и т.д.) транспортного средства 602 на момент получения соответствующего облака точек и т.п.[0165] It should be noted that the point clouds of the plurality of point clouds 610 are associated with additional log data 604. For example, the point cloud 612 is associated with additional data 622, the point cloud 614 is associated with additional data 624, and the point cloud 616 is associated with additional data 626. The additional data may include time stamps representing the moments in time at which the corresponding point cloud was obtained, GPS data approximately characterizing the location of the vehicle 602 at the time of obtaining the corresponding point cloud, kinematic data or odometry data (scalar and vector velocity, acceleration, etc.) of the vehicle 602 at the time of obtaining the corresponding point cloud, and the like.
[0166] Сервер 235 способен выбирать одно или несколько (например, последовательность) облаков точек из множества облаков 610 точек и формировать на их основе одно или несколько имитационных облаков точек. Например, сервер 235 способен формировать имитационное облако 654 точек на основе заданного облака точек, связанного с предыдущей траекторией 606. Для этого сервер 235 способен выполнять процедуру 650 моделирования применительно к облаку 614 точек для формирования имитационного облака 654 точек.[0166] The server 235 is capable of selecting one or more (for example, a sequence) point clouds from the plurality of point clouds 610 and generating one or more simulation point clouds based on them. For example, the server 235 is capable of generating a simulation point cloud 654 based on a given point cloud associated with a previous trajectory 606. To do this, the server 235 is capable of performing a modeling procedure 650 with respect to the point cloud 614 to generate the simulation point cloud 654.
[0167] Следует отметить, что имитационное облако 654 точек может представлять собой ухудшенный вариант облака 614 точек. В некоторых вариантах осуществления процедура 650 ухудшения может обеспечивать удаление из облака 614 точек по меньшей мере набора точек. Удаление набора точек может имитировать дорожную обстановку, в которой крупный объект скрывает часть окружающего пространства от лидарной системы.[0167] It should be noted that the simulated point cloud 654 may be a degraded version of the point cloud 614. In some embodiments, the degrading procedure 650 may provide for removing at least a set of points from the point cloud 614. Removing a set of points may simulate a road environment in which a large object obscures part of the surrounding space from the lidar system.
[0168] В других вариантах осуществления процедура 650 моделирования может использоваться не для моделирования влияния дорожной обстановки на облако 614 точек, а для моделирования влияния одного или нескольких условий окружающей среды, таких как дождь, снег и/или грязь, препятствующих работе лидарной системы. Для этого в некоторых вариантах осуществления сервер 235 при выполнении процедуры 650 моделирования способен применять к облаку 614 точек фильтр, который вносит шум в облако 614 точек. Например, функция шума может определяться на основе данных журнала, представляющих облака точек, полученные в конкретной дорожной обстановке и/или в конкретных условиях окружающей среды.[0168] In other embodiments, the modeling procedure 650 may be used not to model the effect of the road situation on the point cloud 614, but to model the effect of one or more environmental conditions, such as rain, snow, and/or dirt, that interfere with the operation of the lidar system. To this end, in some embodiments, the server 235, when performing the modeling procedure 650, is capable of applying a filter to the point cloud 614 that introduces noise into the point cloud 614. For example, the noise function may be determined based on log data representing point clouds obtained in a specific road situation and/or in specific environmental conditions.
Алгоритм локализацииLocalization algorithm
[0169] На фиг. 7 представлены два примера реализации сервером 235 алгоритма 750 локализации. В первом примере сервер 235 способен передавать в алгоритм 750 локализации облако 614 точек и начальное приближение 710 местоположения транспортного средства 220 для метки времени, связанной с облаком 614 точек. Следует отметить, что алгоритм 750 локализации также имеет доступ к представлению 402 карты. Благодаря этому алгоритм 750 локализации способен формировать вероятное местоположение 780. Следует также отметить, что вероятное местоположение 780 связано с меткой времени облака 614 точек и рассматриваемой частью представления 402 карты, представляющей текущее окружающее пространство транспортного средства 220 на момент получения облака 614 точек. Предполагается, что вероятное местоположение, сформированное алгоритмом 750 локализации, может включать в себя вероятное положение транспортного средства 220 и вероятную ориентацию транспортного средства 220.[0169] Fig. 7 shows two examples of the implementation of the localization algorithm 750 by the server 235. In the first example, the server 235 is capable of transmitting to the localization algorithm 750 a point cloud 614 and an initial approximation 710 of the location of the vehicle 220 for a timestamp associated with the point cloud 614. It should be noted that the localization algorithm 750 also has access to the map representation 402. Due to this, the localization algorithm 750 is capable of generating a probable location 780. It should also be noted that the probable location 780 is associated with a timestamp of the point cloud 614 and the considered portion of the map representation 402 representing the current surrounding space of the vehicle 220 at the time of receiving the point cloud 614. It is assumed that the probable location generated by the localization algorithm 750 can include a probable position of the vehicle 220 and a probable orientation of the vehicle 220.
[0170] В некоторых вариантах осуществления алгоритм 750 локализации может инициировать определение вероятного местоположения 780 за счет предварительного выбора положения облака 614 точек относительно представления 402 карты на основе начального приближения 710, а также может итеративно перемещать облако 614 точек и, соответственно, итеративно корректировать местоположение, выдаваемое алгоритмом 750 локализации.[0170] In some embodiments, the localization algorithm 750 may initiate the determination of a probable location 780 by pre-selecting a position of the point cloud 614 relative to the map representation 402 based on the initial approximation 710, and may also iteratively move the point cloud 614 and, accordingly, iteratively adjust the location returned by the localization algorithm 750.
[0171] Во втором примере сервер 235 способен передавать в алгоритм 750 локализации имитационное облако 654 точек и начальное приближение 710. Благодаря этому алгоритм 750 локализации способен формировать вероятное местоположение 790. Следует отметить, что вероятное местоположение 790 связано с меткой времени облака 614 точек и рассматриваемой частью представления 402 карты, представляющей текущее окружающее пространство транспортного средства 220 на момент получения облака 614 точек.[0171] In a second example, the server 235 is capable of transmitting to the localization algorithm 750 a simulated point cloud 654 and an initial approximation 710. As a result, the localization algorithm 750 is capable of generating a probable location 790. It should be noted that the probable location 790 is associated with a timestamp of the point cloud 614 and the considered portion of the map representation 402 representing the current surrounding space of the vehicle 220 at the time of receiving the point cloud 614.
[0172] В некоторых вариантах осуществления сервер 235 способен использовать наряду с имитационным облаком точек или вместо него другое облако точек из данных журнала другого беспилотного автомобиля в парке. Например, сервер 235 способен извлекать одно или несколько облаков точек, связанных с местоположением, в котором лидарной системой было получено облако 614 точек. Таким образом, сервер 235 может использовать другое облако точек, полученное другой лидарной системой на другом беспилотном автомобиле в парке.[0172] In some embodiments, the server 235 is capable of using, in addition to or instead of the simulated point cloud, another point cloud from the log data of another unmanned vehicle in the fleet. For example, the server 235 is capable of retrieving one or more point clouds associated with the location at which the point cloud 614 was obtained by the lidar system. Thus, the server 235 can use another point cloud obtained by another lidar system on another unmanned vehicle in the fleet.
[0173] В некоторых вариантах осуществления настоящей технологии сервер 235 способен формировать множество вероятных местоположений, связанных с меткой времени облака 614 точек на предыдущей траектории 606. Одно из таких вероятных местоположений может частично формироваться на основе облака 614 точек, другое может быть частично основано на имитационном облаке 654 точек, еще одно может быть частично основано на другом имитационном облаке точек (отражающем влияние каких-либо условий, не проявившихся в имитационном облаке 654 точек), и еще одно может быть частично основано на облаке точек, полученном другой лидарной системой на другом транспортном средстве в то время, когда оно находилось в данном местоположении.[0173] In some embodiments of the present technology, the server 235 is capable of generating a plurality of probable locations associated with a time stamp of the point cloud 614 on the previous trajectory 606. One of such probable locations may be partially generated based on the point cloud 614, another may be partially based on the simulated point cloud 654, another may be partially based on another simulated point cloud (reflecting the influence of any conditions not manifested in the simulated point cloud 654), and yet another may be partially based on a point cloud obtained by another lidar system on another vehicle at the time when it was at this location.
[0174] В дополнительных вариантах осуществления множество вероятных местоположений может формироваться аналогичным образом для ряда меток времени на предыдущей траектории 606. Например, первое множество вероятных местоположений может формироваться для первой метки времени, второе множество вероятных местоположений - для второй метки времени, третье множество вероятных местоположений - для третьей метки времени и т.д.[0174] In further embodiments, a plurality of probable locations may be generated in a similar manner for a number of timestamps on the previous trajectory 606. For example, a first plurality of probable locations may be generated for a first timestamp, a second plurality of probable locations for a second timestamp, a third plurality of probable locations for a third timestamp, and so on.
[0175] Сервер 235 способен применять первую метрику 508 ко множеству вероятных местоположений, связанных с меткой времени и местоположением на представлении 402 карты. В контексте настоящей технологии первая метрика 508 может определять параметр сходимости на основе множества вероятных местоположений и соотносить его с местоположением на представлении карты.[0175] The server 235 is capable of applying the first metric 508 to a plurality of probable locations associated with the timestamp and the location on the map view 402. In the context of the present technology, the first metric 508 can determine a convergence parameter based on the plurality of probable locations and correlate it with a location on the map view.
[0176] Как подробно описано ниже, в зависимости от параметра сходимости, сервер 235 может принимать решение о том, что рассматриваемая часть представления 402 карты, содержащая местоположение, нуждается в обновлении. Также предполагается, что сервер 235 может определять параметры сходимости для последовательности меток времени (например, последовательности местоположений в рассматриваемой части представления карты). Параметры сходимости для последовательности меток времени на предыдущей траектории 606 в совокупности могут использоваться для определения необходимости обновления рассматриваемой части представления 402 карты, содержащей последовательность местоположений.[0176] As described in detail below, depending on the convergence parameter, the server 235 may decide that the considered portion of the map representation 402 containing the location needs to be updated. It is also contemplated that the server 235 may determine convergence parameters for a sequence of timestamps (for example, a sequence of locations in the considered portion of the map representation). The convergence parameters for a sequence of timestamps on the previous trajectory 606 may be used in combination to determine whether the considered portion of the map representation 402 containing the sequence of locations needs to be updated.
Метрика сходимостиConvergence metric
[0177] На фиг. 8 представлены два примера использования первой метрики 508 с целью определения параметра сходимости для множества вероятных местоположений.[0177] Fig. 8 shows two examples of using the first metric 508 to determine a convergence parameter for a set of probable locations.
[0178] В первом примере предполагается, что множество вероятных местоположений содержит четыре вероятных местоположения, первое из которых включает в себя первое вероятное положение 801 и первую вероятную ориентацию 841, второе - второе вероятное положение 802 и вторую вероятную ориентацию 842, третье - третье вероятное положение 803 и третью вероятную ориентацию 843 и четвертое - четвертое вероятное положение 804 и четвертую вероятную ориентацию 844.[0178] In the first example, it is assumed that the set of probable locations comprises four probable locations, the first of which includes the first probable position 801 and the first probable orientation 841, the second - the second probable position 802 and the second probable orientation 842, the third - the third probable position 803 and the third probable orientation 843, and the fourth - the fourth probable position 804 and the fourth probable orientation 844.
[0179] Сервер 235 может применять первую метрику 508 для определения размера наименьшей окружности, охватывающей вероятные положения 801, 802, 803 и 804. Кроме того, сервер 235 может сравнивать радиус такой наименьшей окружности с заданным радиусом 810. При этом можно утверждать, что сервер 235, применяя первую метрику 508, способен определять, охватываются ли вероятные положения 801, 802, 803 и 804 окружностью 815 заданного радиуса 810.[0179] The server 235 may apply the first metric 508 to determine the size of the smallest circle that encompasses the probable positions 801, 802, 803 and 804. In addition, the server 235 may compare the radius of such smallest circle with the given radius 810. In this case, it can be stated that the server 235, applying the first metric 508, is able to determine whether the probable positions 801, 802, 803 and 804 are covered by the circle 815 of the given radius 810.
[0180] Также можно утверждать, что окружность 815 представляет собой окружность заданного радиуса с центром в заданном местоположении. В некоторых вариантах осуществления заданным местоположением может быть истинное местоположение транспортного средства на предыдущей траектории, связанное с указанной меткой времени. В других вариантах осуществления заданное положение может отличаться от истинного положения. Можно утверждать, что цель применения первой метрики 508 состоит в том, чтобы определять, «сходятся» ли вероятные положения, сформированные алгоритмом 750 локализации, внутри окружности заданного радиуса 810. Также можно утверждать, что способность алгоритма 750 локализации формировать вероятные положения, близкие к истинному положению, имеет меньшее значение, чем способность алгоритма локализации формировать непротиворечивые вероятные положения при использовании имитационных или ухудшенных облаков точек.[0180] It can also be argued that the circle 815 is a circle of a given radius centered at a given location. In some embodiments, the given location may be the true location of the vehicle on a previous trajectory associated with the specified time stamp. In other embodiments, the given position may differ from the true position. It can be argued that the purpose of applying the first metric 508 is to determine whether the probable positions generated by the localization algorithm 750 "converge" within the circle of the given radius 810. It can also be argued that the ability of the localization algorithm 750 to generate probable positions close to the true position is of less importance than the ability of the localization algorithm to generate consistent probable positions when using simulated or degraded point clouds.
[0181] Сервер 235 может применять первую метрику 508 для определения размера наименьшего углового сектора, охватывающего вероятные ориентации 841, 842, 843 и 844. Кроме того, сервер 235 может сравнивать угол такого наименьшего сектора с заданным углом 850. При этом можно утверждать, что сервер 235, применяя первую метрику 508, способен определять, охватываются ли вероятные ориентации 841, 842, 843 и 844 сектором 855 с заданным углом 850.[0181] The server 235 may apply the first metric 508 to determine the size of the smallest angular sector that covers the probable orientations 841, 842, 843 and 844. In addition, the server 235 may compare the angle of such smallest sector with the given angle 850. In this case, it can be stated that the server 235, applying the first metric 508, is able to determine whether the probable orientations 841, 842, 843 and 844 are covered by the sector 855 with the given angle 850.
[0182] Можно утверждать, что цель применения первой метрики 508 состоит в том, чтобы определять, «сходятся» ли вероятные ориентации, сформированные алгоритмом 750 локализации, в пределах заданного угла 850. Также можно утверждать, что способность алгоритма 750 локализации формировать вероятные ориентации, близкие к истинной ориентации, имеет меньшее значение, чем способность алгоритма 750 локализации формировать непротиворечивые вероятные ориентации при использовании имитационных или ухудшенных облаков точек.[0182] It may be argued that the purpose of applying the first metric 508 is to determine whether the probable orientations generated by the localization algorithm 750 “converge” within a given angle 850. It may also be argued that the ability of the localization algorithm 750 to generate probable orientations that are close to the true orientation is of less importance than the ability of the localization algorithm 750 to generate consistent probable orientations when using simulated or degraded point clouds.
[0183] В контексте данного первого примера можно утверждать, что параметр сходимости, заданный первой метрикой 508, указывает на способность алгоритма 750 локализации формировать сходящиеся варианты местоположения в рассматриваемой части представления карты.[0183] In the context of this first example, it can be argued that the convergence parameter defined by the first metric 508 indicates the ability of the localization algorithm 750 to generate convergent location options in the considered part of the map representation.
[0184] Во втором примере предполагается, что множество вероятных местоположений содержит четыре вероятных местоположения, первое из которых включает в себя пятое вероятное положение 821 и пятую вероятную ориентацию 861, второе - шестое вероятное положение 832 и шестую вероятную ориентацию 862, третье - седьмое вероятное положение 833 и седьмую вероятную ориентацию 863 и четвертое - восьмое вероятное положение 834 и восьмую вероятную ориентацию 864.[0184] In the second example, it is assumed that the set of probable locations comprises four probable locations, the first of which includes the fifth probable position 821 and the fifth probable orientation 861, the second the sixth probable position 832 and the sixth probable orientation 862, the third the seventh probable position 833 and the seventh probable orientation 863, and the fourth the eighth probable position 834 and the eighth probable orientation 864.
[0185] Сервер 235 может применять первую метрику 508 для определения размера наименьшей окружности, охватывающей вероятные положения 831, 832, 833 и 834. Кроме того, сервер 235 может сравнивать радиус такой наименьшей окружности с заданным радиусом 810. При этом можно утверждать, что сервер 235, применяя первую метрику 508, способен определять, охватываются ли вероятные положения 831, 832, 833 и 834 окружностью 815 заданного радиуса 810.[0185] The server 235 may apply the first metric 508 to determine the size of the smallest circle that encompasses the probable positions 831, 832, 833 and 834. In addition, the server 235 may compare the radius of such smallest circle with the given radius 810. In this case, it can be stated that the server 235, applying the first metric 508, is able to determine whether the probable positions 831, 832, 833 and 834 are covered by the circle 815 of the given radius 810.
[0186] Можно утверждать, что цель применения первой метрики 508 состоит в том, чтобы определять, «сходятся» ли вероятные положения, сформированные алгоритмом 750 локализации, внутри окружности с заданным радиусом 810. В контексте второго примера можно утверждать, что вероятные положения 831, 832, 833 и 834 не сходятся внутри окружности с заданным радиусом 810, но сходятся внутри окружности с заданным радиусом 820, то есть охватываются окружностью 825 (большего размера).[0186] It can be argued that the purpose of applying the first metric 508 is to determine whether the probable positions generated by the localization algorithm 750 “converge” within a circle with a given radius 810. In the context of the second example, it can be argued that the probable positions 831, 832, 833 and 834 do not converge within a circle with a given radius 810, but converge within a circle with a given radius 820, that is, they are covered by a circle 825 (of a larger size).
[0187] Сервер 235 может применять первую метрику 508 для определения размера наименьшего сектора, охватывающего вероятные ориентации 861, 862, 863 и 864. Кроме того, сервер 235 может сравнивать угол такого наименьшего сектора с заданным углом 850. При этом можно утверждать, что сервер 235, применяя первую метрику 508, способен определять, охватываются ли вероятные ориентации 861, 862, 863 и 864 сектором 855 с заданным углом 850.[0187] The server 235 may apply the first metric 508 to determine the size of the smallest sector that covers the probable orientations 861, 862, 863 and 864. In addition, the server 235 may compare the angle of such smallest sector with the given angle 850. In this case, it can be stated that the server 235, applying the first metric 508, is able to determine whether the probable orientations 861, 862, 863 and 864 are covered by the sector 855 with the given angle 850.
[0188] Также можно утверждать, что цель применения первой метрики 508 состоит в том, чтобы определять, «сходятся» ли вероятные ориентации, сформированные алгоритмом 750 локализации, внутри заданного угла 850. В контексте второго примера можно утверждать, что вероятные ориентации 861, 862, 863 и 864 не сходятся внутри заданного угла 850.[0188] It can also be argued that the purpose of applying the first metric 508 is to determine whether the probable orientations generated by the localization algorithm 750 “converge” within the given angle 850. In the context of the second example, it can be argued that the probable orientations 861, 862, 863 and 864 do not converge within the given angle 850.
[0189] В контексте второго примера также можно утверждать, что параметр сходимости, заданный первой метрикой 508, служит признаком того, что алгоритм 750 локализации формирует в рассматриваемой части представления карты варианты местоположения, которые расходятся и/или не сходятся в пределах одного или нескольких заданных значений (одного или нескольких радиусов и/или одного или нескольких углов).[0189] In the context of the second example, it can also be argued that the convergence parameter specified by the first metric 508 serves as an indication that the localization algorithm 750 generates location options in the considered part of the map representation that diverge and/or do not converge within one or more specified values (one or more radii and/or one or more angles).
[0190] В некоторых вариантах осуществления настоящей технологии сервер 235 на основе параметра, заданного первой метрикой 508, может определять, нуждается ли в обновлении рассматриваемая часть представления 402 карты. Иными словами, можно утверждать, что если вероятные местоположения, сформированные для метки времени в рассматриваемой части представления 402 карты, не сходятся в пределах заданного значения, влияние устаревшей части представления 402 карты сказывается на результатах работы алгоритма 750 локализации. Таким образом, результат применения первой метрики 508 может служить признаком необходимости обновления соответствующей части представления 402 карты.[0190] In some embodiments of the present technology, the server 235, based on the parameter specified by the first metric 508, can determine whether the considered portion of the map representation 402 needs to be updated. In other words, it can be stated that if the probable locations generated for the timestamp in the considered portion of the map representation 402 do not converge within a specified value, the effect of the outdated portion of the map representation 402 affects the results of the localization algorithm 750. Thus, the result of applying the first metric 508 can serve as an indication of the need to update the corresponding portion of the map representation 402.
[0191] Сервер 235 способен выполнять обновление рассматриваемой части представления карты. Как указано выше, сервер 235 способен получать данные наиболее актуальных облаков точек, связанные с рассматриваемой частью представления 402 карты, и использовать один или несколько методов сопоставления карт, например, на основе итеративных алгоритмов ближайших точек, для установления связи между максимально близкими точками в этих наиболее актуальных облаках точек с целью их объединения и замены рассматриваемой части представления 402 карты. В дополнительных вариантах осуществления, если оказывается, что наиболее актуальные облака точек были сформированы раньше заданного момента времени, алгоритм 502 обновления карты может отложить обновление до получения более актуальных облаков точек в рассматриваемой части представления 402 карты.[0191] The server 235 is capable of updating the considered portion of the map representation. As indicated above, the server 235 is capable of receiving the most current point cloud data associated with the considered portion of the map representation 402 and using one or more map matching methods, for example, based on iterative closest point algorithms, to establish a relationship between the closest possible points in these most current point clouds for the purpose of merging them and replacing the considered portion of the map representation 402. In additional embodiments, if it turns out that the most current point clouds were generated earlier than a specified point in time, the map update algorithm 502 can postpone the update until more current point clouds are received in the considered portion of the map representation 402.
Вторая метрикаThe second metric
[0192] Как указано выше, сервер 235 способен определять в процессе обучения вторую метрику 950 на основе результатов применения первой метрики 508. На фиг. 9 представлены итерация 991 обучения машинного алгоритма обучения и итерация 992 использования машинного алгоритма обучения. После обучения алгоритма машинного обучения этот алгоритм может использоваться в качестве второй метрики 950. Согласно приведенному ниже описанию итерация 992 использования алгоритма машинного обучения может выполняться «в автономном режиме» на сервере 235 для определения подлежащих обновлению частей представления 402 карты и, в том же или в других вариантах осуществления, «в режиме реального времени» в электронном устройстве 210 во время действий транспортного средства 220 для принятия решения о том, является ли алгоритм 750 локализации достоверным источником данных локализации в текущей части представления 402 карты.[0192] As indicated above, the server 235 is capable of determining, during the training process, a second metric 950 based on the results of applying the first metric 508. In Fig. 9, an iteration 991 of training the machine learning algorithm and an iteration 992 of using the machine learning algorithm are shown. After the machine learning algorithm is trained, this algorithm can be used as the second metric 950. As described below, the iteration 992 of using the machine learning algorithm can be performed "offline" on the server 235 to determine the portions of the map view 402 to be updated and, in the same or other embodiments, "in real time" in the electronic device 210 during the operations of the vehicle 220 to decide whether the localization algorithm 750 is a reliable source of localization data in the current portion of the map view 402.
[0193] В ходе обучения сервер 235 способен формировать обучающий набор, содержащий исходные данные 901 для обучения и обучающую метку 902. Исходные данные 901 для обучения включают в себя представление 402 карты (или по меньшей мере ее часть, представляющую интерес), вероятное местоположение 780 и облако 614 точек. Сервер 235 способен формировать обучающую метку 902 на основе параметра, заданного первой метрикой 506.[0193] During training, the server 235 is capable of generating a training set that contains initial training data 901 and a training label 902. The initial training data 901 includes a map representation 402 (or at least a portion thereof that is of interest), a probable location 780, and a point cloud 614. The server 235 is capable of generating the training label 902 based on a parameter specified by the first metric 506.
[0194] Например, обучающая метка 902 может иметь значение 0, указывающее на то, что вероятные местоположения для метки времени не сходятся в пределах заданного радиуса 810, или значение 1, указывающее на то, что вероятные местоположения для метки времени сходятся в пределах заданного радиуса 810. Можно утверждать, что в некоторых вариантах осуществления обучающая метка 902 служит признаком, характеризующим исходные данные для обучения применительно к алгоритму 950 машинного обучения либо как положительный пример, либо как отрицательный пример. При этом следует отметить, что обучающая метка 902 не обязательно должна иметь двоичный формат. Обучающая метка 902 может указывать на истинный класс среди нескольких классов. Например, различные классы могут быть связаны с заданными радиусами сходимости. В представленном примере сервер 235 может присвоить истинный класс из множества классов исходным данным 901 для обучения, которые соответствуют радиусам сходимости вероятных местоположений в данном примере обучения. В дополнительных вариантах осуществления, без отступления от существа и объема настоящей технологии, обучающая метка 902 может принимать форму значения из непрерывного спектра значений (например, регрессии). Предполагается, что результат применения первой метрики 508 может использоваться для формирования обучающей метки с целью определения в процессе обучения второй метрики 950.[0194] For example, the training label 902 may have a value of 0, indicating that the probable locations for the timestamp do not converge within the given radius 810, or a value of 1, indicating that the probable locations for the timestamp do converge within the given radius 810. It may be argued that in some embodiments, the training label 902 serves as a feature that characterizes the initial data for training in relation to the machine learning algorithm 950 as either a positive example or a negative example. It should be noted that the training label 902 does not necessarily have to be in a binary format. The training label 902 may indicate a true class among several classes. For example, different classes may be associated with given convergence radii. In the example shown, the server 235 can assign a true class from a plurality of classes to the initial data 901 for training, which correspond to the radii of convergence of probable locations in this training example. In additional embodiments, without departing from the spirit and scope of the present technology, the training label 902 can take the form of a value from a continuous spectrum of values (for example, regression). It is assumed that the result of applying the first metric 508 can be used to form a training label for the purpose of determining the second metric 950 in the training process.
[0195] Сервер 235 использует обучающий набор для обучения алгоритма 950 машинного обучения, чтобы получить прогнозный параметр 920, указывающий на то, формирует ли алгоритм 750 локализации расходящиеся вероятные местоположения для беспилотного автомобиля 602 в рассматриваемой части представления 402 карты.[0195] The server 235 uses the training set to train the machine learning algorithm 950 to obtain a predictive parameter 920 indicating whether the localization algorithm 750 generates divergent probable locations for the self-driving car 602 in the considered portion of the map representation 402.
[0196] Например, прогнозный параметр 920 служит признаком того, что вероятные местоположения расходятся, если алгоритм локализации формирует вероятные местоположения, которые не сходятся в пределах заданного порогового значения.[0196] For example, a predictive parameter 920 serves as an indication that the probable locations are diverging if the localization algorithm generates probable locations that do not converge within a given threshold.
[0197] В дополнительных вариантах осуществления исходные данные для обучения в данном обучающем наборе могут включать в себя имитационное облако точек вместо облака 614 точек и соответствующее вероятное местоположение, сформированное на основе имитационного облака точек, вместо вероятного местоположения 780.[0197] In additional embodiments, the initial data for training in this training set may include a simulated point cloud instead of point cloud 614 and a corresponding probable location generated based on the simulated point cloud instead of probable location 780.
[0198] Предполагается, что первая метрика 508 и/или вторая метрика 950 могут использоваться на сервере 235 в «автономном режиме» для нахождения и обновления частей представления 402 карты, подлежащих обновлению. Предполагается, что первая метрика 508 и/или вторая метрика 950 могут использоваться на сервере 235 в «режиме реального времени», для определения того, допускается ли применять результаты работы алгоритма 750 локализации для управления действиями транспортного средства 220 в той части представления карты, где транспортное средство 220 находится в настоящий момент.[0198] It is contemplated that the first metric 508 and/or the second metric 950 may be used on the server 235 in an "offline mode" to find and update portions of the map view 402 that are subject to updating. It is contemplated that the first metric 508 and/or the second metric 950 may be used on the server 235 in a "real-time mode" to determine whether the results of the localization algorithm 750 may be used to control the actions of the vehicle 220 in that portion of the map view where the vehicle 220 is currently located.
[0199] В некоторых вариантах осуществления сервер 235 может использовать первую метрику 506 подобно тому, как это описано выше со ссылкой на фиг. 8, с целью определения параметра для вероятных местоположений, сформированных для рассматриваемой части представления 402 карты. Дополнительно или в качестве альтернативы, вторая метрика 950 (после обучения) также может использоваться с целью определения второго параметра для вероятного местоположения, сформированного для рассматриваемой части представления 402 карты. Сервер 235 может использовать комбинацию параметров, заданных первой метрикой 506 и второй метрикой 950, для определения того, нуждается ли в обновлении рассматриваемая часть представления 402 карты.[0199] In some embodiments, the server 235 may use the first metric 506 in a similar manner as described above with reference to Fig. 8 to determine a parameter for the probable locations generated for the considered portion of the map view 402. Additionally or alternatively, the second metric 950 (after training) may also be used to determine a second parameter for the probable location generated for the considered portion of the map view 402. The server 235 may use a combination of the parameters specified by the first metric 506 and the second metric 950 to determine whether the considered portion of the map view 402 needs to be updated.
[0200] В некоторых вариантах осуществления электронное устройство 210 может использовать первую метрику 506 подобно тому, как это описано выше со ссылкой на фиг. 8, с целью определения параметра для вероятных местоположений, сформированных для текущей части представления 402 карты, во время действий транспортного средства 220. Дополнительно или в качестве альтернативы, вторая метрика 950 (после обучения) может использоваться с целью определения второго параметра для вероятного местоположения, сформированного для текущей части представления 402 карты. Электронное устройство 210 может использовать комбинацию параметров, заданных первой метрикой 506 и второй метрикой 950, для определения того, допускается ли применять текущее вероятное местоположение, сформированное алгоритмом 750 локализации, для управления действиями транспортного средства 220 в текущей части представления 402 карты.[0200] In some embodiments, the electronic device 210 may use the first metric 506 in a similar manner as described above with reference to Fig. 8 to determine a parameter for the probable locations generated for the current portion of the map view 402 during the actions of the vehicle 220. Additionally or alternatively, the second metric 950 (after training) may be used to determine a second parameter for the probable location generated for the current portion of the map view 402. The electronic device 210 may use a combination of the parameters defined by the first metric 506 and the second metric 950 to determine whether the current probable location generated by the localization algorithm 750 may be used to control the actions of the vehicle 220 in the current portion of the map view 402.
[0201] На фиг. 10 представлена блок-схема способа 1000 обновления части представления 402 карты, реализуемого на сервере 235. Ниже приводится более подробное описание шагов способа 1000.[0201] Fig. 10 shows a flow chart of a method 1000 for updating a portion of a map view 402 implemented on a server 235. A more detailed description of the steps of the method 1000 is given below.
Шаг 1002: определение сервером предыдущей траектории беспилотного автомобиля в географическом регионе.Step 1002: The server determines the previous trajectory of the self-driving car in the geographic region.
[0202] Реализация способа 1000 начинается с шага 1002, на котором сервер 235 может определять предыдущую траекторию 606 транспортного средства 220 в географическом регионе. Предыдущая траектория 606 связана со множеством облаков 610 точек из данных журнала транспортного средства 220. Множество облаков точек было получено лидарной системой во время движения транспортного средства 220 по предыдущей траектории 606 в географическом регионе.[0202] The implementation of the method 1000 begins with step 1002, in which the server 235 can determine a previous trajectory 606 of the vehicle 220 in the geographic region. The previous trajectory 606 is associated with a plurality of point clouds 610 from the log data of the vehicle 220. The plurality of point clouds were obtained by the lidar system during the movement of the vehicle 220 along the previous trajectory 606 in the geographic region.
[0203] Предполагается, что сервер 235 способен выполнять метод 1000 для множества предыдущих траекторий в географическом регионе. Это позволяет представлять различные маршруты, пройденные транспортными средствами в географическом регионе, для их проверки или обновления.[0203] It is assumed that the server 235 is capable of performing the method 1000 for a plurality of previous trajectories in a geographic region. This allows various routes taken by vehicles in the geographic region to be presented for verification or updating.
Шаг 1004: для метки времени на предыдущей траектории определение сервером первого облака точек из множества облаков точек, которые были получены лидарной системой в момент, соответствующий этой метке времени.Step 1004: for a timestamp on the previous trajectory, determining by the server the first point cloud from the plurality of point clouds that were obtained by the lidar system at the moment corresponding to this timestamp.
[0204] Следующим шагом в способе 1000 является шаг 1004, на котором сервер 235 может для метки времени на предыдущей траектории транспортного средства 220, соответствующей моменту, когда транспортное средство 220 находилось в заданном месте географического региона, определять облако 614 точек из множества облаков 610 точек, которые были получены лидарной системой в момент, соответствующий этой метке времени.[0204] The next step in the method 1000 is step 1004, in which the server 235 can, for a time stamp on the previous trajectory of the vehicle 220 corresponding to the moment when the vehicle 220 was at a given location in the geographic region, determine a point cloud 614 from a plurality of point clouds 610 that were obtained by the lidar system at the moment corresponding to this time stamp.
Шаг 1006: для метки времени на предыдущей траектории формирование сервером с помощью алгоритма локализации первого вероятного местоположения на основе первого облака точек и представления карты.Step 1006: For the timestamp on the previous trajectory, the server uses the localization algorithm to generate a first probable location based on the first point cloud and the map representation.
[0205] Следующим шагом в способе 1000 является шаг 1006, на котором сервер 235 может для метки времени на предыдущей траектории транспортного средства 220, соответствующей моменту, когда транспортное средство 220 находилось в заданном месте географического региона, формировать с помощью алгоритма 750 локализации первое вероятное местоположение 780 на основе облака 614 точек и представления 402 карты. Заданное место находится в рассматриваемой части представления 402 карты.[0205] The next step in the method 1000 is step 1006, in which the server 235 can, for a time stamp on the previous trajectory of the vehicle 220, corresponding to the moment when the vehicle 220 was in a given place of the geographic region, generate, using the localization algorithm 750, a first probable location 780 based on the point cloud 614 and the map representation 402. The given place is in the considered part of the map representation 402.
Шаг 1008: для метки времени на предыдущей траектории определение сервером второго облака точек, связанного с заданным местом.Step 1008: For a timestamp on the previous trajectory, determine by the server the second point cloud associated with the given location.
[0206] Следующим шагом в способе 1000 является шаг 1008, на котором сервер 235 может для метки времени на предыдущей траектории транспортного средства 220, соответствующей моменту, когда транспортное средство 220 находилось в заданном месте географического региона, определять второе облако точек, связанное с заданным местом.[0206] The next step in the method 1000 is step 1008, in which the server 235 may, for a time stamp on the previous trajectory of the vehicle 220 corresponding to the moment when the vehicle 220 was at a given location in the geographic region, determine a second point cloud associated with the given location.
[0207] В некоторых вариантах осуществления второе облако точек может представлять собой имитационное облако 654 точек, являющееся ухудшенным вариантом первого облака точек. Например, ухудшенный вариант облака 614 точек представляет собой облако 614 точек без некоторого подмножества точек. В некоторых вариантах осуществления сервер 235 может применять фильтр, отражающий воздействие условий окружающей среды на облако 614 точек. Например, условия окружающей среды могут представлять собой дождь, снег и/или грязь, препятствующие работе лидарной системы. В дополнительных вариантах осуществления, без отступления от существа и объема настоящей технологии, сервер 235 может определять второе облако точек из данных журнала второго транспортного средства, которое действовало в этом географическом регионе.[0207] In some embodiments, the second point cloud may be a simulated point cloud 654 that is a degraded version of the first point cloud. For example, the degraded version of the point cloud 614 is the point cloud 614 without a certain subset of points. In some embodiments, the server 235 may apply a filter that reflects the effect of environmental conditions on the point cloud 614. For example, the environmental conditions may be rain, snow, and/or dirt that interfere with the operation of the lidar system. In additional embodiments, without departing from the spirit and scope of the present technology, the server 235 may determine the second point cloud from the log data of a second vehicle that was operating in this geographic region.
Шаг 1010: для метки времени на предыдущей траектории формирование сервером с помощью алгоритма локализации второго вероятного местоположения на основе второго облака точек и представления карты.Step 1010: For the timestamp on the previous trajectory, using the localization algorithm, the server generates a second probable location based on the second point cloud and map representation.
[0208] Следующим шагом в способе 1000 является шаг 1010, на котором сервер 235 может для метки времени на предыдущей траектории транспортного средства 220, соответствующей моменту, когда это самоуправляемое транспортное средство находилось в заданном месте географического региона, формировать с помощью алгоритма 750 локализации второе вероятное местоположение 790 на основе второго облака точек и представления 402 карты.[0208] The next step in the method 1000 is step 1010, in which the server 235 may, for a time stamp on the previous trajectory of the vehicle 220 corresponding to the moment when this self-driving vehicle was in a given place of the geographic region, generate, using the localization algorithm 750, a second probable location 790 based on the second point cloud and the map representation 402.
Шаг 1012: для метки времени на предыдущей траектории определение сервером с помощью метрики сходимости параметра для оценки качества локализации, обеспечиваемого алгоритмом локализации в рассматриваемой части представления карты.Step 1012: For a timestamp on the previous trajectory, determine by the server, using the convergence metric, a parameter for assessing the localization quality provided by the localization algorithm in the considered part of the map representation.
[0209] Следующим шагом в способе 1000 является шаг 1012, на котором сервер 235 может для метки времени на предыдущей траектории транспортного средства 220, соответствующей моменту, когда это самоуправляемое транспортное средство находилось в заданном месте географического региона, определять с помощью первой метрики 506 параметр для оценки качества локализации, обеспечиваемого алгоритмом 750 локализации в рассматриваемой части представления 402 карты. Этот параметр характеризует сходимость первого вероятного местоположения 780 и второго вероятного местоположения 790.[0209] The next step in the method 1000 is step 1012, in which the server 235 can, for a time stamp on the previous trajectory of the vehicle 220, corresponding to the moment when this self-driving vehicle was in a given place of the geographic region, determine, using the first metric 506, a parameter for assessing the quality of the localization provided by the localization algorithm 750 in the considered part of the map representation 402. This parameter characterizes the convergence of the first probable location 780 and the second probable location 790.
Шаг 1014: для метки времени на предыдущей траектории признание сервером рассматриваемой части представления карты устаревшей частью представления карты на основе параметра.Step 1014: For the timestamp on the previous trajectory, the server recognizes the map view part in question as an outdated map view part based on the parameter.
[0210] Следующим шагом в способе 1000 является шаг 1014, на котором сервер 235 может для метки времени на предыдущей траектории транспортного средства 220, соответствующей моменту, когда это самоуправляемое транспортное средство находилось в заданном месте географического региона, признавать рассматриваемую часть представления 402 карты устаревшей частью представления 402 карты на основе параметра. Например, сервер 235 может признавать рассматриваемую часть карты устаревшей, если параметр указывает на то, что первое и второе вероятные местоположения не сходятся в пределах заданного значения.[0210] The next step in the method 1000 is step 1014, in which the server 235 may, for a time stamp on the previous trajectory of the vehicle 220 corresponding to the moment when this self-driving vehicle was at a given location of the geographic region, recognize the considered portion of the map representation 402 as an outdated portion of the map representation 402 based on a parameter. For example, the server 235 may recognize the considered portion of the map as outdated if the parameter indicates that the first and second probable locations do not converge within a given value.
Шаг 1016: обновление сервером устаревшей части представления карты с использованием первого облака точек или второго облака точек.Step 1016: Update the outdated portion of the map view by the server using the first point cloud or the second point cloud.
[0211] Следующим шагом в способе 1000 является шаг 1016, на котором сервер 235 может обновлять устаревшую часть представления 402 карты с использованием первого облака точек или второго облака точек. В некоторых вариантах осуществления сервер 235 может использовать итеративный алгоритм ближайших точек для замены устаревшей части карты данными облака точек из первого облака точек и/или из второго облака точек.[0211] The next step in the method 1000 is step 1016, in which the server 235 can update the outdated portion of the map representation 402 using the first point cloud or the second point cloud. In some embodiments, the server 235 can use an iterative closest point algorithm to replace the outdated portion of the map with point cloud data from the first point cloud and/or from the second point cloud.
[0212] Для специалиста в данной области могут быть очевидными возможные изменения и усовершенствования описанных выше вариантов осуществления настоящей технологии. Предшествующее описание приведено лишь в иллюстративных целях, а не для ограничения объема изобретения. Объем охраны настоящей технологии определяется исключительно объемом приложенной формулы изобретения.[0212] Possible changes and improvements to the above-described embodiments of the present technology may be obvious to a person skilled in the art. The preceding description is provided for illustrative purposes only and is not intended to limit the scope of the invention. The scope of protection of the present technology is determined solely by the scope of the appended claims.
Claims (45)
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP22215960.0A EP4206738A1 (en) | 2021-12-28 | 2022-12-22 | Method and a server for updating a map representation |
| US18/087,013 US12392638B2 (en) | 2021-12-28 | 2022-12-22 | Method and a server for updating a map representation |
| US18/431,610 US20240175709A1 (en) | 2021-12-28 | 2024-02-02 | Method and electronic device for controlling operation of a self driving car |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RU2024113432A Division RU2836391C1 (en) | 2024-05-17 | Method and server for updating map representation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| RU2021139428A RU2021139428A (en) | 2023-10-05 |
| RU2842879C2 true RU2842879C2 (en) | 2025-07-02 |
Family
ID=
Citations (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180188042A1 (en) * | 2016-12-30 | 2018-07-05 | DeepMap Inc. | Incremental updates of pose graphs for generating high definition maps for navigating autonomous vehicles |
| US20190204092A1 (en) * | 2017-12-01 | 2019-07-04 | DeepMap Inc. | High definition map based localization optimization |
| US20190339709A1 (en) * | 2018-05-04 | 2019-11-07 | Direct Current Capital LLC | Method for updating a localization map for a fleet of autonomous vehicles |
| RU2721677C1 (en) * | 2017-01-05 | 2020-05-21 | Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. | Generation and use of high-definition maps |
| WO2020139377A1 (en) * | 2018-12-28 | 2020-07-02 | Didi Research America, Llc | Interface for improved high definition map generation |
| US20210004363A1 (en) * | 2019-07-02 | 2021-01-07 | DeepMap Inc. | Updating high definition maps based on age of maps |
| US20210033404A1 (en) * | 2019-07-31 | 2021-02-04 | Here Global B.V. | Systems and methods for controlling mapping information inaccuracies |
| US20210049901A1 (en) * | 2019-08-16 | 2021-02-18 | Here Global B.V. | Method, apparatus, and system for vehicle map data update |
| RU2744012C1 (en) * | 2019-12-24 | 2021-03-02 | Общество с ограниченной ответственностью "Яндекс Беспилотные Технологии" | Methods and systems for automated determination of objects presence |
| WO2021042051A1 (en) * | 2019-08-31 | 2021-03-04 | Nvidia Corporation | Map creation and localization for autonomous driving applications |
| US20210207968A1 (en) * | 2020-01-06 | 2021-07-08 | Motional Ad Llc | System and method for updating map data |
| US20210350147A1 (en) * | 2019-01-30 | 2021-11-11 | Baidu Usa Llc | A map partition system for autonomous vehicles |
| US20210370968A1 (en) * | 2019-01-30 | 2021-12-02 | Baidu Usa Llc | A real-time map generation system for autonomous vehicles |
Patent Citations (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018126083A1 (en) * | 2016-12-30 | 2018-07-05 | DeepMap Inc. | Alignment of data captured by autonomous vehicle to generate high definition maps |
| US20180188026A1 (en) * | 2016-12-30 | 2018-07-05 | DeepMap Inc. | Visual odometry and pairwise alignment for high definition map creation |
| WO2018125938A1 (en) * | 2016-12-30 | 2018-07-05 | DeepMap Inc. | Enrichment of point cloud data for high-definition maps for autonomous vehicles |
| US20180188042A1 (en) * | 2016-12-30 | 2018-07-05 | DeepMap Inc. | Incremental updates of pose graphs for generating high definition maps for navigating autonomous vehicles |
| RU2721677C1 (en) * | 2017-01-05 | 2020-05-21 | Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. | Generation and use of high-definition maps |
| US20190204092A1 (en) * | 2017-12-01 | 2019-07-04 | DeepMap Inc. | High definition map based localization optimization |
| US20190339709A1 (en) * | 2018-05-04 | 2019-11-07 | Direct Current Capital LLC | Method for updating a localization map for a fleet of autonomous vehicles |
| WO2020139377A1 (en) * | 2018-12-28 | 2020-07-02 | Didi Research America, Llc | Interface for improved high definition map generation |
| US20210350147A1 (en) * | 2019-01-30 | 2021-11-11 | Baidu Usa Llc | A map partition system for autonomous vehicles |
| US20210370968A1 (en) * | 2019-01-30 | 2021-12-02 | Baidu Usa Llc | A real-time map generation system for autonomous vehicles |
| US20210004363A1 (en) * | 2019-07-02 | 2021-01-07 | DeepMap Inc. | Updating high definition maps based on age of maps |
| US20210033404A1 (en) * | 2019-07-31 | 2021-02-04 | Here Global B.V. | Systems and methods for controlling mapping information inaccuracies |
| US20210049901A1 (en) * | 2019-08-16 | 2021-02-18 | Here Global B.V. | Method, apparatus, and system for vehicle map data update |
| WO2021042051A1 (en) * | 2019-08-31 | 2021-03-04 | Nvidia Corporation | Map creation and localization for autonomous driving applications |
| RU2744012C1 (en) * | 2019-12-24 | 2021-03-02 | Общество с ограниченной ответственностью "Яндекс Беспилотные Технологии" | Methods and systems for automated determination of objects presence |
| US20210207968A1 (en) * | 2020-01-06 | 2021-07-08 | Motional Ad Llc | System and method for updating map data |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP4202486A1 (en) | Lidar system and a method of calibrating the lidar system | |
| US20240175709A1 (en) | Method and electronic device for controlling operation of a self driving car | |
| US20220113385A1 (en) | Lidar systems and methods with selective scanning | |
| EP3982156A1 (en) | Lidar systems and methods with selective scanning | |
| US20220113429A1 (en) | Lidar systems and methods | |
| US20220113411A1 (en) | Lidar system and method with coherent detection | |
| US20230204739A1 (en) | Lidar system and a method of calibrating the lidar system | |
| RU2836391C1 (en) | Method and server for updating map representation | |
| RU2842879C2 (en) | Method and server for updating map view | |
| US20230176213A1 (en) | Lidar systems and methods | |
| EP3988963B1 (en) | Optical systems and methods for controlling thereof | |
| EP3982149A1 (en) | Multispectral lidar systems and methods | |
| US12111399B2 (en) | Lidar detection methods and systems with optical fiber array | |
| US12174320B2 (en) | LiDAR methods and systems with broadened field of view based on passive elements | |
| RU2752016C2 (en) | Lidar methods and systems with scanning with selective density based on mems | |
| EP3982155A2 (en) | Lidar systems and methods | |
| RU2824434C2 (en) | Lidar systems and methods | |
| RU2829088C1 (en) | Lidar system and method of calibrating lidar system | |
| RU2836700C1 (en) | Method and processor for classification of points on boundary of polygonal section | |
| RU2792948C2 (en) | Multispectral lidar systems and methods | |
| RU2829904C1 (en) | Lidar system and method of calibrating lidar system | |
| RU2798363C2 (en) | Lidar systems and methods | |
| RU2798364C2 (en) | Lidar systems and methods | |
| US20250148806A1 (en) | Method and processor for classifying points on a polygon boundary | |
| RU2792951C2 (en) | Lidar systems and methods with selective scanning |