Positioning method and positioning device of moving target, electronic equipment and warehouse
By combining spatial geometric positioning and Kalman filter updates in UWB positioning technology, the problems of poor initial positioning robustness and positioning jumps in large logistics warehouses are solved, achieving high-precision and high-reliability positioning and meeting the real-time positioning requirements in complex scenarios.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SHENZHEN KUBO SOFTWARE CO LTD
- Filing Date
- 2026-02-10
- Publication Date
- 2026-05-12
AI Technical Summary
UWB positioning technology has weak initial positioning robustness and insufficient dynamic noise adaptation capability in large logistics warehouses and dense rack storage scenarios. The positioning results are prone to change in complex occlusion scenarios, making it difficult to meet the requirements of high-precision and high-reliability positioning.
By combining the geometric constraints and ranging redundancy information of multiple fixed anchor points, the initial position is calculated through spatial geometric positioning. An adaptive adjustment mechanism for measurement residuals is introduced into the Kalman filter framework to reduce the dependence on high-density anchor points and provide the initial state of filtering as a priori state for Kalman filter update.
It improves positioning accuracy and reliability in complex environments, meets the high-precision requirements of large logistics warehouses for real-time personnel tracking, collision warning and path optimization, and reduces dependence on infrastructure and equipment power consumption.
Smart Images

