Positioning method and device of mobile equipment, electronic equipment and storage medium
By identifying the target identifier in a large space scene and combining the matching results of the prior position pose and the preset identifier, the problem of low positioning efficiency in a large space scene is solved, and more efficient and accurate positioning is achieved.
Patent Information
- Application Number
- CN202410178046.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-02-08
- Publication Date
- 2025-08-12
AI Technical Summary
In large space scenarios, when the number of identified markers is large, the prior art leads to inefficient positioning.
By identifying multiple target identifiers of the movable device in the current position, combining its moving trajectory to determine the prior position pose from the electronic map, and based on the matching results of the target identifier and the preset identifier, the positioning range is narrowed to improve positioning accuracy and efficiency.
It effectively narrows the positioning range, improves the accuracy and efficiency of positioning, and improves the positioning performance of mobile devices.
Smart Images

Figure CN120470068A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of data processing technology, and in particular to a positioning method, device, electronic device, and storage medium for a movable device. Background Art
[0002] In related technologies, the location of a mobile device in a current scene can be determined by combining multiple currently recognized markers. However, when the current scene is large and the number of recognized markers is large, improving positioning efficiency becomes an urgent problem that needs to be solved. Summary of the Invention
[0003] In view of this, the present disclosure provides a positioning method, apparatus, electronic device, and storage medium for a movable device to solve the problem of low positioning efficiency.
[0004] In a first aspect, the present disclosure provides a method for positioning a movable device, the method comprising:
[0005] Identify multiple target markers detected at the current pose;
[0006] According to the movement trajectory of the movable device, the prior posture corresponding to the current posture is determined from the electronic map of the current scene;
[0007] Based on the multiple target identifiers and the prior poses, determining a target preset identifier corresponding to each target identifier in the electronic map;
[0008] Based on the matching results between the multiple target identifiers and the corresponding preset target identifiers, the target position of the current position in the electronic map is determined.
[0009] In a second aspect, the present disclosure provides a positioning device for a movable device, the device comprising:
[0010] A recognition module is used to identify multiple target identifiers detected in the current posture;
[0011] A first processing module is configured to determine a priori posture corresponding to a current posture from an electronic map of a current scene according to a movement trajectory of the movable device;
[0012] The second processing module is configured to determine a preset target identifier corresponding to each target identifier in the electronic map based on the multiple target identifiers and the priori position and posture;
[0013] The positioning module is used to determine the target position of the current position in the electronic map based on the matching results between multiple target identifiers and corresponding target preset identifiers.
[0014] In a third aspect, the present disclosure provides an electronic device comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, and the processor executing the computer instructions to execute the method for positioning a movable device according to the first aspect or any corresponding embodiment thereof.
[0015] In a fourth aspect, the present disclosure provides a computer-readable storage medium having computer instructions stored thereon, the computer instructions being used to enable a computer to execute the method for positioning a movable device according to the first aspect or any corresponding embodiment thereof.
[0016] The positioning method for a movable device provided in this embodiment determines the target preset identifiers corresponding to each target identifier in the electronic map based on multiple target identifiers detected by the movable device in the current posture and the prior posture of the current posture in the electronic map of the current scene. This can effectively narrow the positioning range in the electronic map. When positioning is performed in combination with the matching results between each target identifier and the corresponding target preset identifier, the actual environment currently located by the movable device can be effectively combined with the virtual environment in the electronic map, thereby not only improving the accuracy of determining the target posture, but also greatly improving the positioning efficiency and enhancing the positioning performance of the movable device. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] In order to more clearly illustrate the specific embodiments of the present disclosure or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the specific embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0018] Figure 1 is a flowchart of a method for positioning a movable device according to an embodiment of the present disclosure;
[0019] Figure 2 is a flowchart of another positioning method for a mobile device according to an embodiment of the present disclosure;
[0020] Figure 3 is a flow chart of a method for identifying an identifier according to an embodiment of the present disclosure;
[0021] Figure 4 is a schematic diagram of positioning of a movable device according to an embodiment of the present disclosure;
[0022] Figure 5 is a structural block diagram of a positioning device for a mobile device according to an embodiment of the present disclosure;
[0023] Figure 6Schematic diagram of the hardware structure of the mobile device according to the embodiment of the present disclosure. DETAILED DESCRIPTION
[0024] To make the purpose, technical solutions, and advantages of the embodiments of the present disclosure more clear, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are part of the embodiments of the present disclosure, not all of the embodiments. Based on the embodiments of the present disclosure, all other embodiments obtained by those skilled in the art without making creative efforts shall fall within the scope of protection of the present disclosure.
[0025] In related technologies, determining the location of a mobile device in the current scene requires combining multiple currently identified markers. However, in actual positioning, if the current scene is large and a large number of identified markers are present, the large map size can result in excessively long positioning times, thus affecting positioning efficiency.
[0026] In view of this, an embodiment of the present disclosure provides a positioning method for a movable device. After identifying multiple target identifiers detected by the movable device in the current posture, the prior posture corresponding to the current posture is determined from the electronic map of the current scene according to the movement trajectory of the movable device, so as to estimate the position of the current posture on the electronic map in real time through the prior posture, and then based on the multiple target identifiers and the prior posture, the target preset identifier corresponding to each target identifier is determined from the electronic map respectively, so as to determine the target posture of the current posture in the electronic map in combination with the matching results between each target identifier and the corresponding target preset identifier, thereby effectively improving the positioning accuracy and positioning efficiency of the movable device.
[0027] According to an embodiment of the present disclosure, an embodiment of a positioning method for a movable device is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.
[0028] In this embodiment, a positioning method for a movable device is provided, which can be used for the above-mentioned movable devices, such as robots, drones, smart vehicles, etc. Figure 1 is a flow chart of a positioning method for a mobile device according to an embodiment of the present disclosure, such as Figure 1 As shown, the process includes the following steps:
[0029] Step S101, identifying multiple target identifiers detected in the current posture.
[0030] To help mobile devices identify their current location, multiple preset markers are set in advance in the current scene so that the mobile device can locate and navigate based on the preset markers. The preset markers can be designated landmarks or QR codes, etc., and can be set according to needs.
[0031] The current scene can be any designated scene. For example, the current scene can be a warehouse area, a factory area, a logistics center, etc. Mobile devices can perform tasks such as moving and transshipping items within the corresponding scene according to the specified routes and paths.
[0032] Since the movable device uses itself as a reference during movement, in order to determine the position of the movable device in the current scene, the multiple target identifiers detected in the current posture are identified based on the identifier detection results of the movable device in the current posture, so that the multiple target identifiers detected can be used for rapid positioning later.
[0033] Step S102 : determining a priori posture corresponding to the current posture from an electronic map of the current scene according to the movement trajectory of the movable device.
[0034] Among them, in order to ensure the real-time positioning, the movement trajectory of the movable device is matched with the electronic map of the current scene, so as to combine the posture of the movable device on the electronic map to predict the prior posture of the current posture in the electronic map, so that when the target posture is determined subsequently, the positioning range can be narrowed, thereby effectively improving the positioning efficiency.
[0035] Step S103 : determining a preset target identifier corresponding to each target identifier in the electronic map based on the multiple target identifiers and the priori position and posture.
[0036] Among them, in order to facilitate the determination of the position of the movable device on the electronic map, the positions of the preset markers in the current scene are marked on the electronic map accordingly, so that the electronic map can correspond to the current scene, thereby better guiding the movable device to move in the current scene.
[0037] Since the target identifier is a physical preset identifier detected by the mobile device in the current scene, in order to improve the positioning accuracy, the current position range of the mobile device in the electronic map is estimated by determining the prior posture, and then in the current electronic map, the target preset identifier corresponding to each target identifier is determined respectively, so that when the target posture is determined subsequently, the mobile device can fully combine the current environment for targeted positioning, thereby improving the positioning accuracy.
[0038] Step S104 : determining the target posture of the current posture in the electronic map based on the matching results between the multiple target identifiers and the corresponding preset target identifiers.
[0039] Among them, based on the matching results between each target identifier and the corresponding target preset identifier, the actual environment and the environment in the electronic map can be fully combined, and then the position of the current posture in the electronic map can be reasonably inferred, thereby obtaining a valid target posture.
[0040] The positioning method for a movable device provided in this embodiment determines the target preset identifiers corresponding to each target identifier in the electronic map based on multiple target identifiers detected by the movable device in the current posture and the prior posture of the current posture in the electronic map of the current scene. This can effectively narrow the positioning range in the electronic map. When positioning is performed in combination with the matching results between each target identifier and the corresponding target preset identifier, the actual environment currently located by the movable device can be effectively combined with the virtual environment in the electronic map, thereby not only improving the accuracy of determining the target posture, but also greatly improving the positioning efficiency and enhancing the positioning performance of the movable device.
[0041] In this embodiment, a positioning method for a movable device is provided, which can be used for the above-mentioned movable devices, such as robots, drones, smart vehicles, etc. Figure 2 is a flow chart of a positioning method for a mobile device according to an embodiment of the present disclosure, such as Figure 2 As shown, the process includes the following steps:
[0042] Step S201: Identify multiple target markers detected in the current position. Figure 1 Step S101 of the illustrated embodiment will not be described in detail here.
[0043] Step S202: According to the movement trajectory of the movable device, determine the priori position corresponding to the current position from the electronic map of the current scene. Figure 1 Step S102 of the illustrated embodiment will not be described in detail here.
[0044] Step S203 : determining a preset target identifier corresponding to each target identifier in the electronic map based on the multiple target identifiers and the priori position and posture.
[0045] Specifically, the above step S203 includes:
[0046] Step S2031: Determine a search range for searching for a target in the electronic map based on the relative position relationship between the prior pose and the plurality of target targets.
[0047] To improve the efficiency of identifying preset target identifiers and avoid ineffective searches, a search radius for identifier searches is preconfigured. Based on the relative positional relationship between the current target identifier and the current pose, the corresponding mapping position of the current target identifier on the electronic map is determined using the prior pose. A circle centered at this mapping position and with a search radius equal to the environment is then used as the search range for the current target identifier.
[0048] The search range corresponding to all target identifiers is used as the search range for identifier search in the electronic map to improve the reliability of determining the preset target identifier.
[0049] Step S2032: Filter multiple candidate preset identifiers in the electronic map through the search range.
[0050] The number of the plurality of candidate preset identifiers is greater than or equal to the number of target identifiers. To improve positioning accuracy, the plurality of candidate preset identifiers that may correspond to each target identifier are screened within the search range in the electronic map, thereby effectively narrowing the range of determining the target preset identifier.
[0051] Preferably, in order to improve the efficiency of obtaining candidate preset markers, all preset markers within the search range in the electronic map are used as candidate preset markers.
[0052] In some optional examples, if the number of the plurality of candidate preset identifiers is less than the number of the plurality of target identifiers, the preset search radius is considered unreasonable. To ensure the effectiveness of positioning, the length of the search radius is adjusted according to a preset adjustment step until the number of the plurality of candidate preset identifiers is greater than or equal to the plurality of target identifiers.
[0053] Step S2033: Based on the matching results of the multiple target identifiers and the multiple candidate preset identifiers, a target preset identifier corresponding to each target identifier is determined from the multiple candidate preset identifiers.
[0054] Among them, since the number of candidate identifiers of the candidate preset identifiers is greater than or equal to the number of target identifiers, in order to improve the accuracy of positioning, each target identifier is matched with each candidate preset identifier respectively, and then based on the matching results obtained, the target preset identifier corresponding to each target identifier is determined, so that in the subsequent posture positioning, the error can be reduced and the positioning efficiency can be improved.
[0055] In some optional implementations, the above step S2033 includes:
[0056] Step a1: determine the number of target identifiers.
[0057] To ensure the timeliness of positioning, different matching methods are used to determine the target preset identifier corresponding to each target identifier according to the number of identifiers of different target identifiers. Therefore, to determine the matching method currently required, the number of identifiers of multiple target identifiers is determined.
[0058] Step a2: if the number of identifiers is less than or equal to the preset number threshold, a target preset identifier corresponding to the current target identifier is determined from a plurality of candidate preset identifiers based on the distances between the current target identifier and each candidate preset identifier.
[0059] Among them, since the larger the number of identifiers, the more likely it is to increase the complexity of matching, therefore, in order to improve the matching efficiency, the preset number threshold is used to determine the currently required matching method. Therefore, when the number of identifiers is less than or equal to the preset number threshold, it indicates that the number of current target identifiers is small, and then based on the distance between the current target identifier and each candidate preset identifier, the target preset identifier corresponding to the current target identifier can be determined from multiple candidate preset identifiers, thereby helping to reduce the matching complexity and facilitate the rapid determination of the matching result. The value of the preset number threshold can be defined by yourself. Preferably, in combination with the actual application scenario, the preset number threshold can be set to 2.
[0060] In some optional implementation scenarios, taking the current target identifier as an example, a brute force matching method can be used to determine the distance between the current target identifier and each candidate preset identifier, so as to determine the difference between the current target identifier and each candidate preset identifier based on the distance. Then, the candidate preset identifier with the shortest distance from the current target identifier is used as the target preset identifier for the current target identifier, thereby greatly simplifying the matching process and improving matching efficiency. After determining the target preset identifier corresponding to the current target identifier, the target preset identifier corresponding to the next target identifier is determined from other candidate preset identifiers that do not have a matching result.
[0061] Step a3: if the number of identifiers is greater than a preset number threshold, then based on the number of matching edges between the multiple target identifiers and the multiple candidate preset identifiers, determine a target preset identifier corresponding to each target identifier from the multiple candidate preset identifiers.
[0062] Among them, if the number of identifiers is greater than the preset number, it indicates that the number of target identifiers recognized by the movable device in the current posture is large. Therefore, in order to improve the matching efficiency, the matching degree between the target identifier and the candidate preset identifier is quantified based on the number of matching edges between multiple target identifiers and multiple candidate preset identifiers, and then the target preset identifier corresponding to each target identifier is determined from the multiple candidate preset identifiers, which helps to improve the accuracy of determining the target preset identifier corresponding to the target identifier.
[0063] In some optional implementation scenarios, a Hungarian matching method can be used to combine multiple target identifiers as a set of left vertices and multiple candidate preset identifiers as right vertices, and then construct a bipartite graph based on the correspondence between the multiple target identifiers and the multiple candidate preset identifiers. Starting from each unmatched vertex in the multiple target identifiers, try to find an augmenting path. Here, an augmenting path is a path that alternates through unmatched edges and matched edges, and its starting point and end point are unmatched points respectively. The augmenting path is found by methods such as depth-first search or breadth-first search. If an augmenting path is found, the unmatched edges on the path are changed to matched edges, and the matched edges are changed to unmatched edges. If no augmenting path is found, it means that the current match is a maximum match. Repeat the above matching process until no more augmenting paths can be found, and then use the candidate preset identifier that is the maximum match with the current target identifier among the multiple candidate preset identifiers as the target preset identifier of the current target identifier, thereby greatly improving the matching efficiency.
[0064] Step S204 : determining the target posture of the current posture in the electronic map based on the matching results between the multiple target identifiers and the corresponding preset target identifiers.
[0065] Specifically, the above step S204 includes:
[0066] Step S2041 : constructing a target cost matrix according to the matching result between each target identifier and the corresponding preset target identifier.
[0067] Among them, in order to make the obtained target posture more reliable, a target cost matrix is constructed according to the matching results between each target identifier and the corresponding target preset identifier, so as to fully analyze the matching degree between each target identifier and the corresponding target preset identifier through the target cost matrix.
[0068] In step S2042 , based on the target cost matrix and the prior pose, multiple candidate poses are screened from the electronic map, and the candidate pose with the smallest error value with the prior pose is selected as the target pose.
[0069] Among them, when the target cost matrix is clear, the cost function is constructed in combination with the prior posture, and the cost function is solved by minimizing the error. Then, the candidate posture with the smallest error value between the candidate posture and the prior posture is used as the target posture, so that the final target posture is more in line with the actual situation of the current posture in the current scene, thereby improving the precision and accuracy of positioning.
[0070] In an alternative example, the cost function expression may be as follows:
[0071]
[0072] Where x, y, and θ are the prior poses of the movable device. is the current target identifier, is the target preset identifier corresponding to the current target identifier, and N represents the number of identifiers of multiple target identifiers.
[0073] During the specific calculation, substitute the maximum error of each constraint, 0.1(m), into the cost function to calculate the maximum threshold max_cost. Use an optimization engine (such as ceres (an open source C++ library for solving non-linear least squares problems) or gradient descent) for optimization.
[0074] The positioning method for a movable device provided in this embodiment can effectively narrow the range of the search target position in the electronic map by determining the search range, and then perform positioning based on the matching results between each target identifier and the corresponding target preset identifier, which can effectively improve the positioning efficiency and ensure the rationality and effectiveness of the determination of the target position, thereby helping to improve the positioning performance of the movable device.
[0075] In some optional embodiments, the process of identifying multiple target identifiers detected in the current posture can be as follows: Figure 3 shown. Figure 3 Flowchart of a method for identifying an identifier according to an embodiment of the present disclosure, comprising the following steps:
[0076] Step S301: Obtain the point cloud data to be processed collected at the current posture.
[0077] Among them, in order to identify the environmental information around the current position and detect whether there is a preset mark at the current position, the point cloud data to be processed collected at the current position is obtained, so that the target mark relative to the current position in the current environment can be identified through the processing results of the point cloud data to be processed.
[0078] Step S302 : Based on a preset brightness threshold interval, identify the point data to be processed whose brightness value is within the brightness threshold interval to obtain a plurality of candidate point cloud data.
[0079] The brightness threshold interval depends on the reflective intensity of the target marker. Different objects have different reflective intensities. To improve the detection efficiency of target markers, a brightness threshold interval is determined based on the reflective intensity of the target marker. This brightness threshold interval is then used to extract the point cloud data to be processed whose brightness values fall within this brightness threshold interval. Based on the shape corresponding to the target marker and the positional relationship between the candidate point data, multiple candidate point cloud data are obtained. The candidate point cloud data includes multiple candidate point data. The candidate point cloud data is used to determine whether the corresponding object is a target marker.
[0080] In some optional implementations, step S302 includes:
[0081] Step a1, traverse the brightness value of each point data to be processed, and take the point data to be processed whose brightness value is within the brightness threshold range as the intermediate point data to obtain the intermediate point cloud data;
[0082] Step a2: clustering the intermediate point cloud data to obtain multiple candidate point cloud data.
[0083] Specifically, in order to quickly determine the object corresponding to the point cloud data, the intermediate point cloud data is clustered to obtain multiple clustering results, and then the point cloud data corresponding to each clustering result is used as candidate point cloud data to be determined whether it is a target identification.
[0084] In other optional examples, in order to reduce the occurrence of misidentification, after the clustering results are obtained, the position of each candidate point data in the current clustering result in the point cloud data to be processed is used to identify whether there is non-middle point data between two adjacent candidate point data. If there is non-middle point data, it is determined whether the number of non-middle point data is within a preset number range. If the number of non-middle point data is within the preset number range, the non-middle point data of that number is added to the current clustering result to avoid misdetection due to partial obstruction of the target identification or abnormal brightness detection. To avoid over-extraction, the preset number range can be set to [0,1]. If there is no non-middle point data, the current clustering result is directly used as the candidate point cloud data.
[0085] Step S303 : determining target point cloud data from a plurality of candidate point cloud data based on preset attribute information of the target identifier.
[0086] In order to facilitate the mobile device to effectively distinguish the target identifier from other objects, each candidate point cloud data is screened based on the preset attribute information of the target identifier to obtain the target point cloud data.
[0087] In some optional implementations, the above step S303 includes:
[0088] Step b1: determining a preset marker corresponding to the current posture in the current scene from the electronic map, and obtaining a first reference coordinate of a target key point of the preset marker in the first coordinate system.
[0089] The attribute information of the preset identifier is the same as the preset attribute information, and the first coordinate system corresponds to the electronic map. Because the number of point data points in the target point cloud data corresponding to the target identifier is different at different distances and angles, to improve the effectiveness of the detection results, the preset identifier corresponding to the current location in the current scene is first determined from the electronic map, and then the first reference coordinates of the target key point of the preset identifier in the second coordinate system are obtained. In an optional example, the preset identifier corresponding to the current location can be determined based on the movement route of the movable device and the prior pose estimated from the previous location.
[0090] Step b2: determining the second reference coordinates of the target key point in the second coordinate system based on the mapping relationship between the first coordinate system and the second coordinate system and the first reference coordinates.
[0091] The second coordinate system corresponds to the movable device. To restore the relative positional relationship between the target key point and the movable device, after determining the first reference coordinate, the first reference coordinate is mapped to the first coordinate system based on the mapping relationship between the second coordinate system and the first coordinate system, thereby obtaining the second reference coordinate of the target key point corresponding to the first coordinate system.
[0092] Step b3: Determine the target vector distance from the preset marker using the second reference coordinate.
[0093] Among them, in the case of a clear second reference coordinate, combined with the coordinates of the movable device in the first coordinate system, the Euclidean distance calculation formula is used to predict the target relative distance and target relative position offset angle between the movable device at its current position and the preset marker, and then obtain the target vector distance between the preset marker.
[0094] Step b4, determining target point cloud features based on target vector distance and attribute information;
[0095] Among them, since the target vector distance is a distance including the target relative position offset angle, the target point cloud features satisfied by the target point cloud data corresponding to the target identification of the movable device at the current position can be determined by combining the target vector distance and attribute information.
[0096] The point cloud features of each candidate point cloud data are determined respectively, and then the candidate point cloud data corresponding to the point cloud features that match the target point cloud features are selected.
[0097] In some optional embodiments, the target vector distance includes the target relative distance and the target relative offset angle from the preset mark, and the attribute information includes the target size of the preset mark and the corresponding reflection intensity. Step b4 includes:
[0098] Step b41, determining the data quantity range of the target point data in the target point cloud data based on the target size and the target relative distance;
[0099] Step b42: determining the average brightness range of the target point cloud data based on the reflection intensity and the target relative offset angle;
[0100] Step b43, determining the size range of the target point cloud data by the target size;
[0101] Step b44, determine the target pointing angle corresponding to the target point cloud data through the target relative offset angle, and obtain the target point cloud features. The target point cloud features include at least one of the following: target pointing angle, size range, average brightness range, and data quantity range.
[0102] Specifically, target point cloud features include: target pointing angle, size range, average brightness range, and data quantity range. Because the amount of target point cloud data acquired may vary from viewpoint to viewpoint, to improve marker detection accuracy, the target point cloud data quantity range is determined based on target size, relative distance to the target, and pre-determined point data generation configuration information. When screening candidate point cloud data, candidate point cloud data that does not meet this data quantity range can be eliminated.
[0103] Because the reflective intensity of the target mark is affected not only by the optical response range and the reflective properties of the material itself, but also by the scanning angle of the mobile device, in order to determine whether the brightness of each candidate point cloud data can reach the target brightness corresponding to the target mark, a mapping relationship between point cloud intensity and laser incident angle is established in advance through data fitting. This then determines the average brightness range of the target point cloud data, thereby filtering out candidate point cloud data whose average brightness does not fall within this average brightness range.
[0104] To improve the effectiveness of the screening, the size range of the target point cloud data is determined based on the target size of the target identifier to filter out candidate point cloud data that are not processed within the size range. Preferably, the distance between two adjacent point data to be processed can be determined in advance based on the configuration information generated by the point cloud, and then the target point cloud data size corresponding to the target size can be determined. Since there may be noise interference when collecting the point data to be processed, the error offset is determined, and then the difference between the target point cloud data size and the error offset is used as the minimum value of the size range, and the sum of the target point cloud data size and the error offset is used as the maximum value of the size range, thereby obtaining the size range.
[0105] Because the target marker is a flat surface, the target pointing angle of each target point data should be the same. In other words, the orientation of the target marker should be the same as the scanning angle of the mobile device. Then, the target relative offset angle can be used to quickly determine the target pointing angle corresponding to the target point cloud data.
[0106] Step b5: determining the candidate point cloud data that meets the target point cloud characteristics as the target point cloud data.
[0107] Step S304: Determine multiple target identifiers detected in the current position through the target point cloud data.
[0108] After the target point cloud data is determined, the target point cloud data is fitted by data fitting to obtain a target identifier relative to the current position.
[0109] The identification method provided in this embodiment can effectively ensure the detection accuracy of the target identification, thereby providing effective guarantee for the accuracy of the subsequent target posture.
[0110] As one or more specific application embodiments of the present disclosure, Figure 4 As shown in the figure, the movable device is a robot. The circles represent the preset identifiers in the current scene, the squares filled with slashes represent the current position of the robot in the current scene, and the squares filled with grids represent the positions of the two objects recognized in the current position.
[0111] First, the search range for candidate preset markers is determined based on a preset search radius and the target marker's location on the electronic map. Once the target marker is identified, the corresponding preset marker on the electronic map is retrieved from within the search range. Based on the robot's prior position at its current location and the matching results between each target marker and its corresponding preset marker, a cost formula is constructed. The optimization engine then determines the target pose on the electronic map corresponding to the current pose.
[0112] In this embodiment, a positioning device for a mobile device is also provided. The device is used to implement the above-mentioned embodiments and preferred embodiments. Details that have already been described will not be repeated. As used below, the term "module" may refer to a combination of software and / or hardware that implements a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, implementation using hardware, or a combination of software and hardware, is also possible and contemplated.
[0113] This embodiment provides a positioning device for a movable device, such as Figure 5 Shown, including:
[0114] Identification module 501, used to identify multiple target identifiers detected in the current posture;
[0115] A first processing module 502 is configured to determine a priori posture corresponding to a current posture from an electronic map of a current scene based on a movement trajectory of the movable device;
[0116] The second processing module 503 is configured to determine a preset target identifier corresponding to each target identifier in the electronic map based on the multiple target identifiers and the priori position and posture;
[0117] The positioning module 504 is configured to determine the target position of the current position in the electronic map based on the matching results between the multiple target identifiers and the corresponding preset target identifiers.
[0118] In some optional implementations, the second processing module 503 includes:
[0119] A first execution unit is configured to determine a search range for searching for a marker in an electronic map based on a relative position relationship between a priori posture and a plurality of target markers;
[0120] The second execution unit is configured to screen a plurality of candidate preset identifiers in the electronic map according to a search range;
[0121] The screening unit is configured to determine a target preset identifier corresponding to each target identifier from the plurality of candidate preset identifiers based on the matching results between the plurality of target identifiers and the plurality of candidate preset identifiers.
[0122] In some optional embodiments, the screening unit includes:
[0123] a quantity determination unit, configured to determine the number of identifications of the plurality of target identifications;
[0124] a first matching unit, configured to determine, if the number of identifiers is less than or equal to a preset number threshold, a target preset identifier corresponding to the current target identifier from a plurality of candidate preset identifiers based on a distance between the current target identifier and each candidate preset identifier, and the number of the plurality of candidate preset identifiers is greater than or equal to the plurality of target identifiers;
[0125] The second matching unit is configured to determine a target preset identifier corresponding to each target identifier from the multiple candidate preset identifiers based on the number of matching edges between the multiple target identifiers and the multiple candidate preset identifiers if the number of identifiers is greater than a preset number threshold.
[0126] In some optional implementations, the positioning module 504 includes:
[0127] A construction unit, configured to construct a target cost matrix according to a matching result between each target identifier and a corresponding target preset identifier;
[0128] The third execution unit is configured to screen a plurality of candidate poses from the electronic map based on the target cost matrix and the prior pose, and select the candidate pose having the smallest error value with the prior pose as the target pose.
[0129] In some optional implementations, the identification module 501 includes:
[0130] A data acquisition unit, used to acquire the point cloud data to be processed collected at the current posture;
[0131] A first screening unit is configured to identify, based on a preset brightness threshold interval, point data to be processed whose brightness values are within the brightness threshold interval, and obtain a plurality of candidate point cloud data, wherein the brightness threshold interval depends on the reflective intensity of the target marker;
[0132] a second screening unit, configured to determine target point cloud data from a plurality of candidate point cloud data based on preset attribute information of the target identifier;
[0133] The identification unit is used to determine multiple target identifications detected in the current posture through the target point cloud data.
[0134] In some optional embodiments, the first screening unit includes:
[0135] The first processing unit is configured to traverse the brightness value of each point data to be processed, and take the point data to be processed whose brightness value is within the brightness threshold range as the intermediate point data to obtain the intermediate point cloud data;
[0136] The second processing unit is used to perform clustering processing on the intermediate point cloud data to obtain multiple candidate point cloud data.
[0137] In some optional embodiments, the second screening unit includes:
[0138] a third processing unit, configured to determine, from the electronic map, a preset marker corresponding to the current posture in the current scene, and obtain a first reference coordinate of a target key point of the preset marker in a first coordinate system, wherein attribute information of the preset marker and the preset attribute information are identical, and the first coordinate system corresponds to the electronic map;
[0139] a fourth processing unit, configured to determine a second reference coordinate of the target key point in the second coordinate system based on a mapping relationship between the first coordinate system and the second coordinate system and the first reference coordinate, where the second coordinate system corresponds to the movable device;
[0140] a fifth processing unit, configured to determine a target vector distance from a preset marker using a second reference coordinate;
[0141] The sixth processing unit is configured to determine target point cloud features based on the target vector distance and attribute information, and determine candidate point cloud data that meets the target point cloud features as target point cloud data.
[0142] In some optional embodiments, the target vector distance includes a target relative distance from a preset marker and a target relative offset angle, the attribute information includes a target size of the preset marker and a corresponding reflection intensity, and the sixth processing unit includes:
[0143] A first determining unit is configured to determine a data quantity range of target point data in the target point cloud data based on a target size and a target relative distance;
[0144] a second determining unit, configured to determine an average brightness range of the target point cloud data based on the reflection intensity and the target relative offset angle;
[0145] A third determining unit is configured to determine a size range of the target point cloud data according to the target size;
[0146] The fourth determination unit is used to determine the target pointing angle corresponding to the target point cloud data through the target relative offset angle, and obtain the target point cloud feature. The target point cloud feature includes at least one of the following: target pointing angle, size range, average brightness range and data quantity range.
[0147] The further functional description of each of the above modules and units is the same as that of the above corresponding embodiments and will not be repeated here.
[0148] The positioning device of the mobile device in this embodiment is presented in the form of a functional unit, where the unit refers to an ASIC (Application Specific Integrated Circuit) circuit, a processor and memory that executes one or more software or fixed programs, and / or other devices that can provide the above functions.
[0149] The present disclosure also provides an electronic device having the above Figure 5 The positioning device of the movable device is shown.
[0150] See also Figure 6 , Figure 6 is a structural diagram of an electronic device provided by an optional embodiment of the present invention, such as Figure 6As shown, the electronic device includes: one or more processors 10, a memory 20, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. The various components utilize different buses to communicate with each other and can be installed on a common mainboard or installed in other ways as needed. The processor can process instructions executed in the electronic device, including instructions stored in or on the memory to display graphical information of a GUI on an external input / output device (such as a display device coupled to the interface). In some optional embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories and multiple memories. Similarly, multiple electronic devices can be connected, and each device provides some necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Figure 6 A processor 10 is taken as an example.
[0151] The processor 10 may be a central processing unit, a network processor, or a combination thereof. The processor 10 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit, a programmable logic device, or a combination thereof. The programmable logic device may be a complex programmable logic device, a field programmable gate array, a general purpose array logic, or any combination thereof.
[0152] The memory 20 stores instructions that can be executed by at least one processor 10, so as to enable at least one processor 10 to execute the method shown in the above embodiment.
[0153] The memory 20 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created based on the use of an electronic device presented by a small program landing page, etc. In addition, the memory 20 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some optional embodiments, the memory 20 may optionally include a memory remotely located relative to the processor 10, and these remote memories may be connected to the electronic device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and a combination thereof.
[0154] The memory 20 may include a volatile memory, such as a random access memory; the memory may also include a non-volatile memory, such as a flash memory, a hard disk or a solid-state drive; the memory 20 may also include a combination of the above types of memory.
[0155] The electronic device further includes an input device 30 and an output device 40. The processor 10, the memory 20, the input device 30 and the output device 40 may be connected via a bus or other means. Figure 6 The bus connection is taken as an example.
[0156] The input device 30 can receive input digital or character information and generate key signal input related to user settings and function control of the electronic device, such as a touch screen, a keypad, a mouse, a trackpad, a touch pad, an indicator stick, one or more mouse buttons, a trackball, a joystick, etc. The output device 40 can include a display device, an auxiliary lighting device (e.g., an LED), and a tactile feedback device (e.g., a vibration motor). The above-mentioned display device includes but is not limited to a liquid crystal display, a light emitting diode, a display, and a plasma display. In some optional embodiments, the display device can be a touch screen.
[0157] The embodiments of the present disclosure also provide a computer-readable storage medium. The above-mentioned method according to the embodiments of the present disclosure can be implemented in hardware, firmware, or implemented as a computer code that can be recorded in a storage medium, or implemented as a computer code that is originally stored in a remote storage medium or a non-temporary machine-readable storage medium and downloaded through a network and will be stored in a local storage medium, so that the method described herein can be stored in such software processing on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only storage memory, a random access memory, a flash memory, a hard disk or a solid-state drive, etc.; further, the storage medium can also include a combination of the above-mentioned types of memory. It can be understood that a computer, a processor, a microprocessor controller or programmable hardware includes a storage component that can store or receive software or computer code. When the software or computer code is accessed and executed by a computer, a processor or hardware, the method shown in the above embodiment is implemented.
[0158] It is understandable that before using the technical solutions disclosed in the various embodiments of this disclosure, the type, scope of use, usage scenarios, etc. of the personal information involved in this disclosure should be informed to the user and the user's authorization should be obtained in an appropriate manner in accordance with relevant laws and regulations.
[0159] For example, in response to a user's active request, a prompt message is sent to the user to clearly inform the user that the operation requested will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the electronic device, application, server, storage medium, or other software or hardware that performs the operations of the disclosed technical solution based on the prompt message.
[0160] As an optional but non-limiting implementation, in response to receiving a user's active request, the prompt information may be sent to the user in the form of a pop-up window, in which the prompt information may be presented in text form. Furthermore, the pop-up window may also contain a selection control for the user to select "agree" or "disagree" to provide personal information to the electronic device.
[0161] It is understandable that the above notification and user authorization process are merely illustrative and do not limit the implementation of the present disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of the present disclosure.
[0162] Although the embodiments of the present disclosure have been described with reference to the accompanying drawings, those skilled in the art may make various modifications and variations without departing from the spirit and scope of the present disclosure, and such modifications and variations are all within the scope defined by the appended claims.
Claims
1. A method for positioning a movable device, characterized in that: The method comprises: Identify multiple target markers detected at the current pose; Determining, based on the movement trajectory of the movable device, a priori posture corresponding to the current posture from an electronic map of the current scene; Determining a preset target identifier corresponding to each target identifier in the electronic map based on the multiple target identifiers and the priori position and posture; Based on the matching results between the plurality of target identifiers and the corresponding preset target identifiers, the target position of the current position in the electronic map is determined.
2. The method according to claim 1, characterized in that The step of determining a preset target identifier corresponding to each target identifier in the electronic map based on the multiple target identifiers and the priori position and posture includes: Determining a search range for searching for a marker in the electronic map based on a relative positional relationship between the prior pose and the plurality of target markers; screening a plurality of candidate preset identifiers in the electronic map through the search range, wherein the number of the plurality of candidate preset identifiers is greater than or equal to the number of the plurality of target identifiers; Based on the matching results between the multiple target identifiers and the multiple candidate preset identifiers, a target preset identifier corresponding to each target identifier is determined from the multiple candidate preset identifiers.
3. The method according to claim 2, characterized in that The determining, based on the matching results between the multiple target identifiers and the multiple candidate preset identifiers, a target preset identifier corresponding to each target identifier from the multiple candidate preset identifiers includes: Determining the number of the plurality of target identifiers; If the number of identifiers is less than or equal to a preset number threshold, determining a target preset identifier corresponding to the current target identifier from the multiple candidate preset identifiers based on the distances between the current target identifier and each of the candidate preset identifiers; If the number of identifiers is greater than the preset number threshold, a target preset identifier corresponding to each target identifier is determined from the multiple candidate preset identifiers based on the number of matching edges between the multiple target identifiers and the multiple candidate preset identifiers.
4. The method according to claim 3, characterized in that The determining the target position of the current position in the electronic map based on the matching results between the plurality of target identifiers and corresponding preset target identifiers includes: Constructing a target cost matrix according to the matching results between each target identifier and the corresponding target preset identifier; Based on the target cost matrix and the prior pose, a plurality of candidate poses are screened from the electronic map, and a candidate pose having a minimum error value with the prior pose is selected as the target pose.
5. The method according to claim 1, wherein The identifying of multiple target identifiers detected in the current posture includes: Acquire the point cloud data to be processed collected at the current posture; Based on a preset brightness threshold interval, identifying the point data to be processed whose brightness value is within the brightness threshold interval, and obtaining a plurality of candidate point cloud data, wherein the brightness threshold interval depends on the reflective intensity of the target mark; Determining target point cloud data from the plurality of candidate point cloud data based on preset attribute information of the target identifier; A plurality of target identifiers detected at the current posture are determined using the target point cloud data.
6. The method according to claim 5, characterized in that The method of identifying the point data to be processed whose brightness value is within the preset brightness threshold interval based on the preset brightness threshold interval to obtain multiple candidate point cloud data includes: Traversing the brightness value of each point data to be processed, taking the point data to be processed whose brightness value is within the brightness threshold range as the intermediate point data, and obtaining the intermediate point cloud data; Clustering is performed on the intermediate point cloud data to obtain the plurality of candidate point cloud data.
7. The method according to claim 6, characterized in that The determining the target point cloud data from the plurality of candidate point cloud data based on the preset attribute information of the target identifier includes: Determining, from the electronic map, a preset marker corresponding to the current posture in the current scene, and obtaining first reference coordinates of a target key point of the preset marker in a first coordinate system, wherein attribute information of the preset marker and the preset attribute information are identical, and the first coordinate system corresponds to the electronic map; Determining, based on a mapping relationship between the first coordinate system and the second coordinate system and the first reference coordinate, a second reference coordinate of the target key point in the second coordinate system, where the second coordinate system corresponds to the movable device; Determine the target vector distance between the preset marker and the second reference coordinate; Based on the target vector distance and the attribute information, target point cloud features are determined, and candidate point cloud data that meets the target point cloud features are determined as the target point cloud data.
8. The method according to claim 7, characterized in that The target vector distance includes a target relative distance from the preset marker and a target relative offset angle, the attribute information includes a target size of the preset marker and a corresponding reflection intensity, and determining target point cloud features based on the target vector distance and the attribute information includes: Determining a data quantity range of target point data in the target point cloud data based on the target size and the target relative distance; Determining an average brightness range of the target point cloud data based on the reflected light intensity and the target relative offset angle; Determining the size range of the target point cloud data according to the target size; The target pointing angle corresponding to the target point cloud data is determined by the target relative offset angle to obtain the target point cloud feature, and the target point cloud feature includes at least one of the following: the target pointing angle, the size range, the average brightness range, and the data quantity range.
9. A positioning device for a movable device, characterized in that: The device comprises: A recognition module is used to identify multiple target identifiers detected in the current posture; A first processing module is configured to determine, based on a movement trajectory of the movable device, a priori posture corresponding to the current posture from an electronic map of the current scene; A second processing module is configured to determine a preset target identifier corresponding to each target identifier in the electronic map based on the multiple target identifiers and the priori position and posture; The positioning module is used to determine the target position of the current position in the electronic map based on the matching results between the multiple target identifiers and the corresponding preset target identifiers.
10. An electronic device, characterized in that: include: A memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the positioning method for a mobile device according to any one of claims 1 to 8 by executing the computer instructions.
11. A computer-readable storage medium, characterized in that The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a computer to execute the positioning method for a movable device according to any one of claims 1 to 8.