Positioning method, positioning device, vehicle, storage medium and program product
By extracting and matching the point cloud data under the current position of the vehicle, and gradually determining the positioning posture using the global dictionary, the problem of high complexity of global relocation in autonomous driving is solved, and a more efficient positioning process is achieved.
Patent Information
- Application Number
- CN202111013558.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-08-31
- Publication Date
- 2025-04-22
- Estimated Expiration
- 2041-08-31
AI Technical Summary
In autonomous driving technology, the prior art is difficult to effectively reduce the complexity of position solving during global repositioning, especially when it is necessary to determine the map positioning of six degrees of freedom.
By extracting the point cloud features and global descriptor components in the point cloud data under the current position of the vehicle, using a pre-save global dictionary for matching, the horizontal direction, yaw angle and six degrees of freedom poses are gradually determined, thereby simplifying the pose matching process.
The complexity of pose solving is reduced, positioning efficiency is improved, and calculation complexity is reduced, making the global repositioning process more efficient.
Smart Images

Figure CN115727857B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer technology, and in particular to a positioning method, a positioning device, a vehicle, a computer storage medium, and a computer program product. Background Art
[0002] High-precision positioning technology is crucial to the realization of autonomous driving technology, and global relocalization refers to the process of determining the initial position of an autonomous driving device, such as an autonomous vehicle or robot, within the global map during the startup phase, and then performing continuous high-precision positioning based on the initial position.
[0003] One way of global relocalization is to collect the current point cloud data based on sensor equipment such as lidar and cameras, and perform pose matching on each map pose in the pre-established point cloud map. When a map pose with consistent features is found, it can be determined as the current pose. This type of relocalization method does not need to rely on an external positioning source, but in application scenarios such as autonomous driving, it is usually necessary to determine the map pose with 6 degrees of freedom, including the horizontal direction X\Y, the vertical direction Z, and the roll angle roll, pitch angle pitch and yaw angle, a total of 6 degrees of freedom. Solving the pose in the space of 6 degrees of freedom is a highly complex problem. Summary of the invention
[0004] In order to solve the above technical problems or at least partially solve the above technical problems, the present disclosure provides a positioning method, a positioning device, a vehicle, a computer storage medium and a computer program product to reduce the complexity of posture solution.
[0005] The present disclosure provides a positioning method, including:
[0006] Obtaining point cloud data at a current position of the vehicle, extracting current point cloud features and global descriptor components from the point cloud data, wherein the global descriptor components include a first descriptor component related to a horizontal direction and a second descriptor component related to a yaw angle;
[0007] Matching the first descriptor component in a pre-stored global dictionary, and determining the first horizontal pose according to the matching result;
[0008] Perform secondary matching in the matching result according to the second descriptor component to determine a second posture in the horizontal direction plus the yaw angle;
[0009] Determine a third pose with six degrees of freedom using the second pose;
[0010] The third posture of the six degrees of freedom is used as an initial posture, and the current point cloud feature is matched with a predetermined positioning point cloud map to obtain a positioning result of the current posture.
[0011] The present disclosure also provides a positioning device, including:
[0012] A data acquisition module, used to obtain point cloud data at a current position of the vehicle, and extract current point cloud features and global descriptor components from the point cloud data, wherein the global descriptor components include a first descriptor component related to a horizontal direction and a second descriptor component related to a yaw angle;
[0013] A first pose module, used for matching the first descriptor component in a pre-stored global dictionary, and determining a first pose in the horizontal direction according to the matching result;
[0014] A second posture module, used for performing secondary matching in the matching result according to the second descriptor component to determine a second posture in the horizontal direction plus a yaw angle;
[0015] A third posture module, used for determining a third posture of six degrees of freedom using the second posture;
[0016] The matching module is used to use the third posture of the six degrees of freedom as the initial posture, match the current point cloud feature with a predetermined positioning point cloud map, and obtain a positioning result of the current posture.
[0017] The embodiment of the present disclosure also provides a vehicle, comprising the above-mentioned positioning device.
[0018] The embodiment of the present disclosure further provides a computer-readable storage medium, wherein the storage medium stores a computer program, and the computer program is used to execute the above positioning method.
[0019] The embodiment of the present disclosure also provides a computer program product, which is used to execute the above positioning method.
[0020] The present disclosure provides a positioning method, a positioning device, a vehicle, a computer storage medium and a computer program product. After obtaining a pre-established and saved global dictionary, it can be applied to the positioning process, that is, by obtaining the point cloud data under the current posture of the vehicle, the current point cloud features and global descriptor components can be extracted from the point cloud data, and the global descriptor components include a first descriptor component related to the horizontal direction and a second descriptor component related to the yaw angle. Then, the first descriptor component can be matched in the pre-saved global dictionary, and the first horizontal posture can be determined according to the matching result. Then, a second matching is performed in the matching result according to the second descriptor component to determine the second posture of the horizontal direction plus the yaw angle, and the second posture is further used to determine the third posture of six degrees of freedom, and the third posture of six degrees of freedom is used as the initial posture to match the current point cloud features with the pre-determined positioning point cloud map to obtain the positioning result of the current posture. In the above positioning process, the process of processing the point cloud data under the current posture of the vehicle and the posture matching process are simplified relative to the prior art, and high-complexity calculations are not required, which can reduce the positioning complexity and improve the positioning efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. Throughout the accompanying drawings, the same or similar reference numerals represent the same or similar elements. It should be understood that the drawings are schematic and the originals and elements are not necessarily drawn to scale.
[0022] Figure 1 A schematic diagram of a flow chart of a method for establishing a global dictionary for positioning a point cloud map provided in an embodiment of the present disclosure;
[0023] Figure 2 A schematic diagram of a flow chart of another method for establishing a global dictionary for positioning a point cloud map provided in an embodiment of the present disclosure;
[0024] Figure 3 A schematic diagram of a flow chart of a method for obtaining a first descriptor component provided by an embodiment of the present disclosure;
[0025] Figure 4 A schematic diagram of a flow chart of a method for obtaining a second descriptor component provided by an embodiment of the present disclosure;
[0026] Figure 5 A flowchart of a positioning method provided by an embodiment of the present disclosure;
[0027] Figure 6 A flowchart of another positioning method is provided for an embodiment of the present disclosure;
[0028] Figure 7A schematic diagram of a flow chart of another method for obtaining a first descriptor component provided by an embodiment of the present disclosure;
[0029] Figure 8 A schematic flow chart of another method for obtaining a second descriptor component provided by an embodiment of the present disclosure;
[0030] Fig. 9 A schematic diagram of the structure of a positioning device provided in an embodiment of the present disclosure;
[0031] Fig.10 A schematic diagram of the structure of a vehicle provided in an embodiment of the present disclosure;
[0032] Fig.11 A schematic diagram of the structure of an electronic device provided in an embodiment of the present disclosure. DETAILED DESCRIPTION
[0033] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments described herein, which are instead provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.
[0034] It should be understood that the various steps described in the method embodiments of the present disclosure may be performed in different orders and / or in parallel. In addition, the method embodiments may include additional steps and / or omit the steps shown. The scope of the present disclosure is not limited in this respect.
[0035] The term "including" and its variations used herein are open inclusions, i.e., "including but not limited to". The term "based on" means "based at least in part on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". The relevant definitions of other terms will be given in the following description.
[0036] It should be noted that the concepts such as "first" and "second" mentioned in the present disclosure are only used to distinguish different devices, modules or units, and are not used to limit the order or interdependence of the functions performed by these devices, modules or units.
[0037] It should be noted that the modifications of "one" and "plurality" mentioned in the present disclosure are illustrative rather than restrictive, and those skilled in the art should understand that unless otherwise clearly indicated in the context, it should be understood as "one or more".
[0038] As described in the background technology, in the prior art, global repositioning can be performed using a positioning point cloud map, wherein the positioning point cloud map records each map pose and the point cloud data corresponding to the map pose. In the process of global repositioning, it is necessary to use a sensor device to collect point cloud data at the current pose, and then perform pose matching in the positioning point cloud map to match the map pose consistent with the point cloud data as the current pose; and in repositioning scenarios such as autonomous driving, six degrees of freedom poses are required, namely X, Y, Z, roll, yaw and pitch. Solving the pose in a six-degree-of-freedom space is a highly complex problem. For example, when globally repositioning an autonomous driving vehicle in a 200m×200m park, assuming that the sampling rate of the map pose in the X, Y and Z directions is 0.2m, and the sampling rate in the roll, yaw and pitch directions is 1 degree, then more than 10 poses are required for global repositioning. 13 The pose matching process is repeated to determine the map pose consistent with the point cloud data as the current pose. It can be seen that the existing technology has the defect of complex calculation when using the positioning point cloud map for global repositioning.
[0039] In response to the above-mentioned defects, an embodiment of the present disclosure provides a positioning solution, which can be applied to the above-mentioned global relocalization process. In this technical solution, the above-mentioned positioning point cloud map is not directly used for pose matching, but the above-mentioned positioning point cloud map is simplified to establish a global dictionary of the positioning point cloud map, and then the above-mentioned global dictionary is used in the relocalization process, thereby reducing the computational complexity problem in the global relocalization process.
[0040] The embodiments of the present disclosure will respectively explain the technical solutions from the perspectives of establishing a global dictionary and using the global dictionary for positioning. Since the global dictionary is established based on the simplified processing of the positioning point cloud map, the simplified processing process may include dimensional decomposition, precision reduction processing, etc. Therefore, in the global dictionary process, the process of establishing the positioning point cloud map will also be explained. In some optional embodiments, the process of establishing the positioning point cloud map and the global dictionary can be performed offline, while the process of positioning using the global dictionary can be performed online.
[0041] In the process of establishing a high-precision positioning point cloud map, the first step is to use a collection vehicle or collection robot equipped with high-precision positioning equipment and sensor equipment such as radar and camera to scan the target area and obtain relevant data, namely point cloud data in the radar coordinate system, and the corresponding posture, which includes information on two parts: position and posture; secondly, the point cloud data corresponding to each posture is converted from the radar coordinate system to the global coordinate system, and then spliced to obtain dense point cloud data; thirdly, after processing steps such as cluster optimization, dynamic object filtering and downsampling, the final positioning point cloud map is obtained, which records the point cloud features corresponding to each map posture. The above positioning point cloud map provides a globally consistent scene description and can be applied to high-precision positioning to provide high-precision map postures, for example, accurate to the cm level.
[0042] After obtaining a high-precision positioning point cloud map using the above method, the positioning point cloud map can be used to establish a global dictionary. The global dictionary established in the embodiment of the present disclosure is basically composed of the positioning point cloud map. Figure 1 The corresponding relationship between the sampling pose and the point cloud data needs to be included. The difference is that the point cloud data can be dimensionally decomposed to obtain the global descriptor component simplified from the point cloud data. The above-mentioned sampling pose is the pose of the sampling point on the positioning point cloud map in the global coordinate system. The sampling pose can be sampled from the map pose included in the positioning point cloud map, and the sampling pose set can be the entire map pose set, that is, the two are the same pose set, or the sampling pose set can be a subset of the map pose set corresponding to the positioning point cloud map, that is, according to certain rules, some map poses can be extracted from the map pose set as the sampling pose, that is, the sampling pose is a rough pose, and its accuracy is lower than that of the map pose. In the process of positioning, coarse positioning can be performed based on the sampling pose in the global dictionary, and then fine positioning can be performed based on the coarse positioning result to obtain its map pose in the positioning point cloud map.
[0043] Of course, these algorithm modules will vary depending on the type of autonomous driving vehicle. For example, different algorithm modules will be involved for logistics vehicles, public service vehicles, medical service vehicles, and terminal service vehicles. The following examples illustrate the algorithm modules for these four types of autonomous driving vehicles:
[0044] Among them, logistics vehicles refer to vehicles used in logistics scenarios, such as logistics vehicles with automatic sorting functions, logistics vehicles with refrigeration and insulation functions, and logistics vehicles with measurement functions. These logistics vehicles will involve different algorithm modules.
[0045] For example, a logistics vehicle may be equipped with an automated sorting device, which can automatically take out, transport, sort, and store the goods after the logistics vehicle arrives at the destination. This involves an algorithm module for goods sorting, which mainly implements logical control of goods taking out, transporting, sorting, and storing.
[0046] For another example, for cold chain logistics scenarios, logistics vehicles can also be equipped with refrigeration and heat preservation devices, which can refrigerate or keep warm the transported fruits, vegetables, aquatic products, frozen foods and other perishable foods, so that they are in a suitable temperature environment, solving the problem of long-distance transportation of perishable foods. This involves an algorithm module for refrigeration and heat preservation control, which is mainly used to dynamically and adaptively calculate the appropriate temperature for cold meals or heat preservation based on information such as the nature of the food (or item), perishability, transportation time, current season, climate, etc., and automatically adjust the refrigeration and heat preservation device according to the appropriate temperature. In this way, when the vehicle transports different foods or items, the transportation personnel do not need to manually adjust the temperature, freeing the transportation personnel from cumbersome temperature control and improving the efficiency of refrigerated and heat preservation transportation.
[0047] For another example, in most logistics scenarios, charges are based on the volume and / or weight of the package, but the number of logistics packages is very large. Simply relying on couriers to measure the volume and / or weight of the packages is very inefficient and has high labor costs. Therefore, in some logistics vehicles, measuring devices are added to automatically measure the volume and / or weight of logistics packages and calculate the cost of logistics packages. This involves an algorithm module for logistics package measurement, which is mainly used to identify the type of logistics package and determine the measurement method of the logistics package, such as volume measurement or weight measurement or a combination of volume and weight measurement at the same time. It can also complete the volume and / or weight measurement according to the determined measurement method, and complete the fee calculation based on the measurement results.
[0048] Among them, public service vehicles refer to vehicles that provide some public services, such as fire trucks, de-icing trucks, sprinkler trucks, snowplows, garbage disposal vehicles, traffic control vehicles, etc. These public service vehicles will involve different algorithm modules.
[0049] For example, for an autonomous fire truck, its main task is to carry out reasonable fire-fighting tasks at the fire scene, which involves an algorithm module for fire-fighting tasks. The algorithm module must at least implement logic such as fire condition identification, fire-fighting plan planning, and automatic control of fire-fighting equipment.
[0050] For another example, the main task of a de-icing vehicle is to clear ice and snow from the road surface, which involves a de-icing algorithm module. The algorithm module must at least be able to identify the ice and snow conditions on the road surface and develop a de-icing plan based on the ice and snow conditions, such as which sections of the road require de-icing and which sections do not, whether to use salt spreading and the number of grams of salt to spread, as well as automatic control of the de-icing device when the de-icing plan is determined.
[0051] Among them, medical service vehicles refer to self-driving vehicles that can provide one or more medical services. Such vehicles can provide medical services such as disinfection, temperature measurement, medication, and isolation. This involves algorithm modules that provide various self-service medical services. These algorithm modules mainly realize the identification of disinfection needs and the control of the disinfection device so that the disinfection device can disinfect the patient, or identify the patient's position and control the temperature measuring device to automatically approach the patient's forehead and other positions to measure the patient's temperature, or are used to realize the judgment of the disease, give a prescription based on the judgment result, and need to realize the identification of drugs / drug containers, as well as the control of the medicine-taking robot to grab medicines for the patient according to the prescription, etc.
[0052] Among them, terminal service vehicles refer to self-service autonomous driving vehicles that can replace some terminal devices to provide certain convenient services to users. For example, these vehicles can provide users with printing, attendance, scanning, unlocking, payment, retail and other services.
[0053] For example, in some application scenarios, users often need to go to a specific location to print or scan documents, which is time-consuming and laborious. Therefore, there is a terminal service vehicle that can provide printing / scanning services for users. These service vehicles can be interconnected with user terminal devices. Users issue printing instructions through terminal devices, and service vehicles respond to printing instructions, automatically print the documents required by users, and automatically send the printed documents to the user's location. Users do not need to queue up at the printer, which can greatly improve printing efficiency. Alternatively, it can respond to the scanning instructions issued by the user through the terminal device, move to the user's location, and the user places the document to be scanned on the scanning tool of the service vehicle to complete the scanning, without having to queue up at the printer / scanner, saving time and effort. This involves an algorithm module that provides printing / scanning services, which at least needs to identify the interconnection with the user's terminal device, the response to the printing / scanning instruction, the positioning of the user's location, and the travel control.
[0054] For another example, with the development of new retail business, more and more e-commerce companies use self-service vending machines to sell goods to various office buildings and public areas. However, these self-service vending machines are placed in fixed locations and cannot be moved. Users need to go to the self-service vending machines to buy the required goods, which is still inconvenient. Therefore, self-driving vehicles that can provide retail services have emerged. These service vehicles can carry goods and move automatically, and can provide corresponding self-service shopping APPs or shopping portals. Users can place orders to self-driving vehicles that provide retail services through mobile phones and other terminals through APPs or shopping portals. The order includes the name, quantity and user location of the goods to be purchased. After receiving the order request, the vehicle can determine whether the current remaining goods have the goods purchased by the user and whether the quantity is sufficient. If it is determined that the goods purchased by the user are sufficient, it can automatically move to the user's location with these goods and provide these goods to the user, further improving the convenience of user shopping, saving user time, and allowing users to spend their time on more important things. This involves algorithm modules that provide retail services. These algorithm modules mainly implement logic such as responding to user order requests, order processing, product information maintenance, user location positioning, and payment management.
[0055] In the embodiment of the present disclosure, the technical solution for establishing a global dictionary can be specifically referred to Figure 1 shown. Figure 1 A flowchart of a method for establishing a global dictionary of a positioning point cloud map provided in an embodiment of the present disclosure is provided. The method can be executed on an electronic device, including but not limited to a server, a local computer, etc. Figure 1 As shown, the method comprises the following steps:
[0056] Step 101: obtaining a local point cloud in a global coordinate system at a sampling point of a positioning point cloud map;
[0057] The local point cloud may be point cloud data corresponding to the pose of the sampling point in the global coordinate system, obtained based on the positioning point cloud map. The pose of the sampling point in the global coordinate system may be referred to as a sampling pose, the number of sampling points may be multiple, and the pose set of multiple sampling points in the global coordinate system may be referred to as a sampling pose set.
[0058] Specifically, a sampling pose set is first determined, and the sampling pose set includes multiple sampling poses. As described above, the sampling pose set can be consistent with the map pose set corresponding to the positioning point cloud map, or it can be a subset of the map pose set. For example, when the sampling pose set is a subset of the map pose set, the sampling poses in the sampling pose set have a first position accuracy and a first angle accuracy, and the map pose corresponding to the positioning point cloud map has a second position accuracy and a second angle accuracy, the first position accuracy is greater than the second position accuracy, and / or the first angle accuracy is greater than the second angle accuracy. In a specific example, the sampling rate of the map pose in the X, Y and Z directions can be set to 0.2m, and the sampling rate in the roll, yaw and pitch directions can be set to 1 degree, while the sampling rate of the sampling pose in the X, Y and Z directions is 1m, and the sampling rate in the roll, yaw and pitch directions is 5 degrees.
[0059] After determining the sampling poses of multiple sampling points, the point cloud data corresponding to the sampling poses can be obtained based on the positioning point cloud map, that is, the local point cloud in the global coordinate system is obtained at the sampling points of the positioning map points. As described above, the point cloud data corresponding to each map pose is recorded in the positioning point cloud map, so the acquisition process can be directly extracted from the positioning point cloud map. The above-mentioned local point cloud can be all the point cloud data extracted from the positioning point cloud map, or, in some embodiments, considering that the observation range of the sensor equipment equipped with the autonomous driving vehicle or robot is limited, the above-mentioned local point cloud extracted from the positioning point cloud map may not be all the point cloud data that can be obtained in the positioning point cloud map, but only part of the total point cloud data, such as obtaining the part of the point cloud data corresponding to the sampling pose that is less than the first distance threshold from the position point of the sampling pose as the local point cloud. The above-mentioned first distance threshold can be determined according to the acquisition range of the commonly used sensor equipment, and 50m can be selected to obtain the local point cloud data within 50m of the position point where the sampling pose is located, and use it as the local point cloud.
[0060] Through the above method, on the one hand, the amount of data can be reduced and the speed of establishing the global dictionary can be accelerated; on the other hand, when performing subsequent positioning steps, since the collection range of the sensor equipment is limited, the above-mentioned local point cloud data can be used to meet the needs.
[0061] Step 102, performing plane fitting on the local point cloud to obtain first point cloud data;
[0062] The plane fitting process in this step is to perform plane fitting on the point cloud data corresponding to the ground in the local point cloud, and rotate the ground to the horizontal plane, so that the rotated point cloud data is used as the first point cloud data after the plane fitting process. The sampling pose corresponding to the first point cloud data has its components in the roll and pitch directions set to 0.
[0063] Step 103: vertically translate the first point cloud data to obtain second point cloud data;
[0064] In this step, the first point cloud data can be translated vertically based on the height value of the sampling posture to obtain the second point cloud data after vertical translation. Specifically, the height value of the first point cloud data is corrected, and the first point cloud data is translated in the Z direction by -Zg based on the height value Zg of the sampling posture to obtain the second point cloud data. The components of the posture corresponding to the second point cloud data in the z, roll and pitch directions are set to 0. In addition, since the second point cloud data is extracted from the positioning point cloud map, it is not rotated on the yaw component, so its yaw component can also be set to 0. At this time, the six-degree-of-freedom posture corresponding to the second point cloud data can be recorded as (Xi, Yj, 0, 0, 0, 0).
[0065] Step 104: Obtain a global descriptor component related to the pose corresponding to the sampling point according to the second point cloud data.
[0066] The global descriptor component is the processed point cloud data corresponding to the position and posture of the sensor collecting the point cloud in its own coordinate system, that is, the point cloud data after simplified processing. The global dictionary may include the correspondence between the global descriptor component and the position and posture of the sampling point in the global coordinate system.
[0067] On the basis of the above processing, in this step, dimensional decomposition is performed based on the second point cloud data to obtain the corresponding global descriptor component, which may include a first descriptor component related to the horizontal direction and a second descriptor component related to the yaw angle, that is, the global descriptor component includes a part of the components related to X and Y, which can be called the first descriptor component related to the horizontal direction; and a second part of the components related to yaw, which can be called the second descriptor component related to the yaw angle. The specific method of obtaining the above first descriptor component and the second descriptor component is described in detail in the following embodiments.
[0068] In the embodiment of the present disclosure, the local point cloud is obtained in step 101 through the above technical solution, and further through the processing process of steps 102 to 104, the global descriptor component related to the posture corresponding to each sampling point is obtained, that is, including the first descriptor component related to the horizontal direction and the second descriptor component related to the yaw angle, so that a global dictionary can be established. The posture corresponding to each sampling point and its corresponding global descriptor component can be called a dictionary entry. The global dictionary D can be expressed as follows:
[0069]
[0070] Among them, M represents a sampling pose set corresponding to multiple sampling points, i represents the pose corresponding to the i-th sampling point in the sampling pose set, key represents the first descriptor component related to the horizontal direction, and pose represents the second descriptor component related to the yaw angle.
[0071] After obtaining the above global dictionary, it can be applied to the positioning process, that is, by obtaining the point cloud data of the vehicle's current position, and then using Figure 1 In the same manner as the illustrated embodiment, the current point cloud features and global descriptor components are extracted from the point cloud data, and the global descriptor components include a first descriptor component related to the horizontal direction, and a second descriptor component related to the yaw angle. Then, a match can be performed in a pre-saved global dictionary based on the first descriptor component, and the first horizontal pose is determined based on the matching result. Then, a second match is performed in the matching result based on the second descriptor component to determine the second pose of the horizontal direction plus the yaw angle. The second pose is further used to determine the third pose of six degrees of freedom, and the third pose of six degrees of freedom is used as the initial pose to match the current point cloud features with the predetermined positioning point cloud map to obtain the positioning result of the current pose. In the above positioning process, the process of processing the point cloud data at the current pose of the vehicle and the pose matching process are simplified relative to the prior art, and do not require high-complexity operations, which can reduce the positioning complexity and improve the positioning efficiency.
[0072] In some embodiments, as described above, the point cloud data included in the positioning point cloud map may be point cloud data in the global coordinate system, and in the subsequent positioning step, the positioning point cloud data in the radar coordinate system collected by the sensor device may be used for positioning. Therefore, in the process of establishing a global dictionary in the embodiment of the present disclosure, the local point cloud in the global coordinate system corresponding to the pose corresponding to the acquired sampling point may be converted into the local point cloud in the radar coordinate system. Figure 2 As shown, step 105 may also be included, which is performed after step 101 and includes the following:
[0073] Step 105: convert the local point cloud in the global coordinate system into the local point cloud in the radar coordinate system;
[0074] Performing plane fitting on the local point cloud to obtain the first point cloud data in step 102 may include: performing plane fitting processing on the local point cloud in the radar coordinate system to obtain the first point cloud data.
[0075] The following describes a specific method for obtaining the first descriptor component related to the horizontal direction and the second descriptor component related to the yaw angle. This acquisition method is only an exemplary method, and those skilled in the art can also modify this exemplary method to obtain other implementation methods.
[0076] Figure 3 A flowchart of a method for obtaining a first descriptor component provided by an embodiment of the present disclosure is shown in FIG. Figure 3 As shown, the following steps are included:
[0077] Step 301: Divide the local point cloud into N sampling rings with the horizontal coordinate point of the posture corresponding to the sampling point as the center of the circle, where N is a positive integer greater than or equal to 2;
[0078] Specifically, the sampling rings may be sampling circular rings, and the radii of the N sampling circular rings increase sequentially, and the N sampling circular rings are sequentially arranged along the radial direction. For example, 20 sampling circular rings may be divided within a range of 100 m at intervals of 5 m.
[0079] Step 302: acquiring point cloud feature values of N sampling rings based on the second point cloud data;
[0080] In this step, the point cloud feature value can be used to represent the characteristics of the second point cloud data in the sampling ring, wherein a histogram of the point cloud height values in each sampling ring can be statistically analyzed based on the second point cloud data to serve as the point cloud feature value of each sampling ring.
[0081] Step 303: Generate a first descriptor component related to the horizontal direction based on the point cloud feature values of the N sampling rings.
[0082] When the histogram of the point cloud height value in each sampling ring is used as the point cloud feature value of each sampling ring, the first descriptor component related to the horizontal direction can be generated based on the histogram of the point cloud height value in the N sampling rings. Assuming that the histogram can include L height intervals, if the histogram can be in the interval of 0-30m, with an interval of 3m, a total of 10 height intervals are taken, and then N×L two-dimensional matrices can be constructed based on the histogram of the point cloud height value in the N sampling rings, and the N×L two-dimensional matrices are used as the first descriptor component related to the horizontal direction.
[0083] in addition, Figure 4 A flowchart of a method for obtaining a second descriptor component provided by an embodiment of the present disclosure is shown in FIG. Figure 4 As shown, the following steps are included:
[0084] Step 401: Divide the local point cloud into M arc areas in the yaw angle direction, where M is a positive integer greater than or equal to 2;
[0085] Specifically, the area may be divided according to preset degree intervals, for example, at intervals of 5 degrees, a total of 72 arc areas may be obtained.
[0086] Step 402: acquiring point cloud feature values of M arc areas based on the second point cloud data;
[0087] In this step, the point cloud feature value of each arc area is obtained based on the second point cloud data. The point cloud feature value may be used to represent the characteristics of the second point cloud data in the arc area, and may be obtained in various ways. In some embodiments, the maximum height value of the point cloud data of each arc area may be obtained based on the second point cloud data, and these values are used as the point cloud feature values in turn.
[0088] Step 403: Generate a second descriptor component related to the yaw angle based on the point cloud feature values of the M arc regions.
[0089] Based on the above steps, the second descriptor component related to the yaw angle can be generated based on the maximum height value of the second point cloud data of the M arc areas. For example, M×1 feature vectors can be created based on the maximum height value of the second point cloud data of the M arc areas, and used as the second descriptor component related to the yaw angle in turn.
[0090] In the embodiment of the present disclosure, based on Figure 1-Figure 4 For details on the technical solution for positioning in any of the embodiments shown, please refer to Figure 5 shown. Figure 5 A flow chart of a positioning method provided in an embodiment of the present disclosure is shown. The method can be executed on an electronic device, including but not limited to a server, a local computer, etc. Figure 5 As shown, the method comprises the following steps:
[0091] Step 501: obtaining point cloud data of the vehicle at its current position and posture, and extracting current point cloud features and global descriptor components from the point cloud data;
[0092] The global descriptor component includes a first descriptor component related to the horizontal direction and a second descriptor component related to the yaw angle.
[0093] The positioning method provided by the embodiment of the present disclosure may be an online positioning method, and therefore, the point cloud data at the current position of the vehicle may be point cloud data collected in real time by the sensor device. The point cloud data may be in the same form as the point cloud data recorded in the positioning point cloud map, except that the point cloud data at the current position in this step is used for positioning. The sensor device includes but is not limited to cameras, radars and other devices.
[0094] After obtaining the point cloud data of the vehicle's current posture, extract the current point cloud features and global descriptor components from the point cloud data. The process of extracting the current point cloud features can be to convert the point cloud data corresponding to the current posture from the sensor's own coordinate system to the global coordinate system, and then splice to obtain dense point cloud data. Then, after processing steps such as cluster optimization, dynamic object filtering and downsampling, the current point cloud features corresponding to the final current posture are obtained. The specific processing steps for extracting the global descriptor component can be referred to Figure 1 Steps 102 to 104 in the illustrated embodiment.
[0095] Specifically, perform plane fitting processing on the point cloud data in the current position. For specific plane fitting processing steps, please refer to Figure 1 Step 102 in the illustrated embodiment is to perform plane fitting on the point cloud data corresponding to the ground in the point cloud data at the current posture, and rotate the ground to the horizontal plane, so that the rotated point cloud data is used as the point cloud data after plane fitting processing. The posture corresponding to the point cloud data at the current posture after the plane fitting processing has its components in the roll and pitch directions set to 0.
[0096] Then, based on the height value of the sensor device, the point cloud data in the current position after plane fitting processing is vertically translated to obtain the target point cloud data after vertical translation; for specific processing methods, please refer to Figure 1 In step 103 of the illustrated embodiment, the height value of the point cloud data in the current position after the plane fitting process is corrected, and based on the height value Zg of the sensing device, the point cloud data in the current position after the plane fitting process is translated by -Zg in the Z direction to obtain the target point cloud data. The components of the position corresponding to the target point cloud data in the z, roll and pitch directions are set to 0.
[0097] Afterwards, a first descriptor component related to the horizontal direction and a second descriptor component related to the yaw angle in the global descriptor component are respectively obtained based on the target point cloud data.
[0098] For specific processing methods, please refer to Figure 1 In step 104 of the illustrated embodiment, on the basis of the above processing, dimension decomposition is performed based on the target point cloud data in this step to obtain the corresponding global descriptor component, which includes a part related to X and Y, which can be called the first descriptor component related to the horizontal direction; and a second part related to yaw, which can be called the second descriptor component related to the yaw angle. The specific method for obtaining the global descriptor component corresponding to the point cloud data in the above current posture is described in detail in the following embodiment.
[0099] Step 502: perform matching in a pre-stored global dictionary according to the first descriptor component, and determine the first horizontal pose according to the matching result.
[0100] In this step, based on the first descriptor component related to the horizontal direction, a posture match is performed with the first descriptor component related to the horizontal direction in the posture of the sampling point in the global dictionary, and a corresponding first candidate posture set is determined as a matching result, in which each posture has a set horizontal direction component, that is, the value of X and Y;
[0101] Specifically, a search may be performed in the global dictionary based on the first descriptor component related to the horizontal direction to determine the first pose in the corresponding horizontal direction and the first candidate pose set.
[0102] Step 503: Perform secondary matching in the matching results according to the second descriptor component to determine a second posture of the horizontal direction plus the yaw angle.
[0103] In this step, posture matching is performed based on the second descriptor component related to the yaw angle and the second descriptor component corresponding to each posture in the first candidate posture set to determine the corresponding second candidate posture set from the first candidate posture set, wherein each posture in the second candidate sampling posture set has a set horizontal direction component and a yaw angle component.
[0104] Specifically, as in the above-mentioned embodiment, the second descriptor component related to the yaw angle in the posture of the sampling point can be an M×1 feature vector, and the second descriptor component related to the yaw angle in the current posture obtained in this embodiment can also be an M×1 feature vector. Therefore, the specific matching process in this step can be that at the same X and Y determined position, the value of the second descriptor component related to the yaw angle in the current posture is related to the yaw angle, and the change of the yaw angle corresponds to the vector value of the above-mentioned M×1 feature vector moving in sequence. Therefore, the vector value of the M×1 feature vector corresponding to the second descriptor component related to the yaw angle in the global dictionary is moved in sequence, and matched with the corresponding feature vector of the second descriptor component related to the yaw angle in the current posture, and the Euclidean distance of the two vectors is obtained. When the distance is the smallest, the match is successful, and the corresponding yaw angle is the yaw angle component.
[0105] Step 504: Use the second posture to determine a third posture with six degrees of freedom.
[0106] In this step, based on the X, Y and yaw components of the current posture determined in the above-mentioned embodiment, that is, after determining the second posture of the horizontal direction plus the yaw angle, the Z, roll and pitch components can be further determined to determine the third posture with six degrees of freedom. For details, see Figure 8Provide explanation.
[0107] For details on the processing process of this step, see Figure 6 . Figure 6 A flowchart of another positioning method is provided for the embodiment of the present disclosure, such as Figure 6 As shown, step 504 may include the following steps:
[0108] Step 601: Determine the vertical component of the posture corresponding to the point cloud data in the current posture based on the height value of the sensor device;
[0109] During the operation of autonomous vehicles or robots, they usually run close to the ground. Therefore, the height value from the sensor device to the ground can be used as the vertical component Z.
[0110] Step 602: Based on the slope inclination angle of the sensing device and the vertical direction component, determine the roll angle component of the posture corresponding to the point cloud data at the current posture, and the pitch angle component of the posture corresponding to the point cloud data at the current posture;
[0111] Specifically, the inclination angle of the slope where the sensing device is located in this step, that is, the inclination angle of the slope where the autonomous driving vehicle or robot equipped with the sensing device is located, can be represented by θ. At this time, for the roll angle roll, it can be determined by the following formula: roll = θ × cos (yaw); and for the pitch angle pitch, it can be determined by the following formula: pitch = θ × sin (yaw).
[0112] Step 603: Determine a third posture of six degrees of freedom corresponding to the point cloud data in the current posture based on the horizontal direction component, the vertical direction component, the roll angle component, the pitch angle component, and the yaw angle component.
[0113] Step 505: Use the third posture with six degrees of freedom as the initial posture, match the current point cloud features with a predetermined positioning point cloud map, and obtain a positioning result of the current posture.
[0114] After determining the components of the above six degrees of freedom, the pose corresponding to the point cloud data in the current pose can be determined, thereby initially achieving positioning. The pose is the pose of a sampling point. As described in the above embodiment, the pose of the sampling point is a subset of the map pose in the positioning point cloud map, so pose matching can be further performed based on the pose obtained in this step to determine the positioning result of the current pose, that is, to determine a map pose with higher accuracy.
[0115] Specifically, the following steps may be included: taking the posture corresponding to the point cloud data under the current posture as the initial posture, matching the map posture in a predetermined positioning point cloud map according to the initial posture and the current point cloud features to obtain the current posture.
[0116] That is, the higher-precision map pose corresponding to the current pose is also around the initial pose. Based on the initial pose, the point cloud features corresponding to the surrounding poses can be obtained, and then the current point cloud features can be matched to obtain the higher-precision map pose, which is the current pose. This is a technical method that first performs coarse positioning based on a global dictionary to obtain a lower-precision initial pose, and then obtains a higher-precision map pose. It implements a hierarchical positioning method that can avoid the problem of large amount of calculation and low positioning efficiency caused by the need to perform pose matching from a large amount of point cloud data when performing high-precision positioning at the beginning.
[0117] The following is a description of a specific method for obtaining the global descriptor component corresponding to the point cloud data in the current position. This method is only an exemplary method, and those skilled in the art can also modify this exemplary method to obtain other implementation methods. The global descriptor component includes a first descriptor component related to the horizontal direction and a second descriptor component related to the yaw angle.
[0118] Figure 7 A flowchart of another method for obtaining a first descriptor component provided by an embodiment of the present disclosure is shown in FIG. Figure 7 As shown, the following steps are included:
[0119] Step 701: Divide the point cloud data of the current posture into N sampling rings with the horizontal coordinate point of the current posture as the center, where N is a positive integer greater than or equal to 2;
[0120] Specifically, the sampling rings may be sampling circular rings, and the radii of the N sampling circular rings increase sequentially, and the N sampling circular rings are sequentially arranged along the radial direction. For example, 20 sampling circular rings may be divided within a range of 100 m at intervals of 5 m.
[0121] Step 702: acquiring point cloud feature values of N sampling rings based on the target point cloud data;
[0122] In this step, the point cloud feature values may be used to represent the characteristics of the target point cloud data within the sampling ring, wherein a histogram of the point cloud height values within each sampling ring may be statistically analyzed based on the target point cloud data to serve as the point cloud feature values of each sampling ring.
[0123] Step 703: Generate a first descriptor component related to the horizontal direction based on the point cloud feature values of the N sampling rings.
[0124] When the histogram of the point cloud height value in each sampling ring is used as the point cloud feature value of each sampling ring, the first descriptor component related to the horizontal direction can be generated based on the histogram of the point cloud height value in N sampling rings. Assuming that the histogram can include L height intervals, if the histogram can be in the interval of 0-30m, with an interval of 3m, a total of 10 height intervals are taken, and then N×L two-dimensional matrices can be constructed based on the histogram of the point cloud height value in N sampling rings, and the N×L two-dimensional matrices are used as the first descriptor component related to the horizontal direction.
[0125] in addition, Figure 8 A flowchart of another method for obtaining a second descriptor component provided by an embodiment of the present disclosure is shown in FIG. Figure 8 As shown, the following steps are included:
[0126] Step 801: Divide the point cloud data of the current posture into M arc areas in the yaw angle direction, where M is a positive integer greater than or equal to 2;
[0127] Specifically, the area may be divided according to preset degree intervals, for example, at intervals of 5 degrees, a total of 72 arc areas may be obtained.
[0128] Step 802: acquiring point cloud feature values of M arc areas based on the target point cloud data;
[0129] In this step, the point cloud feature value of each arc area is obtained based on the target point cloud data, wherein the point cloud feature value can be used to represent the characteristics of the third positioning point cloud data in the arc area, and can be obtained in various ways. In some embodiments, the maximum height value of the point cloud data of each arc area can be obtained based on the target point cloud data, and is sequentially used as the point cloud feature value;
[0130] Step 803: Generate a second descriptor component related to the yaw angle at the current posture based on the point cloud feature values of the M arc regions.
[0131] Based on the above steps, the second descriptor component related to the yaw angle at the current posture can be generated based on the maximum height value of the target point cloud data of the M arc areas. For example, M×1 feature vectors can be created based on the maximum height value of the target point cloud data of the M arc areas, and used as the second descriptor component related to the yaw angle at the current posture in turn.
[0132] In the disclosed embodiment, after obtaining the point cloud data of the vehicle at the current posture and extracting the global descriptor components corresponding to the point cloud data at the current posture, posture matching can be performed in the global dictionary of the positioning point cloud map based on the global descriptor components to obtain the posture of the horizontal direction plus the yaw angle, that is, the X, Y and yaw values can be determined, thereby preliminarily realizing the positioning process; then, on the basis of determining the X, Y and yaw components of the current posture, the Z, roll and pitch components can be further determined. After determining the components of the above six degrees of freedom, the posture corresponding to the point cloud data at the current posture can be determined, and then the posture corresponding to the point cloud data at the current posture can be used as the initial posture, and the current point cloud features are matched with the predetermined positioning point cloud map to obtain the positioning result of the current posture.
[0133] Specifically, based on the above Figure 1-Figure 4 The records in the illustrated embodiment, where the posture of the sampling point and its corresponding global descriptor component are recorded in the global dictionary, that is, the first descriptor component related to the horizontal direction and the second descriptor component related to the yaw angle corresponding to the posture of each sampling point are recorded. Through the global dictionary and the global descriptor component corresponding to the point cloud data in the current posture, the posture of the horizontal direction plus the yaw angle can be determined, that is, the values of X, Y and yaw can be determined, thereby preliminarily realizing the positioning process. In the above positioning process, the process of processing the point cloud data in the current posture and the posture matching process are simplified relative to the existing positioning method, and do not require high-complexity operations, which can reduce the complexity of positioning and improve positioning efficiency.
[0134] Fig. 9 A schematic diagram of a positioning device provided in an embodiment of the present disclosure is shown in FIG. Fig. 9 As shown, the device includes: a data acquisition module 11, a first pose module 12, a second pose module 13, a third pose module 14 and a matching module 15, wherein the acquisition module 11 is used to obtain point cloud data under the current pose of the vehicle, extract current point cloud features and global descriptor components from the point cloud data, and the global descriptor components include a first descriptor component related to the horizontal direction and a second descriptor component related to the yaw angle; the first pose module 12 is used to match in a pre-stored global dictionary according to the first descriptor component, and determine the first pose in the horizontal direction according to the matching result; the second pose module 13 is used to perform secondary matching in the matching result according to the second descriptor component, and determine the second pose in the horizontal direction plus the yaw angle; the third pose module 14 is used to use the second pose to determine the third pose of six degrees of freedom; the matching module 15 is used to use the third pose of six degrees of freedom as the initial pose, match the current point cloud features with a predetermined positioning point cloud map, and obtain the positioning result of the current pose.
[0135] The positioning device provided in the embodiment of the present disclosure is Figure 5-Figure 8 The device embodiment corresponding to the positioning method shown in the figure, the specific technical scheme and the technical effect achieved can be referred to Figure 5-Figure 8 The method embodiment shown is not described in detail in this embodiment.
[0136] In some embodiments, the global dictionary includes a correspondence between a global descriptor component and a position and posture of a sampling point in a global coordinate system, wherein the global descriptor component is processed point cloud data corresponding to a position and posture of a sensor that collects the point cloud in its own coordinate system;
[0137] The device also includes a global dictionary building module, which includes:
[0138] A local point cloud unit, used to obtain a local point cloud in a global coordinate system at a sampling point of the positioning point cloud map;
[0139] A processing unit, configured to perform plane fitting on the local point cloud to obtain first point cloud data; and perform vertical translation on the first point cloud data to obtain second point cloud data;
[0140] A global descriptor component unit is used to obtain a global descriptor component related to the posture corresponding to the sampling point according to the second point cloud data.
[0141] The global dictionary building module provided in the embodiment of the present disclosure is similar to the above Figure 1 Corresponding to the method shown, the method can be executed and the corresponding technical effect can be achieved. The embodiment of the present disclosure will not be described in detail. The specific method and the technical effect achieved can refer to the above embodiment.
[0142] In some embodiments, the global descriptor component unit may include a first descriptor component unit, and the first descriptor component unit is specifically configured to obtain a first descriptor component related to the horizontal direction in the following manner, including:
[0143] Taking the horizontal coordinate point of the posture corresponding to the sampling point as the center of the circle, the local point cloud is divided into N sampling rings, where N is a positive integer greater than or equal to 2;
[0144] Acquire point cloud feature values of the N sampling rings based on the second point cloud data;
[0145] The first descriptor component associated with the horizontal direction is generated based on the point cloud feature values of the N sampling rings.
[0146] In some embodiments, the step of obtaining the point cloud feature values of the N sampling rings based on the second point cloud data includes:
[0147] Based on the second point cloud data, a histogram of point cloud height values in each sampling ring is counted as a point cloud feature value of each sampling ring;
[0148] The generating the first descriptor component related to the horizontal direction based on the point cloud feature values of N sampling rings includes:
[0149] The first descriptor component related to the horizontal direction is generated based on a histogram of point cloud height values within the N sampling rings.
[0150] In some embodiments, the histogram includes L height intervals, and the generating of the first descriptor component related to the horizontal direction based on the histogram of point cloud height values in N sampling rings includes:
[0151] An N×L two-dimensional matrix is constructed based on the histogram of the point cloud height values in the N sampling rings as the first descriptor component related to the horizontal direction.
[0152] In some embodiments, the global descriptor component unit may include a second descriptor component unit, and the second descriptor component unit is specifically used to obtain a second descriptor component related to the yaw angle in the following manner, including:
[0153] Dividing the local point cloud into M arc areas in the yaw angle direction, where M is a positive integer greater than or equal to 2;
[0154] Acquire point cloud feature values of the M arc areas based on the second point cloud data;
[0155] The second descriptor component related to the yaw angle is generated based on the point cloud feature values of the M arc areas.
[0156] In some embodiments, the step of acquiring the point cloud feature values of the M arc areas based on the second point cloud data includes:
[0157] Acquire a maximum height value of the point cloud data of each arc area based on the second point cloud data;
[0158] The generating the second descriptor component related to the yaw angle based on the point cloud feature values of the M arc regions comprises:
[0159] The second descriptor component related to the yaw angle is generated based on the maximum height value of the second point cloud data of the M arc areas.
[0160] In some embodiments, an M×1 feature vector is created based on the maximum height value of the point cloud data of the M arc regions as the second descriptor component related to the yaw angle.
[0161] The present disclosure also provides a vehicle, Fig.10A schematic diagram of the structure of a vehicle provided in an embodiment of the present disclosure, such as Fig.10 As shown, it includes the above Fig. 9 The positioning device 21 and the sensor device 22 are shown. The vehicle can be an automatic mobile device, which includes but is not limited to self-driving vehicles, unmanned vending vehicles, unmanned food delivery vehicles or robots, etc., which have the ability to be positioned using the technical solutions provided by the above embodiments of the present disclosure. The positioning device can be positioned based on the method provided by the above embodiments, especially the function of global repositioning when the self-driving vehicle, unmanned vending vehicle, unmanned food delivery vehicle or robot is restarted. The technical solutions provided by the embodiments of the present disclosure can reduce the computational complexity of the repositioning process and improve the repositioning efficiency.
[0162] Specifically, the above-mentioned sensing device and positioning device can be both arranged on the same vehicle, that is, the vehicle itself realizes the positioning function. Alternatively, in some embodiments, the above-mentioned positioning system further includes a positioning server, the positioning server realizes the positioning function, and the sensing device is arranged on the vehicle, and the positioning device is arranged in the positioning server, so as to simplify the settings of each vehicle, and realize the specific positioning process and steps through the positioning server.
[0163] The embodiment of the present disclosure further provides a computer-readable storage medium, wherein the storage medium stores a computer program, and the computer program is used to execute the above positioning method.
[0164] The embodiment of the present disclosure also provides a computer program product, which is used to execute the above positioning method.
[0165] Fig.11 A schematic diagram of the structure of an electronic device provided in an embodiment of the present disclosure, which can be installed in Fig.10 A local host or server on the vehicle, such as a positioning server.
[0166] The following is a specific reference, which shows a schematic diagram of the structure of an electronic device 1100 suitable for implementing the embodiment of the present disclosure. The electronic device 1100 in the embodiment of the present disclosure may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), vehicle-mounted terminals (such as vehicle-mounted navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. The electronic device shown is only an example and should not bring any limitation to the functions and occupancy range of the embodiment of the present disclosure.
[0167] As shown in the figure, the electronic device 1100 may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 1101, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1102 or a program loaded from a storage device 1108 into a random access memory (RAM) 503. In the RAM 1103, various programs and data required for the operation of the electronic device 1100 are also stored. The processing device 1101, the ROM 1102, and the RAM 1103 are connected to each other via a bus 1104. An input / output (I / O) interface 1105 is also connected to the bus 1104.
[0168] Typically, the following devices may be connected to the I / O interface 1105: input devices 1106 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; output devices 1107 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; storage devices 1108 including, for example, a magnetic tape, a hard disk, etc.; and communication devices 1109. The communication devices 1109 may allow the electronic device 1100 to communicate wirelessly or wired with other devices to exchange data. Although the electronic device 1100 having various devices is shown, it should be understood that it is not required to implement or have all the devices shown. More or fewer devices may be implemented or have instead.
[0169] In particular, according to an embodiment of the present disclosure, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present disclosure includes a computer program product, which includes a computer program carried on a non-transitory computer-readable medium, and the computer program contains program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from the network through the communication device 1109, or installed from the storage device 1108, or installed from the ROM 1102. When the computer program is executed by the processing device 1101, the above-mentioned functions defined in the positioning method of the embodiment of the present disclosure are executed.
[0170] It should be noted that the computer-readable medium disclosed above may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that may be used by or in combination with an instruction execution system, device or device. In the present disclosure, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, in which a computer-readable program code is carried. This propagated data signal may take a variety of forms, including but not limited to an electromagnetic signal, an optical signal, or any suitable combination of the above. The computer readable signal medium may also be any computer readable medium other than a computer readable storage medium, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.
[0171] In some embodiments, the client and the server may communicate using any currently known or future developed network protocol such as HTTP (HyperText Transfer Protocol), and may be interconnected with any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), an internet (e.g., the Internet), and a peer-to-peer network (e.g., an ad hoc peer-to-peer network), as well as any currently known or future developed network.
[0172] The computer-readable medium may be included in the electronic device, or may exist independently without being incorporated into the electronic device.
[0173] The computer-readable medium carries one or more programs. When the one or more programs are executed by the electronic device, the electronic device:
[0174] Obtaining point cloud data at a current position of the vehicle, extracting current point cloud features and global descriptor components from the point cloud data, wherein the global descriptor components include a first descriptor component related to a horizontal direction and a second descriptor component related to a yaw angle;
[0175] Matching the first descriptor component in a pre-stored global dictionary, and determining the first horizontal pose according to the matching result;
[0176] Perform secondary matching in the matching result according to the second descriptor component to determine a second posture in the horizontal direction plus the yaw angle;
[0177] Determine a third pose with six degrees of freedom using the second pose;
[0178] The third posture of the six degrees of freedom is used as an initial posture, and the current point cloud feature is matched with a predetermined positioning point cloud map to obtain a positioning result of the current posture.
[0179] Computer program code for performing the operations of the present disclosure may be written in one or more programming languages or a combination thereof, including, but not limited to, object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0180] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some implementations as replacements, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0181] The units involved in the embodiments described in the present disclosure may be implemented by software or hardware, wherein the name of a unit does not, in some cases, limit the unit itself.
[0182] The functions described above herein may be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), and the like.
[0183] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0184] According to one or more embodiments of the present disclosure, the present disclosure provides a computer-readable storage medium, wherein the storage medium stores a computer program, and the computer program is used to execute any positioning method as provided by the present disclosure.
[0185] It is only a preferred embodiment of the present disclosure and an explanation of the technical principles used. Those skilled in the art should understand that the scope of disclosure involved in the present disclosure is not limited to the technical solutions formed by a specific combination of the above technical features, but should also cover other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the above disclosed concept. For example, the above features are replaced with the technical features with similar functions disclosed in the present disclosure (but not limited to) to form a technical solution.
[0186] In addition, although each operation is described in a specific order, this should not be understood as requiring these operations to be performed in the specific order shown or in a sequential order. Under certain circumstances, multitasking and parallel processing may be advantageous. Similarly, although some specific implementation details are included in the above discussion, these should not be interpreted as limiting the scope of the present disclosure. Some features described in the context of a separate embodiment can also be implemented in a single embodiment in combination. On the contrary, the various features described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable sub-combination mode.
[0187] Although the subject matter has been described in language specific to structural features and / or methodological logical actions, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. On the contrary, the specific features and actions described above are merely example forms of implementing the claims.
Claims
1. A positioning method, comprising: Obtaining point cloud data at a current position of the vehicle, extracting current point cloud features and global descriptor components from the point cloud data, wherein the global descriptor components include a first descriptor component related to a horizontal direction and a second descriptor component related to a yaw angle; Matching the first descriptor component in a pre-stored global dictionary, and determining the first horizontal pose according to the matching result; Perform secondary matching in the matching result according to the second descriptor component to determine a second posture in the horizontal direction plus the yaw angle; Determine a third pose with six degrees of freedom using the second pose; Using the third posture of the six degrees of freedom as an initial posture, matching the current point cloud feature with a predetermined positioning point cloud map to obtain a positioning result of the current posture; The global dictionary is established in the following way: At the sampling points of the positioning point cloud map, obtaining a local point cloud in a global coordinate system; Performing plane fitting on the local point cloud to obtain first point cloud data; performing vertical translation on the first point cloud data to obtain second point cloud data; Obtaining the global descriptor component related to the posture corresponding to the sampling point according to the second point cloud data; The global descriptor component related to the posture corresponding to each sampling point is obtained to establish the global dictionary.
2. The method according to claim 1, wherein: The global dictionary includes the correspondence between the global descriptor component and the position and posture of the sampling point in the global coordinate system. The global descriptor component is the processed point cloud data corresponding to the position and posture of the sensor that collects the point cloud in its own coordinate system.
3. The method according to claim 2, wherein: The step of obtaining a global descriptor component related to the posture corresponding to the sampling point according to the second point cloud data includes: Taking the horizontal coordinate point of the posture corresponding to the sampling point as the center of the circle, the local point cloud is divided into N sampling rings, where N is a positive integer greater than or equal to 2; Acquire point cloud feature values of the N sampling rings based on the second point cloud data; The first descriptor component associated with the horizontal direction is generated based on the point cloud feature values of the N sampling rings.
4. The method according to claim 3, wherein: The step of acquiring the point cloud feature values of the N sampling rings based on the second point cloud data includes: Based on the second point cloud data, a histogram of point cloud height values in each sampling ring is counted as a point cloud feature value of each sampling ring; The generating the first descriptor component related to the horizontal direction based on the point cloud feature values of N sampling rings includes: The first descriptor component related to the horizontal direction is generated based on a histogram of point cloud height values within the N sampling rings.
5. The method according to claim 4, wherein: The histogram includes L height intervals, and the histogram based on the point cloud height values in N sampling rings generates the first descriptor component related to the horizontal direction, including: An N×L two-dimensional matrix is constructed based on the histogram of the point cloud height values in the N sampling rings as the first descriptor component related to the horizontal direction.
6. The method according to claim 2, wherein: The step of obtaining a global descriptor component related to the posture corresponding to the sampling point according to the second point cloud data includes: Dividing the local point cloud into M arc areas in the yaw angle direction, where M is a positive integer greater than or equal to 2; Acquire point cloud feature values of the M arc areas based on the second point cloud data; The second descriptor component related to the yaw angle is generated based on the point cloud feature values of the M arc areas.
7. The method according to claim 6, wherein: The step of acquiring the point cloud feature values of the M arc areas based on the second point cloud data includes: Acquire a maximum height value of the point cloud data of each arc area based on the second point cloud data; The generating the second descriptor component related to the yaw angle based on the point cloud feature values of the M arc regions comprises: The second descriptor component related to the yaw angle is generated based on the maximum height value of the second point cloud data of the M arc areas.
8. The method according to claim 7, wherein: The M×1 feature vector is created based on the maximum height value of the point cloud data of the M arc areas as the second descriptor component related to the yaw angle.
9. A positioning device, comprising: A data acquisition module, used to obtain point cloud data at a current position of the vehicle, and extract current point cloud features and global descriptor components from the point cloud data, wherein the global descriptor components include a first descriptor component related to a horizontal direction and a second descriptor component related to a yaw angle; A first pose module, used for matching the first descriptor component in a pre-stored global dictionary, and determining a first pose in the horizontal direction according to the matching result; A second posture module, used for performing secondary matching in the matching result according to the second descriptor component to determine a second posture in the horizontal direction plus a yaw angle; A third posture module, used for determining a third posture of six degrees of freedom using the second posture; A matching module, used to use the third posture of the six degrees of freedom as an initial posture, match the current point cloud feature with a predetermined positioning point cloud map, and obtain a positioning result of the current posture; The global dictionary is established in the following way: At the sampling points of the positioning point cloud map, obtaining a local point cloud in a global coordinate system; Performing plane fitting on the local point cloud to obtain first point cloud data; performing vertical translation on the first point cloud data to obtain second point cloud data; Obtaining the global descriptor component related to the posture corresponding to the sampling point according to the second point cloud data; The global descriptor component related to the posture corresponding to each sampling point is obtained to establish the global dictionary.
10. A vehicle, comprising the positioning device according to claim 9.
11. A computer-readable storage medium storing a computer program, wherein the computer program is used to execute the positioning method according to any one of claims 1 to 8.
12. A computer program product, wherein the computer program product is used to execute the positioning method according to any one of claims 1 to 8.
Citation Information
Patent Citations
Information acquisition method and system for space unknown moving target
CN110766716A
Unmanned vehicle positioning method and system
CN111505662A