Robot positioning method, system, and computer readable medium
Patent Information
- Application Number
- CN202510326724.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-19
- Publication Date
- 2026-10-20
AI Technical Summary
然而只采用全球导航卫星系统定位的方式主要依赖卫星信号,在卫星信号不佳的情况下会降低机器人的定位精度,从而影响机器人的工作效率
[0022]本申请的技术方案将传感器测量值分为两部分,一部分相当于训练集,另一部分相当于验证集;利用基于神经网络构建的卡尔曼滤波器进行动态估计和优化,并使用真实位置值以有监督的方式训练模型;通过反向传播对卡尔曼滤波器进行迭代训练,可以得到预训练的滤波器,经训练的滤波器能够对传感器测量值进行精确的定位估计,机器人可以根据定位估计值来运动。本申请可以提高机器人的定位精度和工作效率,能够有效提高机器人在复杂环境下的鲁棒性。
Smart Images

Figure HDA0005319084620000011 
Figure HDA0005319084620000021 
Figure HDA0005319084620000022
Abstract
Description
Technical Field
[0001] This application relates primarily to the field of robot positioning technology, and more specifically to a robot positioning method, system, and computer-readable medium. Background Technology
[0002] In solar photovoltaic (PV) power generation systems, the cleanliness of the photovoltaic panels has a significant impact on their power generation efficiency. Traditional manual cleaning methods are not only inefficient but also fail to meet the daily maintenance needs of large-scale PV power plants. Therefore, PV cleaning robots have emerged.
[0003] Photovoltaic cleaning robots, as intelligent devices capable of automatically cleaning photovoltaic panels, integrate technologies such as artificial intelligence and machine vision. Equipped with sensors, computer vision technology, and cleaning devices, these robots can automatically identify and remove stains and dust from the surface of photovoltaic panels. The robot can move autonomously across the photovoltaic panel surface and intelligently plan its cleaning path based on preset programs or data feedback from sensors, automatically adjusting cleaning intensity and speed to ensure the cleanliness of the photovoltaic panels and their power generation efficiency. High-precision positioning is fundamental to the efficient and intelligent cleaning achieved by the photovoltaic cleaning robot; therefore, it is essential to ensure that the robot accurately identifies and locates the photovoltaic modules.
[0004] Currently, photovoltaic cleaning robots typically use global navigation satellite systems, such as GPS (Global Positioning System), for positioning. GPS receives signals from multiple satellites and uses triangulation to calculate the receiver's position, thus achieving absolute positioning. However, relying solely on GPS positioning depends heavily on satellite signals; poor signal strength reduces the robot's positioning accuracy, thereby impacting its work efficiency. Summary of the Invention
[0005] The technical problem to be solved by this application is to provide a robot positioning method, system and computer-readable medium, which can improve the positioning accuracy and working efficiency of the robot.
[0006] The technical solution adopted in this application to solve the above-mentioned technical problems is a robot localization method, including: Step S1: acquiring sensor measurement values and true position values of the robot during its movement, and dividing the sensor measurement values into first sensor measurement values and second sensor measurement values; Step S2: calculating the Kalman gain using a Kalman filter and the first sensor measurement values, and calculating the position estimate based on the Kalman gain; wherein, the Kalman filter is constructed using a neural network; Step S3: calculating the loss function value between the position estimate and the true position value using a loss function; Step S4: determining whether the loss function value is greater than a preset convergence threshold; if yes, training the Kalman filter using the backpropagation method and repeating step S3; if no, obtaining a pre-trained Kalman filter and proceeding to step S5; Step S5: calculating the localization estimate using the pre-trained Kalman filter and the second sensor measurement values.
[0007] In one embodiment of this application, the Kalman filter includes a gain calculation network; in step S2, the Kalman gain is calculated using the Kalman filter and the first sensor measurement value, including: inputting the first sensor measurement value into the Kalman filter to obtain the position estimate at the current time and the posterior estimate at the previous time; calculating a first input value based on the position estimate at the current time and the posterior estimate at the previous time; calculating a second input value based on the first sensor measurement value at the current time and the position estimate at the current time; and simultaneously inputting the first input value and the second input value into the gain calculation network, and the gain calculation network outputs the Kalman gain.
[0008] In one embodiment of this application, calculating a first input value based on the current position estimate and the posterior estimate from the previous time step includes: calculating the first input value using the following formula:
[0009] Input1 = Z -1 -X(t|t)
[0010] Where Input1 represents the first input value; Z -1 X(t) represents the posterior estimate of the previous time step; X(t|t) represents the position estimate of the current time step; and t represents the current time step.
[0011] In one embodiment of this application, calculating a second input value based on a first sensor measurement at the current time and a position estimate at the current time includes: calculating the second input value using the following formula:
[0012] Input2 = y(t) - X(t|t) * H
[0013] Where Input2 represents the second input value; y(t) represents the first sensor measurement value at the current time; X(t|t) represents the position estimate at the current time; H represents the measurement system matrix; and t represents the current time.
[0014] In one embodiment of this application, the gain calculation network includes a fully connected linear input layer, a recurrent neural network layer, and a fully connected linear output layer. The gain calculation network outputs a Kalman gain by simultaneously inputting a first input value and a second input value. This includes: the fully connected linear input layer generating a linear transformation value based on the first and second input values; the recurrent neural network layer generating a state vector based on the linear transformation value; and the fully connected linear output layer generating a Kalman gain based on the state vector.
[0015] In one embodiment of this application, the recurrent neural network layer is constructed using a gated recurrent unit (GRU) and / or a long short-term memory (LSTM) network.
[0016] In one embodiment of this application, step S2, calculating the position estimate based on the Kalman gain, includes calculating the position estimate using the following formula:
[0017] X(t|t)=X_pre+Kt*(y(t)–H*X_pre)
[0018] Where X(t|t) represents the position estimate at the current time; X_pre represents the state prediction at the current time; Kt represents the Kalman gain at the current time; y(t) represents the first sensor measurement at the current time; H represents the measurement system matrix; and t represents the current time.
[0019] In one embodiment of this application, the sensor measurements include measurements from the Global Positioning System and measurements from the Inertial Measurement Unit.
[0020] To address the aforementioned technical problems, this application also proposes a robot positioning system, comprising: a memory for storing instructions executable by a processor; and a processor for executing the instructions to implement the robot positioning method described above.
[0021] To address the aforementioned technical problems, this application also proposes a computer-readable medium storing computer program code, which, when executed by a processor, implements the robot positioning method described above.
[0022] The technical solution of this application divides sensor measurements into two parts: one part is equivalent to a training set, and the other part is equivalent to a validation set. It utilizes a Kalman filter based on a neural network for dynamic estimation and optimization, and trains the model in a supervised manner using real position values. Through backpropagation, iterative training of the Kalman filter yields a pre-trained filter. This trained filter can accurately estimate the location of sensor measurements, allowing the robot to move based on the estimated location values. This application can improve the robot's positioning accuracy and work efficiency, and effectively enhance its robustness in complex environments.
[0023] This application is equivalent to a scheme for high-precision robot positioning using a neural network-assisted Kalman filter. The neural network-based Kalman gain calculation method can combine the system's state estimate and measurement values, and output the Kalman gain through the neural network, thus avoiding the influence of inaccurate initial settings of process noise covariance and measurement noise covariance on the estimation results. Attached Figure Description
[0024] To make the above-mentioned objectives, features and advantages of this application more apparent and understandable, the specific embodiments of this application will be described in detail below with reference to the accompanying drawings, wherein:
[0025] Figure 1 This is an exemplary flowchart of a robot positioning method according to an embodiment of this application;
[0026] Figure 2 This is a schematic diagram of a Kalman filter in one embodiment of this application;
[0027] Figure 3 This is a schematic diagram of a recurrent neural network layer of a gain calculation network in one embodiment of this application;
[0028] Figure 4 This is a schematic diagram of a gain calculation network in one embodiment of this application;
[0029] Figure 5 This is a system block diagram of a robot positioning system according to an embodiment of this application. Detailed Implementation
[0030] To make the above-mentioned objectives, features and advantages of this application more apparent and understandable, the specific embodiments of this application will be described in detail below with reference to the accompanying drawings.
[0031] Many specific details are set forth in the following description in order to provide a full understanding of this application. However, this application may also be implemented in other ways different from those described herein, and therefore this application is not limited to the specific embodiments disclosed below.
[0032] As indicated in this application and claims, unless the context clearly indicates otherwise, the words "a," "an," "an," and / or "the" are not specifically singular and may include plural forms. Generally speaking, the terms "comprising" and "including" only indicate the inclusion of explicitly identified steps and elements, which do not constitute an exclusive list, and the method or apparatus may also include other steps or elements.
[0033] Flowcharts are used in this application to illustrate the operations performed by the system according to embodiments of this application. It should be understood that the preceding or following operations are not necessarily performed in exact order. Instead, various steps can be processed in reverse order or simultaneously. Furthermore, other operations may be added to these processes, or one or more steps may be removed from these processes.
[0034] The following section introduces knowledge related to the technical means of this application and the technical concept of this application, so as to facilitate understanding of the robot positioning method described later in this application.
[0035] Photovoltaic cleaning robots can use the Global Navigation Satellite System (GNSS) for positioning, or they can use an inertial navigation system (INS). The INS calculates the position, velocity, and attitude of the vehicle by measuring its acceleration and angular velocity using an integral algorithm.
[0036] In practical applications, satellite positioning systems can be integrated with inertial navigation systems. For example, a robot can use a satellite positioning system for initial positioning, while simultaneously using an inertial navigation system for short-term, high-precision positioning, ensuring stability even in complex environments. When fusing data from multiple sensors, traditional data modeling methods can be employed, such as using Kalman filtering and its variants for data fusion; alternatively, the data fitting capabilities of neural networks can be utilized to fuse multi-source sensor data.
[0037] To improve the navigation accuracy of photovoltaic cleaning robots, longitudinal and lateral error dimensionality reduction can be considered. This can be combined with dynamic models, inertial measurement unit (IMU) data, and GPS data to design a position estimation scheme based on an extended Kalman filter (EPF). Alternatively, an iterative EPF can be used to fuse data from multiple sensors, such as IMU data, angle and wheel speed encoder data, GPS data, camera data, and LiDAR data, to achieve efficient trajectory estimation. Or, neural networks can be used to assist in pose estimation, such as Long Short-Term Memory (LSTM), Convolutional Neural Networks (CNN), and Temporal Convolutional Networks (TCN).
[0038] Using Kalman filtering and its variants to fuse multi-source data requires model construction. Furthermore, the Kalman filter is highly sensitive to the model; inaccurate parameter settings can lead to a model that doesn't perfectly match the actual system, significantly reducing estimation performance. Some parameters, however, require manual adjustment and are not easily determined.
[0039] While neural networks possess strong information synthesis capabilities, can process both quantitative and qualitative information simultaneously, and can effectively coordinate the relationships between multiple input information, making them suitable for multi-information fusion, they lack universality across different platforms, and their accuracy cannot be guaranteed.
[0040] Considering the potential shortcomings of the above-mentioned solutions, this application proposes a high-precision robot positioning scheme based on a neural network-assisted Kalman filter to improve the robot's positioning accuracy. For example, in the cleaning scenario of a photovoltaic cleaning robot, this scheme enables the robot to better fuse sensor information (such as information from the Global Positioning System and the Inertial Measurement Unit) to obtain accurate position estimates. The method of combining the Kalman filter with a neural network not only utilizes the powerful fitting ability of the neural network but also preserves the interpretability of the computation process, reduces computational overhead, and improves real-time performance.
[0041] This paper introduces the Kalman filter and gain calculation network proposed in this application. The Kalman filter is equivalent to the gain output network, and these network models will be used in the robot localization method described later.
[0042] Figure 2 This is a schematic diagram of a Kalman filter in one embodiment of this application. For example, refer to... Figure 2 As shown, this application uses a gain calculation network to output the Kalman gain value. -1 This indicates that the optimal estimate from the previous moment is saved as the current estimate, with a delay of one time period; f represents the state transition matrix in the Kalman filtering process; h represents the measurement system parameters; y(t) represents the measurement values from the sensors on the photovoltaic cleaning robot, which can include the position value determined by GPS and the acceleration and angular velocity values determined by IMU (Inertial Measurement Unit); X(t|t) represents the current optimal estimate, i.e., the position information of the photovoltaic cleaning robot; Loss represents the loss function. The input to the loss function module is the currently calculated optimal estimate and the true value obtained from actual high-precision mapping. The loss function is calculated on these two types of input values to train the gain calculation network.
[0043] Continue to refer to Figure 2 As shown, the input to the gain calculation network mainly consists of two parts: one part is the posterior estimate from the previous time step minus the prior estimate from the current time step, which can be considered as the input corresponding to... Figure 2 Arrow 201 in the diagram; the other part is the current measured value minus the product of the current prior estimate and the measurement system matrix, which can be considered as the input corresponding to... Figure 2 Arrow 202 in the image.
[0044] For example, in the process of Kalman filtering, the state transition matrix f and the measurement system parameter h are known; however, the covariance matrix Q and the covariance matrix R are inaccurate. These missing statistics are only used to calculate the Kalman gain in model-based Kalman filtering.
[0045] Figure 3 This is a schematic diagram of a recurrent neural network layer of a gain calculation network in one embodiment of this application. Figure 4 This is a schematic diagram of a gain calculation network in one embodiment of this application. For example, refer to... Figures 2 to 4 As shown, the neural network used in the gain calculation network of this application can be... Figure 3 The diagram shows a gated recurrent unit (GRU). GRU is a type of recurrent neural network that addresses the limitations of RNNs (Recurrent Neural Networks) such as their inability to retain long-term memories and the gradient issues during backpropagation. GRUs are easy to train, and their inherent memory allows for implicit tracking of second-order statistical moments without requiring knowledge of the underlying noise statistics. In practical applications, GRUs can be replaced with LSTMs; this application does not impose any restrictions.
[0046] Continue to refer to Figure 3 As shown, X t This represents the input information at the current moment; h t-1 This represents the hidden state from the previous time step. The hidden state acts as the neural network's memory, containing information about the data seen by previous nodes; h t This indicates the hidden state that will be passed on to the next time step; represents the candidate hidden state; r represents the reset gate; z represents the update gate; the sigmoid function can transform data into a value in the range of 0-1; the tanh function can transform data into a value in the range of [-1,1].
[0047] Exemplarily, calculating the Kalman gain involves tracking the second-order statistical moments. The recursive nature of Kalman gain calculation suggests that its learning module should include an internal storage element for tracking. In some embodiments, this application uses the internal memory of a recurrent neural network (GRU) to implicitly track the underlying second-order statistical moments required to calculate the Kalman gain. The size of the hidden states of the GRU in this application is m. 2 +n 2 Integer multiples of, where m and n represent the dimensions of the measured and estimated values, respectively. (Reference) Figure 4As shown, a fully connected input layer is needed, whose output is used as the input to the GRU to optimize information transmission and transformation. A fully connected linear output layer with m*n neurons can be used to process the GRU's state vector h. t This is mapped to the estimated Kalman gain value. In practical applications, a single GRU layer can be used, or multiple GRU layers can be used to increase the network's capacity and abstraction.
[0048] For example, refer to Figure 4 As shown, during the use of the GRU network, the dimensions of the neural network input and output may not match the actual dimensions of the data. Therefore, this application adds a fully connected linear input layer and a fully connected linear output layer to the input and output ends of the network, respectively, to process the input and output dimensions of the data and play the role of dimension transformation.
[0049] The robot localization method described in this application will be introduced later.
[0050] This application proposes a robot localization method, which can be applied to localization scenarios where photovoltaic cleaning robots clean photovoltaic panels. The robot localization method of this application can run on the robot itself, such as within the robot's controller, or it can run on a cloud platform. When the robot localization method runs on a cloud platform, data from the robot and data from the cloud platform interact via a wireless network. For example, the cloud platform may include a private cloud, public cloud, hybrid cloud, community cloud, distributed cloud, interconnected cloud, and multiple clouds, or any combination thereof. This application does not limit the operating environment of the robot localization method.
[0051] Figure 1 This is an exemplary flowchart of a robot localization method according to an embodiment of this application, with reference to... Figure 1 As shown, the robot localization method of this embodiment includes the following steps:
[0052] Step S1: Obtain the sensor measurement values and the actual position value of the robot during its movement, and divide the sensor measurement values into the first sensor measurement value and the second sensor measurement value.
[0053] Step S2: Calculate the Kalman gain using the Kalman filter and the measurement value from the first sensor, and calculate the position estimate based on the Kalman gain; wherein, the Kalman filter is constructed using a neural network.
[0054] Step S3: Calculate the loss function value between the estimated location value and the true location value using the loss function.
[0055] Step S4: Determine whether the loss function value is greater than the preset convergence threshold. If yes, train the Kalman filter using the backpropagation method and repeat step S3. If no, obtain the pre-trained Kalman filter and proceed to step S5.
[0056] Step S5: Calculate the positioning estimate using the pre-trained Kalman filter and the second sensor measurements.
[0057] The following details steps S1 to S5 described above:
[0058] In step S1, the sensor measurement values and the actual position value of the robot during its movement are obtained, and the sensor measurement values are divided into the first sensor measurement value and the second sensor measurement value.
[0059] For example, the true location value can be obtained through high-precision mapping by an external system. This true location value can serve as a labeled dataset for subsequent training of a neural network model, allowing for supervised model training. The first sensor measurement and the second sensor measurement can be obtained at different time periods. The first sensor measurement is used to train the Kalman filter of this application, and the second sensor measurement is used to validate the pre-trained Kalman filter, further ensuring the accuracy and reliability of the robot's localization estimate.
[0060] In some embodiments, sensor measurements include measurements from a Global Positioning System (GPS) and an Inertial Measurement Unit (IMU). For example, a GPS and an IMU can be installed on a robot. By fusing the robot's GPS and IMU data, subsequent positioning estimation can be performed using the fused data. This fusion can integrate the positioning characteristics of different types of data, thereby obtaining a high-precision position value.
[0061] In step S2, the Kalman gain is calculated using the Kalman filter and the measurement value of the first sensor, and the position estimate is calculated based on the Kalman gain; wherein, the Kalman filter is constructed using a neural network.
[0062] For example, the Kalman filter of this application can combine system state estimates and measurements, and use a deep neural network to output the Kalman gain, thus avoiding the influence of inaccurate initial settings of process noise covariance and measurement noise covariance on the estimation results. The introduction of neural networks provides the Kalman filter with stronger adaptability and nonlinear processing capabilities, enabling it to better handle noise and errors in sensor data, thereby improving the accuracy and reliability of position estimation.
[0063] In some embodiments, reference Figure 2As shown, the Kalman filter includes a gain calculation network; in step S2, the Kalman gain is calculated using the Kalman filter and the measurement value from the first sensor, including:
[0064] Step S210: Input the measurement value of the first sensor into the Kalman filter to obtain the position estimate at the current time and the posterior estimate at the previous time.
[0065] Step S220: Calculate the first input value based on the current position estimate and the posterior estimate from the previous time step;
[0066] Step S230: Calculate the second input value based on the first sensor measurement value at the current time and the position estimate value at the current time;
[0067] Step S240: Input the first input value and the second input value into the gain calculation network at the same time, and the gain calculation network outputs the Kalman gain.
[0068] For example, this application achieves dynamic and adaptive calculation of the Kalman gain by introducing a gain calculation network into the Kalman filter. The first and second input values reflect the system's state estimation and measurement information, respectively. By simultaneously inputting them into the gain calculation network, the Kalman gain can be dynamically adjusted. This dynamic adjustment method enables the filter to more accurately assess measurement noise and estimation errors, thereby improving the accuracy and stability of subsequent position estimation.
[0069] In some embodiments, step S220, calculating the first input value based on the current position estimate and the previous posterior estimate, includes: calculating the first input value using the following formula (1):
[0070] Input1 = Z -1 - X(t|t) (1)
[0071] Where Input1 represents the first input value; Z -1 X(t) represents the posterior estimate of the previous time step; X(t|t) represents the position estimate of the current time step; and t represents the current time step.
[0072] For example, the posterior estimate Z at the previous time step is calculated using formula (1). -1 The difference between the current position estimate X(t|t) and the current position estimate provides the gain calculation network with crucial information about the changes in the system state. This method of difference calculation reflects the state changes of the system between two consecutive time points, thereby helping the gain calculation network to better evaluate and adjust the Kalman gain.
[0073] In some embodiments, step S230, calculating the second input value based on the first sensor measurement value at the current time and the position estimate value at the current time, includes: calculating the second input value using the following formula (2):
[0074] Input2 = y(t) - X(t|t) * H (2)
[0075] Where Input2 represents the second input value; y(t) represents the first sensor measurement value at the current time; X(t|t) represents the position estimate at the current time; H represents the measurement system matrix; and t represents the current time.
[0076] For example, the difference between the first sensor measurement value y(t) at the current time and the position estimate value X(t|t) at the current time after transformation by the measurement system matrix H is calculated using formula (2), providing measurement residual information for the gain calculation network. This difference reflects the deviation between the sensor measurement value and the position estimate value, and can effectively capture the influence of measurement noise and system error.
[0077] In some embodiments, reference Figure 4 As shown, the gain calculation network includes a fully connected linear input layer ( Figure 4 The left module), recurrent neural network layer ( Figure 4 (intermediate module), fully connected linear output layer ( Figure 4 (Right module); Step S240, simultaneously input the first input value and the second input value into the gain calculation network, and the gain calculation network outputs the Kalman gain, including:
[0078] Step S2401: The fully connected linear input layer generates linear transformation values based on the first input value and the second input value;
[0079] Step S2402: The recurrent neural network layer generates a state vector based on the linear transformation value;
[0080] Step S2403: The fully connected linear output layer generates the Kalman gain based on the state vector.
[0081] For example, the gain calculation network of this application not only utilizes the modeling capability of recurrent neural networks for time-series data, but also realizes the effective transmission and transformation of information through fully connected layers, so that the calculation of Kalman gain can better adapt to complex dynamic environments and nonlinear characteristics.
[0082] In some embodiments, the recurrent neural network layer is constructed using gated recurrent units (GRUs) and / or long short-term memory (LSTM) networks. Exemplarily, this application utilizes the internal memory of the recurrent neural network, enabling it to implicitly track the underlying second-order statistical moments required to compute the Kalman gain. The introduction of the recurrent neural network layer allows the model to effectively handle long-short-term dependencies in time-series data while avoiding common gradient vanishing or exploding problems. During the computation of the Kalman gain, this network structure can better capture the dynamic changes and temporal correlations of the system state, thereby providing a more accurate state vector for the fully connected linear output layer and ultimately generating a superior Kalman gain.
[0083] In some embodiments, step S2, calculating the position estimate based on the Kalman gain, includes calculating the position estimate using the following formula (3):
[0084] X(t|t) = X_pre + Kt * (y(t) – H * X_pre) (3)
[0085] Where X(t|t) represents the position estimate at the current time; X_pre represents the state prediction at the current time; Kt represents the Kalman gain at the current time; y(t) represents the first sensor measurement at the current time; H represents the measurement system matrix; and t represents the current time.
[0086] For example, the Kalman gain Kt in formula (3) is generated by the gain calculation network mentioned above, which can correct the state prediction value X_pre based on the measurement residual y(t)-H*X_pre at the current time, thereby obtaining a position estimate X(t|t) that is closer to the true position. This application makes full use of sensor measurement information and system prediction information, and further optimizes the calculation of Kalman gain through the adaptive capability of neural networks, making the position estimation more accurate and stable in complex dynamic environments.
[0087] In step S3, a loss function is used to calculate the difference between the estimated and actual locations. For example, the magnitude of the loss function value can be analyzed to adjust the parameters of the neural network and continue training the Kalman filter, thereby reducing model error and improving positioning accuracy.
[0088] In step S4, it is determined whether the loss function value is greater than the preset convergence threshold. If the determination is yes, the Kalman filter is trained using the backpropagation method, and step S3 is repeated. If the determination is no, the pre-trained Kalman filter is obtained, and step S5 is executed.
[0089] For example, this application uses a labeled dataset to train a Kalman filter in a supervised manner. In practical applications, since the optimal Kalman gain is extremely difficult to obtain, this application uses a neural network and the ground truth to calculate the Kalman gain. This application uses the Kalman gain output by the neural network to calculate the posterior estimate, and uses the posterior estimate and the ground truth to calculate the loss for backpropagation. The dataset used for training contains several trajectories of different lengths, and the network can be trained using three different data processing methods: (1) The first method is to directly apply the time backpropagation algorithm and use the entire trajectory data to iteratively calculate the gradient for training; (2) The second method is to divide a long trajectory evenly into multiple short trajectories and use them in training; (3) The third method is to split the long trajectory into indefinite lengths and use them in training.
[0090] This application continuously trains the Kalman filter, iteratively optimizing the parameters of the neural network and further optimizing the calculation of the Kalman gain to reduce estimation errors. This ensures that the Kalman filter can continuously learn and adapt to new data patterns, gradually improving positioning accuracy.
[0091] In step S5, a localization estimate is calculated using a pre-trained Kalman filter and measurements from the second sensor. For example, the pre-trained Kalman filter has dynamic adjustment capabilities, which can improve the robot's localization performance in complex environments. The robot can use the pre-trained Kalman filter for localization during operation.
[0092] Here, we will use an example of the working scenario of a photovoltaic cleaning robot to introduce the robot positioning method of this application.
[0093] Step 1: Allow the photovoltaic cleaning robot to move randomly in a site that can be mapped with high precision, collect GPS values, IMU values, and the true value of the position, and complete the collection of training data.
[0094] Step 2: The Kalman filter of this application is used to fuse the values of GPS and IMU, and the Kalman gain is calculated using a gain calculation network based on a neural network.
[0095] Step 3: Calculate the Kalman gain value output by the gain calculation network, and obtain the position estimate at the current time through the calculation of the Kalman filter.
[0096] Step 4: Calculate the loss function by comparing the obtained location estimates with the true values and backpropagate to train the neural network.
[0097] Step 5: Repeat step 4 until the value of the loss function gradually converges, and the neural network training is complete.
[0098] Step 6: Subsequently, the photovoltaic cleaning robot can fuse the GPS and IMU values, and use a pre-trained Kalman filter to output an accurate positioning estimate for operation on the project site.
[0099] This application combines system state estimates and measurements, utilizing a deep neural network to output the Kalman gain, effectively avoiding the impact of inaccurate initial settings of process noise covariance and measurement noise covariance on the estimation results. By leveraging the internal memory of the recurrent neural network, this application can implicitly track the underlying second-order statistical moments required to calculate the Kalman gain. The neural network is trained in a supervised manner using labeled datasets. Through these techniques, this application addresses some problems inherent in traditional Kalman filters during data fusion, such as the model not perfectly matching the actual system and the reliance on manual parameter tuning for some parameters. This application also avoids the problems of high computational cost, lack of interpretability, and inability to guarantee real-time performance when using a neural network alone for position estimation. This application effectively combines GPS data and inertial navigation system data, improving the robot's positioning accuracy and work efficiency, and significantly enhancing its robustness in complex environments.
[0100] This application also includes a robot positioning system, comprising a memory and a processor. The memory stores instructions executable by the processor; the processor executes the instructions to implement the robot positioning method described above.
[0101] Figure 5 This is a system block diagram of a robot positioning system according to an embodiment of this application. (Reference) Figure 5As shown, the robot's positioning system 500 may include an internal communication bus 501, a processor 502, a read-only memory (ROM) 503, a random access memory (RAM) 504, and a communication port 505. The robot's positioning system 500 may also include a hard disk 506. The internal communication bus 501 enables data communication between the components of the robot's positioning system 500. The processor 502 can make judgments and issue prompts. In some embodiments, the processor 502 may consist of one or more processors. The communication port 505 enables data communication between the robot's positioning system 500 and external devices. In some embodiments, the robot's positioning system 500 can send and receive information and data from a network through the communication port 505. The robot's positioning system 500 may also include different forms of program storage units and data storage units, such as the hard disk 506, read-only memory (ROM) 503, and random access memory (RAM) 504, capable of storing various data files used for computer processing and / or communication, as well as possible program instructions executed by the processor 502. The processor executes these instructions to implement the main part of the method. The results processed by the processor are transmitted to the user device through the communication port and displayed on the user interface.
[0102] The robot positioning method described above can be implemented as a computer program, stored in hard disk 506, and loaded into processor 502 for execution to implement the robot positioning method of this application.
[0103] This application also includes a computer-readable medium storing computer program code that, when executed by a processor, implements the robot localization method described above.
[0104] When a robot's localization method is implemented as a computer program, it can also be stored as an article of manufacture in a computer-readable storage medium. For example, computer-readable storage media can include, but are not limited to, magnetic storage devices (e.g., hard disks, floppy disks, magnetic stripes), optical discs (e.g., compact discs (CDs), digital multifunction discs (DVDs)), smart cards, and flash memory devices (e.g., electrically erasable programmable read-only memory (EPROM), cards, sticks, key drives). Furthermore, the various storage media described herein can represent one or more devices and / or other machine-readable media used for storing information. The term "machine-readable medium" can include, but is not limited to, wireless channels and various other media (and / or storage media) capable of storing, containing, and / or carrying code and / or instructions and / or data.
[0105] It should be understood that the embodiments described above are merely illustrative. The embodiments described herein may be implemented in hardware, software, firmware, middleware, microcode, or any combination thereof. For hardware implementation, the processor may be implemented within one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, and / or other electronic units designed to perform the functions described herein, or combinations thereof.
[0106] Some aspects of this application can be executed entirely by hardware, entirely by software (including firmware, resident software, microcode, etc.), or by a combination of hardware and software. The aforementioned hardware or software may be referred to as a "data block," "module," "engine," "unit," "component," or "system." The processor may be one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DAPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, or combinations thereof. Furthermore, aspects of this application may manifest as computer products residing in one or more computer-readable media, including computer-readable program code. For example, computer-readable media may include, but are not limited to, magnetic storage devices (e.g., hard disks, floppy disks, magnetic tapes, etc.), optical discs (e.g., compressed CDs, digital multifunction DVDs, etc.), smart cards, and flash memory devices (e.g., cards, sticks, key drives, etc.).
[0107] A computer-readable medium may contain a propagated data signal containing computer program code, for example, on baseband or as part of a carrier wave. This propagated signal may take various forms, including electromagnetic, optical, and so on, or suitable combinations thereof. A computer-readable medium can be any computer-readable medium other than a computer-readable storage medium, which can be connected to an instruction execution system, apparatus, or device to enable communication, propagation, or transmission of a program for use. The program code located on the computer-readable medium can be propagated through any suitable medium, including radio, cable, fiber optic cable, radio frequency signals, or similar media, or any combination of the above media.
[0108] The basic concepts have been described above. Obviously, for those skilled in the art, the above disclosure is merely illustrative and does not constitute a limitation of this application. Although not explicitly stated herein, those skilled in the art may make various modifications, improvements, and corrections to this application. Such modifications, improvements, and corrections are suggested in this application, and therefore remain within the spirit and scope of the exemplary embodiments of this application.
[0109] Furthermore, this application uses specific terms to describe embodiments of the application. For example, "an embodiment," "one embodiment," and / or "some embodiments" refer to a particular feature, structure, or characteristic related to at least one embodiment of the application. Therefore, it should be emphasized and noted that "an embodiment," "one embodiment," or "an alternative embodiment" mentioned twice or more in different locations in this specification do not necessarily refer to the same embodiment. In addition, certain features, structures, or characteristics in one or more embodiments of the application can be appropriately combined.
[0110] In some embodiments, numbers describing the quantity of components and attributes are used. It should be understood that such numbers used in the description of embodiments are modified in some examples with the terms "approximately," "approximately," or "generally." Unless otherwise stated, "approximately," "approximately," or "generally" indicates that the numbers are allowed to vary by ±20%. Accordingly, in some embodiments, the numerical parameters used in the specification and claims are approximate values, which may be changed depending on the characteristics required by individual embodiments. In some embodiments, numerical parameters should take into account specified significant digits and employ a general method of digit reservation. Although the numerical ranges and parameters used to confirm their breadth of scope in some embodiments of this application are approximate values, in specific embodiments, such values are set as precisely as feasible.
Claims
1. A robot localization method, characterized in that, include: Step S1: Obtain the sensor measurement values and the actual position value of the robot during its movement, and divide the sensor measurement values into the first sensor measurement value and the second sensor measurement value; Step S2: Calculate the Kalman gain using the Kalman filter and the measurement value from the first sensor, and calculate the position estimate based on the Kalman gain; wherein the Kalman filter is constructed using a neural network; Step S3: Calculate the loss function value between the estimated location value and the true location value using the loss function; Step S4: Determine whether the loss function value is greater than the preset convergence threshold. If the determination is yes, then train the Kalman filter using the backpropagation method and repeat step S3. If the determination is no, then obtain the pre-trained Kalman filter and proceed to step S5. Step S5: Calculate the positioning estimate using the pre-trained Kalman filter and the measurements from the second sensor.
2. The robot positioning method as described in claim 1, characterized in that, The Kalman filter includes a gain calculation network; in step S2, the Kalman gain is calculated using the Kalman filter and the measurement value from the first sensor, including: The first sensor measurement value is input into the Kalman filter to obtain the position estimate at the current time and the posterior estimate at the previous time. The first input value is calculated based on the current position estimate and the previous posterior estimate. The second input value is calculated based on the first sensor measurement value at the current moment and the position estimate value at the current moment; The first input value and the second input value are simultaneously input into the gain calculation network, and the gain calculation network outputs the Kalman gain.
3. The robot positioning method as described in claim 2, characterized in that, The first input value is calculated based on the current position estimate and the previous posterior estimate, including: calculating the first input value using the following formula: Input1=Z -1 -X(t|t) Wherein, Input1 represents the first input value; Z -1 X(t|t) represents the posterior estimate of the previous time step; X(t|t) represents the position estimate of the current time step; and t represents the current time step.
4. The robot positioning method as described in claim 2, characterized in that, Based on the current sensor measurement and the current position estimate, the second input value is calculated, including using the following formula: Input2 = y(t) - X(t|t) * H Wherein, Input2 represents the second input value; y(t) represents the first sensor measurement value at the current time; X(t|t) represents the position estimate at the current time; H represents the measurement system matrix; and t represents the current time.
5. The robot positioning method according to any one of claims 2-4, characterized in that, The gain calculation network includes a fully connected linear input layer, a recurrent neural network layer, and a fully connected linear output layer. The first input value and the second input value are simultaneously input into the gain calculation network, and the gain calculation network outputs the Kalman gain, including: The fully connected linear input layer generates a linear transformation value based on the first input value and the second input value; The recurrent neural network layer generates a state vector based on the linear transformation value; The fully connected linear output layer generates the Kalman gain based on the state vector.
6. The robot positioning method as described in claim 5, characterized in that, The recurrent neural network layer is constructed using gated recurrent units (GRU) and / or long short-term memory networks (LSTM).
7. The robot positioning method as described in claim 2, characterized in that, In step S2, the position estimate is calculated based on the Kalman gain, including calculating the position estimate using the following formula: X(t|t)=X_pre+Kt*(y(t)–H*X_pre) Where X(t|t) represents the position estimate at the current time; X_pre represents the state prediction at the current time; Kt represents the Kalman gain at the current time; y(t) represents the first sensor measurement at the current time; H represents the measurement system matrix; and t represents the current time.
8. The robot positioning method as described in claim 1, characterized in that, The sensor measurements include measurements from the Global Positioning System (GPS) and the Inertial Measurement Unit (INS).
9. A robot positioning system, characterized in that, include: Memory is used to store instructions that can be executed by the processor; A processor for executing the instructions to implement the robot localization method as described in any one of claims 1-8.
10. A computer-readable medium storing computer program code, characterized in that, The computer program code, when executed by a processor, implements the robot localization method as described in any one of claims 1-8.