Information processing device, map generation device, storage device, control method and program
By setting lower weights for vegetation voxels in map data, the method addresses inaccuracies in location estimation caused by vegetation, enhancing estimation accuracy through weighted position estimation.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- PIONEER IP
- Filing Date
- 2026-03-30
- Publication Date
- 2026-06-18
AI Technical Summary
Location estimation using map data represented by voxels can be inaccurate due to the inclusion of vegetation, which changes over time.
The method involves setting a lower weight for voxels containing vegetation compared to those without vegetation in the map data, and using this weighted data for position estimation by an information processing device, which includes recognizing vegetation regions and generating map data with adjusted weights for each spatially divided region.
This approach enhances the accuracy of position estimation by reducing the impact of vegetation fluctuations, thereby improving the reliability of location estimation.
Smart Images

Figure 2026099814000001_ABST
Abstract
Description
[Technical Field]
[0001] This invention relates to map data used for location estimation. [Background technology]
[0002] Conventionally, there is a known technique for estimating a vehicle's own position by matching shape data of surrounding objects measured using measuring devices such as laser scanners with map data in which the shapes of surrounding objects are pre-stored. For example, Patent Document 1 discloses an autonomous mobile system that determines whether a detected object in a voxel, which is a space divided according to a predetermined rule, is stationary or moving, and performs matching of map data and measurement data for voxels in which stationary objects exist. Non-Patent Document 1 discloses a technique for recognizing measurement point clouds that constitute vegetation such as trees by analyzing measurement point clouds obtained from a lidar or the like. [Prior art documents] [Patent Documents]
[0003] [Patent Document 1] International release WO2013 / 076829 [Non-patent literature]
[0004] [Non-Patent Document 1] Fabrice Monnier, Bruno Vallet, Bahman Soheilian, TREES DETECTION FROM LASER POINT CLOUDS ACQUIRED IN DENSE URBAN AREAS BY A MOBILE MAPPING SYSTEM, [online], 2012, ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, [Retrieved July 14, 2018], Internet <URL:https: / / www.isprs-ann-photogramm-remote-sens-spatial-inf-sci.net / I-3 / 245 / 2012 / isprsannals-I-3-245-2012.pdf> [Overview of the Initiative] [Problems that the invention aims to solve]
[0005] In location estimation using map data represented by voxels, if location estimation is performed by referring to voxels that include vegetation that changes over time, there is a possibility that the location estimation results may be inaccurate.
[0006] This invention was made to solve the above-mentioned problems, and its main objective is to suitably achieve accurate position estimation. [Means for solving the problem]
[0007] The invention described in the claim is an information processing device having storage means for storing map data which includes, for each region that divides space, information indicating an object and information regarding a weight representing the reliability of the position estimation of the information indicating the object, wherein the weight for a region including vegetation is set to a lower value than the weight for a region of structures other than vegetation that does not include vegetation; and estimation means for estimating the position of a mobile body by weighting the results of comparing measurement information of an object measured by a measuring device mounted on the mobile body with the information indicating the object for each region. Furthermore, the invention described in the claim comprises: recognition means for recognizing a region containing measurement points of vegetation from a region containing measurement points of an object measured by a measuring device, which is a region divided in space; and map generation means for generating map data that associates information indicating the object for each region with a weight representing the reliability of the position estimation of the information regarding the position, wherein the map generation means is a map generation device that makes the weight for the region containing vegetation smaller than the weight for the region of structures other than vegetation that does not contain vegetation.
[0008] Furthermore, the invention described in the claim includes a storage device for storing map data in which, for each region that divides space, information indicating an object and information regarding a weight representing the reliability of the position estimation of the information indicating the object are set to a lower value than the weight for a region of structures other than vegetation that does not include vegetation. Furthermore, the invention described in the claims is a control method performed by a computer that refers to map data, wherein for each region that divides space, the control method includes information indicating an object and information regarding a weight representing the reliability of the position estimation of the information indicating the object, wherein the weight for a region including vegetation is set to a lower value than the weight for a region of structures other than vegetation that does not include vegetation, and the method includes an estimation step of estimating the position of the mobile body by weighting the results of comparing measurement information of an object measured by a measuring device mounted on the mobile body with the information indicating the object for each region. Further, the invention according to the claims includes, for each region partitioning space, information indicating an object and information regarding a weight representing the reliability in the position estimation of the information indicating the object, and causes a computer to execute a program for referring to map data in which the weight for a region including vegetation is set to a value lower than the weight for a region of a structure other than vegetation that does not include vegetation, and causes the computer to function as an estimation means for estimating the position of the moving object by weighting the collation result between the measurement information of the object measured by the measuring device mounted on the moving object and the information indicating the object for each region.
Brief Description of Drawings
[0009] [Figure 1] It is a schematic configuration of a map update system. [Figure 2] It shows a block configuration of an in-vehicle device and a server device. [Figure 3] It shows an example of a schematic data structure of voxel data. [Figure 4] It is a flowchart showing the procedure of voxel data generation processing. [Figure 5] It is a flowchart showing the procedure of vegetation determination processing. [Figure 6] It is a flowchart showing the procedure of position estimation processing. [Figure 7] It is a diagram showing an overview of the processing of position estimation based on the first embodiment and position estimation based on a comparative example. [Figure 8] It shows an example of a schematic data structure of voxel data according to the second embodiment. [Figure 9] It is a flowchart showing the procedure of voxel data generation processing according to the second embodiment. [Figure 10] It is a flowchart showing the procedure of dynamic object detection processing according to the second embodiment.
Modes for Carrying Out the Invention
[0010] According to a preferred embodiment of the present invention, the map data structure includes, for each spatially divided region, information indicating an object and information regarding the weights used when using the information indicating the object for position estimation, wherein the weight for a region containing vegetation is set to a lower value than the weight for a region without vegetation, and is referenced by an information processing device that estimates the position of a mobile body by weighting the results of matching measurement information of an object measured by a measuring device mounted on the mobile body with the information indicating the object for each region. A "spatially divided region" is a region obtained by dividing space according to a predetermined rule, for example, a rectangular prism or cube of constant size. By referencing map data having this data structure, the information processing device can relatively lower the weighting of the matching results for regions containing vegetation, thereby suitably suppressing a decrease in position estimation accuracy caused by vegetation movement, etc.
[0011] In one embodiment of the above data structure, each region further includes information for identifying whether or not it is a region containing vegetation. This allows an information processing device referencing map data to suitably identify regions containing vegetation.
[0012] In another embodiment of the above data structure, the information indicating the object is information regarding the mean and variance of the point cloud of the object's surface in each of the regions, and the information processing device calculates an evaluation value for the matching based on the measurement information of the object, the mean, the variance, and the weight. In this embodiment, the information processing device can calculate an evaluation value based on map data and measurement information and suitably estimate the position of the moving object.
[0013] In another embodiment of the data structure described above, the region including vegetation is a region in which, based on measurement points of objects within that region, it is determined that the object does not fall under either columnar or planar form. In this embodiment, the region including vegetation is preferably identified.
[0014] According to another embodiment of the present invention, the storage medium stores map data having the data structure described in any of the above.
[0015] According to yet another embodiment of the present invention, the storage device has storage means for storing map data in which, for each spatially divided region, information indicating an object and information regarding the weights used when using the information indicating the object for position estimation, the weights for regions including vegetation are set to lower values than the weights for regions not including vegetation.
[0016] In one embodiment of the above-described storage device, the storage device further comprises a transmission means for transmitting part or all of the map data to a vehicle or in-vehicle device. In this embodiment, the storage device functions as a distribution device for map data referenced in position estimation. [Examples]
[0017] Preferred embodiments of the present invention will be described below with reference to the drawings.
[0018] <First Example> The first embodiment relates to position estimation based on voxel data.
[0019] (1) Overview of the map update system Figure 1 shows a schematic configuration of a map update system according to the first embodiment. The map update system comprises an in-vehicle unit 1 that moves with the vehicle and a server device 2 that distributes map information. In Figure 1, only one set of in-vehicle unit 1 and vehicle communicating with the server device 2 is shown, but in reality, there are multiple sets of in-vehicle unit 1 and vehicles at different locations.
[0020] The in-vehicle unit 1 is electrically connected to external sensors such as a Lidar (Light Detection and Ranging, or Laser Illuminated Detection and Ranging) and internal sensors such as a gyroscope and a vehicle speed sensor. Based on the outputs of these sensors, it estimates the position of the vehicle on which the in-vehicle unit 1 is mounted (also called "vehicle position"). Based on the estimated vehicle position, the in-vehicle unit 1 performs automatic driving control of the vehicle so that it travels along a set route to a destination. The in-vehicle unit 1 stores a map database (DB: Database) 10 containing voxel data. Voxel data is data that records position information of stationary structures for each region (also called "voxel") when a 3D space is divided into multiple regions. The voxel data includes point cloud data of measured points of stationary structures within each voxel, represented by a normal distribution, and is used for scan matching using NDT (Normal Distributions Transform), as described later.
[0021] The in-vehicle unit 1 estimates the vehicle's position by performing scan matching based on NDT, using point cloud data obtained by converting measurement points on the surface of an object output by the lidar into an absolute coordinate system, and voxel data corresponding to the voxel to which the point cloud data belongs. The in-vehicle unit 1 also transmits measurement data "D1," which includes the aforementioned point cloud data, to the server device 2. The in-vehicle unit 1 also updates the map DB 10 by receiving update data "D2" related to the map DB 10 from the server device 2. The in-vehicle unit 1 is an example of an "information processing device" and a "position estimation device."
[0022] Server device 2 communicates data with in-vehicle unit 1, which supports multiple vehicles. Server device 2 stores a distribution map DB23 for distribution to the in-vehicle unit 1, which supports multiple vehicles, and the distribution map DB23 contains voxel data corresponding to each voxel. Server device 2 also stores a measurement point cloud DB24 that stores measurement data D1 received from the in-vehicle unit 1. Server device 2 generates voxel data based on the measurement data D1 stored in the measurement point cloud DB24 and updates the distribution map DB23 based on the generated voxel data. Server device 2 also transmits update data D2, which includes the generated voxel data, to the in-vehicle unit 1. Server device 2 is an example of a "storage device" and a "map generation device".
[0023] (2) In-vehicle unit configuration Figure 2(A) shows a block diagram representing the functional configuration of the in-vehicle unit 1. As shown in Figure 2(A), the in-vehicle unit 1 mainly consists of a communication unit 11, a storage unit 12, a sensor unit 13, an input unit 14, a control unit 15, and an output unit 16. The communication unit 11, storage unit 12, sensor unit 13, input unit 14, control unit 15, and output unit 16 are interconnected via a bus line.
[0024] Based on the control of the control unit 15, the communication unit 11 transmits measurement data D1 generated by the control unit 15 to the server device 2 and receives update data D2 distributed from the server device 2. The communication unit 11 also transmits signals to the vehicle for controlling the vehicle and receives signals from the vehicle regarding the vehicle's status.
[0025] The storage unit 12 stores programs to be executed by the control unit 15 and information necessary for the control unit 15 to perform predetermined processing. In this embodiment, the storage unit 12 stores a map DB 10 containing voxel data.
[0026] The sensor unit 13 includes a lidar 30, a camera 31, a GPS receiver 32, a gyro sensor 33, and a speed sensor 34. The lidar 30 discretely measures the distance to an object in the outside world by emitting a pulsed laser within a predetermined angular range in the horizontal and vertical directions, and generates three-dimensional point cloud data indicating the position of the object. In this case, the lidar 30 has an irradiation unit that irradiates laser light while changing the irradiation direction, a light receiving unit that receives reflected light (scattered light) of the irradiated laser light, and an output unit that outputs scan data based on the received signal output by the light receiving unit. The scan data is generated based on the irradiation direction corresponding to the laser light received by the light receiving unit and the response delay time of the laser light specified based on the received signal described above. The lidar 30 is an example of a "measuring device".
[0027] The input unit 14 includes buttons, a touch panel, a remote controller, a voice input device, etc., for user operation. It accepts inputs such as specifying a destination for route searching and specifying whether to turn autonomous driving on or off, and supplies the generated input signals to the control unit 15. The output unit 16 includes, for example, a display or speaker that outputs based on the control of the control unit 15.
[0028] The control unit 15 includes a CPU for executing programs and controls the entire in-vehicle unit 1. For example, the control unit 15 estimates the vehicle's position by performing scan matching based on NDT, using point cloud data obtained by converting measurement points output by the lidar 30 into an absolute coordinate system and voxel data corresponding to the voxel to which the point cloud data belongs. The control unit 15 also updates the map DB 10 based on update data D2 received by the communication unit 11 from the server device 2.
[0029] Furthermore, the control unit 15 transmits the measurement data D1, generated based on the point cloud data output from the rider 30, to the server device 2 via the communication unit 11. In this case, for example, the control unit 15 converts the point cloud data of measurement points output from the rider 30 into an absolute coordinate system based on the estimated vehicle position and the position and attitude information of the rider 30 relative to the vehicle, and includes the converted point cloud data in the measurement data D1, which is then transmitted to the server device 2 via the communication unit 11. In another example, the control unit 15 includes the point cloud data output from the rider 30 (so-called raw data) and the data necessary to convert the point cloud data into an absolute coordinate system (such as the vehicle position mentioned above) in the measurement data D1, and transmits it to the server device 2 via the communication unit 11. In the latter example, the server device 2 generates point cloud data of measurement points represented in an absolute coordinate system based on the measurement data D1.
[0030] (3) Server device configuration Figure 2(B) shows the schematic configuration of server device 2. As shown in Figure 2(B), server device 2 has a communication unit 21, a storage unit 22, and a control unit 25. The communication unit 21, the storage unit 22, and the control unit 25 are interconnected via a bus line.
[0031] The communication unit 21 communicates various data with the in-vehicle device 1 based on the control of the control unit 25. The storage unit 22 stores programs for controlling the operation of the server device 2 and holds information necessary for the operation of the server device 2. The storage unit 22 also stores the distribution map DB 23 and the measurement point cloud DB 24, which records point cloud data of measurement points of objects based on measurement data D1 transmitted from multiple in-vehicle devices 1.
[0032] The control unit 25 includes a CPU, ROM, RAM, etc. (not shown) and performs various controls on each component within the server device 2. In this embodiment, the control unit 25 stores the measurement data D1 received by the communication unit 21 from the in-vehicle device 1 in the measurement point cloud DB 24 and generates voxel data based on the stored measurement data D1. In this case, the control unit 25 determines whether each voxel contains vegetation and, based on the determination result, generates a weighting value and a vegetation flag (described later) and includes them in the voxel data. The control unit 25 also transmits update data D2 based on the generated voxel data to the in-vehicle device 1 via the communication unit 21. The control unit 25 is an example of a "computer" that executes programs.
[0033] (4) NDT-based scan matching Next, we will describe scan matching based on NDT in this embodiment.
[0034] First, we will explain the voxel data used for scan matching based on NDT. Figure 3 shows an example of a schematic data structure for voxel data.
[0035] The voxel data includes parameter information for representing the point cloud within a voxel using a normal distribution. In this embodiment, as shown in Figure 3, it includes a voxel ID, voxel coordinates, mean vector, covariance matrix, weighting values, and a vegetation flag. Here, "voxel coordinates" represent the absolute three-dimensional coordinates of a reference position, such as the center position of each voxel. Each voxel is a cube that divides space into a grid, and its shape and size are predetermined, so the space of each voxel can be identified by its voxel coordinates. The voxel coordinates may also be used as the voxel ID.
[0036] The "mean vector" and "covariance matrix" represent the mean vector and covariance matrix, which correspond to the parameters when representing the point cloud within the target voxel using a normal distribution, and the coordinates of any point "i" within any voxel "n" are X n (i) = [x n (i), y n (i), zn (i)] T Define it as such, and let the number of point groups in voxel n be "N n ". Then, the average vector "μ n " and the covariance matrix "V n " in voxel n are represented by the following equations (1) and (2), respectively.
[0037]
Equation
[0038]
Equation
[0039] The "weight value" is set to a value corresponding to the reliability of the voxel data (especially the average vector and covariance matrix) of the target voxel, and represents the weight for the target voxel set in scan matching. Also, in this embodiment, the weight value for the voxel determined to be a voxel containing vegetation (also referred to as "vegetation voxel Bv") is set lower than the weight value for other voxels. The "vegetation flag" is flag information indicating whether the target voxel is a voxel containing vegetation.
[0040] Next, scan matching by NDT using voxel data will be described. In this embodiment, as will be described later, the in-vehicle device 1 calculates the value of the evaluation function (evaluation value) obtained by NDT scan matching by weighting it using the weight value included in the voxel data. Thereby, the in-vehicle device 1 suitably improves the position estimation accuracy based on NDT scan matching.
[0041]
[0039] 9>Scan matching by NDT assuming a vehicle estimates the estimation parameter P = [t x , t y , t z , t ψ T which includes the amount of movement in the road plane (here, xy coordinates) and the orientation of the vehicle. Here, "tx " indicates the amount of movement in the x direction, and "t y " indicates the amount of movement in the y direction, and "t z " indicates the amount of movement in the z direction, and "t ψ This indicates the yaw angle (the amount of change in angle in the yaw direction). Note that the pitch angle and roll angle are caused by road gradient and vibration, but are negligibly small.
[0042] When point cloud data obtained by converting measurement points from LIDA2 to an absolute coordinate system is associated with voxels to be matched, the coordinates of any point in the corresponding voxel n are X L (i) = [x n (i), y n (i), z n (i)] T Let's assume that X is the same as the estimated parameter P mentioned above. L (i) = [x n (i), y n (i), z n (i)] T When the coordinates are transformed, the transformed coordinates "X' n This can be expressed by the following equation (3).
[0043]
number
[0044]
number
[0045] Furthermore, after calculating the evaluation function value for each voxel shown by equation (4) (also called the "individual evaluation function value"), the in-vehicle unit 1 calculates an overall evaluation function value "E" (also called the "overall evaluation function value") for all voxels subject to matching, shown by equation (5).
[0046]
number
[0047] Subsequently, the in-vehicle unit 1 calculates the estimated parameters P that maximize the overall evaluation function value E using an arbitrary root-finding algorithm such as Newton's method. Then, the in-vehicle unit 1 calculates the vehicle's position (also called the "predicted vehicle position") based on the output of the autonomous positioning device, etc. - By applying the estimated parameter P to the above, a more accurate vehicle position (also called "estimated vehicle position") can be obtained than the predicted vehicle position. ^ We estimate that this is the case.
[0048] Thus, the in-vehicle unit 1 multiplies each voxel's data (mean vector, covariance matrix) by a weighting value depending on whether or not it is a vegetation voxel Bv. This results in the evaluation function E of vegetation voxels Bv. n This relatively reduces the magnitude of the NDT matching, which significantly improves the accuracy of position estimation.
[0049] Note that the weighting value for vegetation voxels Bv may be 0. In this case, the evaluation function E for voxels other than vegetation voxels Bv is also 0. n Since the estimated parameter P is estimated based on this, it is possible to perform location estimation that completely eliminates the influence of vegetation.
[0050] (5) Generating voxel data Next, we will explain the process by which server device 2 determines vegetation voxels Bv when generating voxel data.
[0051] Figure 4 is a flowchart showing the voxel data generation process performed by server device 2. Server device 2 executes the processes shown in the flowchart in Figure 4 at predetermined timings.
[0052] First, the server device 2 recognizes the voxel to which each measurement point recorded in the measurement point cloud DB24 belongs, and calculates the mean vector and covariance matrix of the measurement points for each voxel based on equations (1) and (2) described above (step S101).
[0053] Next, the server device 2 performs a vegetation determination process for each voxel containing the measurement point, determining whether or not it is a vegetated voxel Bv (step S102). A specific example of this vegetation determination process will be described later with reference to the flowchart in Figure 5.
[0054] Then, based on the determination result in step S102, the server device 2 sets a weighting value and a vegetation flag for each voxel (step S103). For example, the server device 2 stores in advance setting information indicating the weighting value and vegetation flag value to be assigned to vegetation voxel Bv and other voxels, respectively. Then, the server device 2 refers to the above setting information and assigns different weighting values and vegetation flags to the voxel determined to be vegetation voxel Bv and to the voxels other than vegetation voxel Bv in step S103. In this case, the weighting value for vegetation voxel Bv is set lower than the weighting value for the other voxels.
[0055] Furthermore, as a preprocessing step before the flowchart in Figure 4, server device 2 may perform a process to exclude measurement point clouds representing dynamic objects from the measurement point cloud DB24 recorded in the measurement point cloud DB24. For example, server device 2 may identify measurement point clouds that form specific dynamic objects such as pedestrians or vehicles based on processing such as pattern matching based on shape and size, and delete the identified measurement point clouds from the measurement point cloud DB24.
[0056] Figure 5 is a flowchart showing an example of the vegetation determination process performed in step S102 of Figure 4. In the example shown in Figure 5, the server device 2 performs principal component analysis on each voxel of the measurement point cloud recorded in the measurement point cloud DB24 to determine which voxels represent planar or columnar structures, and determines which voxels do not correspond to either planar or columnar structures as vegetation voxels Bv.
[0057] First, server device 2 performs principal component analysis on each voxel of the measurement point cloud D24 (step S201). Specifically, server device 2 calculates three sets of eigenvalues and eigenvectors corresponding to the first to third principal components from the voxel-specific covariance matrix calculated in step S101 of Figure 4. Here, the eigenvalues represent the variance (i.e., magnitude) of each principal component, and the eigenvectors represent the direction of each principal component. Therefore, server device 2 assumes that the largest eigenvalue and its corresponding eigenvector correspond to the first principal component, the second largest eigenvalue and its corresponding eigenvector correspond to the second principal component, and the remaining eigenvalues and eigenvectors correspond to the third principal component. The first to third principal components are orthogonal to each other.
[0058] Then, based on the results of the principal component analysis in step S201, the server device 2 extracts voxels that form a plane (also called "planar voxels Bf") (step S202). For example, the server device 2 considers voxels whose magnitude of the third principal component (i.e., the variance shown by the eigenvalue of the third principal component) is less than or equal to a predetermined value to be planar voxels Bf. In addition, the server device 2 may also consider voxels whose eigenvectors corresponding to the third principal component have a direction that approximately coincides with the vertical or horizontal direction to be planar voxels Bf.
[0059] Furthermore, based on the results of the principal component analysis in step S201, the server device 2 extracts voxels that form columnar structures (also called "columnar voxels Bp") (step S203). For example, the server device 2 extracts voxels as columnar voxels Bp if the contribution rate of the first principal component is greater than or equal to a predetermined value and the variance of the first principal component is close to a uniform distribution. In addition, the server device 2 may also consider voxels as columnar voxels Bp if the direction indicated by the eigenvector corresponding to the first principal component is approximately the same as the vertical or horizontal direction.
[0060] The server device 2 then determines that the remaining voxels containing measurement points that do not fall under either planar voxels Bf or columnar voxels Bp are vegetation voxels Bv (step S204). Here, most static structures that are not vegetation consist of planar or columnar shapes, and the applicant has obtained good recognition results for vegetation voxels Bv in experiments, etc., by considering voxels excluding the voxels of the measurement point group that form planar or columnar shapes as vegetation voxels Bv.
[0061] (6) Location estimation using voxel data Next, we will explain the position estimation process using voxel data. Figure 6 is an example of a flowchart showing the procedure for position estimation using voxel data.
[0062] First, the in-vehicle unit 1 sets the initial value of its own position based on the output of the GPS receiver 32, etc. (step S301). Next, the in-vehicle unit 1 obtains the vehicle speed from the speed sensor 34 and the angular velocity in the yaw direction from the gyro sensor 33 (step S302). Then, based on the results obtained in step S302, the in-vehicle unit 1 calculates the distance traveled by the vehicle and the change in the vehicle's orientation (step S303).
[0063] Subsequently, the on-board unit 1 adds the travel distance and change in direction calculated in step S303 to the estimated vehicle position from one time point ago to calculate the predicted vehicle position (step S304). Then, based on the predicted vehicle position calculated in step S304, the on-board unit 1 refers to the map DB10 and obtains voxel data of voxels present around the vehicle position (step S305). Furthermore, based on the predicted vehicle position calculated in step S304, the on-board unit 1 divides the point cloud data obtained by converting the measurement points from the lidar 30 to an absolute coordinate system into voxels (step S306).
[0064] Then, the in-vehicle device 1 calculates the NDT scan matching using the mean, covariance matrix, and weighting values included in the voxel data acquired in step S305 (step S307). Specifically, for each voxel to which a measurement point was assigned in step S306, the in-vehicle device 1 uses the mean, covariance matrix, and weighting values included in the corresponding voxel data to calculate the individual evaluation function value E shown in equation (4). n The in-vehicle unit 1 then calculates the individual evaluation function value E for each voxel. n Based on this, the overall evaluation function value E shown in equation (5) is calculated. In this case, the overall evaluation function value E is a nonlinear equation that includes the variables of each element of the estimated parameter P.
[0065] Then, the in-vehicle device 1 determines the estimated parameter P that maximizes the overall evaluation function value using numerical methods for solving nonlinear equations such as Newton's method (step S308). Subsequently, the in-vehicle device 1 calculates the estimated vehicle position by applying the estimated parameter P calculated in step S308 to the predicted vehicle position calculated in step S304 (step S309).
[0066] Here, the individual evaluation function value E in step S307 n The weighting values used in the calculation are set lower for vegetation voxels Bv than for other voxels. This allows the onboard unit 1 to relatively reduce the degree of influence on position estimation for vegetation voxels Bv, which represent vegetation, and thereby suitably improve the position estimation accuracy.
[0067] Figure 7 shows an overview of the processes for position estimation based on the flowchart in Figure 6 using weighted values (also called "main position estimation") and position estimation that refers to voxel data generated based on a measurement point cloud from which vegetation measurement points have been removed, instead of using weighted values (also called "position estimation based on comparative example"). Here, we consider NDT scan matching targeting voxel B1, which contains part of the vegetation and part of the structure, and voxel B2, which is adjacent to voxel B1, contains part of the structure, and does not contain vegetation.
[0068] Voxels B1 and B2, indicated by arrow A1 labeled "Weighting," show a schematic representation of the voxel data used in this position estimation. Here, hatched area 50 shows the distribution of the vegetation measurement point cloud used to generate the voxel data, and hatched areas 51 and 52 show the distribution of the structure measurement point cloud used to generate the voxel data. Furthermore, dashed box 60 shows the variance of the point cloud within voxel B1 as indicated by the covariance matrix recorded as voxel data, and dashed box 61 shows the variance of the point cloud within voxel B2 as indicated by the covariance matrix recorded as voxel data. Additionally, voxels B1 and B2, indicated by arrow A2 labeled "Point Cloud Removal," show a schematic representation of the voxel data used in position estimation based on the comparative example. Here, hatched areas 54 and 55 show the distribution of the structure measurement point cloud used to generate the voxel data. Furthermore, dashed box 63 shows the variance of the point cloud within voxel B1 as indicated by the covariance matrix recorded as voxel data, and dashed box 64 shows the variance of the point cloud within voxel B2 as indicated by the covariance matrix recorded as voxel data.
[0069] In the position estimation based on the comparative example, the measurement point cloud representing vegetation is removed before generating voxel data. Therefore, the dashed frame 63 representing the dispersion of the point cloud within voxel B1 is located at a position centered on the structure indicated by the hatched area 54. On the other hand, in this position estimation, the dashed frame 60 representing the dispersion of the point cloud within voxel B1 spans both the vegetation indicated by the hatched area 50 and the structure indicated by the hatched area 51. Furthermore, in the position estimation based on the comparative example, voxels B1 and B2 are treated with the same weight. On the other hand, in this position estimation, voxel B1 is considered a vegetation voxel Bv, and the weighting value of voxel B1 is set to a smaller value than the weighting value of voxel B2, which is not a vegetation voxel Bv.
[0070] Here, when the in-vehicle device 1 acquires a measurement point cloud 40 represented by an "x" mark within voxels B1 and B2 using the lidar 30, in this position estimation, since the weighting value of voxel B1 is lower than that of voxel B2, the voxel data in voxel B2 is preferentially matched with the measurement point cloud 40. On the other hand, in the position estimation based on the comparative example, since no weighting value is set for each voxel, the matching of voxel data and measurement point cloud 40 is performed with equal weighting across the entire system (in this case, voxels B1 and B2).
[0071] The matching result when this position estimation is performed is indicated by arrow A3, and the matching result when position estimation is performed based on the comparative example is indicated by arrow A4. Here, in the position estimation based on the comparative example, the measurement point cloud of vegetation within voxel B1 is excluded when the voxel data is generated, so the matching between the measurement point cloud 40 within voxel B1, which includes vegetation as a measurement target, and the voxel data becomes inaccurate. In addition, since no weighting is applied in the position estimation based on the comparative example, the overall matching accuracy is reduced due to the inconsistency between the voxel data in voxel B1 and the measurement point cloud 40.
[0072] On the other hand, in this position estimation method, since the measurement point cloud of vegetation within voxel B1 is not excluded when generating the voxel data, matching between the measurement point cloud 40 within voxel B1, which includes vegetation as a measurement target, and the voxel data is suitably performed. However, since the vegetation within voxel B1 fluctuates due to the effects of wind, etc., the matching accuracy in voxel B1 is lower than the matching accuracy in voxel B2. Therefore, if NDT matching is performed without weighting each voxel, the overall matching accuracy will decrease due to the influence of the matching accuracy of voxel B1. In contrast, in this position estimation method, the weighting value of voxel B1 is set relatively low, so matching can be performed while suitably reducing the influence of vegetation fluctuations.
[0073] As described above, the data structure of the map data according to this embodiment includes, for each voxel, a mean vector and covariance matrix relating to the position of the object surface, and weighting values relating to the weights used when estimating the position, with the weighting value for vegetation voxels Bv being set to a lower value than the weighting value for voxels without vegetation. The map data having this data structure is preferably referenced by the on-board unit 1, which estimates the position of the vehicle by weighting the results of comparing the measurement information of objects measured by a measuring device such as a lidar 30 mounted on the vehicle with the voxel data for each voxel.
[0074] Furthermore, the server device 2 in this embodiment performs the following processes: recognizing vegetation voxels Bv containing vegetation measurement points from voxels containing measurement points of objects measured by a measuring device such as a lidar 30; and generating map data that associates the mean vector and covariance matrix for each voxel with weighting values used for position estimation. Here, the server device 2 sets the weighting value for vegetation voxels Bv to be smaller than the weighting value for voxels that do not contain vegetation.
[0075] Furthermore, the in-vehicle device 1 according to this embodiment stores voxel data including mean vectors and covariance matrices for each voxel that divides space, and weighting values for determining the weights to be used when estimating position. It performs the following processes: acquiring measurement information about objects measured by a measuring device such as a lidar 30; comparing the measurement information with the voxel data for each voxel; and estimating the vehicle's position by weighting the results of the comparison based on the weighting values. In this case, the weighting value of a vegetation voxel Bv is smaller than the weighting value of a voxel that does not contain vegetation.
[0076] <Second Example> In the second embodiment, the in-vehicle unit 1 differs from the first embodiment in that it performs dynamic object detection based on voxel data instead of, or in addition to, position estimation based on voxel data. The configurations of the map update system, in-vehicle unit 1, and server device 2 in the second embodiment are the same as those shown in Figures 1 and 2, so their explanation is omitted.
[0077] Figure 8 shows an example of a schematic data structure for voxel data in the second embodiment.
[0078] The voxel data shown in Figure 8 includes a voxel ID, voxel coordinates, a stationary obstacle flag, a vegetation flag, a mean vector, a covariance matrix, and weighting values. Here, the stationary obstacle flag indicates whether the target voxel is a voxel where stationary obstacles mainly exist and where detection of dynamic objects is not required (also called a "stationary obstacle voxel"). A stationary obstacle voxel indicates a region where the entirety or majority of the target voxel is composed of stationary obstacles, and therefore detection of dynamic objects that should be detected for operational purposes is not required (there is no room for dynamic objects). Accordingly, when the in-vehicle unit 1 detects dynamic objects based on the output of the lidar 30, etc., it refers to the stationary obstacle flag to identify stationary obstacle voxels and performs dynamic object detection on voxels other than stationary obstacle voxels. By limiting the detection area of dynamic objects in this way, the load on the dynamic object detection process is suitably reduced while improving the accuracy of dynamic object detection. The stationary obstacle flag is an example of "stationary object data".
[0079] Furthermore, in this embodiment, when generating a stationary obstacle flag, the server device 2 does not consider voxels determined to be vegetation voxels Bv as stationary obstacle voxels. This ensures that dynamic objects appearing near vegetation are reliably detected. The server device 2 is an example of a "stationary object data generation device".
[0080] Figure 9 is a flowchart showing the procedure for generating voxel data according to the second embodiment. Server device 2 executes the process shown in the flowchart in Figure 9 at predetermined timings.
[0081] First, the server device 2 refers to the measurement point cloud DB24, which records the measurement data D1 transmitted from each in-vehicle unit 1, and calculates the mean vector and covariance matrix of the measurement points for each voxel (step S401). Next, the server device 2 performs a vegetation determination process for each voxel containing a measurement point to determine whether or not it is a vegetation voxel Bv (step S402). This vegetation determination process is performed, for example, based on the flowchart in Figure 5 described above.
[0082] Next, the server device 2 generates a stationary obstacle flag based on the vegetation determination result in step S402 (step S403). At this time, the server device 2 generates a stationary obstacle flag indicating that voxels determined to be vegetation voxels Bv are not stationary obstacle voxels. In this way, the server device 2 effectively suppresses the oversight of dynamic objects caused by considering areas where dynamic objects could actually exist as stationary obstacle voxels.
[0083] Furthermore, as a preprocessing step before processing the flowchart in Figure 9, server device 2 may perform a process to exclude measurement point clouds indicating dynamic objects from the measurement point cloud DB24 recorded in the measurement point cloud DB24. For example, server device 2 identifies measurement point clouds that form specific dynamic objects such as pedestrians or vehicles based on processing such as pattern matching based on shape and size, and deletes the identified measurement point clouds from the measurement point cloud DB24. Server device 2 may also set a stationary obstacle flag to indicate that voxels containing measurement points indicating dynamic objects to be excluded are not stationary obstacle voxels, so that they are included in the detection area for dynamic objects.
[0084] Figure 10 is a flowchart showing the procedure for detecting a dynamic object according to the second embodiment. The server device 2 repeatedly executes the process shown in the flowchart in Figure 10, for example, while the vehicle is in motion.
[0085] First, the in-vehicle unit 1 acquires a measurement point cloud based on the output of the lidar 30, measuring the surface of objects around the vehicle (step S501). Next, the in-vehicle unit 1 acquires voxel data of voxels present around the vehicle's position by referring to the map DB 10 based on the vehicle's position (step S502). The aforementioned vehicle position is, for example, a predicted vehicle position obtained by adding the travel distance and change in orientation calculated based on the output of the sensor unit 13 to the estimated vehicle position one time step prior, similar to the position estimation process of the first embodiment shown in Figure 6. Then, the in-vehicle unit 1 identifies stationary obstacle voxels from the voxels containing the measurement points acquired in step S501 by referring to the stationary obstacle flag included in the voxel data of each voxel (step S503). Then, the in-vehicle unit 1 performs dynamic object detection processing, excluding stationary obstacle voxels from the detection target area (step S504). In other words, the in-vehicle unit 1 considers stationary obstacle voxels as areas where no dynamic objects appear and skips the dynamic object detection process, while performing dynamic object detection for the remaining voxels.
[0086] As described above, the server device 2 according to the second embodiment performs the following processes: detecting vegetation voxels Bv containing vegetation measurement points from voxels containing measurement points related to objects measured by a measuring device such as a lidar 30; and generating a stationary obstacle flag indicating that a stationary obstacle exists in a region of voxels from which vegetation voxels Bv have been excluded from the voxels containing measurement points.
[0087] <Variation> The following describes preferred modifications of the first and second embodiments. These modifications may be applied in combination to each of the embodiments described above.
[0088] (Variation 1) Voxel data is not limited to a data structure that includes a mean vector and a covariance matrix, as shown in Figures 3 and 8. For example, the voxel data may include point cloud data obtained by converting the measurement data of the measurement and maintenance vehicle used to calculate the mean vector and covariance matrix to an absolute coordinate system. In this case, the on-board unit 1 is not limited to scan matching by NDT, but may also perform self-position estimation by applying other scan matching methods such as ICP (Iterative Closest Point).
[0089] (Modification 2) In the first embodiment, the voxel data shown in Figure 3 had both weighted values and vegetation flags, but it may also have only one of them.
[0090] For example, if the voxel data is a data structure that does not include weighting values, the in-vehicle unit 1 sets the weighting values used in step S307 of the position estimation process shown in Figure 6 to predetermined values according to the vegetation flag values. In this case, the in-vehicle unit 1 sets the weighting value set when the vegetation flag is a value indicating that it is a vegetation voxel Bv to a smaller value than the weighting value set when the vegetation flag is a value indicating that it is not a vegetation voxel Bv. As a result, the in-vehicle unit 1 relatively reduces the degree of influence of vegetation voxels Bv on position estimation, similar to the case where the voxel data is a data structure that has weighting values, and suitably improves the position estimation accuracy. In this case, the vegetation flag is an example of "information for determining weights".
[0091] (Variation 3) The vehicle may have built-in functionality equivalent to that of the in-vehicle unit 1. In this case, the vehicle's electronic control unit (ECU) executes a program stored in the vehicle's memory, thereby performing processing equivalent to that of the control unit 15 of the in-vehicle unit 1.
[0092] (Modification 4) In the second embodiment, instead of excluding vegetation voxels Bv (i.e., voxels containing vegetation) from stationary obstacle voxels, the in-vehicle unit 1 may exclude voxels containing only vegetation (i.e., voxels containing vegetation but not other stationary structures) from stationary obstacle voxels. In this case, the in-vehicle unit 1 considers voxels containing both vegetation and stationary structures as areas where no dynamic objects appear and skips the dynamic object detection process.
[0093] (Variation 5) The in-vehicle unit 1 may perform vegetation determination processing instead of the server device 2. In this case, for example, in the first embodiment, the in-vehicle unit 1 determines vegetation voxels Bv by performing the processing in step S101 and the vegetation determination processing in step S102 of Figure 4 on the point cloud data obtained by converting the measurement points output by the lidar 30 into an absolute coordinate system. The in-vehicle unit 1 then includes the information of the determined vegetation voxels Bv in the measurement data D1 and transmits it to the server device 2. In this case, the server device 2 generates and updates weighted values for voxel data and vegetation flags based on the measurement data D1 received from the in-vehicle unit 1. Similarly in the second embodiment, the in-vehicle unit 1 determines vegetation voxels Bv by performing the processing in step S401 and the vegetation determination processing in step S402 of Figure 9 on the point cloud data obtained by converting the measurement points output by the lidar 30 into an absolute coordinate system. The vehicle-mounted unit 1 then includes the information of the determined vegetation voxel Bv in the measurement data D1 and transmits it to the server device 2. In this case, the server device 2 generates a stationary obstacle flag based on the measurement data D1 received from the vehicle-mounted unit 1. [Explanation of symbols]
[0094] 1 Onboard device 2 Server devices 10 Map Database 23 Distribution Map Database 24 Measurement Point Cloud Database 11, 21 Communications Department 12, 22 Storage section 15, 25 Control Unit 13 Sensor section 14 Input section 16 Output section
Claims
[Claim 1] In each of the regions that divide the space, Information that describes an object, This includes information regarding the weights used when using information representing the object for position estimation, A storage device having storage means for storing map data in which the weight for areas including vegetation is set to a lower value than the weight for areas not including vegetation.