Figure CN122017732A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of logistics warehouse technology, and in particular to a method for locating a moving target, a positioning device, an electronic device, a warehouse, and a computer-readable storage medium. Background Technology
[0002] In recent years, with the intelligent upgrading of the logistics and warehousing industry, Ultra Wide Band (UWB) positioning technology has been widely used due to its high positioning accuracy, strong anti-multipath interference capability, and flexible hardware deployment.
[0003] However, when UWB positioning technology is applied in indoor scenarios such as large logistics warehouses and densely stacked warehouses, it relies heavily on ranging data from fixed anchor points as the basis for location information calculation, and typically uses only a single model for location calculation. Therefore, it suffers from drawbacks such as weak initial positioning robustness, insufficient dynamic noise adaptation capability, and easy changes in positioning results under complex occlusion scenarios.
[0004] Especially in warehousing environments where shelves are densely packed and workers and equipment move frequently, location information calculation is prone to interruption, making it difficult to meet the high-precision and high-reliability positioning requirements of modern logistics warehouses for real-time personnel tracking, collision warnings, and intelligent path optimization. Summary of the Invention
[0005] The mobile target positioning method, positioning device, electronic device, warehouse, and computer-readable storage medium provided in this application are intended to solve at least some of the defects existing in the current mobile target positioning methods.
[0006] In a first aspect, embodiments of this application provide a method for locating a moving target. The method includes: acquiring the anchor distances between the moving target and multiple fixed anchor points at the current moment, and the filtered state of the moving target at the previous moment; when the filtered state at the previous moment is valid, using the filtered state at the previous moment as the prior state of the current Kalman filter loop; when the filtered state at the previous moment is invalid, determining an initial filtering state through an auxiliary positioning method, and using the initial filtering state as the prior state of the current Kalman filter loop; based on the prior state, performing prediction through a kinematic model to obtain the predicted state at the current moment; and updating the predicted state using Kalman filtering based on the multiple anchor distances to obtain the position information of the moving target. The auxiliary position information is: position information determined through spatial geometric positioning based on the anchor distances between the moving target and the multiple fixed anchor points.
[0007] In some embodiments, determining the initial state of filtering using auxiliary positioning information specifically includes: At each moment, based on the anchor point distances between the moving target and multiple fixed anchor points, auxiliary position information for the corresponding moment is determined; a first distance is calculated between the auxiliary position information at moment k and the auxiliary position information at moment k+1; a second distance is calculated between the auxiliary position information at moment k-1 and the auxiliary position information at moment k; when both the first distance and the second distance are less than a first distance threshold, the auxiliary position information at moment k+1 is used as the position information of the initial filtering state, and the speed of the moving target calculated and determined by the auxiliary position information at moment k and the auxiliary position information at moment k+1 is used as the speed information of the initial filtering state; wherein, the first distance threshold is: the product of the upper limit of the expected moving speed of the moving target and the time interval between two adjacent moments, k is a positive integer greater than or equal to 2, and moment k+1 is the current moment.
[0008] In some embodiments, determining the corresponding auxiliary position information based on the anchor distances between the moving target and multiple fixed anchor points specifically includes: determining whether there exists a reference anchor distance less than a second distance threshold among the anchor distances between the moving target and the multiple fixed anchor points; when the reference anchor distance exists, using the position information of the fixed anchor point corresponding to the reference anchor distance as the auxiliary position information of the moving target; when the reference anchor distance does not exist, calculating the auxiliary position information of the moving target based on the multiple anchor distances.
[0009] In some embodiments, calculating the auxiliary position information of the moving target based on the distances of multiple anchor points specifically includes: determining three candidate fixed anchor points from multiple fixed anchor points based on preset filtering conditions; constructing three positioning circles with the three candidate fixed anchor points as centers and the corresponding anchor point distances as radii; calculating the set of intersection points obtained by the pairwise intersection of the three positioning circles; selecting at least three intersection points with the highest aggregation degree in the set of intersection points to form a triangular region; and using the geometric center of the triangular region as the auxiliary position information of the moving target.
[0010] In some embodiments, the prior state includes: a first state vector representing the motion state of the moving target, and a first covariance matrix representing the uncertainty of the motion state, wherein the kinematic model is a uniform motion model; the step of predicting the predicted state at the current moment based on the prior state and the kinematic model specifically includes: determining the corresponding state transition matrix based on the uniform motion model; obtaining the process noise covariance matrix, which represents the uncertainty of possible acceleration changes under the uniform motion model; using the state transition matrix to predict the state of the first state vector to generate a second state vector at the current moment; and propagating and updating the first covariance matrix based on the state transition matrix and the process noise covariance matrix to obtain the second covariance matrix at the current moment.
[0011] In some embodiments, obtaining the process noise covariance matrix specifically includes: configuring noise power parameters; generating the process noise covariance matrix based on the noise power parameters and the time interval between adjacent times; wherein the motion state of the moving target includes position information and velocity information, and the process noise variance and covariance related to the position information and the velocity information are obtained by linear combination of the noise power parameters and the power term of the time interval.
[0012] In some embodiments, the predicted state is updated using Kalman filtering based on multiple anchor point distances to obtain the position information of the moving target. Specifically, this includes: forming a measurement vector based on the multiple anchor point distances; calculating the corresponding predicted measurement vector based on the position information in the second state vector; differencing the measurement vector and the predicted measurement vector to obtain a measurement residual; linearizing the nonlinear measurement function at the second state vector to calculate the Jacobian matrix; constructing a noise covariance matrix to represent the ranging noise of the anchor point distances; and updating the predicted measurement vector using the Jacobian matrix, the noise covariance matrix, and the second covariance matrix. The Kalman gain is calculated; the second state vector is updated based on the Kalman gain and the measurement residual to obtain a third state vector; the second covariance matrix is updated based on the Kalman gain and the Jacobian matrix to obtain a third covariance matrix; position information is extracted from the third state vector as the position information of the moving target, and the third covariance matrix and the third state vector are used as the filtering state; wherein, the nonlinear measurement function is a function that takes the position information in the second state vector as input and the predicted distance from each fixed anchor point to the moving target as output.
[0013] In some embodiments, constructing the noise covariance matrix for representing the distance between anchor points specifically includes: determining the residuals corresponding to each fixed anchor point; scaling and updating the diagonal elements in the measurement noise covariance matrix corresponding to each anchor point based on the residuals of each fixed anchor point; wherein the scaling and updating includes: multiplying the diagonal elements by a scaling factor; the scaling factor is determined by the calculation of the corresponding residuals.
[0014] In some embodiments, when the corresponding residual is less than a preset threshold, the scaling factor is set to 1; when the corresponding residual is greater than the preset threshold, the scaling factor increases as the residual increases according to a preset function.
[0015] Secondly, embodiments of this application provide a positioning device. The positioning device includes: an acquisition module, configured to acquire the anchor distances between a moving target and multiple fixed anchor points at the current moment, and the filtering state of the moving target at the previous moment; an initialization module, configured to, when the filtering state at the previous moment is valid, use the filtering state at the previous moment as the prior state of the current Kalman filter loop; and, when the filtering state at the previous moment is invalid, determine an initial filtering state through auxiliary position information and use the initial filtering state as the prior state of the current Kalman filter loop; and an iterative update module, configured to, based on the prior state, perform prediction using a kinematic model to obtain the predicted state at the current moment, and, based on the multiple anchor distances, perform Kalman filtering update on the predicted state to obtain the position information of the moving target; wherein, the auxiliary position information is: position information determined by spatial geometric positioning based on the anchor distances between the moving target and the multiple fixed anchor points.
[0016] Thirdly, embodiments of this application provide an electronic device. The electronic device includes a processor and a memory, the memory storing computer program instructions, which, when invoked by the processor, cause the processor to execute the positioning method described above.
[0017] Fourthly, this application also provides a warehouse. The warehouse includes: a plurality of fixed devices, each of which is equipped with a first UWB module; a plurality of mobile devices, each of which is equipped with a second UWB module, moving between the fixed devices; and an electronic device as described above; wherein the electronic device is communicatively connected to each of the mobile devices and is configured to: determine the measured distance between the mobile device and each of the fixed devices through the first UWB module and the second UWB module, and calculate the location information of the mobile device based on the plurality of measured distances.
[0018] Fifthly, embodiments of this application also provide a computer-readable storage medium storing a computer program, the computer program including program instructions, which, when executed by a processor, cause the processor to perform the positioning method as described above.
[0019] The beneficial effects of the positioning method provided in this application are as follows: It provides a supplementary positioning method based on spatial geometry, which can provide an initial filtered state as a priori state when the filtering state is invalid during the recursive estimation process. This effectively solves the problems of poor robustness of initial positioning and positioning jumps in complex occlusion scenarios. It can well meet the high-precision and high-reliability positioning requirements of complex scenarios such as large logistics warehouses and dense rack storage for real-time personnel tracking, collision warning, and path optimization, and significantly improve the efficiency of personnel management and operational safety in intelligent logistics scenarios. Moreover, this positioning method only relies on the measured distance between the moving target and the fixed anchor point, without the need for other external auxiliary sensors, reducing dependence on infrastructure and equipment power consumption. Attached Figure Description
[0020] One or more embodiments are illustrated by way of example with reference numerals in the accompanying drawings. These illustrations do not constitute a limitation on the embodiments. Elements with the same reference numerals in the drawings are denoted as similar elements. Unless otherwise stated, the figures in the drawings are not to be limited by scale.
[0021] Figure 1 A flowchart illustrating the method for locating a moving target as provided in an embodiment of this application; Figure 2 A schematic diagram of a sub-process of step S103 of the auxiliary positioning method provided in the embodiments of this application; Figure 3 The flowchart of the auxiliary positioning method provided in the embodiments of this application for determining the corresponding auxiliary position information based on the distance of multiple anchor points is shown below. Figure 4 A schematic diagram of a sub-process of step S1024 of the auxiliary positioning method provided in the embodiments of this application; Figure 5 A schematic diagram of triangular positioning provided for an embodiment of this application; Figure 6 A schematic diagram of a warehouse provided in an embodiment of this application; Figure 7 A schematic diagram of a sub-process of step S104 of the positioning method provided in the embodiments of this application; Figure 8 A schematic diagram of a sub-process of step S105 of the positioning method provided in the embodiments of this application; Figure 9A schematic diagram of the Kalman filter update process provided in an embodiment of this application; Figure 10 A schematic diagram of the positioning device provided in the embodiments of this application; Figure 11 A schematic diagram of an electronic device provided in an embodiment of this application. Detailed Implementation
[0022] To facilitate understanding of this application, a more detailed description of this application will be provided below in conjunction with the accompanying drawings and specific embodiments.
[0023] It should be noted that when a component is said to be "set on" another component, it can be directly on the other component or there may be an intervening component. When a component is considered to be "connected" to another component, it can be directly connected to the other component or there may be an intervening component, or it can refer to the two components being interconnected via signals. When a component is considered to be "coupled" to another component, it can be directly coupled to the other component or there may be an intervening component, or it can refer to the two components interacting via signals.
[0024] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein in the specification of this application is for the purpose of describing particular embodiments only and is not intended to be limiting of this application.
[0025] Furthermore, the technical features involved in the different embodiments of this application described below can be combined with each other as long as they do not conflict with each other.
[0026] In logistics warehouses, UWB positioning technology is typically used to achieve real-time location tracking of moving targets such as personnel or robots within the warehouse, enabling functions such as collision warning, path optimization, and emergency response. Typical UWB positioning methods include: First, multiple first UWB modules are deployed at fixed locations or on fixed equipment within the logistics warehouse, forming a fixed anchor point network. The location information of each first UWB module within the logistics warehouse is fixed and constant. Moving targets are equipped with second UWB modules that move with them (e.g., workers wearing clothing or wearable devices equipped with second UWB modules). Thus, through communication between the first and second UWB modules, distance measurement data (i.e., distance measurement) between the moving target and each fixed anchor point can be collected and determined.
[0027] Then, using trilateration or least squares methods, the initial position of the moving target in the logistics warehouse is calculated based on the ranging data and the position information of the fixed anchor points. After determining the initial position, a similar position iteration algorithm, such as Extended Kalman Filter (EKF), is used to continuously update the position information of the moving target based on the ranging data, thereby achieving real-time positioning of the moving target.
[0028] Finally, to further increase the real-time positioning accuracy of moving targets, other positioning aids are also incorporated. For example, inertial measurement units (IMUs) and global positioning systems (GPS) are used as calibration and reference data to further improve real-time positioning accuracy.
[0029] In the process of developing this invention, the applicant noted that traditional UWB positioning technology is prone to positioning deviations when determining the initial position, causing the position iteration algorithm to iterate from an incorrect starting point and affecting subsequent positioning accuracy. Once the position iteration algorithm is interrupted by interference factors, it is difficult to re-initialize. This can lead to the freezing or jumping of the position information of the moving target. Moreover, adding external auxiliary hardware or high-density anchor network to ensure positioning accuracy increases the construction cost of infrastructure and the power consumption of equipment, making it difficult to implement.
[0030] To overcome the above-mentioned shortcomings, the applicant's research found that when initial position information is required, the geometric constraints and ranging redundancy information of multiple fixed anchor points can be fully utilized, and geometric spatial positioning can be combined to calculate a more reliable initial position, thereby providing a reliable starting point for the subsequent iterative positioning process.
[0031] In addition, during the iterative positioning process, an extended Kalman filter framework is constructed using a nonlinear measurement model with the output of "distance from the moving target to each fixed anchor point". Combined with the introduction of a measurement noise adaptive adjustment mechanism based on measurement residuals, the anchor points with abnormal ranging are automatically downweighted to achieve smooth and high-precision real-time positioning in complex indoor environments, reducing the dependence on high-density anchor points.
[0032] Based on the above-described inventive concept, the mobile target localization method provided in this application embodiment can be generally applied to scenarios such as large logistics warehouses and densely stacked warehouses, solving the shortcomings of traditional UWB positioning technology, such as large initialization errors, weak noise adaptation capabilities, high anchor point dependence, and difficulty in lightweight deployment. For example, this mobile target localization method can be applied to collision avoidance scenarios in logistics warehouses where workers wear safety vests.
[0033] Multiple first UWB modules are pre-deployed within the warehouse space as fixed anchor points to build a complete personnel positioning and protection network, and a second UWB module is integrated into the security vest.
[0034] In practical applications, the second UWB module on the safety vest worn by the staff will continuously interact with the fixed anchor network to obtain the anchor distance between multiple fixed anchors.
[0035] The collision avoidance system continuously tracks and updates the location information of workers wearing safety vests in a complex warehouse environment by using the moving target positioning method provided in this application embodiment, based on the distances of multiple anchor points collected at each moment.
[0036] Therefore, the collision avoidance system can detect in real time whether the distance between the position information of the staff and other moving targets (such as forklifts or AGVs) is too close, and when they are too close, it will trigger a collision avoidance alarm in time, reminding the staff to take avoidance measures or control the moving target to stop in time to ensure production safety.
[0037] To help better understand the specific implementation of the moving target positioning method provided in the embodiments of this application, the positioning method will be described in detail below with reference to the accompanying drawings.
[0038] Figure 1 This is a schematic diagram illustrating a method for locating a moving target according to an embodiment of this application. Figure 1 As shown, the method for locating the moving target includes: S101. Obtain the current time, the anchor point distance between the moving target and multiple fixed anchor points, and the filtering state of the moving target in the previous time.
[0039] Here, "moving target" refers to a movable object whose location changes over time. "Fixed anchor point" refers to a fixed object whose position coordinates are known and do not change over time. "Anchor point distance" refers to the distance between the moving target and the fixed anchor point. This distance can be measured in any suitable way (e.g., based on the aforementioned UWB technology), and is not specifically limited here.
[0040] For example, such as Figure 6 As shown, four first UWB modules are positioned near the four shelves 21 in the logistics warehouse as fixed anchor points 22 (the location information of each fixed anchor point 22 in the logistics warehouse is known). Workers moving within the logistics warehouse wear second UWB modules as moving targets 23.
[0041] Therefore, the positioning system can obtain the distance between the worker 23 and each fixed anchor point 22 at multiple consecutive times t1, t2, t3...tn (with the same interval between adjacent times, for example, 100 milliseconds).
[0042] For example, at time t1, the worker is in the left-hand shelving area, and the positioning system determines the anchor distances between worker 23 and the four fixed anchor points to be 12 meters, 25 meters, 18 meters, and 30 meters, respectively. At time t2, worker 23 moves towards the middle aisle, and the positioning system collects the anchor distances at this time as 15 meters, 22 meters, 16 meters, and 27 meters. At time t3, as worker 23 approaches the right-hand forklift operating area, the positioning system again collects the anchor distances as 18 meters, 19 meters, 13 meters, and 24 meters.
[0043] S102. When the filter state of the previous time step is valid, the filter state of the previous time step is used as the prior state of the current Kalman filter loop.
[0044] The "filter state at the previous moment" refers to the set of parameters generated after the previous Kalman filter cycle. This set of parameters includes: a state vector representing the motion state of the moving target, such as its position coordinates and velocity, and a covariance matrix representing the uncertainty of the motion state.
[0045] "The previous filter state is valid" means that the filter state meets the pre-configured validity criteria, allowing the next Kalman filter position update to proceed. In this case, the filter state can serve as the prior state for the current Kalman filter cycle.
[0046] Specifically, the validity criteria can be pre-configured according to actual needs (e.g., the trace of the covariance matrix is less than or equal to a set threshold), and no specific limitations are made here.
[0047] S103. When the filtering state of the previous moment is invalid, the initial filtering state is determined by auxiliary positioning information, and the initial filtering state is used as the prior state of the current Kalman filter cycle.
[0048] "The previous filter state is invalid" refers to a situation where the filter state does not meet the preset validity criteria or does not exist. In this case, the Kalman filter loop needs to be initialized and cannot perform recursive iteration. At this time, initialization is performed using auxiliary positioning information to generate the initial filter state, providing the basis for the recursive iteration of the Kalman filter loop.
[0049] In this embodiment, the auxiliary location information is determined by spatial geometric positioning based on the anchor point distance between the moving target and multiple fixed anchor points.
[0050] S104. Based on the prior state, the predicted state at the current moment is obtained by using a kinematic model for prediction.
[0051] Among them, "kinematic model" refers to a pre-configured mathematical model used to describe the motion laws of a moving target. For example, uniform motion model, uniformly accelerated motion model, etc.
[0052] In a recursive iteration, the prior state is first substituted into the kinematic model to perform state extrapolation, thereby calculating the position and velocity that the moving target may reach at the current moment, and other information related to the motion state as the predicted state, giving a prior estimate of the moving target.
[0053] S105. Based on the distances between multiple anchor points, the predicted state is updated using Kalman filtering to obtain the position information of the moving target.
[0054] In this process, by combining the distances of multiple anchor points obtained in step S101 as actual ranging information, the predicted state provided by the kinematic model can be corrected, and the posterior state at the current moment can be intelligently determined by using Kalman filtering for updating. This allows the calculated position information to simultaneously take into account the continuity constraints of the kinematic model and the actual ranging information, resulting in high positioning accuracy.
[0055] Specifically, at each moment, auxiliary positioning information is calculated based on the current distances between multiple anchor points, thereby obtaining auxiliary positioning information over multiple consecutive moments to ensure that the positioning method can reliably provide accurate location information. This "multiple consecutive moments" refers to a series of adjacent moments on the sampling time axis. For example, t1, t2 to tn mentioned above.
[0056] In some embodiments, the initial filtering state is determined jointly based on auxiliary position information from multiple consecutive time points. Figure 2 The process of determining the initial state of the filter is shown.
[0057] In this application, for ease of description, the k-th time, the (k+1)-th time, and the (k-1)-th time are used to represent three consecutive times, where k is a positive integer greater than or equal to 2, and the (k+1)-th time is the current time. Figure 2 As shown, the initial state of the filter is determined through the following steps: S103a. Calculate the first distance between the auxiliary position information at time k and the auxiliary position information at time k+1.
[0058] The first distance represents the distance the moving target has traveled between two adjacent moments, as determined by the ranging data.
[0059] S103b, Calculate the second distance between the auxiliary position information at time k-1 and the auxiliary position information at time k.
[0060] The second distance represents the distance the moving target, as determined by the ranging data, travels between two adjacent moments.
[0061] S103c: Determine whether both the first distance and the second distance are less than the first distance threshold. If yes, proceed to step S103d. If no, proceed to step S103e.
[0062] The first distance threshold is the product of the upper limit of the expected moving speed of the moving target and the time interval between two adjacent moments. It represents the distance the moving target would typically travel. For example, when the moving target is a worker in a logistics warehouse, the upper limit of the expected moving speed can be set to walking speed.
[0063] S103d, take the auxiliary position information at time k+1 as the position information of the initial state of filtering, and take the velocity of the moving target calculated and determined by the auxiliary position information at time k and time k+1 as the velocity information of the initial state of filtering.
[0064] Since step S103c has already ensured that the movement distance between the three consecutive time points does not exceed the distance threshold determined according to the expected speed upper limit, it can be basically considered that the movement of the moving target is relatively stable at this time, without any situation of sudden acceleration or measurement anomalies, and can be used as the initial state for filtering.
[0065] S103e, Continue searching for auxiliary location information at other adjacent times until three consecutive times are obtained where the first distance and the second distance are both less than the distance threshold.
[0066] Understandably, when the first distance and / or the second distance are greater than the distance threshold, it indicates that the auxiliary position information of the current three consecutive moments does not meet the expected smooth motion constraints and is not suitable as the basis for filter initialization. Accordingly, it is necessary to continue calculating the auxiliary position information at the next moment until a set of three consecutive moments is found such that the first distance and the second distance corresponding to this set are both less than the distance threshold, thereby obtaining a time segment with relatively stable motion and continuous position information, which is used for the calculation of the initial state of subsequent filtering.
[0067] In some embodiments, Figure 3 This demonstrates the process of determining auxiliary positioning information based on the distances between multiple anchor points. For example... Figure 3 As shown, this auxiliary positioning information can be obtained through the following method: S1021, Obtain the distance between multiple anchor points.
[0068] The anchor point distance is the distance between the moving target and a fixed anchor point with known location information. It can be obtained through signal interaction detection between the first and second UWB modules using the aforementioned UWB positioning technology.
[0069] S1022. Determine whether there is a reference anchor distance less than the second distance threshold among the anchor distances between the moving target and multiple fixed anchor points. If yes, proceed to step S1023; otherwise, proceed to step S1024.
[0070] The second distance threshold is a pre-set distance cutoff value used to determine whether a moving target is sufficiently close to a fixed anchor point. In other words, when the distance is less than the second distance threshold, the moving target can be considered very close to the fixed anchor point corresponding to the distance from the reference anchor point.
[0071] S1023. Use the position information of the fixed anchor point corresponding to the distance of the reference anchor point as the auxiliary position information of the moving target.
[0072] When the moving target is very close to the fixed anchor point corresponding to the distance from the reference anchor point, since the position information of the fixed anchor point can be considered to be accurate and error-free, the position information of the fixed anchor point corresponding to the distance from the reference anchor point can be directly used as auxiliary position information.
[0073] S1024. Based on the distances between multiple anchor points, determine the auxiliary position information of the moving target through spatial geometric positioning.
[0074] Among them, "spatial geometric positioning" refers to the process of calculating the position coordinates of the moving target that best matches the distances to each fixed anchor point, given the known position information of multiple fixed anchor points in space, and treating the distances between the moving target and each fixed anchor point as spatial constraints to each fixed anchor point.
[0075] Specifically, the spatial geometric positioning can be based on the needs of the actual application, and can adopt geometric solution methods such as trilateral positioning, quadrilateral positioning or least squares-based polygonal positioning, without being specifically limited here.
[0076] In the positioning method provided in this application embodiment, when the Kalman filter loop needs to be initialized, auxiliary positioning information that fully utilizes the geometric constraints and ranging redundancy information of multiple fixed anchor points is used to provide relevant information on the motion state of the moving target. This can provide a reliable recursive iteration starting point for the subsequent iterative positioning process of the Kalman filter loop, ensuring that real-time positioning can operate reliably and continuously.
[0077] Specifically, when using a trilateration-based geometric solution method, such as... Figure 4 As shown, step S1024 specifically includes the following sub-processes: S1024a. Based on preset filtering conditions, determine three candidate fixed anchor points from multiple fixed anchor points.
[0078] The "preset filtering criteria" are a set of pre-defined judgment conditions used to filter fixed anchor points. They are used to select fixed anchor points from multiple fixed anchor points that have relatively superior geometric configurations and better distance measurement reliability.
[0079] For example, the screening criteria include spatial distribution and / or distance conditions. The spatial distribution condition refers to: using three fixed anchor points as a unit, the candidate anchor point combination must satisfy the following requirements: the distance between any two anchor points within the group must exceed 2 meters, and the height corresponding to the longest side of the triangle formed by the three anchor points must be greater than 1 meter. This ensures that the fixed anchor points are not clustered together or collinear, possessing a good geometric configuration. The distance condition refers to: selecting the group of anchor points that has the smallest sum of distances to the moving target from the anchor point combinations that meet the spatial distribution condition, ensuring that the candidate fixed anchor points are as close to the moving target as possible.
[0080] S1024b: Construct three positioning circles with the three candidate fixed anchor points as centers and the corresponding anchor point distances as radii.
[0081] Here, "positioning circle" refers to a circular shape drawn on a two-dimensional positioning plane with the candidate fixed anchor point as the center and the corresponding anchor point distance as the radius. Each positioning circle represents the possible location range of the moving target.
[0082] S1024c Calculate the set of intersection points obtained by the pairwise intersection of the three positioning circles.
[0083] The "intersection set" refers to the set of all intersection points formed by the pairwise intersection of the three positioning circles. Based on the principle of trilateration, in an ideal, error-free scenario, the three positioning circles will intersect at a single point. However, in practical applications, due to factors such as ranging noise and anchor point errors, the three positioning circles will generate multiple intersection points, and the set of these intersection points is called the "intersection set".
[0084] S1024d. In the set of intersection points, select at least three intersection points with the highest degree of aggregation to form a triangular region.
[0085] The phrase "at least three intersections with the highest degree of clustering" refers to the three intersections selected from the set of intersections that are closest to each other. These three intersections have the most concentrated spatial location and can effectively characterize the approximate location range of the moving target. Connecting these three intersections with the highest degree of clustering in sequence will form a closed triangular region.
[0086] S1024e, Use the geometric center of the triangular region as auxiliary position information of the moving target.
[0087] The "geometric center of the triangular region" refers to the intersection of the three medians of the triangle. This center can be calculated using the average coordinates of the three intersection points.
[0088] For example, such as Figure 5 As shown, the moving target 23 and the three fixed anchor points 22 form three positioning circles, creating six intersection points. Then, the three intersection points with the highest concentration are selected from these six points and connected sequentially to form a triangular region. Finally, the geometric center of this triangular region is used as the approximate fitting position of the moving target.
[0089] The trilateration method provided in this application, by selecting a fixed anchor point combination through preset screening conditions, can effectively reduce the impact of a single abnormal ranging or unfavorable local geometric conditions on the positioning results in the presence of ranging noise, uneven anchor point deployment, and error factors such as occlusion and multipath. This improves the stability and robustness of the calculated auxiliary position information and provides a more reliable initial state for subsequent Kalman filtering loops.
[0090] In some embodiments, the kinematic model is a uniform motion model, such as... Figure 7 As shown, step S104 includes the following sub-processes: S1041. Based on the uniform motion model, determine the corresponding state transition matrix.
[0091] The state transition matrix describes the evolution of the motion state of a moving target between two adjacent moments under ideal conditions, without considering measurement information and random disturbances. In other words, for a uniform motion model, the position and velocity information of the moving target in a preset coordinate system can be used as state variables. Based on the motion relationship that "velocity remains constant within the sampling interval, and position changes linearly with velocity," a linear state transition relationship from the previous moment's state to the current moment's state is derived, and this linear state transition relationship is described using a "state transition matrix."
[0092] S1042, Construct the process noise covariance matrix.
[0093] The process noise covariance matrix is used to represent the uncertainty of acceleration changes that may occur under the uniform motion model. It can be used to compensate for the deviation between the ideal uniform motion assumption and the actual motion, thereby achieving an appropriate balance between the reliability of the kinematic model and the adaptability to random disturbances such as sudden acceleration and deceleration.
[0094] Specifically, to facilitate debugging and ensure that the process noise covariance matrix better adapts to the needs of actual application scenarios, step S1042 includes the following steps: First, the noise power parameters are configured. Then, based on the noise power parameters and the time intervals between adjacent time points, the process noise covariance matrix is generated.
[0095] The process noise variance and covariance related to the location and velocity information are obtained by linear combination of the noise power parameters configured above and the power terms of the time interval.
[0096] This method of constructing the process noise covariance matrix by uniformly combining each element of the noise power parameter with the power term of the time interval, while ensuring that the overall structure of the process noise covariance matrix still basically conforms to the uniform motion model, achieves decoupling adjustment of position-related uncertainty and velocity-related uncertainty by adding an independent noise power parameter.
[0097] Such decoupling adjustment allows for separate setting or optimization of the uncertainty intensity of the position and velocity dimensions (and the correlation between them), enabling convenient and rapid parameter tuning under different warehouse environments and motion conditions. This improves engineering debugging efficiency while more flexibly matching actual error characteristics, thereby achieving more reasonable process noise modeling and more robust filtering effects, especially in application scenarios with complex and diverse error sources, such as UWB indoor positioning.
[0098] S1043. Use the state transition matrix to predict the state of the first state vector and generate the second state vector at the current time.
[0099] Here, the first state vector is the state vector representing the motion state of the moving target in the prior state. The second state vector refers to the predicted motion state of the moving target generated based on the state transition matrix.
[0100] S1044. Based on the state transition matrix and the process noise covariance matrix, the first covariance matrix is propagated and updated to obtain the second covariance matrix at the current time.
[0101] The first covariance matrix is a parameter used to represent the uncertainty of the motion state. The second covariance matrix represents the magnitude of the uncertainty of the predicted state at the current moment after state transitions and process noise.
[0102] In other words, the second covariance matrix reflects the propagation effect of uncertainty caused by extrapolation from the uniform motion model and the additional uncertainty introduced by process noise. It is used to quantify the change in confidence in the current position and velocity during the "prediction based solely on the kinematic model" phase.
[0103] In some embodiments, based on Figure 7 The second state vector and the second covariance matrix are calculated as follows: Figure 8As shown, step S105 specifically includes the following sub-processes: S1051. A measurement vector is formed based on the distances between multiple anchor points.
[0104] Here, the "measurement vector" is a column vector formed by arranging the distances of multiple anchor points collected in step S101 in a preset order. By organizing the scalar distance values of each anchor point into a single measurement vector, it is easier to use a unified matrix form for linear algebraic operations with subsequent predicted measurement vectors, distance noise covariance matrices, etc.
[0105] S1052. Based on the position information in the second state vector, calculate the corresponding prediction measurement vector.
[0106] Here, the "predicted measurement vector" refers to the "theoretical anchor point distance" calculated using the geometric distance formula based on the position information in the second state vector obtained in step S1043 and the position coordinates of each fixed anchor point. Similarly, these theoretical anchor point distances are arranged into a column vector in the same order as the measurement vector to provide a benchmark for the subsequent construction of measurement residuals.
[0107] S1503. Based on the measurement vector and the predicted measurement vector, obtain the corresponding measurement residual.
[0108] The measurement residual is the vector difference between the actual measured anchor point distance and the theoretical anchor point distance. It reflects the degree of inconsistency between the predicted state obtained using the kinematic model and the observed data obtained from actual sampling. It can be understood that a small measurement residual indicates that the predicted position is close to the actual position, while a large measurement residual indicates a significant difference between the predicted state and the actual position, potentially requiring substantial adjustments.
[0109] S1504. Linearize the nonlinear measurement function at the second state vector and calculate the Jacobian matrix.
[0110] The nonlinear measurement function refers to a function that takes the position information in the second state vector as input and the predicted distance from each fixed anchor point to the moving target as output.
[0111] Since the relationship between the "target position of the moving target" and the "anchor point distance" is non-linear (i.e., the aforementioned non-linear measurement function), appropriate linearization is required to achieve linear matrix operations within the Kalman filter framework.
[0112] In this embodiment, the nonlinear measurement function is approximated by a first-order Taylor expansion near the current predicted state. Then, by taking the partial derivative of the function at the second state vector, the sensitivity of the measurement function to each state component is obtained, thereby forming the Jacobian matrix.
[0113] Therefore, the Jacobian matrix can be used to describe the linear approximation of the change in the predicted distance of each anchor point due to a small change in state near the current predicted position, so that it can be calculated in the form of a linear matrix in subsequent steps.
[0114] S1505, Construct the ranging noise covariance matrix.
[0115] The ranging noise covariance matrix is a matrix representation of the ranging error of the anchor point distance. By assigning different weights to the anchor point distances of different fixed anchor points, it automatically reduces the impact of anchor point distances with large noise variances on the Kalman filter update results, thereby mitigating the detrimental effect of low-quality anchor point distances on the overall positioning accuracy.
[0116] For example, in the ranging noise covariance matrix, the diagonal elements are used to represent the variance of the noise of each anchor point distance, which is used to measure the uncertainty of the distance of a single anchor point, while the off-diagonal elements are used to represent the correlation between the ranging errors of different anchor points.
[0117] Specifically, the process of constructing the ranging noise covariance matrix includes the following steps: First, the residuals corresponding to each fixed anchor point are determined. Then, based on the residuals of each fixed anchor point, the diagonal elements of the measurement noise covariance matrix corresponding to each anchor point are scaled and updated. This scaling update involves multiplying the diagonal elements by a scaling factor. This scaling factor is determined by the corresponding residual calculation, thereby mitigating the negative impact of low-quality anchor point distances on overall positioning accuracy.
[0118] For example, when the corresponding residual is less than a preset threshold, the scaling factor is set to 1; when the corresponding residual is greater than the preset threshold, the scaling factor increases as the residual increases according to a preset function. In this way, appropriate weight allocation is achieved.
[0119] S1506. Calculate the Kalman gain based on the Jacobian matrix, the ranging noise covariance matrix, and the second covariance matrix.
[0120] The "Kalman gain" is a weight matrix calculated by combining the uncertainty of the current predicted state (represented by the aforementioned second covariance matrix) and the uncertainty of the anchor distance (identified by the ranging noise covariance matrix in step S1505), along with the sensitivity of the model (represented by the aforementioned Jacobian matrix). It indicates the degree to which the predicted state or the measurement result should be trusted more.
[0121] In other words, when the prediction uncertainty is high but the anchor distance is relatively reliable, the Kalman gain tends to increase, relying more on the anchor distance to correct for the motion state of the moving target. Conversely, when the prediction is relatively reliable but the uncertainty of the anchor distance is high, the Kalman gain tends to decrease to prevent the anchor distance from excessively affecting the estimation of the motion state of the moving target.
[0122] S1507. Update the second state vector based on the Kalman gain and the measurement residual to obtain the third state vector, and update the second covariance matrix based on the Kalman gain and the Jacobian matrix to obtain the third covariance matrix.
[0123] The third state vector is the correction result obtained by weighting the measurement residual with Kalman gain and then superimposing this weighted residual onto the second state vector. It more closely approximates the true motion state of the moving target while balancing the kinematic model predictions and the actual ranging results.
[0124] The third covariance matrix is used to represent the degree to which the state uncertainty is reduced after fusing the measurement vector from step S1501. In other words, it represents the uncertainty of the motion state of the current third state vector and can be used as the initial data for the next Kalman filter update.
[0125] S1508. Extract the position information from the third state vector as the position information of the moving target, and use the third covariance matrix and the third state vector as the filtering state.
[0126] The third state vector, as the posterior state estimate obtained after this Kalman filter update, contains multiple components, including the moving target's position and velocity at the current moment. Therefore, by extracting the component corresponding to the position information from the third state vector, the moving target's position information can be obtained.
[0127] In addition, the third state vector and its corresponding third covariance matrix are used together as a new filter state, which is used as the prior state of the Kalman filter loop in the next time step.
[0128] By repeatedly iterating through steps S104 to S105, the difference between the model prediction and the measured anchor point distance can be continuously balanced during long-term operation, resulting in smooth and highly accurate real-time location information, thus enabling real-time positioning of moving targets.
[0129] To fully describe the inventive concept of this application, the following is combined with Figure 9 The specific process of Kalman filter update is described in detail.
[0130] 1) Prior state: The first state vector includes two-dimensional position variables and two-dimensional velocity variables on the x-axis and y-axis, and is represented by the following formula (1): (1) in, This is the first state vector; x and y represent the position coordinates of the moving target on the x-axis and y-axis, respectively; v x v y These represent the velocity components along the x-axis and y-axis of the moving target, respectively.
[0131] The diagonal elements of the first covariance matrix represent the degree of fluctuation of the position and velocity variables, and the off-diagonal elements represent the covariance between the velocity and position variables, expressed by the following formula (2): (2) in, Let the first covariance matrix be denoted as . This represents the variance of the position coordinates along the x-axis. This represents the variance of the position coordinates along the y-axis. This represents the variance of the velocity component along the x-axis. This represents the variance of the velocity component along the y-axis.
[0132] This represents the correlation between variables a and b. It can be expressed in any suitable mathematical form. For example, using... For example, it can be expressed by the following formula (3): (3) in, The mean of the x-axis position coordinates. This represents the mean value of the velocity component along the x-axis. E This is the mathematical expectation operator. Therefore, the covariance... The magnitude of this value can be used to measure the joint change between the x-axis position coordinate and the x-axis velocity component.
[0133] 2) Predict the current state using a kinematic model: Based on the uniform motion model, the state transition matrix is constructed as shown in the following formula (4): (4) in, Represents the state transition matrix. It represents the time interval between the previous moment and the current moment (i.e., the time interval between two consecutive moments).
[0134] Accordingly, the second state vector is represented by the following formula (5): (5) in, Represents the second state vector. This represents the first state vector.
[0135] The second covariance matrix is expressed by the following formula (6): (6) in, Let the second covariance matrix be represented. Let the first covariance matrix be denoted as . Let represent the process noise covariance matrix. This process noise covariance matrix is described by the following formula (7): (7) in, It is a pre-configured noise power parameter, which is a constant that can be configured by technicians according to the actual application. The value represents the velocity variance. The "0" in the matrix is because the expected value of the acceleration is 0.
[0136] 3) Update the predicted state using Kalman filtering: 3.1) Linearization process: The nonlinear measurement function is expressed by the following formula (8): (8) in, and These represent the position coordinates of the fixed anchor point on the x-axis and y-axis, respectively. and These represent the x-axis and y-axis coordinates of the moving target retrieved from the predicted state. This indicates the predicted anchor point distance.
[0137] As mentioned earlier, equation (8) is a nonlinear function involving square roots, which cannot be used within the Kalman filter framework. Therefore, it needs to be linearized using equations (9) and (10) as follows: (9) (10) Assuming we obtain the anchor distances of n different fixed anchor points, based on the partial derivatives of the above formulas (9) and (10), we can construct the Jacobian matrix represented by the following formula (11): (11) In the Jacobian matrix, the first column indicates how much the error in the x-coordinate will cause the difference in the predicted anchor distance for each fixed anchor point, and the second column indicates how much the error in the y-coordinate will cause the difference in the predicted anchor distance for each fixed anchor point.
[0138] The third and fourth columns represent how much the error in velocity in the x and y directions affects the predicted anchor distance for each fixed anchor point. Since the velocity deviation from the true value has no direct impact on the predicted anchor distance at the current moment, the third and fourth columns of the Jacobian matrix are both set to "0".
[0139] 3.2) Construct the ranging noise covariance matrix: To measure the impact of the ranging error on the anchor point distance (i.e., the uncertainty in measuring the anchor point distance), the ranging noise covariance matrix is constructed as shown in the following formula (12): (12) in, This represents the ranging noise covariance matrix. The diagonal elements are the variances of the noise at each anchor point distance. It is a constant that can be configured by technicians according to the specific application; the configured value describes the uncertainty of the distance to a single anchor point.
[0140] Assuming that the measurement residual between the measured vector and the predicted measurement vector comes entirely from the ranging error, the magnitude of the measurement residual is calculated using the following formula (13): (13) in, This represents the measurement residual between the measured anchor distance and the predicted anchor distance for the nth fixed anchor point. This represents the L2 norm.
[0141] Based on the residual obtained by formula (13), the pre-configured ranging noise covariance matrix is scaled and updated using the following formula (14) so that it can dynamically adjust the ranging noise according to the actual situation: (14) in, This represents the scaled and updated ranging noise covariance matrix. This indicates that the larger of the two values is used as the scaling factor.
[0142] 3.3) Calculate the Kalman gain: On the one hand, the uncertainty in the second state vector is mapped to the uncertainty in the predicted anchor distance using the Jacobian matrix. On the other hand, the uncertainty in the measured anchor distance is represented using the scaled and updated ranging noise covariance matrix.
[0143] The Kalman gain is calculated using the following formula (15): (15) in, Indicates Kalman gain, Let the second covariance matrix be represented. Represents the Jacobian matrix. This represents the range noise covariance matrix after scaling and updating.
[0144] 3.4) Obtain the third state vector: The Kalman gain obtained from the aforementioned calculation represents the degree of confidence in the measured anchor point distance data. Therefore, based on this Kalman gain, the second state vector of the predicted state can be corrected using the following formula (16) to make it closer to the true state of the moving target: (16) in, Represents the third state vector. Indicates Kalman gain, Represents the second state vector. This represents the measurement residual vector, which is a column vector composed of the measurement residuals of n fixed anchor points in a set order.
[0145] After obtaining the third state vector, the position information can be extracted from it and used as the position information of the moving target at the current moment, thus realizing the localization of the moving target.
[0146] 3.5) Obtain the third covariance matrix: In order to perform the next Kalman filter update, the second covariance matrix needs to be synchronously propagated and updated using the following formula (17) so that it can represent the uncertainty of the third state vector: (17) in, Denotes the third covariance matrix. Let the second covariance matrix be represented. This represents the identity matrix, which has the same size as the second covariance matrix. Indicates Kalman gain, This represents the range noise covariance matrix after scaling and updating.
[0147] Based on the positioning method provided in one or more of the above embodiments, this application further provides a positioning device. Figure 10 This is a functional block diagram of the positioning device provided in an embodiment of this application. Figure 10 As shown, the positioning device 200 includes: an acquisition module 210, an initialization module 220, and an iterative update module 230.
[0148] The acquisition module 210 acquires the anchor distances between the moving target and multiple fixed anchor points at the current moment, as well as the filtering state of the moving target at the previous moment. The initialization module 220, when the filtering state at the previous moment is valid, uses the filtering state at the previous moment as the prior state of the current Kalman filter loop; and when the filtering state at the previous moment is invalid, determines the initial filtering state using auxiliary position information and uses the initial filtering state as the prior state of the current Kalman filter loop. The iterative update module 220, based on the prior state, performs prediction using a kinematic model to obtain the predicted state at the current moment, and updates the predicted state using Kalman filtering based on the multiple anchor distances to obtain the position information of the moving target. The auxiliary position information is determined through spatial geometric positioning based on the anchor distances between the moving target and the multiple fixed anchor points.
[0149] Specifically, the initialization module 220 is used to determine the corresponding auxiliary position information at each moment based on the anchor distance between the moving target and multiple fixed anchor points; calculate the first distance between the auxiliary position information at time k and the auxiliary position information at time k+1; calculate the second distance between the auxiliary position information at time k-1 and the auxiliary position information at time k; when both the first distance and the second distance are less than the first distance threshold, use the auxiliary position information at time k+1 as the position information of the initial filtering state, and use the speed of the moving target calculated and determined by the auxiliary position information at time k and the auxiliary position information at time k+1 as the speed information of the initial filtering state; wherein, the first distance threshold is: the product of the upper limit of the expected moving speed of the moving target and the time interval between two adjacent moments, k is a positive integer greater than or equal to 2, and time k+1 is the current moment.
[0150] In some embodiments, when calculating the auxiliary position information at each moment, the initialization module 220 is specifically used to: determine whether there is a reference anchor distance less than a second distance threshold among the anchor distances between the moving target and the plurality of fixed anchor points; when the reference anchor distance exists, use the position information of the fixed anchor point corresponding to the reference anchor distance as the auxiliary position information of the moving target; when the reference anchor distance does not exist, calculate the auxiliary position information of the moving target based on the plurality of anchor distances.
[0151] In some embodiments, when calculating the auxiliary position information of a moving target, the auxiliary positioning module 230 is specifically used to determine three candidate fixed anchor points from multiple fixed anchor points based on preset screening conditions; construct three positioning circles with the three candidate fixed anchor points as centers and the corresponding anchor point distances as radii; calculate the set of intersection points obtained by the pairwise intersection of the three positioning circles; select at least three intersection points with the highest aggregation degree in the set of intersection points to form a triangular region; and use the geometric center of the triangular region as the auxiliary position information of the moving target.
[0152] In some embodiments, when the prior state includes a first state vector representing the motion state of the moving target and a first covariance matrix representing the uncertainty of the motion state, and the kinematic model is a uniform motion model, the iterative update module 230 is specifically used to: determine the corresponding state transition matrix based on the uniform motion model; obtain the process noise covariance matrix, which represents the uncertainty of acceleration changes that may occur under the uniform motion model; use the state transition matrix to predict the state of the first state vector and generate a second state vector at the current moment; and perform propagation update on the first covariance matrix based on the state transition matrix and the process noise covariance matrix to obtain the second covariance matrix at the current moment.
[0153] Specifically, the process noise covariance matrix can be constructed as follows: configure noise power parameters; generate the process noise covariance matrix based on the noise power parameters and the time interval between adjacent times; wherein the process noise variance and covariance related to the position information and the velocity information are obtained by linear combination of the power terms of the noise power parameters and the time interval.
[0154] In some embodiments, the iterative update module 230 is specifically configured to: form a measurement vector based on the distances of multiple anchor points; calculate a corresponding predicted measurement vector based on the position information in the second state vector; obtain a corresponding measurement residual based on the measurement vector and the predicted measurement vector; linearize the nonlinear measurement function at the second state vector and calculate the Jacobian matrix; construct a ranging noise covariance matrix to represent the ranging error of the anchor point distance; calculate the Kalman gain based on the Jacobian matrix, the ranging noise covariance matrix, and the second covariance matrix; update the second state vector according to the Kalman gain and the measurement residual to obtain a third state vector, and update the second covariance matrix according to the Kalman gain and the Jacobian matrix to obtain a third covariance matrix; extract position information from the third state vector as the position information of the moving target, and use the third covariance matrix and the third state vector as the filtering state; wherein, the nonlinear measurement function is a function that takes the position information in the second state vector as input and the predicted distance from each fixed anchor point to the moving target as output.
[0155] Specifically, the ranging noise covariance matrix is constructed as follows: determining the residuals corresponding to each fixed anchor point; scaling and updating the diagonal elements of the ranging noise covariance matrix corresponding to each anchor point based on the residuals of each fixed anchor point; wherein, the scaling and updating includes: multiplying the diagonal elements by a scaling factor; the scaling factor is determined by the corresponding residual calculation.
[0156] Preferably, when the corresponding residual is less than a preset threshold, the scaling factor is set to 1; when the corresponding residual is greater than the preset threshold, the scaling factor increases as the residual increases according to a preset function.
[0157] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working process of the functional modules described above can be referred to the corresponding method steps in the foregoing embodiments, and will not be repeated here. Those skilled in the art can use different methods to implement the described functions for each specific application. For example, a computer software program containing the steps of the above method embodiments can be stored in a computer-readable storage medium so that, when executed, the program can implement one or more steps of the above method embodiments.
[0158] Figure 11 This is a schematic diagram of an electronic device provided in an embodiment of this application. This electronic device can implement the positioning method described in one or more of the above embodiments. It should be noted that... Figure 11The components, their connections and relationships, and their functions shown are for illustrative purposes only and are not intended to impose limitations on the specific implementation of the electronic device.
[0159] like Figure 11 As shown, the electronic device 30 may include a processor 301, a memory 302, a storage device 303, a high-speed interface 305 connected to the memory 302 and a plurality of high-speed expansion ports 304, and a low-speed interface 307 connected to a low-speed expansion port 306 and the storage device 303.
[0160] Each of the processor 301, memory 302, storage device 303, high-speed interface 305, high-speed expansion port 304, and low-speed interface 307 is interconnected using various buses and can be mounted on a common motherboard or other suitable methods.
[0161] The processor 301 can process computer program instructions stored in the memory 302 or on the storage device 303 for displaying graphical information on an external input / output device (e.g., a display 308 coupled to a high-speed interface 305).
[0162] The memory 302 is used to store data information. It may be one or more volatile memory cells, non-volatile memory cells, or another form of computer-readable media, such as a magnetic disk or optical disk.
[0163] Storage device 303 can provide large-capacity storage for control terminals. It may contain computer-readable media, such as floppy disk devices, hard disk devices, optical disk devices or magnetic tape devices, flash memory or other similar solid-state storage devices, or device arrays, including devices or other configurations in a storage area network.
[0164] Computer program instructions can be stored in an information carrier. When executed by one or more processors 301, these computer program instructions implement the positioning method described in one or more of the above embodiments.
[0165] High-speed interface 305 manages higher bandwidth-intensive operations, while low-speed interface 307 manages lower bandwidth-intensive operations. In some embodiments, high-speed interface 305 is coupled to memory 302, display 308, and high-speed expansion port 304 which accepts various expansion cards. Low-speed interface 307 is coupled to storage device 303 and low-speed expansion port 306.
[0166] The low-speed expansion port 306 includes a communication port (e.g., USB, Ethernet, wireless Ethernet) and can be coupled to one or more input / output devices, such as a keyboard, pointing device, or scanner.
[0167] The functional modules described in one or more embodiments of this application can be implemented in digital electronic circuits, integrated circuits, specially designed ASICs (Application-Specific Integrated Circuits), computer hardware, firmware, software, and / or combinations thereof. They may include embodiments of one or more computer programs that can be executed and / or interpreted on a programmable system comprising at least one programmable processor, which may be dedicated or general-purpose, coupled to receive data and instructions from a storage system, at least one input device, and at least one output device, and to transmit data and instructions to the storage system, at least one input device, and at least one output device.
[0168] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and can be implemented using high-level programming and / or goal-oriented programming languages and / or assembly / machine language. In this embodiment, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, device, and / or apparatus (e.g., disk, optical disk, memory, programmable logic device) used to provide machine instructions and / or data to a programmable processor, including machine-readable media that receive machine instructions as machine-readable signals. The term "machine-readable signal" can refer to any signal used to provide machine instructions and / or data to a programmable processor.
[0169] The above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit it. Under the concept of this application, the technical features of the above embodiments or different embodiments can also be combined, the steps can be implemented in any order, and there are many other variations of different aspects of this application as described above. For the sake of brevity, they are not provided in detail. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. These modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A method for locating a moving target, characterized in that, include: Obtain the current anchor distance between the moving target and multiple fixed anchor points, as well as the filtering state of the moving target in the previous moment; When the filter state of the previous time step is valid, the filter state of the previous time step is used as the prior state of the current Kalman filter loop. When the filtering state of the previous moment is invalid, the initial filtering state is determined by auxiliary position information, and the initial filtering state is used as the prior state of the current Kalman filter cycle. Based on the prior state, a kinematic model is used to make a prediction to obtain the predicted state at the current moment; Based on the distances between multiple anchor points, the predicted state is updated using Kalman filtering to obtain the position information of the moving target; The auxiliary position information is: position information determined by spatial geometric positioning based on the anchor point distance between the moving target and the plurality of fixed anchor points.
2. The positioning method according to claim 1, characterized in that, The step of determining the initial state of filtering using auxiliary positioning information specifically includes: At each moment, based on the anchor point distance between the moving target and multiple fixed anchor points, the corresponding auxiliary position information is determined; Calculate the first distance between the auxiliary position information at time k and the auxiliary position information at time k+1; Calculate the second distance between the auxiliary position information at time k-1 and the auxiliary position information at time k; When both the first distance and the second distance are less than the first distance threshold, the auxiliary position information at time k+1 is used as the position information of the initial filtering state, and The velocity of the moving target, calculated using the auxiliary position information at time k and the auxiliary position information at time k+1, is used as the velocity information of the initial filtering state. Wherein, the first distance threshold is: the product of the expected upper limit of the moving target’s moving speed and the time interval between two adjacent moments, where k is a positive integer greater than or equal to 2, and the (k+1)th moment is the current moment.
3. The positioning method according to claim 2, characterized in that, The step of determining the corresponding auxiliary position information based on the anchor point distances between the moving target and multiple fixed anchor points specifically includes: Determine whether there is a reference anchor distance less than a second distance threshold among the anchor distances between the moving target and the plurality of fixed anchor points; When the reference anchor point distance exists, the position information of the fixed anchor point corresponding to the reference anchor point distance is used as the auxiliary position information; When the reference anchor point distance does not exist, the auxiliary position information is calculated based on multiple anchor point distances.
4. The positioning method according to claim 3, characterized in that, The calculation of the auxiliary position information of the moving target based on the distances between multiple anchor points specifically includes: Based on preset filtering conditions, three candidate fixed anchor points are determined from multiple fixed anchor points. Three positioning circles are constructed, with the three candidate fixed anchor points as the centers and the corresponding anchor point distances as the radii. Calculate the set of intersection points obtained by the pairwise intersection of the three positioning circles; From the set of intersection points, at least three intersection points with the highest degree of aggregation are selected to form a triangular region; The geometric center of the triangular region is used as the auxiliary location information.
5. The positioning method according to claim 1, characterized in that, The prior states include: a first state vector representing the motion state of the moving target, and a first covariance matrix representing the uncertainty of the motion state; the kinematic model is a uniform motion model. The step of predicting the current state based on the prior state using a kinematic model specifically includes: Based on the uniform motion model, determine the corresponding state transition matrix; Construct a process noise covariance matrix, which is used to represent the uncertainty of acceleration changes that may occur under the uniform motion model; The state transition matrix is used to predict the state of the first state vector to generate the second state vector at the current moment. Based on the state transition matrix and the process noise covariance matrix, the first covariance matrix is propagated and updated to obtain the second covariance matrix at the current time.
6. The positioning method according to claim 5, characterized in that, The noise covariance matrix constructed during the process specifically includes: Configure noise power parameters; The process noise covariance matrix is generated based on the noise power parameters and the time interval between adjacent times. The motion state of the moving target includes position information and velocity information; the process noise variance and covariance related to the position information and the velocity information are obtained by linear combination of the noise power parameter and the power term of the time interval.
7. The positioning method according to claim 5, characterized in that, Based on the distances between multiple anchor points, the predicted state is updated using Kalman filtering to obtain the position information of the moving target, specifically including: A measurement vector is formed based on the distances between the multiple anchor points; Based on the position information in the second state vector, calculate the corresponding prediction measurement vector; Based on the measurement vector and the predicted measurement vector, the corresponding measurement residual is obtained; The nonlinear measurement function is linearized at the second state vector, and the Jacobian matrix is calculated. Construct a ranging noise covariance matrix to represent the ranging error of the anchor point distance; The Kalman gain is calculated based on the Jacobian matrix, the ranging noise covariance matrix, and the second covariance matrix. The second state vector is updated based on the Kalman gain and the measurement residual to obtain the third state vector, and the second covariance matrix is updated based on the Kalman gain and the Jacobian matrix to obtain the third covariance matrix. Position information is extracted from the third state vector and used as the position information of the moving target. The third covariance matrix and the third state vector are used as the filtering state. The nonlinear measurement function is a function that takes the position information in the second state vector as input and the predicted distance from each fixed anchor point to the moving target as output.
8. The positioning method according to claim 7, characterized in that, The construction of the ranging noise covariance matrix to represent the ranging noise of the anchor point distance specifically includes: Determine the residuals corresponding to each fixed anchor point; Based on the residuals of each fixed anchor point, the diagonal elements of the measurement noise covariance matrix corresponding to each anchor point are scaled and updated. The scaling update includes multiplying the diagonal elements by a scaling factor; the scaling factor is determined by the corresponding residual calculation.
9. The positioning method according to claim 8, characterized in that, When the corresponding residual is less than a preset threshold, the scaling factor is set to 1; when the corresponding residual is greater than the preset threshold, the scaling factor increases as the residual increases according to a preset function.
10. A positioning device, characterized in that, include: The acquisition module is used to acquire the anchor point distance between the moving target and multiple fixed anchor points at the current time, as well as the filtering state of the moving target at the previous time. An initialization module is used to take the previous filtering state as the prior state of the current Kalman filter loop when the previous filtering state is valid. Furthermore, when the filtering state at the previous moment is invalid, the initial filtering state is determined by auxiliary position information, and the initial filtering state is used as the prior state of the current Kalman filter loop. The iterative update module is used to predict the current state based on the prior state using a kinematic model, and update the predicted state using Kalman filtering based on the distances to multiple anchor points to obtain the position information of the moving target. The auxiliary location information is: location information determined by spatial geometric positioning based on the anchor point distance between the moving target and the plurality of fixed anchor points.
11. An electronic device, characterized in that, include: A processor and a memory, the memory storing computer program instructions that, when invoked by the processor, cause the processor to perform the positioning method as described in any one of claims 1-9.
12. A warehouse, characterized in that, include: Several fixed devices, each of which is equipped with a first UWB module; A plurality of mobile devices, each equipped with a second UWB module, move between the plurality of fixed devices; The electronic device of claim 11, wherein the electronic device is communicatively connected to each of the mobile devices, and is configured to: determine the measurement distance between the mobile device and each of the fixed devices via the first UWB module and the second UWB module, and determine the location information of the mobile device based on the plurality of measurement distances.
13. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, the computer program including program instructions that, when executed by a processor, cause the processor to perform the positioning method as described in claims 1-9.