Robot positioning method, device, system and robot
By storing and processing sensor data through a sensor module and combining it with Kalman filtering technology, the problems of accuracy and real-time performance in robot positioning are solved, enabling efficient positioning in complex environments.
Patent Information
- Application Number
- CN202511534970.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-10-24
- Publication Date
- 2026-02-24
- Estimated Expiration
- 2045-10-24
AI Technical Summary
In existing technologies, real-time robot localization methods are difficult to meet real-time localization requirements due to limitations in radar scanning frequency and the time-consuming matching process.
By setting up a sensing module to collect sensing data and storing it in the target storage space, the positioning information is estimated using extended Kalman filtering and lossless Kalman filtering. Taking into account the processing delay of the sensing data and combining the timestamp of the sensing data, the positioning information is accurately estimated.
It improves the accuracy and real-time performance of robot positioning, reduces the loss of sensor data, adapts to complex dynamic environments, and reduces computational complexity and power consumption.
Smart Images

Figure CN121007562B_ABST
Abstract
Description
Technical Field
[0001] This application relates to, but is not limited to, the field of robotics, and in particular to a robot positioning method, apparatus, system, and robot. Background Technology
[0002] With the rapid development of robotics technology, the demand for real-time and accurate robot positioning is increasing. Currently, related technologies typically output the robot's current position by matching radar scan data with the map in which the robot is located. However, the matching frequency of this method is determined by the radar's scanning frequency, and the matching process is usually time-consuming, making it difficult to meet the real-time positioning requirements of robots. Summary of the Invention
[0003] In view of the above, embodiments of this application provide at least one robot positioning method, apparatus, system, and robot.
[0004] The technical solution of this application embodiment is implemented as follows:
[0005] This application provides a robot localization method. The robot is equipped with a sensing module, and the sensing module collects and stores the sensor data in a target storage space. The method includes:
[0006] In response to a first triggering event, the robot's first positioning information is acquired. The first triggering event is used to indicate the acquisition of the robot's target positioning information at the current moment. The first positioning information is determined based on sensor data stored in the target storage space that is earlier than the second moment, in response to a second triggering event at the first moment. The first positioning information is the measured value of the robot's positioning information at the second moment. The first moment is later than the second moment, and the time interval between the first moment and the second moment is not less than the maximum processing delay of the sensor data of the sensor module.
[0007] Based on the first positioning information and the sensor data stored in the target storage space between the second time and the current time, the target positioning information is determined; the target positioning information is an estimate of the robot's positioning information at the current time.
[0008] This application provides a robot positioning device. The robot is equipped with a sensing module, and the sensing module collects and stores the sensor data in a target storage space. The device includes:
[0009] The acquisition module is used to acquire the robot's first positioning information in response to a first triggering event. The first triggering event is used to indicate the acquisition of the robot's target positioning information at the current moment. The first positioning information is determined based on sensor data stored in the target storage space that is earlier than the second moment, in response to a second triggering event at the first moment. The first positioning information is the measured value of the robot's positioning information at the second moment. The first moment is later than the second moment, and the time interval between the first moment and the second moment is not less than the maximum processing delay of the sensor data of the sensor module.
[0010] The first determining module is used to determine the target positioning information based on the first positioning information and the sensor data stored in the target storage space between the second time and the current time; the target positioning information is an estimate of the robot's positioning information at the current time.
[0011] This application provides a robot positioning system. The robot is equipped with a sensing module, and the sensing data collected by the sensing module is stored in a target storage space. The system includes a processing unit for:
[0012] In response to a first triggering event, the robot's first positioning information is acquired. The first triggering event is used to indicate the acquisition of the robot's target positioning information at the current moment. The first positioning information is determined based on sensor data stored in the target storage space that is earlier than the second moment, in response to a second triggering event at the first moment. The first positioning information is the measured value of the robot's positioning information at the second moment. The first moment is later than the second moment, and the time interval between the first moment and the second moment is not less than the maximum processing delay of the sensor data of the sensor module.
[0013] Based on the first positioning information and the sensor data stored in the target storage space between the second time and the current time, the target positioning information is determined; the target positioning information is an estimate of the robot's positioning information at the current time.
[0014] This application provides a robot that includes the positioning system described above.
[0015] It should be understood that the above general description and the following detailed description are merely exemplary and explanatory, and are not intended to limit the technical solutions of this application. Attached Figure Description
[0016] Figure 1 A schematic diagram of the implementation process of a robot localization method provided in this application embodiment. Figure 1 ;
[0017] Figure 2 A timing diagram illustrating data reading based on data processing latency, provided as an embodiment of this application;
[0018] Figure 3 A schematic diagram of the implementation process of a robot localization method provided in this application embodiment. Figure 2 ;
[0019] Figure 4 A schematic diagram illustrating the comparison between predicted positioning information and radar positioning information provided in an embodiment of this application. Figure 1 ;
[0020] Figure 5 A schematic diagram illustrating the comparison between predicted positioning information and radar positioning information provided in an embodiment of this application. Figure 2 ;
[0021] Figure 6 A schematic diagram illustrating the structural composition of a robot positioning device provided in an embodiment of this application;
[0022] Figure 7 A schematic diagram of the composition structure of a robot positioning system provided in an embodiment of this application;
[0023] Figure 8 This is a schematic diagram of the composition structure of a robot provided in an embodiment of this application. Detailed Implementation
[0024] To make the objectives, technical solutions, and advantages of this application clearer, the technical solutions of this application are further described in detail below with reference to the accompanying drawings and embodiments. The described embodiments should not be regarded as limitations on this application. All other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0025] In the following description, the terms "first / second / third" are used merely to distinguish similar objects and do not represent a specific ordering of the objects. It is understood that "first / second / third" can be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein. 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 is for descriptive purposes only and is not intended to limit the scope of this application. It should also be noted that, for ease of description, only the parts relevant to the application are shown in the accompanying drawings.
[0026] Among related technologies, the following methods exist for real-time robot localization:
[0027] 1) First, based on the robot's localization at the previous moment, use multiple sensors to measure the robot's movement distance. Then, use a graph optimization method to calculate the robot's movement distance that best matches the observations of each sensor, and thus obtain the robot's localization data at the current moment.
[0028] This method requires different sensors to generate a large number of data nodes, and then uses graph optimization algorithms for computation. In scenarios where the robot is moving rapidly, if the number of nodes to be calculated is too large, there is a possibility that the computational power consumption will be too high, making it difficult to meet real-time output requirements.
[0029] 2) Data from LiDAR, Inertial Measurement Unit (IMU), and visual sensors are fused and modeled using Extended Kalman Filter (EKF) for fusion localization.
[0030] This method can linearize the robot's motion using extended Kalman filtering, but it does not perform well in dynamic scenarios.
[0031] This application provides a robot positioning method, which can be applied to autonomously moving robots. Exemplarily, the robot may include, but is not limited to, at least one of cleaning robots, guidance robots, and service robots. The robot is equipped with a sensing module, and the sensor data collected by the sensing module is stored in a target storage space.
[0032] The sensing module is used to collect and process data from at least one sensor, and store the processed sensing data in a target storage space. For example, the sensor may include, but is not limited to, an IMU, wheel speed encoder, lidar, infrared rangefinder, image acquisition device, etc.; the sensing module may include, but is not limited to, an IMU module, a wheel speed encoder module, an odometry module, a Global Navigation Satellite System (GNSS) module, a Simultaneous Localization and Mapping (SLAM) module, etc.
[0033] Sensor data refers to data acquired by sensors during robot operation that characterizes the robot's motion state. This data may include, but is not limited to, data related to the robot's acceleration, angular velocity, position, and attitude.
[0034] The target storage space is used to store the sensor data collected and processed by the sensor module. The sensor data stored in the target storage space is associated with time information such as the storage time and the acquisition time, to improve the time consistency when the sensor data is used for subsequent processing.
[0035] For example, the target storage space can be a storage space for momentary storage or a storage space for long-term storage.
[0036] For example, the target storage space can be a cache space used to temporarily store sensor data to be filtered, providing a fast access point and ensuring data consistency when there is a time difference between data generation and use.
[0037] like Figure 1 As shown, the positioning method includes the following steps S101 to S102:
[0038] Step S101: In response to the first triggering event, obtain the robot's first positioning information; the first triggering event is used to indicate the acquisition of the robot's target positioning information at the current moment. The first positioning information is determined based on the sensor data stored in the target storage space at a time earlier than the second moment, in response to the second triggering event at the first moment. The first positioning information is the measured value of the robot's positioning information at the second moment. The first moment is later than the second moment, and the time interval between the first moment and the second moment is not less than the maximum processing delay of the sensor data of the sensor module.
[0039] In some implementations, the first triggering event can be triggered according to a preset period or upon receiving a corresponding instruction.
[0040] For example, during robot operation, a first trigger event can be automatically triggered when a preset operation (such as path switching or obstacle avoidance) is detected, in order to obtain the current positioning information to assist the operation.
[0041] For example, when it is detected that the robot is about to enter a complex environment, the first trigger event can be automatically triggered so that the robot can obtain real-time positioning information before entering the complex environment.
[0042] For example, based on the preset robot positioning update cycle, the first trigger event can be automatically triggered when the current moment is within the update time of the positioning update cycle.
[0043] For example, a first trigger event can be triggered upon receiving a location information acquisition instruction from an external system or user.
[0044] The positioning information may include the robot's spatial position and / or attitude information at a given time, such as, but not limited to, the robot's three-dimensional coordinates in a preset coordinate system (e.g., body coordinate system, world coordinate system, etc.). and / or three-dimensional pose .
[0045] In some implementations, the measured values of the positioning information can be obtained by filtering sensor data. For example, the filtering scheme may include, but is not limited to, extended Kalman filtering, unscented Kalman filtering (UKF), etc.
[0046] For example, UKF can be used for modeling, thereby reducing the linearization error introduced by EKF. This involves constructing a 3D coordinate system including the global coordinate system. 3D pose 3D velocity 3D angular velocity and three-dimensional acceleration The state vector has a total of 15 dimensions. At this time, the UKF model has 31 sampling points (Sigma points) at the same moment.
[0047] It is understandable that the estimated values of location information and the measured values have the same data dimensions and types.
[0048] In some implementations, the three-dimensional coordinates and three-dimensional attitude can be data in a global coordinate system, while the three-dimensional velocity, three-dimensional angular velocity, and three-dimensional acceleration can be data in a body coordinate system centered on the robot (such as the chassis).
[0049] For example, the 15-dimensional state vector corresponding to the Sigma point in the UKF model See formula (1):
[0050] (1);
[0051] in, This represents the transpose. The state transition matrix of the UKF model. See formula (2):
[0052] (2);
[0053] in, Represents a 3x3 identity matrix; Represents a 3x3 zero matrix; The rotation matrix is composed of attitude angles; It represents the partial derivative of attitude with respect to angular velocity, used to transform data in the robot's body coordinate system to the global coordinate system; This represents the time difference between the end of the last filtering iteration and the current sampling time. It can be understood that this is due to the state transition matrix... The determination of the orientation (rotation angle) is related to the matrix. The value is determined by the 15-dimensional state vector corresponding to the Sigma point. Sure.
[0054] For example, matrix See formula (3):
[0055] (3).
[0056] For example, based on the above UKF model, the prediction of the state vector and variance for each Sigma point can be found in formulas (4) and (5), respectively:
[0057] (4);
[0058] (5);
[0059] in, Represents the state vector The prediction Represents the state vector The corresponding variance, Indicates the difference between the two parties The prediction Representation matrix The transpose of .
[0060] In some implementations, different observation matrices can be selected for observations (i.e., measurements) of different dimensions in the UKF model.
[0061] For example, predictions based on observations of position (i.e., three-dimensional coordinates) and attitude (i.e., three-dimensional pose) can be found in formula (6):
[0062] (6);
[0063] in, A vector representing three-dimensional coordinates and three-dimensional attitude. This represents the observation matrix corresponding to the three-dimensional coordinates and three-dimensional attitude.
[0064] The second triggering event is used to trigger the calculation of the location information measurement value. The location information measurement value can correspond to the actual value of the location information calculated based on the sensor data.
[0065] In some implementations, the second triggering event can be triggered according to a preset period or upon receiving a corresponding instruction.
[0066] For example, a second trigger event can be automatically triggered based on the preset filter update cycle of the robot.
[0067] For example, after the robot completes the calculation of the previous round of positioning information and obtains the measurement value, it can generate an instruction to perform the next round of positioning information calculation.
[0068] Because the transmission and processing times of sensor modules vary depending on the type of sensor data they handle—meaning the latency between data acquisition (generation) and storage differs—when calculating location information using sensor data from the target storage space, there may be sensor data that has not been fully transmitted or processed and therefore not stored in the target storage space. Without considering the latency of the sensor data, directly calculating based on the current sensor data in the target storage space may result in inaccurate location information due to missing sensor data.
[0069] Therefore, by setting the time interval between the first moment and the second moment to be no less than the maximum processing delay of the sensing data of the sensing module, the possibility of missing sensing data used to determine the first positioning information can be reduced; wherein, the maximum processing delay is the maximum value among the processing delays (including transmission time and processing time) corresponding to each type of sensing data.
[0070] For example, such as Figure 2 As shown, it can be done at time If the first triggering event is obtained, get the time. The first positioning information is determined (corresponding to the first moment); wherein, the first positioning information is based on the moment. (Corresponding to the second time point) The time point obtained by filtering the IMU data, ODOM data, and SLAM data stored in the target storage space before the second time point. The latest location information measurement value, time With time The time interval between Not less than the processing latency of SLAM data For example, The value can be 200 milliseconds, 300 milliseconds, etc., but this application does not limit it in the embodiments.
[0071] Understandably, the first positioning information serves as the true value (measured value) of the robot's positioning information that can be obtained at the current moment. Using the first positioning information to estimate the positioning can improve the accuracy of determining the robot's current positioning.
[0072] Step S102: Based on the first positioning information and the sensor data stored in the target storage space between the second time and the current time, determine the target positioning information; the target positioning information is the estimated value of the robot's positioning information at the current time.
[0073] Here, sensor data collected between the second moment and the current moment is used to further calculate the first positioning information, thereby outputting the target positioning information at the current moment. By integrating the latest sensor input based on the relatively accurate initial positioning measurements, the accuracy and real-time performance of the target positioning information can be improved.
[0074] In some implementations, the robot's position and / or attitude information in the first positioning information can be updated based on the sensor data stored in the target storage space between the second time and the current time, thereby outputting the target positioning information at the current time.
[0075] For example, the robot's displacement can be determined based on the odometry data between the second time point and the current time point in the cache. Then, based on the first positioning information and the robot's displacement between the second time point and the current time point, the robot's latest position at the current time point, i.e., the target positioning information, can be estimated.
[0076] For example, the robot's rotational angular displacement can be determined based on the IMU data between the second time point and the current time point in the target storage space. Then, based on the first positioning information and the robot's rotational angular displacement between the second time point and the current time point, the robot's latest posture at the current time point can be determined. Furthermore, by combining the position information in the first positioning information, the target positioning information can be estimated.
[0077] In some implementations, the robot can further adjust its movement strategy based on target localization information, such as planning optimal paths, avoiding obstacles, or working collaboratively with other robots. Furthermore, target localization information can be used for feedback control, enabling the robot to adjust its behavior in real time to adapt to environmental changes and maintain a stable operating state.
[0078] In this embodiment, a measurement value of the positioning information at a second time moment, taking into account the sensor data processing delay, is obtained; the positioning information at the current time is estimated based on the measurement value of the positioning information and real-time sensor data. In this way, on the one hand, the robot's positioning information can be predicted based on sensor data prior to the current time moment, thereby achieving real-time positioning of the robot; on the other hand, by considering the sensor data processing delay, the omission of sensor data used to determine the first positioning information is reduced, which improves the accuracy of the first positioning information, thereby improving the accuracy of estimating the target positioning information based on the first positioning information.
[0079] In some embodiments, step S102 may include step S111:
[0080] Step S111: For each sampling time point between the second time point and the current time point, based on the sensor data stored in the target storage space, update the positioning information corresponding to the previous sampling time point until the target positioning information is obtained.
[0081] Here, the sampling time point can be the time point when the sensor data is collected, or it can be understood as the time point when the sensor data is generated.
[0082] In some implementations, the sampling interval between sampling time points can be determined according to a preset sampling period.
[0083] For example, the sampling time point corresponding to IMU data can be determined based on the IMU's sampling interval.
[0084] For example, the sensor data corresponding to adjacent sampling time points can be ODOM data and SLAM data, which are determined and sampled according to their respective sampling intervals.
[0085] In this embodiment, the sensor data at each sampling time point is updated sequentially. This point-by-point updating approach reduces error accumulation and improves the final positioning accuracy, allowing the positioning information to gradually approach the true state over time. Furthermore, it reduces the latency and resource consumption issues caused by processing large amounts of data at once, further improving the real-time performance and stability of robot positioning, enabling the robot to be used in more complex dynamic environments.
[0086] In some embodiments, the sensing data includes velocity data, and the step S111 above, which updates the positioning information corresponding to the previous sampling time point based on the sensing data stored in the target storage space, may include the following steps S121 to S122:
[0087] Step S121: Based on the velocity data corresponding to the sampling time point stored in the target storage space and the zero bias corresponding to the velocity data, determine the velocity observation data corresponding to the sampling time point; the zero bias is determined based on the velocity data collected by the sensing module when the robot is stationary.
[0088] Step S122: Based on the velocity observation data, update the positioning information corresponding to the previous sampling time point.
[0089] During the actual startup or operation of a robot, there may be a large amount of static data. Without taking into account the non-zero values (i.e., zero bias) output by the sensors in a static state, the measurement accuracy of the sensor data may be affected, resulting in observation errors, reducing the accuracy of the sensor data, and further reducing the accuracy of estimating positioning information based on the sensor data.
[0090] Velocity observation data refers to the observed values of velocity data used to update positioning information after removing the bias. These are measured values, or the true values.
[0091] In this embodiment, by determining the zero bias corresponding to the speed data based on the speed data in a stationary state of the robot, the impact of the acquisition error of the sensor module that collects speed data in a non-moving state on the speed data can be reduced. Thus, the corrected speed data can be used to update the positioning, thereby improving the accuracy of updating the positioning information based on the speed data.
[0092] In some embodiments, the above positioning method may further include the following steps S131 to S132:
[0093] Step S131: If the speed data collected by the sensing module meets the target speed condition within the first time interval, determine that the robot is in a stationary state.
[0094] Here, the target velocity condition can include the range of the robot's velocity data when the robot is stationary, representing that the robot has not moved or is approximately not moving.
[0095] For example, if the robot's speed is not greater than a speed threshold, it can be determined that the speed data meets the target speed condition; where the speed threshold is 0 or close to 0.
[0096] For example, if the robot's acceleration is not greater than an acceleration threshold and its speed is not greater than a speed threshold, the speed data can be determined to meet the target speed condition; where the acceleration threshold is 0 or close to 0.
[0097] In some implementations, it can be determined whether the robot is stationary based on odom data and IMU data; furthermore, the corresponding zero bias can be determined based on the speed data collected by the sensors when the robot is stationary.
[0098] For example, if the robot's acceleration is not greater than the acceleration threshold and its speed is not greater than the speed threshold within a preset time period based on the odom data and IMU data, it can be determined that the robot is stationary within the preset time period, and thus the zero bias corresponding to the speed data can be determined based on the robot's speed value within that time period.
[0099] The first time interval can be any time interval that is not less than the minimum time interval at which the speed data collected by the sensing module satisfies the target speed condition.
[0100] Step S132: Determine the mean value of the velocity data within the first time interval as the zero bias corresponding to the velocity data.
[0101] Here, the mean value of the velocity data within the first time interval can represent the overall trend of the robot's velocity data within the first time interval. Using this value as the zero bias corresponding to the velocity data (i.e., the zero bias of the sensor that collects the velocity data) can reduce the impact of velocity data fluctuations on determining the zero bias.
[0102] In some implementations, the average value of the velocity data output by the IMU within the first time interval can be used as the zero bias of the IMU, including 3D angular velocity zero bias and 3D acceleration zero bias.
[0103] For example, the process of determining the zero bias corresponding to the velocity data acquired by the IMU can be found in formulas (7) and (8):
[0104] (7);
[0105] (8);
[0106] in, The zero-biased observation value representing the angular velocity (i.e., zero bias). The zero-biased observations representing acceleration, The superscript indicates the mean.
[0107] In some implementations, the velocity data acquired by the IMU can be pre-filtered to remove zero bias, and the resulting velocity data can be used as the velocity observation data to determine the measured values for positioning information. This zero-bias compensation of the velocity data reduces positioning estimation errors caused by IMU sampling errors, further improving the accuracy of the predicted positioning information.
[0108] In this embodiment, within a first time interval, it is determined whether the robot is stationary based on the target velocity condition, and the corresponding zero bias is determined based on the mean of the velocity data when the robot is stationary. This allows for the identification and correction of systematic biases in the sensor output, thereby reducing the sampling bias of the velocity data and improving the accuracy of the velocity observation data used to determine positioning information measurements, ultimately enhancing the accuracy of the positioning results.
[0109] In some embodiments, velocity data includes the robot's acceleration data and angular velocity data, and velocity observation data includes acceleration observation data and angular velocity observation data. Step S122 may include steps S141 to S143:
[0110] Step S141: Based on the acceleration observation data, determine the velocity prediction data at the sampling time point.
[0111] Here, acceleration observation data is used to characterize the robot's acceleration changes in spatial directions. For example, acceleration observation data may include the three-dimensional acceleration data described in the above embodiments, or acceleration data after deducting zero bias.
[0112] The velocity prediction data is the velocity estimate corresponding to the current sampling time point, which is determined based on the robot's velocity at the previous moment and the acceleration observation data at the current sampling time point. It can be corresponding to the three-dimensional velocity in the state vector of the above embodiment.
[0113] In some implementations, the acceleration observation data can be integrated to calculate the corresponding velocity prediction data.
[0114] For example, acceleration observation data The determination of can be found in formula (9):
[0115] (9);
[0116] in, This indicates the acceleration observations without deducting the zero bias.
[0117] For example, speed prediction data The determination of can be found in formula (10):
[0118] (10);
[0119] in, This represents the velocity value at the previous moment; Represents the conjugate coefficient. This represents the acceleration due to gravity; the conjugate coefficient is used here to reduce the effect of gravity. It represents the time difference between the previous moment and the corresponding moment of the current sampling time.
[0120] Step S142: Based on the angular velocity observation data, determine the attitude angle prediction data at the sampling time point.
[0121] Here, the angular velocity observation data may include the rotational rates of the robot about the three axes of the body coordinate system, used to characterize the robot's attitude changes during motion. For example, the angular velocity observation data may include the three-dimensional angular velocity data in the above embodiments, or angular velocity data after deducting zero bias.
[0122] The attitude angle prediction data is the attitude angle estimate corresponding to the current sampling time point, which is determined based on the robot's attitude angle at the previous moment and the angular velocity observation data at the current sampling time point. It can correspond to the three-dimensional attitude in the state vector of the above embodiment.
[0123] In some implementations, the angular velocity observation data can be integrated to calculate the corresponding attitude angle prediction data.
[0124] For example, angular velocity observation data The determination of can be found in formula (11):
[0125] (11);
[0126] in, This indicates the angular velocity observation value before deducting zero bias.
[0127] For example, attitude angle prediction data The determination of can be found in formulas (12) to (14):
[0128] (12);
[0129] (13);
[0130] (14);
[0131] Since the attitude angle is not a Euclidean quantity, a quaternion needs to be introduced. To perform the calculation, first use the exponential mapping exp() in formula (12) to determine the change in attitude angle. Furthermore, the change is used in formula (13). Update quaternions To obtain a new quaternion Finally, the quaternion Remapped to attitude angles, i.e., attitude angle prediction data. .
[0132] Step S143: Based on the velocity prediction data and attitude angle prediction data, update the positioning information corresponding to the previous sampling time point.
[0133] Here, the positioning information includes at least three-dimensional velocity and three-dimensional angular velocity. The velocity prediction data and attitude angle prediction data correspond to the three-dimensional velocity value and the three-dimensional angular velocity value at the sampling time point, respectively.
[0134] In some implementations, based on velocity prediction data and attitude angle prediction data, at least the three-dimensional velocity value and the three-dimensional angular velocity value in the positioning information corresponding to the previous sampling time point can be updated; or, at least the three-dimensional velocity value, three-dimensional angular velocity value, three-dimensional acceleration value, and three-dimensional attitude angle value in the positioning information corresponding to the previous sampling time point can be updated.
[0135] In some implementations, where the positioning information also includes the robot's position information (i.e., the three-dimensional coordinates in the state vector of the above embodiments), the position information in the positioning information can also be updated based on the velocity prediction data at the sampling time point.
[0136] For example, the location information corresponding to the sampling time point The determination of can be found in formulas (15) and (16):
[0137] (15);
[0138] (16);
[0139] in, Indicates the position increment; This represents the 3D coordinates corresponding to the previous sampling time point. It's understandable that since the velocity data is in the robot's body coordinate system, and the 3D position data is in the global coordinate system, quaternions are needed for coordinate system transformation. Therefore, combining... and , combined and To obtain the coordinates in the global coordinate system .
[0140] In this embodiment of the application, by using acceleration observation data and angular velocity observation data to predict the robot's linear velocity and attitude angle, the robot's position and attitude changes can be tracked simultaneously, improving the accuracy of multi-dimensional positioning and thus improving the accuracy of robot positioning based on the estimated positioning information.
[0141] In some embodiments, the sensing module includes at least an inertial measurement unit.
[0142] The latency of IMU sensor data acquisition, transmission, and storage is approximately on the order of milliseconds. Therefore, using IMU sensor data (i.e., observation data) to predict positioning information can reduce data omissions caused by sensor data processing latency, thus reducing the problem of low accuracy.
[0143] In some implementations, the target location information can be determined based on the first location information and the IMU data stored in the target storage space at a time between the second time and the current time.
[0144] It is understandable that reading sensor data from the target storage space based on the acquisition time of the sensor data can make the estimation of positioning information closer to the robot's motion changes. Therefore, when other types of sensor data are collected by other sensor modules during the process of reading IMU data, the corresponding sensor data can be read in the order of acquisition time from front to back for the estimation of positioning information.
[0145] In some implementations, the sensor data collected by different types of sensor modules can be time-synchronized at the time of collection, thereby unifying the time standard of multi-dimensional sensor data. By improving the time synchronization of sensor data, the accuracy of updating the first positioning information based on sensor data can be improved.
[0146] In this embodiment, by utilizing the sensor data collected by the IMU with a short processing latency, the first positioning information is updated to obtain the target positioning information. In this way, the accuracy of the target positioning information can be further improved by reducing the omission of sensor data used to calculate the positioning information.
[0147] In some embodiments, the sensing data includes velocity data and / or pose data;
[0148] When the sensing module includes an inertial measurement unit, the velocity data includes the robot's angular velocity data and acceleration data;
[0149] When the sensing module includes a wheel speed encoder, the speed data includes the robot's linear velocity data and angular velocity data;
[0150] In the case where the sensing module includes a global navigation satellite system module, the pose data includes the robot's position data and attitude data;
[0151] In the case where the sensing module includes a real-time localization and mapping module, the pose data includes the robot's position data and attitude data.
[0152] Here, depending on the different sensor modules equipped on the robot, the collected sensor data will be different, therefore, the data used to update the positioning information may be different.
[0153] Pose data includes the robot's position data and posture data.
[0154] For example, an IMU can provide angular velocity and acceleration observation data. Using an IMU, it is possible to identify velocity changes and trends during robot motion.
[0155] For example, a wheel speed encoder can provide linear velocity and angular velocity observation data. Using a wheel speed encoder, the robot's movement trajectory can be identified more accurately based on the robot's forward speed and turning speed data.
[0156] For example, GNSS can provide the robot's position data (i.e., the three-dimensional coordinates in the above embodiments) and attitude data (i.e., the three-dimensional attitude in the above embodiments) in a global coordinate system. By using GNSS, the impact of accumulated errors from the robot's own sensors can be reduced, and the stability and accuracy of robot positioning can be improved in long-term operation or large-scale operation scenarios.
[0157] For example, the robot's position data (i.e., the three-dimensional coordinates in the above embodiments) and attitude data (i.e., the three-dimensional attitude in the above embodiments) in the global coordinate system can also be obtained based on the matching results of the laser grid map established by the radar data-based SLAM module. Utilizing a radar-based SLAM module, the robot can autonomously and continuously update the map based on real-time data in complex or dynamic environments, thereby enabling it to have better adaptability in scenarios without prior maps or GNSS signals.
[0158] Understandably, different sensor modules can be used to update robot positioning information to suit different scenarios, user needs, and / or equipment limitations. Furthermore, using multiple sensor modules can reduce the impact of sampling errors caused by a single sensor module, further improving the accuracy of the sensor data used for robot positioning.
[0159] For example, in open environments (such as outdoors), GNSS, IMU, and wheel speed encoders can be used for real-time robot localization.
[0160] For example, in confined space scenarios (such as indoors), a LiDAR-based SLAM module, IMU, and wheel speed encoder can be used for real-time robot localization.
[0161] In this embodiment, when the sensing data includes velocity data and / or pose data, different sensing modules can be used to update the target positioning information by collecting different types of sensing data. This allows for the selection of more suitable sensing modules for different robot application scenarios, improving the adaptability and robustness of real-time robot positioning and thus meeting real-time positioning requirements in various environments.
[0162] This application provides a robot localization method for autonomously moving robots, enabling real-time robot localization. Figure 3 As shown, the positioning method includes the following steps S301 to S305:
[0163] Step S301: Synchronize the data collected by the sensor module in time.
[0164] During implementation, time synchronization of sensor data collected by multiple sensor modules can be achieved through a unified timestamp method.
[0165] Step S302: Cache the synchronized sensor data.
[0166] Step S303: Sort the data according to the maximum time delay corresponding to the sensor data.
[0167] It is understandable that, since the transmission and processing times of different types of sensor data are different, the data in the cache is only stored from front to back according to the storage time. Therefore, when reading data to calculate positioning information (i.e., calculate the measurement value), the processing delay of the sensor data needs to be considered. Positioning information is calculated only based on the sensor data before the time corresponding to the maximum delay from the current time.
[0168] Step S304: Based on the sensor data read sequentially from the cache, perform extended Kalman filtering to obtain the measurement value of the robot's latest pose; wherein, the zero bias of the sensor data is subtracted.
[0169] In practice, if acceleration is included in the state vector of the UKF model, the robot's motion state can be considered to change in a uniformly accelerated manner.
[0170] It is understood that by adjusting the parameters representing velocity in the state vector of the UKF model, the robot's localization information can be predicted under different motion scenarios. For example, uniform motion scenarios, uniformly accelerated motion scenarios, uniformly decelerated motion scenarios, etc., which are not limited in this application embodiment.
[0171] Step S305: In response to obtaining the robot's current pose, output the robot's current pose estimate based on the latest pose measurement and the sensor data before the current moment.
[0172] Here, the response to acquiring the robot's current pose, the latest pose measurement, and the current pose estimate can respectively correspond to the response to the first triggering event, the first positioning information, and the target positioning information in the above embodiments.
[0173] During implementation, the pose is updated sequentially according to each sampling time point based on the sensor data before the current moment until the pose estimate at the current moment is obtained.
[0174] In this embodiment, the robot's current pose is estimated based on the measured value of its latest pose and the sensor data from the previous moment. This approach offers several advantages: firstly, it enables rapid and timely response to the robot's positioning needs and outputs real-time positioning results, improving the robot's performance; secondly, updating the pose data sequentially based on the sampling time points of the sensor data reduces the computational complexity of each positioning information update, lowering the computational power required to acquire the robot's real-time positioning and thus reducing power consumption, further improving robot performance; and thirdly, by considering the sampling error of the sensor module and deducting the zero bias of the sensor data during each pose calculation, the accuracy of the measured values used to estimate the pose is improved, further enhancing the accuracy of the pose estimation.
[0175] For example, such as Figure 4 As shown, the robot's 3D position predicted by the positioning method in this embodiment has a high degree of overlap with the robot's 3D position output by the traditional method based on radar data matching. That is, the prediction data of the robot's 3D position output by the positioning method in this embodiment has high accuracy. However, it is understood that the positioning method in this embodiment outputs the robot's 3D position with less latency and faster response; among which, Figure 4 The horizontal and vertical axes in the graph correspond to the x-axis and y-axis in the global coordinate system, respectively.
[0176] For example, such as Figure 5 As shown, the trajectory of the robot's heading angle over time, predicted by the positioning method in this embodiment, is compared with the robot's heading angle output by the traditional method based on radar data matching (i.e., the heading angle in the aforementioned three-dimensional posture). The overlap between the trajectories changing over time is high, meaning the predicted robot heading angle data output by the positioning method in this embodiment is highly accurate. However, it is understood that the positioning method in this embodiment outputs robot heading angle data with lower latency and faster response; among which, Figure 5 The horizontal and vertical axes in the diagram correspond to the actual time (not the data output time) when the robot's pose is at that heading angle, and the robot's heading angle, respectively.
[0177] This application provides a robot positioning device, wherein the robot is equipped with a sensing module, and the sensing module collects and stores the sensing data in a target storage space.
[0178] like Figure 6 As shown, the robot's positioning device 600 includes:
[0179] The acquisition module 610 is used to acquire the first positioning information of the robot in response to a first triggering event; the first triggering event is used to indicate the acquisition of the target positioning information of the robot at the current moment, the first positioning information is determined based on the sensor data stored in the target storage space that is earlier than the second moment in response to a second triggering event at the first moment, the first positioning information is the measured value of the positioning information of the robot at the second moment, the first moment is later than the second moment, and the time interval between the first moment and the second moment is not less than the maximum processing delay of the sensor data of the sensing module;
[0180] The first determining module 620 is used to determine the target positioning information based on the first positioning information and the sensor data stored in the target storage space at a time between the second time and the current time; the target positioning information is an estimated value of the robot's positioning information at the current time.
[0181] In some embodiments, the first determining module may include a first sub-determining module, configured to: for each sampling time point between the second time point and the current time point, update the positioning information corresponding to the previous sampling time point based on the sensing data stored in the target storage space, until the target positioning information is obtained.
[0182] In some embodiments, the sensing data includes velocity data;
[0183] The first sub-determination module can also be used to: determine the speed observation data corresponding to the sampling time point based on the speed data stored in the target storage space corresponding to the sampling time point and the zero bias corresponding to the speed data; the zero bias is determined based on the speed data collected by the sensing module when the robot is stationary; and update the positioning information corresponding to the previous sampling time point based on the speed observation data.
[0184] In some embodiments, the positioning device may further include a second determining module, configured to:
[0185] If the speed data collected by the sensing module within the first time interval meets the target speed condition, the robot is determined to be in the stationary state; the mean value of the speed data within the first time interval is determined as the zero bias corresponding to the speed data.
[0186] In some embodiments, the velocity data includes the robot's acceleration data and angular velocity data, and the velocity observation data includes acceleration observation data and angular velocity observation data;
[0187] The first sub-determination module can also be used to: determine the velocity prediction data at the sampling time point based on the acceleration observation data; determine the attitude angle prediction data at the sampling time point based on the angular velocity observation data; and update the positioning information corresponding to the previous sampling time point based on the velocity prediction data and the attitude angle prediction data.
[0188] This application provides a robot positioning system, wherein the robot is equipped with a sensing module, and the sensing module collects and stores the sensor data in a target storage space;
[0189] like Figure 7 As shown, the robot's positioning system 700 includes:
[0190] The processing unit 710 is used to implement some or all of the steps in the above-described robot positioning method.
[0191] It is understood that, depending on the application scenario, the robot may also include at least one of the following: a cleaning system for performing cleaning tasks, a sensing system containing a sensing module, an execution system for cooperating with other actuators (such as robotic arms, grippers, etc.) to complete tasks, a communication system for interacting with other devices, an interaction system for interacting with users, and a safety system for fault monitoring. The embodiments of this application do not limit this.
[0192] This application provides a robot, such as... Figure 8 As shown, the positioning system 700 includes the aforementioned robot.
[0193] This application provides a computer program including computer-readable code. When the computer-readable code is run in a computer device, the processor in the computer device executes some or all of the steps in the above-described robot positioning method.
[0194] This application provides a computer program product, including a computer program or instructions, which, when executed by a processor, implement some or all of the steps in the robot positioning method described above.
[0195] This application provides a computer-readable storage medium storing a computer program that can be executed by a processor to implement the robot positioning method described above.
[0196] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus, systems, and robots according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0197] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0198] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0199] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application.
[0200] The descriptions of the apparatus, system, and robot embodiments above are similar to those of the method embodiments above, and have similar beneficial effects. For technical details not disclosed in the apparatus, system, and robot embodiments of this application, please refer to the descriptions of the method embodiments of this application for understanding.
[0201] It should be understood that the phrase "one embodiment" or "an embodiment" throughout the specification means that a specific feature, structure, or characteristic related to the embodiment is included in at least one embodiment of this application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this application, the sequence numbers of the above-described processes do not imply a sequential order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application. The sequence numbers of the above-described embodiments are merely descriptive and do not represent the superiority or inferiority of the embodiments.
[0202] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0203] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods, such as: multiple units or components can be combined, or integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the various components shown or discussed can be through some interfaces, and the indirect coupling or communication connection between devices or units can be electrical, mechanical, or other forms.
[0204] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units. They may be located in one place or distributed across multiple network units. Some or all of the units may be selected to achieve the purpose of this embodiment according to actual needs.
[0205] In addition, each functional unit in the various embodiments of this application can be integrated into one processing unit, or each unit can be a separate unit, or two or more units can be integrated into one unit; the integrated unit can be implemented in hardware or in the form of hardware plus software functional units.
[0206] Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium includes various media that can store program code, such as mobile storage devices, read-only memory (ROM), magnetic disks, or optical disks.
[0207] Alternatively, if the integrated units described above are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, or the parts that contribute to related technologies, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, ROMs, magnetic disks, or optical disks.
[0208] The above description is merely an embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application.
Claims
1. A robot localization method, characterized in that, The robot is equipped with a sensing module, and the sensing data collected by the sensing module is stored in the target storage space; the positioning method includes: In response to a first triggering event, the robot's first positioning information is acquired; the first triggering event is used to indicate the acquisition of the robot's target positioning information at the current moment, the first positioning information is determined based on sensor data stored in the target storage space at a time earlier than the second moment in response to a second triggering event at the first moment, the first positioning information is the measured value of the robot's positioning information at the second moment, the first moment is later than the second moment, and the time interval between the first moment and the second moment is not less than the maximum processing delay of the sensor data of the sensor module; Based on the first positioning information and the sensor data stored in the target storage space between the second time and the current time, the target positioning information is determined; the target positioning information is an estimated value of the robot's positioning information at the current time.
2. The positioning method according to claim 1, characterized in that, The determination of the target positioning information based on the first positioning information and the sensor data stored in the target storage space between the second time and the current time includes: For each sampling time point between the second time point and the current time point, based on the sensor data stored in the target storage space, the positioning information corresponding to the previous sampling time point of the sampling time point is updated until the target positioning information is obtained.
3. The positioning method according to claim 2, characterized in that, The sensing data includes velocity data; The step of updating the positioning information corresponding to the previous sampling time point based on the sensing data stored in the target storage space includes: Based on the velocity data corresponding to the sampling time point stored in the target storage space, and the zero bias corresponding to the velocity data, the velocity observation data corresponding to the sampling time point is determined; the zero bias is determined based on the velocity data collected by the sensing module when the robot is stationary. Based on the velocity observation data, the positioning information corresponding to the previous sampling time point of the sampling time point is updated.
4. The positioning method according to claim 3, characterized in that, The positioning method further includes: If the speed data collected by the sensing module within the first time interval meets the target speed condition, it is determined that the robot is in the stationary state. The mean value of the velocity data within the first time interval is determined as the zero bias corresponding to the velocity data.
5. The positioning method according to claim 3, characterized in that, The velocity data includes the robot's acceleration data and angular velocity data, and the velocity observation data includes acceleration observation data and angular velocity observation data; The step of updating the positioning information corresponding to the previous sampling time point based on the velocity observation data includes: Based on the acceleration observation data, the velocity prediction data at the sampling time point is determined; Based on the angular velocity observation data, the attitude angle prediction data at the sampling time point is determined; Based on the velocity prediction data and the attitude angle prediction data, the positioning information corresponding to the previous sampling time point of the sampling time point is updated.
6. The positioning method according to any one of claims 1 to 5, characterized in that, The sensing module includes at least an inertial measurement unit.
7. The positioning method according to any one of claims 1 to 5, characterized in that, The sensing data includes velocity data and / or pose data; When the sensing module includes an inertial measurement unit, the velocity data includes the robot's angular velocity data and acceleration data; When the sensing module includes a wheel speed encoder, the speed data includes the robot's linear velocity data and angular velocity data; When the sensing module includes a global navigation satellite system module, the pose data includes the robot's position data and attitude data; In the case where the sensing module includes a real-time localization and mapping module, the pose data includes the robot's position data and attitude data.
8. A positioning device for a robot, characterized in that, The robot is equipped with a sensing module, and the sensing module collects and stores the sensing data in the target storage space. The positioning device includes: The acquisition module is used to acquire the first positioning information of the robot in response to a first triggering event; the first triggering event is used to indicate the acquisition of the target positioning information of the robot at the current moment, the first positioning information is determined based on the sensor data stored in the target storage space that is earlier than the second moment in response to a second triggering event at the first moment, the first positioning information is the measured value of the positioning information of the robot at the second moment, the first moment is later than the second moment, and the time interval between the first moment and the second moment is not less than the maximum processing delay of the sensor data of the sensing module; The first determining module is used to determine the target positioning information based on the first positioning information and the sensor data stored in the target storage space at a time between the second time and the current time; the target positioning information is an estimated value of the robot's positioning information at the current time.
9. A robot positioning system, characterized in that, The robot is equipped with a sensing module, and the sensing data collected by the sensing module is stored in the target storage space; the positioning system includes a processing unit for: In response to a first triggering event, the robot's first positioning information is acquired; the first triggering event is used to indicate the acquisition of the robot's target positioning information at the current moment, the first positioning information is determined based on sensor data stored in the target storage space at a time earlier than the second moment in response to a second triggering event at the first moment, the first positioning information is the measured value of the robot's positioning information at the second moment, the first moment is later than the second moment, and the time interval between the first moment and the second moment is not less than the maximum processing delay of the sensor data of the sensor module; Based on the first positioning information and the sensor data stored in the target storage space between the second time and the current time, the target positioning information is determined; the target positioning information is an estimated value of the robot's positioning information at the current time.
10. A robot, characterized in that, Including the positioning system as described in claim 9.
Citation Information
Patent Citations
Fusion positioning method and device, equipment, storage medium and program product
CN113327344A
Multi-sensor fusion positioning method, device and system and storage medium
CN116972834A