Robot positioning method and device, equipment, storage medium and program product
By combining the inertial measurement unit and the speedometer data for track calculation, and using laser point cloud data to optimize positioning, the problems of lidar positioning error and jitter in indoor environments are solved, and the accuracy and smoothness of robot positioning are improved.
Patent Information
- Application Number
- CN202411753114.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-02
- Publication Date
- 2025-04-15
AI Technical Summary
In indoor environments, low-cost single-line lidar has jitter in positioning due to measurement errors, and the smoothness is low.
By combining inertial measurement unit data and speedometer data, the track calculation position of the robot at each moment is obtained, and relative motion constraints are constructed based on laser point cloud data, the initial position is optimized, and the optimized post-position position is obtained.
It improves the positioning accuracy and smoothness of the robot in the indoor environment, and reduces errors and jitters.
Smart Images

Figure CN119826817A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of robot positioning technology, and in particular to a robot positioning method, device, equipment, storage medium and program product. Background Art
[0002] Thanks to the rapid iteration of artificial intelligence technology and its in-depth application in the robotics industry, robots, especially service robots, are entering ordinary households at a very fast pace. Practical robots such as sweeping robots that can share some housework are developing particularly rapidly. Unlike outdoor and factory environments, indoor environments cannot use high-precision satellite positioning systems such as GNSS (Global Navigation Satellite System), and cannot use such expensive sensors. Lower-priced lidar, IMU (Inertial Measurement Unit), and wheel speed meters are often the preferred sensors for household robots.
[0003] Indoor environments have characteristics such as environmental changes, and low-cost single-line laser radars have measurement errors. As a result, the robot's positioning in indoor environments usually has a small amount of error and jitter, and the robot's positioning smoothness in indoor environments is low. Summary of the invention
[0004] The present application provides a robot positioning method, device, equipment, storage medium and program product, which are used to improve the positioning smoothness of the robot in an indoor environment.
[0005] According to a first aspect of an embodiment of the present application, a robot positioning method is provided, comprising:
[0006] Based on the inertial measurement unit data and wheel speed meter data, the dead reckoning position of the robot at each moment is obtained;
[0007] Based on the laser point cloud data, the initial position of the robot at each moment is obtained;
[0008] Relative motion constraints are constructed based on the dead reckoning posture of the robot at each moment, and the initial posture of the robot at each moment is optimized to obtain the optimized posture of the robot at each moment.
[0009] Optionally, obtaining the dead reckoning posture of the robot at each moment based on the inertial measurement unit data and the wheel speed meter data includes:
[0010] Based on the inertial measurement unit data, the first prediction data of the robot at each moment is obtained:
[0011] Based on the wheel speed meter data, the first observation data of the robot at each moment is obtained;
[0012] Based on the first observation data of the robot at each moment, the first prediction data of the robot at each moment is corrected to obtain the dead reckoning position and posture of the robot at each moment.
[0013] Optionally, the inertial measurement unit data includes acceleration measurement values and angular velocity measurement values; the first prediction data includes a first predicted attitude, a first predicted position and a first predicted velocity;
[0014] The obtaining of first prediction data of the robot at each moment based on the inertial measurement unit data includes:
[0015] Based on the first predicted posture and angular velocity measurement value of the robot at the current moment, obtaining the first predicted posture of the robot at the next moment;
[0016] Based on the first predicted position, the first predicted speed, the first predicted posture and the acceleration measurement value of the robot at the current moment, obtaining the first predicted position of the robot at the next moment;
[0017] Based on the first predicted speed, the first predicted posture and the acceleration measurement value of the robot at the current moment, the first predicted speed of the robot at the next moment is obtained.
[0018] Optionally, the wheel speed meter data includes the number of pulses; the first observation data includes a first observation posture and a first observation speed;
[0019] The obtaining of the first observation data of the robot at each moment based on the wheel speed meter data includes:
[0020] Based on the pulse calibration value and the pulse number, the first observed speed of the robot at each moment is obtained;
[0021] Based on the wheelbase and the number of pulses, the movement angle of the robot at each moment is obtained, and based on the movement angle of the robot at each moment, the first observation posture of the robot at each moment is obtained.
[0022] Optionally, the relative motion constraint is constructed based on the dead reckoning posture of the robot at each moment, including:
[0023] Based on the laser point cloud data, the inter-frame matching pose of the robot at each moment is obtained;
[0024] Based on the laser point cloud data and map data, the robot's relocation matching posture at each moment is obtained;
[0025] Relative motion constraints are constructed based on the robot's dead reckoning pose at each moment, inter-frame matching pose, and relocalization matching pose.
[0026] Optionally, obtaining the inter-frame matching posture of the robot at each moment based on the laser point cloud data includes:
[0027] Based on the dead reckoning position of the robot at each moment, motion distortion compensation is performed on each frame of laser point cloud data to obtain compensated point cloud data of each frame; wherein, one frame of laser point cloud data corresponds to at least two moments, and one frame of compensated point cloud data corresponds to one moment;
[0028] Based on the compensated point cloud data of each frame, inter-frame matching is performed to obtain the inter-frame matching posture of the robot at each moment.
[0029] Optionally, obtaining the repositioning matching posture of the robot at each moment based on the laser point cloud data and the map data includes:
[0030] Based on the dead reckoning position of the robot at each moment, motion distortion compensation is performed on each frame of laser point cloud data to obtain compensated point cloud data of each frame; wherein, one frame of laser point cloud data corresponds to at least two moments, and one frame of compensated point cloud data corresponds to one moment;
[0031] Based on the dead reckoning position of the robot at each moment and the compensated point cloud data of each frame, the predicted point cloud data of the robot at each moment is obtained;
[0032] Based on the predicted point cloud data of the robot at each moment, the historical subgraphs corresponding to the predicted point cloud data of the robot at each moment are searched from the map data;
[0033] The predicted point cloud data of the robot at each moment is relocated and matched with the historical subgraphs corresponding to the predicted point cloud data of the robot at each moment to obtain the relocated matching posture of the robot at each moment.
[0034] Optionally, the method further comprises:
[0035] Based on the inertial measurement unit data, obtaining second prediction data of the robot at each moment;
[0036] Based on the optimized posture and wheel speed meter data of the robot at each moment, the second observation data of the robot at each moment is obtained;
[0037] A filtering algorithm is used to correct the second predicted data of the robot at each moment based on the second observation data of the robot at each moment, so as to obtain the target position and posture of the robot at each moment.
[0038] Optionally, the second predicted data includes a second predicted posture, a second predicted position, and a second predicted speed; the second observed data includes a second observed posture, an observed position, and a second observed speed;
[0039] The method of obtaining the second observation data of the robot at each moment based on the optimized posture and wheel speed meter data of the robot at each moment includes:
[0040] Based on the optimized posture of the robot at each moment, the second observation posture and observation position of the robot at each moment are obtained;
[0041] Based on the wheel speed meter data, the second observed speed of the robot at each moment is obtained.
[0042] According to a second aspect of an embodiment of the present application, a robot positioning device is provided, comprising:
[0043] A dead reckoning unit, used to obtain the dead reckoning posture of the robot at each moment based on the inertial measurement unit data and wheel speed meter data;
[0044] The laser matching unit is used to obtain the initial position and posture of the robot at each moment based on the laser point cloud data;
[0045] The posture optimization unit is used to construct relative motion constraints based on the robot's trajectory dead reckoning posture at each moment, optimize the robot's initial posture at each moment, and obtain the robot's optimized posture at each moment.
[0046] According to a third aspect of an embodiment of the present application, there is provided an electronic device, including a memory and a processor;
[0047] The memory is connected to the processor and is used to store programs;
[0048] The processor is used to implement the robot positioning method as described in the first aspect by running the program in the memory.
[0049] According to a fourth aspect of an embodiment of the present application, a storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the robot positioning method as described in the first aspect is implemented.
[0050] According to a fifth aspect of an embodiment of the present application, a computer program product is provided, comprising computer program instructions, which, when executed by a processor, enable the processor to execute the robot positioning method as described in the first aspect.
[0051] In this application, based on the inertial measurement unit data and the wheel speed meter data, the robot's dead reckoning posture at each moment is obtained. Compared with using a single sensor data to determine the robot's posture, the robot's positioning accuracy in indoor environments can be improved, errors can be reduced, jitter can be reduced, and the robot's positioning smoothness in indoor environments can be improved. Based on the laser point cloud data, the robot's initial posture at each moment is obtained, and relative motion constraints are constructed based on the robot's dead reckoning posture at each moment. The robot's initial posture at each moment is optimized to obtain the optimized posture of the robot at each moment. This can limit the tiny jumps of the robot's initial posture at each moment obtained based on the laser point cloud data, and improve the robot's positioning smoothness in indoor environments. BRIEF DESCRIPTION OF THE DRAWINGS
[0052] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying any creative work.
[0053] Figure 1 A schematic diagram of a robot positioning solution based on posture interpolation in the prior art;
[0054] Figure 2 A schematic diagram of a robot positioning solution based on pose graph optimization in the prior art;
[0055] Figure 3 A schematic diagram of a flow chart of a robot positioning method provided in an embodiment of the present application;
[0056] Figure 4 A schematic diagram of a process of step 301 provided in an embodiment of the present application;
[0057] Figure 5 A schematic diagram of a process of step 401 provided in an embodiment of the present application;
[0058] Figure 6 A schematic diagram of a process of step 402 provided in an embodiment of the present application;
[0059] Figure 7 A schematic diagram of a process for constructing a relative motion constraint provided in an embodiment of the present application;
[0060] Figure 8 A flowchart of step 701 provided in an embodiment of the present application;
[0061] Fig. 9A flowchart of step 702 provided in an embodiment of the present application;
[0062] Fig.10 A schematic diagram of a posture graph provided in an embodiment of the present application;
[0063] Fig.11 A schematic diagram of a flow chart of a robot positioning method provided in an embodiment of the present application;
[0064] Fig.12 A flowchart of step 1102 provided in an embodiment of the present application;
[0065] Fig.13 A schematic diagram of the structure of a robot positioning device provided in an embodiment of the present application;
[0066] Fig.14 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0067] Unlike outdoor and factory environments, indoor environments cannot use high-precision satellite positioning systems, nor can they use such expensive sensors. Lower-priced lidar, inertial measurement units, and wheel speed meters are often the preferred sensors for home robots, but positioning accuracy and smoothness are reduced.
[0068] At present, robot positioning solutions in indoor environments usually adopt the following solutions:
[0069] Solution 1
[0070] Robot localization scheme based on pose interpolation.
[0071] like Figure 1 As shown, it is a schematic diagram of a robot positioning solution based on posture interpolation in the prior art. Figure 1 In the figure, the frequency of the data collected by the inertial measurement unit is 100Hz, the frequency of the data collected by the wheel speed meter is 10Hz, and the frequency of the data collected by the lidar is 10Hz. The data collected by the inertial measurement unit and the wheel speed meter are used to obtain a combined pose through data fusion or integration. The frequency of the combined pose is 100Hz. The data collected by the lidar are used to obtain a laser matching pose through point cloud matching. The frequency of the laser matching pose is 10Hz. The laser matching pose obtains the relative transformation relative to the combined pose through the timestamp, and then performs pose interpolation to output the positioning pose. The frequency of the output positioning pose is 100Hz.
[0072] The robot positioning solution based on pose interpolation has the advantages of low computational complexity. However, the system mainly relies on point cloud matching as the main input of pose. Indoor environments are subject to environmental changes and measurement errors of low-cost single-line radars. Laser matching often cannot guarantee high precision and usually has a small amount of error and jitter. This solution only interpolates the combined pose obtained by data fusion or integration of the data collected by the inertial measurement unit and the wheel speed meter. It cannot remove the jitter, which will have an adverse effect on downstream modules. The positioning smoothness of the robot in indoor environments is low.
[0073] Solution 2
[0074] Robot localization scheme based on filter fusion.
[0075] The data collected by the inertial measurement unit is used as the prediction of the posture fusion system, and the laser matching posture is used as the observation for data fusion. Common fusion methods include EKF (Extended Kalman Filter), ESKF (Error State Kalman Filter), UKF (Unscented Kalman Filter), etc. In order to improve the positioning accuracy, some of these solutions have extended solutions such as fixed lag smoothing.
[0076] In the robot positioning solution based on filtering fusion, since the prediction data directly uses the data collected by the inertial measurement unit, the positioning accuracy can be improved to a certain extent, but there is still jitter. Although this phenomenon can be reduced by adjusting the observation noise, it will lead to a loss of accuracy. The positioning smoothness of the robot in the indoor environment is low.
[0077] Option 3
[0078] Robot localization scheme based on pose graph optimization.
[0079] like Figure 2 As shown, it is a schematic diagram of a robot positioning solution based on pose graph optimization in the prior art. Figure 2 In the diagram, save the sub-graph when the robot builds the graph, that is, the sub-graph Figure 1 , ..., sub-graph m; f refers to a frame of LiDAR point cloud data; inter-frame matching is used between different frames of LiDAR point cloud data, and relocation matching is used between LiDAR point cloud data and sub-graphs. k1, k2, k3, ... are nodes in the pose graph. Inter-frame matching and relocation matching constitute constraints in the pose graph, mainly to eliminate cumulative errors. In some schemes, the data collected by the inertial measurement unit will be introduced for pre-integration to form pre-integration constraints.
[0080] The robot positioning solution based on pose graph optimization has the characteristic of low positioning output frequency. In addition, the same sensor (i.e., lidar) is still used for inter-frame matching and re-positioning matching, and the smoothness performance is limited. The positioning smoothness of the robot in indoor environments is low.
[0081] Therefore, in the current robot positioning scheme, the robot's positioning smoothness in indoor environments is low.
[0082] In order to improve the positioning smoothness of a robot in an indoor environment, the present application provides a robot positioning method, device, equipment, storage medium and program product.
[0083] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0084] Exemplary Implementation Environment
[0085] The robot positioning method according to the embodiment of the present application can be directly executed by the robot, or it can be executed by an electronic device such as a terminal device or a server, and then the execution result is sent to the robot. The server can be an independent physical server, a server cluster composed of multiple physical servers, or a cloud server capable of cloud computing. The method can be implemented by a processor calling a computer-readable program instruction stored in a memory. In this application, the robot positioning method is directly executed by the robot as an example for explanation, but it is not limited to this.
[0086] Exemplary Methods
[0087] See also Figure 3 In an exemplary embodiment, a robot positioning method is provided. Figure 3 As shown, the process of the robot positioning method mainly includes:
[0088] Step 301, based on the inertial measurement unit data and the wheel speed meter data, obtain the dead reckoning position and posture of the robot at each moment.
[0089] In an exemplary embodiment, the inertial measurement unit data refers to data collected by an inertial measurement unit (IMU), and the wheel speed meter data refers to data collected by a wheel speed meter.
[0090] In an exemplary embodiment, the wheel speedometer may be a wheel odometer.
[0091] In an exemplary embodiment, obtaining the dead reckoning posture of the robot at each moment based on the inertial measurement unit data and the tachometer data means using the inertial measurement unit data and the tachometer data to fuse and perform dead reckoning (DR) to obtain the dead reckoning posture of the robot at each moment.
[0092] In some embodiments, step 301 includes: using the wheel speed meter data as a prediction and the inertial measurement unit data as an observation to perform dead reckoning to obtain the dead reckoning posture of the robot at each moment.
[0093] In other embodiments, Figure 4 As shown, step 301 includes:
[0094] Step 401, based on the inertial measurement unit data, obtain the first prediction data of the robot at each moment.
[0095] In some embodiments, the inertial measurement unit data includes acceleration measurements and angular velocity measurements.The first predicted data includes a first predicted attitude, a first predicted position, and a first predicted velocity.
[0096] In an exemplary embodiment, the first predicted posture, the first predicted position and the first predicted speed are quaternions. Quaternions are simple hypercomplex numbers, that is, numbers of the form ai+bj+ck+d, where a, b, c and d are real numbers.
[0097] In some embodiments, Figure 5 As shown, step 401 includes:
[0098] Step 501, based on the first predicted posture of the robot at the current moment and the angular velocity measurement value, obtain the first predicted posture of the robot at the next moment.
[0099] In the exemplary embodiment, the current moment is represented by t, the difference between the next moment and the current moment is represented by Δt, the next moment is represented by (t+Δt), the first predicted posture of the robot at the current moment is represented by q(t), and the angular velocity measurement value of the robot at the current moment is represented by The first predicted posture of the robot at the next moment is represented by q(t+Δt), and the specific formula corresponding to step 501 is as follows:
[0100]
[0101] Among them, b g It refers to the zero bias of the gyroscope, which is a preset value that does not change for a short period of time.
[0102] Step 502, based on the first predicted position, the first predicted speed, the first predicted posture and the acceleration measurement value of the robot at the current moment, obtain the first predicted position of the robot at the next moment.
[0103] In the exemplary embodiment, the current moment is represented by t, the difference between the next moment and the current moment is represented by Δt, the next moment is represented by (t+Δt), the first predicted position of the robot at the current moment is represented by p(t), the first predicted velocity of the robot at the current moment is represented by v(t), the first predicted posture of the robot at the current moment is represented by q(t), and the acceleration measurement value of the robot at the current moment is represented by The first predicted position of the robot at the next moment is represented by p(t+Δt), and the specific formula corresponding to step 502 is as follows:
[0104]
[0105] Among them, b a It refers to the zero bias of the accelerometer, which is a preset value that does not change over a short period of time; g refers to the acceleration due to gravity, which is a preset value.
[0106] In this formula, q(t) is a quaternion, is a three-dimensional vector. The formula omits the dimension conversion step of multiplying the quaternion and the three-dimensional vector.
[0107] Step 503, based on the first predicted speed, the first predicted posture and the acceleration measurement value of the robot at the current moment, obtain the first predicted speed of the robot at the next moment.
[0108] In the exemplary embodiment, the current moment is represented by t, the difference between the next moment and the current moment is represented by Δt, the next moment is represented by (t+Δt), the first predicted velocity of the robot at the current moment is represented by v(t), the first predicted posture of the robot at the current moment is represented by q(t), and the acceleration measurement value of the robot at the current moment is represented by The first predicted speed of the robot at the next moment is represented by v(t+Δt), and the specific formula corresponding to step 503 is as follows:
[0109]
[0110] Among them, b a It refers to the zero bias of the accelerometer, which is a preset value that does not change over a short period of time; g refers to the acceleration due to gravity, which is a preset value.
[0111] Based on the first predicted posture and angular velocity measurement values of the robot at the current moment, the first predicted posture of the robot at the next moment is obtained; based on the first predicted position, first predicted speed, first predicted posture and acceleration measurement values of the robot at the current moment, the first predicted position of the robot at the next moment is obtained; based on the first predicted speed, first predicted posture and acceleration measurement values of the robot at the current moment, the first predicted speed of the robot at the next moment is obtained; through iterative calculation, the first predicted posture, first predicted position and first predicted speed of the robot at each moment can be obtained based on the acceleration measurement values and angular velocity measurement values.
[0112] In some other embodiments, step 401 includes: using a filtering algorithm to obtain first prediction data of the robot at each moment based on inertial measurement unit data.
[0113] Step 402, based on the wheel speed meter data, obtain the first observation data of the robot at each moment.
[0114] In some embodiments, the wheel speed meter data includes a pulse number. The first observed data includes a first observed posture and a first observed speed.
[0115] like Figure 6 As shown, step 402 includes:
[0116] Step 601, based on the pulse calibration value and the pulse number, obtain the first observed speed of the robot at each moment.
[0117] In an exemplary embodiment, the pulse calibration value is a fixed preset value, and the number of pulses will change during the movement of the robot. Based on the pulse calibration value and the number of pulses, the first observed speed of the robot at each moment can be directly obtained.
[0118] Step 602, based on the wheelbase and the number of pulses, obtain the movement angle of the robot at each moment, and based on the movement angle of the robot at each moment, obtain the first observation posture of the robot at each moment.
[0119] In the exemplary embodiment, the wheelbase is a fixed preset value, and the number of pulses will change during the movement of the robot. The movement angle can refer to how many degrees the robot turns left or right relative to the current movement direction. Based on the wheelbase and the number of pulses, the movement angle of the robot at each moment can be directly obtained.
[0120] In an exemplary embodiment, the motion angle may refer to a planar motion angle, and the first observation posture may refer to a three-dimensional posture. The motion angle is not equivalent to the first observation posture, but based on the motion angle of the robot at each moment, the first observation posture of the robot at each moment can be obtained.
[0121] Here, the wheel speed meter data is only used to obtain the first observed speed and first observed posture of the robot at each moment, and does not involve the observation of the position.
[0122] Based on the pulse calibration value and the number of pulses, the first observed speed of the robot at each moment is obtained, based on the wheelbase and the number of pulses, the movement angle of the robot at each moment is obtained, and based on the movement angle of the robot at each moment, the first observed posture of the robot at each moment is obtained. The wheel speed meter data can be fully utilized to obtain the first observed speed and first observed posture of the robot at each moment.
[0123] In some other embodiments, step 402 includes: obtaining the wheel speed of the robot at each moment based on the wheel speed meter data; and obtaining the first observation data of the robot at each moment based on the wheel speed of the robot at each moment.
[0124] Step 403, based on the first observation data of the robot at each moment, correct the first prediction data of the robot at each moment to obtain the dead reckoning position and posture of the robot at each moment.
[0125] In some embodiments, the first predicted data includes a first predicted attitude, a first predicted position, and a first predicted speed. The first observed data includes a first observed attitude and a first observed speed. The dead reckoning posture includes a dead reckoning position and a dead reckoning attitude.
[0126] Step 403 includes: based on the deviation between the first observed speed and the first predicted speed of the robot at each moment, and the deviation between the first observed posture and the first predicted posture of the robot at each moment, using a filtering algorithm to correct the first predicted posture, the first predicted position and the first predicted speed of the robot at each moment, so as to obtain the track-reckoned posture of the robot at each moment.
[0127] In an exemplary embodiment, the filtering algorithm may be EKF, or other filtering algorithms, such as ESKF, UKF, etc., and the present application is not limited thereto.
[0128] Since there is no observation data of the position, correction is not performed directly based on the deviation between the observation data of the position and the first predicted position. However, since there is a correlation between the first predicted position and the first predicted posture and the first predicted speed (for example, see the specific formula corresponding to step 502), when correcting the first predicted posture and the first predicted speed, the first predicted position is actually corrected as well, and the first predicted position will be more accurate.
[0129] Based on the inertial measurement unit data, the first predicted data of the robot at each moment is obtained, and based on the tachometer data, the first observed data of the robot at each moment is obtained. Using the inertial measurement unit data as the prediction can improve the positioning accuracy of the robot in indoor environments. Using the tachometer data as the observation, based on the first observation data of the robot at each moment, the first predicted data of the robot at each moment is corrected to obtain the track-reckoning posture of the robot at each moment, which can improve the accuracy of the track-reckoning posture of the robot at each moment, reduce errors, reduce jitter, and improve the positioning smoothness and positioning accuracy of the robot in indoor environments.
[0130] Step 302: Based on the laser point cloud data, the initial position and posture of the robot at each moment are obtained.
[0131] In an exemplary embodiment, laser point cloud data refers to point cloud data collected by a laser radar.
[0132] In an exemplary embodiment, the initial posture of the robot at each moment may be a posture obtained by processing the laser point cloud data. For example, the initial posture may be an inter-frame matching posture, a repositioning matching posture, or other postures, and this application does not limit this.
[0133] Step 303, constructing relative motion constraints based on the dead reckoning posture of the robot at each moment, optimizing the initial posture of the robot at each moment, and obtaining the optimized posture of the robot at each moment.
[0134] Based on the laser point cloud data, the initial position and posture of the robot at each moment are obtained, and relative motion constraints are constructed based on the track-reckoning position and posture of the robot at each moment. The initial position and posture of the robot at each moment are optimized to obtain the optimized position and posture of the robot at each moment. This can limit the tiny jumps of the initial position and posture of the robot at each moment obtained based on the laser point cloud data, and improve the positioning smoothness of the robot in indoor environments.
[0135] In some embodiments, in step 303, relative motion constraints are constructed based on the dead reckoning postures of the robot at each time, including: constructing relative motion constraints based on relative changes between the dead reckoning postures of the robot at different times.
[0136] In some embodiments, in step 303, relative motion constraints are constructed based on the robot's track-reckoning posture at each moment, including: obtaining the inter-frame matching posture of the robot at each moment based on laser point cloud data; and constructing relative motion constraints based on the robot's track-reckoning posture at each moment and the inter-frame matching posture.
[0137] In the absence of map data, relocalization matching cannot be performed, so relative motion constraints can be constructed by directly calculating the robot's posture based on the robot's trajectory at each moment and matching the posture between frames.
[0138] In other embodiments, Figure 7 As shown, in step 303, relative motion constraints are constructed based on the dead reckoning posture of the robot at each moment, including:
[0139] Step 701, based on the laser point cloud data, obtain the inter-frame matching posture of the robot at each moment.
[0140] In some embodiments, step 701 includes: performing inter-frame matching directly based on each frame of laser point cloud data to obtain the inter-frame matching posture of the robot at each moment.
[0141] In other embodiments, Figure 8 As shown, step 701 includes:
[0142] Step 801, based on the trajectory dead reckoning posture of the robot at each moment, motion distortion compensation is performed on each frame of laser point cloud data to obtain compensated point cloud data for each frame.
[0143] Among them, one frame of laser point cloud data corresponds to at least two moments, and one frame of compensated point cloud data corresponds to one moment.
[0144] In the exemplary embodiment, the laser radar often moves with the robot when collecting data. This movement will cause the collected laser point cloud data to be distorted, that is, the laser point cloud data in the same frame are not collected at the same time, so their coordinate systems are inconsistent. Through motion distortion compensation, the movement of the laser radar during the collection process can be calculated, and this movement can be compensated at each laser point, thereby eliminating the impact of the movement on the data.
[0145] In an exemplary embodiment, one frame of laser point cloud data includes laser points from 0 to 1 seconds. According to the relative change between the dead reckoning posture of 0.1 seconds and the dead reckoning posture of 0 seconds, the laser point of 0.1 seconds is converted to obtain the corresponding laser point of 0 seconds; according to the relative change between the dead reckoning posture of 0.2 seconds and the dead reckoning posture of 0 seconds, the laser point of 0.2 seconds is converted to obtain the corresponding laser point of 0 seconds; and so on, this frame of laser point cloud data is converted into the point cloud data of the laser head (0 seconds) to obtain a frame of compensated point cloud data. This frame of laser point cloud data can also be converted into the point cloud data of the laser tail (1 second) to obtain a frame of compensated point cloud data. This application does not limit this. In short, the same frame of laser point cloud data is converted into data at the same time to achieve motion distortion compensation.
[0146] Step 802, based on the compensated point cloud data of each frame, inter-frame matching is performed to obtain the inter-frame matching posture of the robot at each moment.
[0147] In some embodiments, step 802 includes: performing the following operations on any frame of compensated point cloud data: inter-frame matching of the frame of compensated point cloud data and a historical frame of compensated point cloud data to obtain the inter-frame matching posture of the robot at the moment corresponding to the frame of compensated point cloud data.
[0148] In other embodiments, step 802 includes: performing the following operations on any frame of compensated point cloud data: integrating multiple historical frames of compensated point cloud data within a historical time period into a new sub-graph; performing inter-frame matching of the frame of compensated point cloud data and the new sub-graph to obtain the inter-frame matching posture of the robot at the moment corresponding to the frame of compensated point cloud data.
[0149] In an exemplary embodiment, the output inter-frame matching pose can be expressed as T S Indicates that T S =[R, t], where R refers to the amount of rotation and t refers to the amount of translation in the three directions of x-axis, y-axis and z-axis.
[0150] Based on the robot's track-reckoned posture at each moment, motion distortion compensation is performed on each frame of laser point cloud data to obtain compensated point cloud data for each frame, so that one frame of compensated point cloud data corresponds to one moment. Based on the compensated point cloud data for each frame, inter-frame matching is performed to obtain the inter-frame matching posture of the robot at each moment, which can improve the accuracy of the inter-frame matching posture of the robot at each moment.
[0151] Step 702: Based on the laser point cloud data and the map data, the repositioning matching posture of the robot at each moment is obtained.
[0152] In some embodiments, step 702 includes: performing repositioning matching directly based on each frame of laser point cloud data and map data to obtain the repositioning matching posture of the robot at each moment.
[0153] In other embodiments, Fig. 9 As shown, step 702 includes:
[0154] Step 901, based on the trajectory dead reckoning posture of the robot at each moment, motion distortion compensation is performed on each frame of laser point cloud data to obtain compensated point cloud data for each frame.
[0155] Among them, one frame of laser point cloud data corresponds to at least two moments, and one frame of compensated point cloud data corresponds to one moment.
[0156] In the exemplary embodiment, the laser radar often moves with the robot when collecting data. This movement will cause the collected laser point cloud data to be distorted, that is, the laser point cloud data in the same frame are not collected at the same time, so their coordinate systems are inconsistent. Through motion distortion compensation, the movement of the laser radar during the collection process can be calculated, and this movement can be compensated at each laser point, thereby eliminating the impact of the movement on the data.
[0157] In an exemplary embodiment, one frame of laser point cloud data includes laser points from 0 to 1 seconds. According to the relative change between the dead reckoning posture of 0.1 seconds and the dead reckoning posture of 0 seconds, the laser point of 0.1 seconds is converted to obtain the corresponding laser point of 0 seconds; according to the relative change between the dead reckoning posture of 0.2 seconds and the dead reckoning posture of 0 seconds, the laser point of 0.2 seconds is converted to obtain the corresponding laser point of 0 seconds; and so on, this frame of laser point cloud data is converted into the point cloud data of the laser head (0 seconds) to obtain a frame of compensated point cloud data. This frame of laser point cloud data can also be converted into the point cloud data of the laser tail (1 second) to obtain a frame of compensated point cloud data. This application does not limit this. In short, the same frame of laser point cloud data is converted into data at the same time to achieve motion distortion compensation.
[0158] Step 902, based on the dead reckoning posture of the robot at each moment and the compensated point cloud data of each frame, the predicted point cloud data of the robot at each moment is obtained.
[0159] In an exemplary embodiment, step 902 may include: based on the robot's dead reckoning posture at each moment, obtaining the relative change between the robot's dead reckoning posture at different moments; adding the relative change between the corresponding dead reckoning postures to the compensated point cloud data of each frame to obtain the predicted point cloud data of the robot at each moment.
[0160] Step 903: Based on the predicted point cloud data of the robot at each moment, search the map data for the historical subgraphs corresponding to the predicted point cloud data of the robot at each moment.
[0161] In an exemplary embodiment, if the robot has walked this map before and there is a historical map, the robot does not need to walk this map again and can directly determine the historical map as the map data. The robot can also walk this map again, regenerate the map, and determine the regenerated map as the map data, which is related to the task mode set for the robot. If the robot has not walked this map before and this is a brand new map, the robot needs to walk this map first and then return to the starting point. The previous walk will create a map, and the created map will be determined as the map data.
[0162] In an exemplary embodiment, the map data includes a plurality of historical sub-maps.
[0163] In an exemplary embodiment, searching for historical subgraphs corresponding to the predicted point cloud data of the robot at each moment in the map data can be performed by performing the following operations on the predicted point cloud data at any moment: matching the predicted point cloud data at that moment with each historical subgraph in the map data to obtain the degree of match between the predicted point cloud data at that moment and each historical subgraph in the map data; and determining the historical subgraph having a high degree of match with the predicted point cloud data at that moment as the historical subgraph corresponding to the predicted point cloud data at that moment.
[0164] Step 904, repositioning and matching the predicted point cloud data of the robot at each moment with the historical subgraphs corresponding to the predicted point cloud data of the robot at each moment, to obtain the repositioning and matching posture of the robot at each moment.
[0165] In an exemplary embodiment, the predicted point cloud data of the robot at each moment is relocated and matched with the historical subgraphs corresponding to the predicted point cloud data of the robot at each moment to obtain the relocated matching posture of the robot at each moment. The predicted point cloud data of the robot at each moment may be corrected based on the historical subgraphs corresponding to the predicted point cloud data of the robot at each moment, and then the relocated matching posture of the robot at each moment is obtained based on the predicted point cloud data after correction at each moment.
[0166] In an exemplary embodiment, the output repositioned matching pose can be used with T R Indicates that T R =[R, t], where R refers to the amount of rotation and t refers to the amount of translation in the three directions of x-axis, y-axis and z-axis.
[0167] Based on the dead reckoning posture of the robot at each moment, motion distortion compensation is performed on each frame of laser point cloud data to obtain compensated point cloud data of each frame, so that one frame of compensated point cloud data corresponds to one moment. Based on the dead reckoning posture of the robot at each moment and the compensated point cloud data of each frame, the predicted point cloud data of the robot at each moment is obtained, which can improve the accuracy of the predicted point cloud data. Based on the predicted point cloud data of the robot at each moment, the historical subgraphs corresponding to the predicted point cloud data of the robot at each moment are searched from the map data, and the predicted point cloud data of the robot at each moment are relocated and matched with the historical subgraphs corresponding to the predicted point cloud data of the robot at each moment, so as to obtain the relocated matching posture of the robot at each moment, which can further improve the accuracy of the relocated matching posture of the robot at each moment.
[0168] Step 703: construct relative motion constraints based on the dead reckoning pose, inter-frame matching pose, and relocalization matching pose of the robot at each moment.
[0169] When constructing relative motion constraints, the robot's track-reckoning posture, inter-frame matching posture and repositioning matching posture at each moment are fully considered. Compared with using a single posture to construct relative motion constraints, it can improve the accuracy of the optimized posture obtained by optimizing the initial posture based on the relative motion constraint, and improve the positioning accuracy of the robot in indoor environments.
[0170] In some embodiments, Fig.10 , which is a schematic diagram of a pose graph. Fig.10 In the figure, the nodes of the pose graph are the initial poses of the robot at each time, which are T1, T2, T3, T4, ...; the edges of the pose graph include binary edges consisting of the relative changes between the dead reckoning poses at different times, binary edges consisting of the relative changes between the inter-frame matching poses at different times, and binary edges consisting of the relative changes between the relocalization matching poses at different times. The relative changes between the dead reckoning poses at different times are T DR 12 、T DR 23 、T DR 34 , ...; the relative changes between the matching poses between frames at different times are T S 12 、T S 23 、T S 34 , ...; the relative changes between the repositioning matching poses at different times are T R 12 、T R 23 、T R 34 ,…….T DR 12 It refers to the relative change between the dead reckoning posture at time t2 and the dead reckoning posture at time t1; T S 12 It refers to the relative change between the inter-frame matching pose at time t2 and the inter-frame matching pose at time t1; T R 12 It refers to the relative change between the repositioned matching pose at time t2 and the repositioned matching pose at time t1.
[0171] In some embodiments, based on the robot's track-reckoning posture at each moment, the inter-frame matching posture and the repositioning matching posture, relative motion constraints are constructed, and the robot's initial posture at each moment is optimized to obtain the optimized posture of the robot at each moment. This can be achieved by using a posture graph optimization based on a sliding window to obtain the optimized posture of the robot at each moment.
[0172] For example, based on the sliding window pose graph optimization, the poses of T1, T2, and T3 may be optimized, the poses of T2, T3, and T4 may be optimized, the poses of T3, T4, and T5 may be optimized, and so on.
[0173] The pose graph optimization based on sliding window is adopted to obtain the optimized pose of the robot at each moment, which can maintain smoothness and efficiency.
[0174] In some embodiments, Fig.11 As shown, the robot positioning method also includes:
[0175] Step 1101, based on the inertial measurement unit data, obtain the second prediction data of the robot at each moment.
[0176] In an exemplary embodiment, the second prediction data includes a second predicted posture, a second predicted position, and a second predicted speed. The system state quantity is x=[pvqb a b g g] T q represents the posture, p represents the position, v represents the speed; b a It refers to the zero bias of the accelerometer, which is a preset value that does not change for a short period of time; b g It refers to the zero bias of the gyroscope, which is a preset value that remains unchanged for a short period of time; g refers to the acceleration due to gravity, which is a preset value.
[0177] Step 1102, based on the optimized posture and wheel speed meter data of the robot at each moment, obtain the second observation data of the robot at each moment.
[0178] In some embodiments, the second predicted data includes a second predicted posture, a second predicted position, and a second predicted speed. The second observed data includes a second observed posture, an observed position, and a second observed speed.
[0179] like Fig.12 As shown, step 1102 includes:
[0180] Step 1201, based on the optimized posture of the robot at each moment, obtain the second observation posture and observation position of the robot at each moment.
[0181] Step 1202, based on the wheel speed meter data, obtain the second observed speed of the robot at each moment.
[0182] Based on the optimized posture of the robot at each moment, the second observation posture and observation position of the robot at each moment are obtained. Based on the tachometer data, the second observation speed of the robot at each moment is obtained. Here, the tachometer data only provides speed observation and no longer provides posture observation.
[0183] Step 1103, using a filtering algorithm, based on the second observation data of the robot at each moment, corrects the second prediction data of the robot at each moment, and obtains the target posture of the robot at each moment.
[0184] In an exemplary embodiment, the filtering algorithm may be ESKF, or other filtering algorithms, such as EKF, UKF, etc., and the present application is not limited thereto.
[0185] Based on the inertial measurement unit data, the second prediction data of the robot at each moment is obtained. Based on the optimized posture of the robot at each moment and the wheel speed meter data, the second observation data of the robot at each moment is obtained. A filtering algorithm is used to correct the second prediction data of the robot at each moment based on the second observation data of the robot at each moment to obtain the target posture of the robot at each moment. On the basis of the optimized posture of the robot at each moment, the inertial measurement unit data and the wheel speed meter data can be combined to further correct the posture of the robot, which can further improve the positioning accuracy and positioning smoothness of the robot in indoor environments, and can ensure high-frequency posture output, providing high-frequency, smooth and precise robot positioning posture.
[0186] In summary, in this application, based on the inertial measurement unit data and the wheel speed meter data, the robot's track-reckoning posture at each moment is obtained. Compared with using a single sensor data to determine the robot's posture, it can improve the robot's positioning accuracy in indoor environments, reduce errors, reduce jitter, and improve the robot's positioning smoothness in indoor environments. Based on the laser point cloud data, the robot's initial posture at each moment is obtained, and relative motion constraints are constructed based on the robot's track-reckoning posture at each moment. The robot's initial posture at each moment is optimized to obtain the optimized posture of the robot at each moment. This can limit the tiny jumps of the robot's initial posture at each moment obtained based on the laser point cloud data, and improve the robot's positioning smoothness in indoor environments.
[0187] Exemplary Devices
[0188] Accordingly, the present application also provides a robot positioning device, such as Fig.13 As shown, the robot positioning device includes:
[0189] The dead reckoning unit 1301 is used to obtain the dead reckoning posture of the robot at each moment based on the inertial measurement unit data and the wheel speed meter data;
[0190] The laser matching unit 1302 is used to obtain the initial position and posture of the robot at each moment based on the laser point cloud data;
[0191] The posture optimization unit 1303 is used to construct relative motion constraints based on the trajectory-reckoning posture of the robot at each moment, optimize the initial posture of the robot at each moment, and obtain the optimized posture of the robot at each moment.
[0192] Optionally, the dead reckoning unit 1301 includes:
[0193] The prediction subunit is used to obtain the first prediction data of the robot at each moment based on the inertial measurement unit data:
[0194] The observation subunit is used to obtain the first observation data of the robot at each moment based on the wheel speed meter data;
[0195] The deviation correction subunit is used to correct the first predicted data of the robot at each moment based on the first observation data of the robot at each moment, so as to obtain the track-reckoning posture of the robot at each moment.
[0196] Optionally, the inertial measurement unit data includes acceleration measurement values and angular velocity measurement values; the first prediction data includes a first predicted attitude, a first predicted position and a first predicted velocity;
[0197] The prediction subunit is specifically used for:
[0198] Based on the first predicted posture and angular velocity measurement value of the robot at the current moment, obtaining the first predicted posture of the robot at the next moment;
[0199] Based on the first predicted position, the first predicted speed, the first predicted posture and the acceleration measurement value of the robot at the current moment, obtaining the first predicted position of the robot at the next moment;
[0200] Based on the first predicted speed, the first predicted posture and the acceleration measurement value of the robot at the current moment, the first predicted speed of the robot at the next moment is obtained.
[0201] Optionally, the wheel speed meter data includes the number of pulses; the first observation data includes a first observation posture and a first observation speed;
[0202] The observation subunit is specifically used for:
[0203] Based on the pulse calibration value and the pulse number, the first observed speed of the robot at each moment is obtained;
[0204] Based on the wheelbase and the number of pulses, the movement angle of the robot at each moment is obtained, and based on the movement angle of the robot at each moment, the first observation posture of the robot at each moment is obtained.
[0205] Optionally, the posture optimization unit 1303 includes:
[0206] The inter-frame matching subunit is used to obtain the inter-frame matching posture of the robot at each moment based on the laser point cloud data;
[0207] The relocation matching subunit is used to obtain the relocation matching posture of the robot at each moment based on the laser point cloud data and map data;
[0208] The constraint construction subunit is used to construct relative motion constraints based on the robot's trajectory dead reckoning pose at each moment, inter-frame pose matching, and relocalization pose matching.
[0209] Optionally, the inter-frame matching subunit is specifically used for:
[0210] Based on the dead reckoning position of the robot at each moment, motion distortion compensation is performed on each frame of laser point cloud data to obtain compensated point cloud data of each frame; wherein, one frame of laser point cloud data corresponds to at least two moments, and one frame of compensated point cloud data corresponds to one moment;
[0211] Based on the compensated point cloud data of each frame, inter-frame matching is performed to obtain the inter-frame matching posture of the robot at each moment.
[0212] Optionally, relocating the matching subunit is specifically used for:
[0213] Based on the dead reckoning position of the robot at each moment, motion distortion compensation is performed on each frame of laser point cloud data to obtain compensated point cloud data of each frame; wherein, one frame of laser point cloud data corresponds to at least two moments, and one frame of compensated point cloud data corresponds to one moment;
[0214] Based on the dead reckoning position of the robot at each moment and the compensated point cloud data of each frame, the predicted point cloud data of the robot at each moment is obtained;
[0215] Based on the predicted point cloud data of the robot at each moment, the historical subgraphs corresponding to the predicted point cloud data of the robot at each moment are searched from the map data;
[0216] The predicted point cloud data of the robot at each moment is relocated and matched with the historical subgraphs corresponding to the predicted point cloud data of the robot at each moment to obtain the relocated matching posture of the robot at each moment.
[0217] Optionally, the robot positioning device further includes:
[0218] A prediction unit, used for obtaining second prediction data of the robot at each moment based on the inertial measurement unit data;
[0219] An observation unit, used for obtaining second observation data of the robot at each moment based on the optimized posture and wheel speed meter data of the robot at each moment;
[0220] The correction unit is used to adopt a filtering algorithm to correct the second predicted data of the robot at each moment based on the second observation data of the robot at each moment, so as to obtain the target posture of the robot at each moment.
[0221] Optionally, the second predicted data includes a second predicted posture, a second predicted position, and a second predicted speed; the second observed data includes a second observed posture, an observed position, and a second observed speed;
[0222] Observation unit, specifically used for:
[0223] Based on the optimized posture of the robot at each moment, the second observation posture and observation position of the robot at each moment are obtained;
[0224] Based on the wheel speed meter data, the second observed speed of the robot at each moment is obtained.
[0225] The robot positioning device provided in this embodiment belongs to the same application concept as the robot positioning method provided in the above embodiments of this application, can execute the robot positioning method provided in any of the above embodiments of this application, and has the corresponding functional modules and beneficial effects of executing the robot positioning method. For technical details not fully described in this embodiment, please refer to the specific processing content of the robot positioning method provided in the above embodiments of this application, and will not be repeated here.
[0226] The functions implemented by the above-mentioned track calculation unit 1301, laser matching unit 1302 and posture optimization unit 1303 can be implemented by the same or different processors respectively, and the embodiments of the present application are not limited thereto.
[0227] It should be understood that the units in the above devices can be implemented in the form of a processor calling software. For example, the device includes a processor, the processor is connected to a memory, and instructions are stored in the memory. The processor calls the instructions stored in the memory to implement any of the above methods or realize the functions of each unit of the device, wherein the processor can be a general-purpose processor, such as a CPU or a microprocessor, etc., and the memory can be a memory in the device or a memory outside the device. Alternatively, the units in the device can be implemented in the form of hardware circuits, and the functions of some or all units can be realized by designing the hardware circuits. The hardware circuit can be understood as one or more processors; for example, in one implementation, the hardware circuit is an ASIC, and the functions of some or all of the above units are realized by designing the logical relationship of the components in the circuit; for another example, in another implementation, the hardware circuit can be implemented by PLD, taking FPGA as an example, which can include a large number of logic gate circuits, and the connection relationship between the logic gate circuits is configured by the configuration file, so as to realize the functions of some or all of the above units. All units of the above devices can be implemented in the form of a processor calling software, or in the form of hardware circuits, or in part by a processor calling software, and the remaining part is implemented in the form of hardware circuits.
[0228] In an embodiment of the present application, a processor is a circuit with the ability to process signals. In one implementation, the processor may be a circuit with the ability to read and run instructions, such as a CPU, a microprocessor, a GPU, or a DSP; in another implementation, the processor may implement certain functions through the logical relationship of a hardware circuit, and the logical relationship of the hardware circuit is fixed or reconfigurable, such as a hardware circuit implemented by an ASIC or PLD, such as an FPGA. In a reconfigurable hardware circuit, the process of the processor loading a configuration document to implement the hardware circuit configuration can be understood as the process of the processor loading instructions to implement the functions of some or all of the above units. In addition, it can also be a hardware circuit designed for artificial intelligence, which can be understood as an ASIC, such as an NPU, TPU, DPU, etc.
[0229] It can be seen that each unit in the above device can be one or more processors (or processing circuits) configured to implement the above method, such as: CPU, GPU, NPU, TPU, DPU, microprocessor, DSP, ASIC, FPGA, or a combination of at least two of these processor forms.
[0230] In addition, all or part of the units in the above device can be integrated together, or can be implemented independently. In one implementation, these units are integrated together and implemented in the form of a SOC. The SOC may include at least one processor for implementing any of the above methods or implementing the functions of each unit of the device. The type of the at least one processor may be different, for example, including a CPU and an FPGA, a CPU and an artificial intelligence processor, a CPU and a GPU, etc.
[0231] Exemplary Electronic Devices
[0232] An embodiment of the present application provides an electronic device, see Fig.14 As shown, the device includes:
[0233] Memory 200 and processor 210;
[0234] The memory 200 is connected to the processor 210 and is used to store programs;
[0235] The processor 210 is used to implement the robot positioning method disclosed in any of the above embodiments by running the program stored in the memory 200.
[0236] Specifically, the electronic device may further include: a bus, a communication interface 220 , an input device 230 and an output device 240 .
[0237] The processor 210, the memory 200, the communication interface 220, the input device 230 and the output device 240 are connected to each other via a bus.
[0238] A bus may include a pathway that transfers information between components of a computer system.
[0239] The processor 210 may be a general-purpose processor, such as a general-purpose central processing unit (CPU), a microprocessor, etc., or an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the scheme of the present invention. It may also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.
[0240] The processor 210 may include a main processor, and may also include a baseband chip, a modem, and the like.
[0241] The memory 200 stores a program for executing the technical solution of the present invention, and may also store an operating system and other key services. Specifically, the program may include a program code, and the program code includes a computer operation instruction. More specifically, the memory 200 may include a read-only memory (ROM), other types of static storage devices that can store static information and instructions, a random access memory (RAM), other types of dynamic storage devices that can store information and instructions, a disk storage, a flash, and the like.
[0242] The input device 230 may include a device for receiving data and information input by a user, such as a keyboard, a mouse, a camera, a scanner, a light pen, a voice input device, a touch screen, a pedometer, or a gravity sensor.
[0243] Output device 240 may include devices that allow information to be output to a user, such as a display screen, printer, speaker, etc.
[0244] The communication interface 220 may include any transceiver or the like to communicate with other devices or communication networks, such as Ethernet, Radio Access Network (RAN), Wireless Local Area Network (WLAN), etc.
[0245] The processor 210 executes the program stored in the memory 200 and calls other devices, which can be used to implement each step of any robot positioning method provided in the above embodiments of the present application.
[0246] Exemplary computer program products and storage media
[0247] In addition to the above-mentioned methods and devices, an embodiment of the present application may also be a computer program product, which includes computer program instructions, which, when executed by a processor, enable the processor to execute the steps of the robot positioning method according to various embodiments of the present application described in any of the above embodiments of this specification.
[0248] The computer program product may be written in any combination of one or more programming languages to write program codes for performing the operations of the embodiments of the present application, including object-oriented programming languages, such as Java, C++, etc., and conventional procedural programming languages, such as "C" language or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as an independent software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server.
[0249] In addition, the embodiment of the present application may also be a storage medium, on which a computer program is stored, and the computer program is executed by a processor to execute the steps of the robot positioning method according to various embodiments of the present application described in any of the above embodiments of this specification, and specifically the following steps may be implemented:
[0250] Step 301, based on the inertial measurement unit data and the wheel speed meter data, obtain the dead reckoning posture of the robot at each moment.
[0251] Step 302: Based on the laser point cloud data, the initial position and posture of the robot at each moment are obtained.
[0252] Step 303, constructing relative motion constraints based on the dead reckoning posture of the robot at each moment, optimizing the initial posture of the robot at each moment, and obtaining the optimized posture of the robot at each moment.
[0253] For the aforementioned method embodiments, for the sake of simplicity, they are all described as a series of action combinations, but those skilled in the art should be aware that the present application is not limited by the order of the actions described, because according to the present application, some steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present application.
[0254] It should be noted that each embodiment in this specification is described in a progressive manner, and each embodiment focuses on the differences from other embodiments, and the same or similar parts between the embodiments can be referred to each other. For the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.
[0255] The steps in the methods of each embodiment of the present application can be adjusted in order, combined and deleted according to actual needs, and the technical features recorded in each embodiment can be replaced or combined.
[0256] The modules and sub-modules in the devices and terminals in the various embodiments of the present application can be combined, divided and deleted according to actual needs.
[0257] In the several embodiments provided in the present application, it should be understood that the disclosed terminals, devices and methods can be implemented in other ways. For example, the terminal embodiments described above are only schematic, for example, the division of modules or submodules is only a logical function division, and there may be other division methods in actual implementation, for example, multiple submodules or modules can be combined or integrated into another module, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or modules, which can be electrical, mechanical or other forms.
[0258] The modules or submodules described as separate components may or may not be physically separated, and the components of the modules or submodules may or may not be physical modules or submodules, that is, they may be located in one place, or they may be distributed on multiple network modules or submodules. Some or all of the modules or submodules may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0259] In addition, each functional module or submodule in each embodiment of the present application may be integrated into one processing module, or each module or submodule may exist physically separately, or two or more modules or submodules may be integrated into one module. The above-mentioned integrated modules or submodules may be implemented in the form of hardware or in the form of software functional modules or submodules.
[0260] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in the above description according to function. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0261] The steps of the method or algorithm described in conjunction with the embodiments disclosed herein may be implemented directly by hardware, software units executed by a processor, or a combination of the two. The software units may be placed in a random access memory (RAM), a memory, a read-only memory (ROM), an electrically programmable ROM, an electrically erasable programmable ROM, a register, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
[0262] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the presence of other identical elements in the process, method, article or device including the elements.
[0263] The above description of the disclosed embodiments enables those skilled in the art to implement or use the present application. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application will not be limited to the embodiments shown herein, but will conform to the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A robot positioning method, characterized in that: include: Based on the inertial measurement unit data and wheel speed meter data, the dead reckoning position of the robot at each moment is obtained; Based on the laser point cloud data, the initial position of the robot at each moment is obtained; Relative motion constraints are constructed based on the dead reckoning posture of the robot at each moment, and the initial posture of the robot at each moment is optimized to obtain the optimized posture of the robot at each moment.
2. The robot positioning method according to claim 1, characterized in that: The method of obtaining the dead reckoning position of the robot at each moment based on the inertial measurement unit data and the wheel speed meter data includes: Based on the inertial measurement unit data, the first prediction data of the robot at each moment is obtained: Based on the wheel speed meter data, the first observation data of the robot at each moment is obtained; Based on the first observation data of the robot at each moment, the first prediction data of the robot at each moment is corrected to obtain the dead reckoning position and posture of the robot at each moment.
3. The robot positioning method according to claim 2, characterized in that: The inertial measurement unit data includes acceleration measurement values and angular velocity measurement values; the first predicted data includes a first predicted attitude, a first predicted position and a first predicted velocity; The obtaining of first prediction data of the robot at each moment based on the inertial measurement unit data includes: Based on the first predicted posture and angular velocity measurement value of the robot at the current moment, obtaining the first predicted posture of the robot at the next moment; Based on the first predicted position, the first predicted speed, the first predicted posture and the acceleration measurement value of the robot at the current moment, obtaining the first predicted position of the robot at the next moment; Based on the first predicted speed, the first predicted posture and the acceleration measurement value of the robot at the current moment, the first predicted speed of the robot at the next moment is obtained.
4. The robot positioning method according to claim 2, characterized in that: The wheel speed meter data includes the number of pulses; the first observation data includes a first observation posture and a first observation speed; The obtaining of the first observation data of the robot at each moment based on the wheel speed meter data includes: Based on the pulse calibration value and the pulse number, the first observed speed of the robot at each moment is obtained; Based on the wheelbase and the number of pulses, the movement angle of the robot at each moment is obtained, and based on the movement angle of the robot at each moment, the first observation posture of the robot at each moment is obtained.
5. The robot positioning method according to claim 1, characterized in that: The relative motion constraints are constructed based on the dead reckoning posture of the robot at each moment, including: Based on the laser point cloud data, the inter-frame matching pose of the robot at each moment is obtained; Based on the laser point cloud data and map data, the robot's relocation matching posture at each moment is obtained; Relative motion constraints are constructed based on the robot's dead reckoning pose at each moment, inter-frame matching pose, and relocalization matching pose.
6. The robot positioning method according to claim 5, characterized in that: The method of obtaining the inter-frame matching posture of the robot at each moment based on the laser point cloud data includes: Based on the dead reckoning position of the robot at each moment, motion distortion compensation is performed on each frame of laser point cloud data to obtain compensated point cloud data of each frame; wherein, one frame of laser point cloud data corresponds to at least two moments, and one frame of compensated point cloud data corresponds to one moment; Based on the compensated point cloud data of each frame, inter-frame matching is performed to obtain the inter-frame matching posture of the robot at each moment.
7. The robot positioning method according to claim 5, characterized in that: The method of obtaining the repositioning matching posture of the robot at each moment based on the laser point cloud data and the map data includes: Based on the dead reckoning position of the robot at each moment, motion distortion compensation is performed on each frame of laser point cloud data to obtain compensated point cloud data of each frame; wherein, one frame of laser point cloud data corresponds to at least two moments, and one frame of compensated point cloud data corresponds to one moment; Based on the dead reckoning position of the robot at each moment and the compensated point cloud data of each frame, the predicted point cloud data of the robot at each moment is obtained; Based on the predicted point cloud data of the robot at each moment, the historical subgraphs corresponding to the predicted point cloud data of the robot at each moment are searched from the map data; The predicted point cloud data of the robot at each moment is relocated and matched with the historical subgraphs corresponding to the predicted point cloud data of the robot at each moment to obtain the relocated matching posture of the robot at each moment.
8. The robot positioning method according to claim 1, characterized in that: The method further comprises: Based on the inertial measurement unit data, obtaining second prediction data of the robot at each moment; Based on the optimized posture and wheel speed meter data of the robot at each moment, the second observation data of the robot at each moment is obtained; A filtering algorithm is used to correct the second predicted data of the robot at each moment based on the second observation data of the robot at each moment, so as to obtain the target position and posture of the robot at each moment.
9. The robot positioning method according to claim 8, characterized in that: The second predicted data includes a second predicted posture, a second predicted position, and a second predicted speed; the second observed data includes a second observed posture, an observed position, and a second observed speed; The method of obtaining the second observation data of the robot at each moment based on the optimized posture and wheel speed meter data of the robot at each moment includes: Based on the optimized posture of the robot at each moment, the second observation posture and observation position of the robot at each moment are obtained; Based on the wheel speed meter data, the second observed speed of the robot at each moment is obtained.
10. A robot positioning device, characterized in that: include: A dead reckoning unit, used to obtain the dead reckoning posture of the robot at each moment based on the inertial measurement unit data and wheel speed meter data; The laser matching unit is used to obtain the initial position and posture of the robot at each moment based on the laser point cloud data; The posture optimization unit is used to construct relative motion constraints based on the robot's trajectory dead reckoning posture at each moment, optimize the robot's initial posture at each moment, and obtain the robot's optimized posture at each moment.
11. An electronic device, characterized in that: including memory and processor; The memory is connected to the processor and is used to store programs; The processor is used to implement the robot positioning method according to any one of claims 1 to 9 by running the program in the memory.
12. A storage medium, characterized in that: The storage medium stores a computer program, and when the computer program is executed by the processor, the robot positioning method according to any one of claims 1 to 9 is implemented.
13. A computer program product, characterized in that The method comprises computer program instructions, which, when executed by a processor, enable the processor to perform the robot positioning method according to any one of claims 1 to 9.