CENTRALIZED COOPERATIVE POSITIONING METHOD BASED ON JOINT TIME-SPACE PROCESSING
20220050167 · 2022-02-17
Inventors
- Chengfei FAN (Hangzhou, CN)
- Liyan LI (Hangzhou, CN)
- Yunlong CAI (Hangzhou, CN)
- Minjian ZHAO (Hangzhou, CN)
- Xinglong XU (Hangzhou, CN)
Cpc classification
G01S5/0294
PHYSICS
G01S5/0036
PHYSICS
International classification
Abstract
A centralized cooperative positioning method includes: caching measurements of nodes in multiple time slices up to the current time slice; calculating location information of the nodes in the multiple time slices to obtain trajectory of the nodes in the multiple time slices; performing initial state estimations of the nodes based on measurements of a single time slice; and using the initial state estimations as initial solution values, performing the joint time-space processing on the measurements of the nodes in the multiple time slices based on trajectory constraints, to obtain a state estimation of each node at the current time slice, in which the state estimation includes an estimated value of a location of the node.
Claims
1. A centralized cooperative positioning method of a centralized cooperative positioning system based on joint time-space processing, wherein there are nodes and a central processing node in the system and the central processing node is responsible for positioning all nodes; the central processing node comprises a multi-slice measurement cache module (101), a trajectory calculation module (102), an initial state estimation module (103) and a joint time-space processing module (104); measurements are used as input of the multi-slice measurement cache module (101) and the initial state estimation module (103), a state variable of each node in a current time slice is used as input of the trajectory calculation module (102), and output of the multi-slice measurement cache module (101), the trajectory calculation module (102) and the initial state estimation module (103) is used as input of the joint time-space processing module (104), and output of the joint time-space processing module (104) is used as result; wherein the centralized cooperative positioning method comprises: (1) during each time slice, caching, by the multi-slice measurement cache module which is used as a data cache module, all measurements of all nodes in the system in multiple time slices up to the current time slice, and sending the measurements into the joint time-space processing module; (2) calculating, by the trajectory calculation module, location information of all the nodes in the system in the multiple time slices based on state variables of all the nodes in the system in the current time slice to obtain trajectory information of all the nodes in the multiple time slices, and sending the trajectory information of all the nodes into the joint time-space processing module; in which (2) comprises: calculating location information of each node in previous K−1 time slices based on a location variable x.sub.m.sup.k of the node in the current time slice and a mobility state variable of the node, in a case that a number of the considered multiple consecutive time slices is small, it is reasonable to assume that each node moves along a straight line with a constant acceleration in K time slices, location information of node m at time slice t∈, is defined, based on a mobility state of node m at time slice k, as:
{circumflex over (X)}.sub.m.sup.k|k−1=F{circumflex over (X)}.sub.m.sup.k−1;
{circumflex over (P)}.sub.m.sup.k|k−1=F{circumflex over (P)}.sub.m.sup.k−1F.sup.T+Q.sub.m.sup.k; where matrix F is denoted as:
R.sub.m.sup.k=diag{σ.sub.nm.sub.
K.sub.m.sup.k={circumflex over (P)}.sub.m.sup.k|k−1(H.sub.m.sup.k).sup.T(S.sub.m.sup.k).sup.31 1; a posterior estimation and a covariance matrix of X.sub.m.sup.k is calculated as:
{circumflex over (X)}.sub.m.sup.k={circumflex over (X)}.sub.m.sup.k|k−1+K.sub.m.sup.kΔr.sub.m.sup.k;
{circumflex over (P)}.sub.m.sup.k={circumflex over (P)}.sub.m.sup.k|k−1−K.sub.m.sup.kS.sub.m.sup.k(K.sub.m.sup.k).sup.T; the estimations are used as the initial state estimations of the nodes and sent to the joint time-space processing module; (4) using, by the joint time-space processing module, the initial state estimations provided by the initial state estimation module, as initial solution values, performing the joint time-space processing on the measurements of all the nodes in the system in the multiple time slices based on trajectory constraints, to obtain a state estimation of each node at the current time slice, in which the state estimation includes an estimated value of a location of each node; in which (4) comprises: fusing, by the joint time-space processing module, the measurements in the multiple time slices using the trajectory constraints of all the nodes, based on the initial state estimations provided by the initial state estimation module, to obtain the state estimation of each node at the current time slice, in which the state estimation includes the estimated value of the location of the node, .sup.k=[
.sub.1.sup.k,
.sub.2.sup.k, . . . ,
.sub.M.sup.k] is defined, M represents a number of all the nodes in the system, and a maximum likelihood estimation of
.sup.k is obtained based the measurements
and
in the multiple time slices as:
2. The centralized cooperative positioning method according to claim 1, wherein (1) comprises: during the current time slice k , caching, by the multi-slice measurement cache module, the measurements in all the K time slices up to the current time slice, in which the measurements include location measurements of reference nodes and relative distance measurements
among all the nodes,
={τ, τ+1, . . . , k}, τ=k−K+1; and the measurements are sent to the joint time-space processing module.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0013]
[0014]
[0015]
DETAILED DESCRIPTION
[0016] The disclosure designs a centralized cooperative positioning system and method. The system aims to the problem that some nodes in the small mobile network may not complete self-positioning. The system uses location information of reference nodes and relative distance measurements among all nodes to complete positioning of all the nodes in the network. The proposed centralized cooperative positioning method, based on state information of each node at the current time slice, calculates trajectory information of the nodes in multiple time slices up to the current time slice. The joint time-space processing is performed on the measurements of all the nodes in the multiple time slices by using trajectory constraints of all the nodes, to obtain the location estimations of all the nodes at the current time slice. This method may effectively improve the positioning accuracy of nodes and the stability of the positioning results.
[0017] The central processing node in the centralized cooperative positioning system based on joint time-space processing includes the following four modules: a multi-slice measurement cache module, a trajectory calculation module, an initial state estimation module and a joint time-space processing module. The centralized cooperative positioning method designed for this system includes the following.
[0018] (1) A state model of the system is established and a measurement equation of the system is determined, as:
{tilde over (x)}.sub.m.sup.t=x.sub.m.sup.t+b.sub.m.sup.t;
r.sub.mn.sup.t=∥x.sub.m.sup.t−x.sub.n.sup.t∥30 μ.sub.mn.sup.t;
[0019] where x.sub.m.sup.t represents a location of node m at time slice t, {tilde over (x)}.sub.m.sup.t represents a location measurement of a reference node, b.sub.m.sup.t represents a location measurement error; r.sub.mn.sup.t represents a relative distance measurement between node m and node n, ∥x.sub.m.sup.t−x.sub.n.sup.t∥ represents a true distance, and μ.sub.mn.sup.t represents a relative distance measurement error.
[0020] (2) During the current time slice k, location measurements of reference nodes and relative distance measurements
among all the nodes in recent K time slices from time slice τ=k−K+1 to the current time slice k may be cached as:
[0021] where ={τ, τ+1, . . . , k}, N.sub.a represents the number of the reference nodes, M represents the number of all the nodes, r.sub.m.sup.t represents a set of relative distance measurements between node m and all neighboring nodes of node m. The measurements may be sent to the joint time-space processing module.
[0022] (3) Location information of all the nodes in previous K−1 time slices may be calculated based on state variables of all the nodes in the current time slice and mobility state variables of all the nodes such as velocity, acceleration. A velocity variable of node m in the current time slice k is defined as v.sub.m.sup.k and an acceleration of node m in the current time slice k is defined as a.sub.m.sup.k. In a case that a number of the considered multiple consecutive time slices is small, it is reasonable to assume that each node moves along a straight line with a constant acceleration in K time slices. At this time, based on the mobility state variable of the node in the current time slice k , location information of node m at time slice t∈, is defined as:
[0023] where, ΔT.sub.t=(t−k)ΔT, ΔT represents a length of the time slice. All the location information of node m from time slice τ to the current time slice k represents the trajectory of the node during the K time slices. The state variable of the node is defined as:
z.sub.m.sup.k=[(x.sub.m.sup.k).sup.T, (v.sub.m.sup.k).sup.T, (a.sub.m.sup.k).sup.T].sup.T.
[0024] The trajectory of node m is expressed as:
[0025] The trajectories of all the nodes are sent to the joint time-space processing module.
[0026] (4) Initial state estimations of all the nodes may be calculated by the initial state estimation module, using the conventional cooperative positioning method based on the measurements in a single time slice such as extended Kalman filter algorithm and unscented Kalman filter algorithm. The initial state estimations of all the nodes may be used as initial solution values of the joint processing on the measurements in the multiple time slices. The initial state estimations of all the nodes may be sent to the joint time-space processing module.
[0027] (5) The joint time-space processing module may fuse the measurements of the multiple time slices based on the initial state estimations of all the nodes provided by the initial state estimation module and using trajectory constraints of all the nodes to obtain a state estimation of each node at the current time slice. In detail, .sup.k=[z,34 .sub.1.sup.k,
.sub.2.sup.k, . . . ,
.sub.M.sup.k] is defined and a maximum likelihood estimation of
.sup.k is obtained based the measurements
and
in the multiple time slices as:
[0028] (6) The result of the joint time-space processing module is output, that is, a final state estimation each node at the current time slice may be obtained, which includes the estimated value of the location of each node.
[0029] The system block diagram of the cooperative positioning system is shown in
Embodiments
[0030] For an example, the extended Kalman filter algorithm is used as an initial estimation algorithm for node state information, measurements in K=3 time slices may be fused based on the maximum likelihood criterion, and SQP algorithm is used to solve the objective problem. It is set that there are 33 nodes in a mobile network, of which 13 nodes may obtain their own location information through GNSS. There is a certain error in the location information obtained through GNSS. The remaining nodes may not complete self-positioning. All nodes may be distributed randomly in an area of 2000 m×2000 m firstly. Due to the limitation of distance and power consumption and the presence of obstacles, each node may only communicate with a subset of the nodes in the network. The communication radius of each node is set to be 800 m herein. The relative distance information with neighboring nodes and the location information of neighboring nodes may be obtained through communication links. In addition, an initial velocity of all the nodes is set to 40 m/s and an acceleration meets a Gaussian distribution with a mean value of 0 m/s.sup.2 and a standard deviation of 0.2 m/s.sup.2. The standard deviation of the location error of the reference node, obtained through GNSS, is 4 m. The standard deviation of the relative distance estimation error between nodes is 1 m.
[0031] The central processing node in the centralized cooperative positioning system based on joint time-space processing includes the following four modules: a multi-slice measurement cache module, a trajectory calculation module, an initial state estimation module and a joint time-space processing module. The centralized cooperative positioning method designed for this system includes the following.
[0032] (1) A state model of the system is established and a measurement equation of the system is determined, as:
{tilde over (x)}.sub.m.sup.t=x.sub.m.sup.t+b.sub.m.sup.t;
r.sub.mn.sup.t=h(x.sub.m.sup.t, x.sub.n.sup.t)+μ.sub.mn.sup.t=∥x.sub.m.sup.t−x.sub.n.sup.t∥+μ.sub.mn.sup.t;
[0033] where x.sub.m.sup.t represents a location of node m at time slice t, {tilde over (x)}.sub.m.sup.t represents a GNSS measurement of a reference node, b.sub.m.sup.t represents a location estimation error at time slice t and has a mean value of zero and a covariance matrix U.sub.m.sup.t; r.sub.mn.sup.t represents a relative distance measurement between node m and node n, h(x.sub.m.sup.t, x.sub.n.sup.t)=∥x.sub.m.sup.t−x.sub.n.sup.t∥ represents a true distance, and μ.sub.mn.sup.t represents a relative distance measurement error and has a mean value of zero and a covariance matrix (σ.sub.mn.sup.t).sup.2.
[0034] (2) During the current time slice k, location measurements of reference nodes and relative distance measurements
among all the nodes in recent K time slices from time slice τ=k−K+1 to the current time slice k may be cached as:
[0035] where ={τ, τ+1, . . . , k}, N.sub.a represents the number of the reference nodes, M represents the number of all the nodes, r.sub.m.sup.t represents a set of relative distance measurements between node m and all neighboring nodes of node M . The measurements may be sent to the joint time-space processing module.
[0036] (3) The measurements in the recent K time slices from the time slice τ to the current time slice k is related to the location of each node at the current time slice k and also related to the location of each node in the previous K−1 time slices. Therefore, location information of all the nodes in the previous K−1 time slices may be calculated based on state variables of all the nodes in the current time slice and mobility state variables of all the nodes such as velocity, acceleration. A velocity variable of node m in the current time slice k is defined as v.sub.m.sup.k and an acceleration of node m in the current time slice k is defined as a.sub.m.sup.k. Considering that the measurements before a large number of time slices from the current time slice has little contribution to the positioning performance of the node at the current time slice, K is set to a small value, K=3. In this case, it is reasonable to assume that each node moves along a straight line with a constant acceleration in the K time slices. At this time, based on the mobility state of the node in the time slice k, location information of node m at time slice t∈, is defined as:
[0037] where, ΔT.sub.t=(t−k)ΔT, ΔT represents a length of the time slice. All the location information of node m from time slice τ to time slice k represents the trajectory of the node during the recent K time slices. The state variable of the node is defined as:
[0038] The trajectory of node m is expressed as:
x.sub.m.sup.t=F, m∈
, t∈
;
[0039] where matrix F.sup.t is expressed as:
[0040] where I.sub.2 represents a 2×2 unit matrix and the trajectory information of all the nodes are sent to the joint time-space processing module.
[0041] (4) In order to improve the efficiency of fusing the measurements in the multiple time slices, the initial state estimation module uses the extended Kalman filter algorithm to calculate initial state estimations of all the nodes based on the measurements in a single time slice, as initial solution values of trajectories of all the nodes during the information joint processing. A to-be-estimated variable at the current time slice is defined as X.sub.m.sup.k=[(x.sub.m.sup.k).sup.T, (v.sub.m.sup.k).sup.T].sup.T, where x.sub.m.sup.k=[x.sub.m.sup.k, y.sub.m.sup.k].sup.T, v.sub.m.sup.k=[{dot over (x)}.sub.m.sup.k, {dot over (y)}.sub.m.sup.k].sup.T. X.sub.m.sup.k at the current time slice is predicted based on a posterior estimator {circumflex over (X)}.sub.m.sup.k−1 at time slice k−1 as:
{circumflex over (X)}.sub.m.sup.k|k−1=F{circumflex over (X)}.sub.m.sup.k−1;
{circumflex over (P)}.sub.m.sup.k|k−1=F{circumflex over (P)}.sub.m.sup.k−1F.sup.T+Q.sub.m.sup.k;
[0042] where matrix F is denoted as:
[0043] 0.sub.2 represents a 2×2 all-zero matrix. {circumflex over (P)}.sub.m.sup.k−1 represents a covariance matrix of estimator {circumflex over (X)}.sub.m.sup.k−1, and Q.sub.m.sup.k represents a covariance matrix of system modeling noise. A Jacobian matrix of the measurements r.sub.m.sup.k about X.sub.m.sup.k as:
[0044] a measurement residual and a covariance matrix of the measurement residual are calculated as:
[0045] n.sub.1, n.sub.2, . . . , n.sub.N.sub.
R.sub.m.sup.k=diag{(σ.sub.mn.sub.
[0046] A Kalman gain is calculated as:
K.sub.m.sup.k={circumflex over (P)}.sub.m.sup.k≡1k−1(H.sub.m.sup.k).sup.T(S.sub.m.sup.k).sup.−1;
[0047] a posterior estimation and a covariance matrix of X.sub.m.sup.k is calculated as:
{circumflex over (X)}.sub.m.sup.k={circumflex over (X)}.sub.m.sup.k|k−1+K.sub.m.sup.kΔr.sub.m.sup.k;
{circumflex over (P)}.sub.m.sup.k={circumflex over (P)}.sub.m.sup.k|k−1−K.sub.m.sup.kS.sub.m.sup.k(K.sub.m.sup.k).sup.T).
[0048] The estimations are used as the initial state estimations of the nodes and sent to the joint time-space processing module.
[0049] (5) The joint time-space processing module fuses the measurements in the multiple time slices using the trajectory constraints of all the nodes, based on the initial state estimations provided by the initial state estimation module, to obtain the state estimation of each node at the current time slice. In detail, .sup.k=[
.sub.1.sup.k,
.sub.2.sup.k, . . . ,
.sub.M.sup.k] is defined as state of all the nodes at the current time slice k . A maximum likelihood estimation of
.sup.k is obtained based the measurements
and
in the multiple time slices as:
[0050] Under the assumption of Gaussian white noise, the above equation is equivalent to a nonlinear least squares problem as:
[0051] M represents the number of all the nodes in the network. c.sub.mn.sup.t=1 represents that node m and node n are connected, otherwise c.sub.mn.sup.t=0.
[0052] (6) The above problem may be solved by using MATLAB's SQP algorithm to obtain a final state estimation of each node at the current time slice which includes the location estimation of each node.
[0053] e(x.sub.m.sup.k)=∥{circumflex over (x)}.sub.m.sup.k−x.sub.m.sup.k∥ is defined as the positioning error of node m at time slice t, where {circumflex over (x)}.sub.m.sup.k is the estimated value and x.sub.m.sup.k is the real location.
[0054] It can be seen from is defined as the mean square error of node positioning. For user nodes, RMSE of JSTP-CMLE is 1.2416 m, RMSE of STS-MLE is 1.6302 m, and RMSE of SPAWN is 1.6088 m; for reference nodes, RMSE of JSTP-CMLE is 1.0320 m, RMSE of STS-MLE is 1.3827 m, and RMSE of SPAWN is 1.2695 m.