A Pose Calculation Method for a Rolling Robot with Multiple LiDARs
By using multi-lidar and IMU on the rolling robot, point cloud data processing and pose calculation are solved, and high-precision and stable environment perception and pose calculation are achieved.
Patent Information
- Application Number
- CN202211237794.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-10-09
- Publication Date
- 2025-05-27
- Estimated Expiration
- 2042-10-09
AI Technical Summary
Due to its special form, the rolling robot cannot achieve 360° environment perception and is unstable during the movement, resulting in severe position change, affecting the quality of the lidar point cloud and the accuracy and stability of position calculation.
Multi-lidar and inertial measurement devices (IMU) are used to establish the corresponding relationship between clock synchronization and point cloud data and IMU data, and three-dimensional point cloud projection is carried out on two-dimensional planes, image sequence is constructed, clustering and neural network are used for point cloud processing, calculate the weights of each radar, and perform pose calculations under cluster constraints.
It realizes continuous stability of environmental perception, reduces the computing overhead of point cloud processing, improves the accuracy and stability of position calculation, and avoids the problems of missing field of view of the laser radar and the impact of dynamic objects.
Smart Images

Figure CN115523925B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of environmental perception of robot technology, and particularly relates to a pose calculation method for a rolling robot with multiple lidars. Background Art
[0002] A robot is an intelligent device that simulates humans to complete various instructions through manual or automatic control. Robots can replace humans to perform various complex and delicate operations, and can also replace humans to enter complex and dangerous environments for exploration operations to ensure personnel safety. Existing robots include fixed robots that are fixedly installed and operate within a certain area, and mobile robots that can move. The mobile robots can move through structures such as mechanical legs, crawlers, and rollers. Mobile robots can replace humans to enter some complex and dangerous scenarios, such as spaces with poisonous gases, fire scenes, etc., to collect signals and guide rescue.
[0003] A rolling robot is a mobile robot that relies on a rotating body for rotational movement. The main rotating body used for rolling movement can be any shape suitable for rolling, such as a sphere, ellipsoid, toroid, cylinder, wheel, drum, other similar shapes, or a combination thereof.
[0004] Due to the special morphological characteristics of the above-mentioned rolling robot, the lidar cannot be installed at the top position like a traditional robot to sense the 360° environment around the robot, but can only be installed on the side of the ball through fixed connection or a moving platform, resulting in occlusion of the radar field of view; and the above-mentioned rolling robot is unstable during movement and is prone to sliding, skidding, shaking or similar situations during movement, with drastic pose changes, resulting in the loss of effective point clouds for sensing the external environment by a single radar, and cannot meet the requirement of continuously and stably sensing the external environment.
[0005] The pose calculation of a mobile robot is a basic function for the mobile robot to achieve autonomous navigation and planning, and is of great significance for the mobile robot platform. Due to its advantages such as long sensing distance, accurate ranging, and small influence by light changes, multi-line mechanical lidars are very commonly used in the field of mobile robot pose calculation. However, due to the large amount of data and its own characteristics of lidar sensors, there are problems such as high computational overhead and high latency, and dynamic objects have always been a thorny problem in pose calculation, affecting the accuracy and stability of pose calculation. Summary of the Invention
[0006] The present invention provides a pose calculation method for a rolling robot with multiple lidars, which is used to solve the defects of missing lidar field of view and poor point cloud quality caused by the structure and motion characteristics of the rolling robot, and achieve continuous and stable environmental perception; solve the defects of large overhead and high latency brought by the lidar data volume and its own characteristics, and the influence of dynamic objects on the pose calculation effect; reduce the computational overhead of point cloud processing, and improve the accuracy and stability of pose calculation.
[0007] The present invention provides a pose calculation method for a rolling robot with multiple lidars, including the following steps:
[0008] Step 1: Complete the clock synchronization between lidars, between the lidar and the host, and between the lidar and the IMU.
[0009] Step 2: Establish the corresponding relationship between the point cloud data and the IMU data according to the timestamp information of the point cloud data obtained by each lidar and the timestamp information of the IMU data.
[0010] Step 3: Project the point clouds obtained by each lidar, that is, project the three-dimensional point cloud onto a two-dimensional plane with a fixed size, and construct image sequences respectively; that is, establish an image sequence for the data obtained by each lidar.
[0011] Step 4: Divide each image in each image sequence described in Step 3 into k regions on average, randomly select 1 pixel point in each region as the clustering starting point, use a search algorithm for cluster growth, and use a hash table to construct the mapping relationship between clusters and pixels.
[0012] Step 5: Perform outlier cluster filtering and update the cluster mapping hash table.
[0013] Step 6: For the two latest adjacent frames of images in each sequence described in Step 3, perform differential calculation pixel by pixel and channel by channel to obtain a differential image, and add it to the corresponding differential image sequence.
[0014] Step 7: Solve the pose transformation between the two frames corresponding to the differential image according to the IMU data.
[0015] Step 8: Input each differential image and the corresponding pose transformation into a neural network for inference. The output of the network is the softmax layer. Obtain the category of the corresponding pixel point according to the network output. The categories of the pixel points include ground points, dynamic points, and available static points. Delete all ground points in all clusters.
[0016] Step 9: Judge the category of the cluster according to the category of the pixels in each cluster through a discrimination criterion. If the cluster is a dynamic point cluster or a fuzzy point cluster, delete the cluster.
[0017] Step 10: Merge each cluster class after deleting the dynamic cluster classes, count the total number of available pixel points of all cluster classes for each lidar finally, and calculate the weight of each lidar according to the total number of available pixel points; that is, calculate the weight according to the proportion of the number of available points of each lidar in the total number of available points of all lidars.
[0018] Step 11: Use the data of each lidar and the corresponding IMU data to calculate the pose under the cluster class constraint, and perform fusion according to the above weights to obtain the final pose.
[0019] Preferably, step 2 includes the following steps:
[0020] Step 2.1: After synchronization is completed, add the subsequently obtained IMU information to the IMU data sequence, and the IMU data sequence includes timestamps.
[0021] Step 2.2: Sequentially determine whether the timestamp of the point cloud data obtained by the lidar is greater than the timestamp of the latest IMU data or less than the timestamp of the initial IMU data. If so, the point cloud data is unmatched data and is filtered out.
[0022] Step 2.3: For the filtered point cloud data, use the linear interpolation or spherical interpolation method to find the corresponding IMU data.
[0023] Preferably, the projection in step 3 is the front view projection, and each pixel point contains three channels, namely reflection intensity, depth, and height information.
[0024] Preferably, step 4 includes the following steps:
[0025] Step 4.1: Initialize the unclustered pixel set using the projection image, and initialize an empty cluster class mapping hash table; divide the projection image into k regions on average, and randomly select 1 pixel point from each region as the clustering starting point.
[0026] Step 4.2: Adopt the depth channel to perform Euclidean clustering on the clustering starting point in parallel, obtain the pixel points of the same cluster class, add them to the corresponding cluster class mapping hash table, and delete them from the unclustered pixel set.
[0027] Step 4.3: For each cluster class pixel point obtained in step 4.2, respectively take the pixel points farthest from the clustering starting point in the up, down, left, and right directions as the new clustering starting points, and execute step 4.2 in the unclustered pixel set until the unclustered pixel set is stable, where all pixel points are classified into the outlier cluster class.
[0028] Preferably, the filtering method in step 5 is: Delete the cluster classes containing fewer pixel points than the point threshold as outlier cluster classes. The point threshold is a preset parameter.
[0029] Preferably, the neural network in step 8 needs to be trained first and then perform inference. The training process is as follows:
[0030] Step 8.1: Collect the lidar point cloud and the corresponding pose transformation data set during the movement of the rolling robot in multiple different scenarios, and label the categories of each pixel point in the point cloud to form training, test, and validation data sets; each pixel point here is also obtained through the same projection and difference processing as in steps 3 and 6;
[0031] Step 8.2: Add 6 channels related to the IMU pose transformation information to the difference images in two adjacent frames of training data. The 6 channels are yaw, pitch, roll, x, y, and z respectively. Yaw is the yaw angle, pitch is the pitch angle, roll is the roll angle, and x, y, and z are three-dimensional coordinates; the increased difference images are batch-processed through several downsampling units. Each downsampling unit includes a convolutional layer, a BN layer, a RELU activation function, and a pooling layer connected in sequence. The convolutional layer parameters in different downsampling units are different; generally, there are 4 - 9 downsampling units; in the downsampling unit, the data output by the convolutional layer first passes through the BN layer to normalize the data distribution; the data output by the BN layer passes through the RELU activation function and then enters the pooling layer to eliminate poor features, and then enters the next downsampling unit;
[0032] Step 8.3: The features after multiple downsamplings are first upsampled and then processed again according to step 8.2, and repeated multiple times until the width and height are restored to the input size; the upsampling is specifically achieved by inputting the features into subsequent network layers with increasing output data dimensions connected in series;
[0033] Step 8.4: Input the image features into the softmax layer to output the per-pixel segmentation result;
[0034] Step 8.5: Calculate the loss function and update the network parameters through backpropagation; end the training when the loss function value does not decrease for several consecutive rounds;
[0035] During inference and testing, the data of two adjacent frames are directly input into the trained neural network, processed according to steps 8.2 - 8.4, and finally the per-pixel segmentation result can be obtained.
[0036] Preferably, the discrimination criterion in step 9 is as follows: Count the number n1 of dynamic points and the number n2 of available static points in each cluster, calculate the relative ratio P = n1 / n2. If P is greater than 2, then determine that this cluster is a dynamic point cluster; if P is less than 0.5, then determine that this cluster is an available static point cluster; if P is between 0.5 and 2, then determine that this cluster is a fuzzy point cluster; delete all dynamic point clusters and fuzzy point clusters.
[0037] Preferably, the merging of the cluster classes after deleting the dynamic cluster classes in step 10 includes the following steps:
[0038] Step 10.1.1: Based on the available point clusters obtained in step 9 and the cluster class mapping hash table obtained in step 6, calculate the centroid coordinates of each cluster class;
[0039] Step 10.1.2: Calculate the intersection-over-union ratio between each cluster class;
[0040] Step 10.1.3: If the intersection-over-union ratio between the cluster classes is greater than the intersection-over-union ratio threshold, or the distance between the centroids is less than the centroid distance threshold, then they are regarded as the same cluster class and merged;
[0041] Step 10.1.4: For the merged cluster classes obtained in step 10.1.3, repeat steps 10.1.1 to 10.1.3 until no new cluster classes are merged, and the cluster class merging is completed.
[0042] Preferably, the pose calculation in step 11 refers to using a point cloud registration algorithm (such as the ICP algorithm) to perform feature point matching on the point cloud data of two adjacent frames and obtain a pose matrix; the cluster class constraint means that the feature point matching of the point cloud data of two adjacent frames is only performed within the same cluster class obtained in step 10; the radar fusion algorithm is to perform weighted averaging according to the weights obtained in step 10.
[0043] Preferably, several groups of lidars are provided on the surface of the housing of the rolling robot with multiple lidars. Each lidar group includes two lidars. There is a common viewing area for the two lidars in the same camera group. At least one inertial measurement device for obtaining angular pose information is mounted on the robot; the lidars are arranged outside the housing, and the vertical field of view of the lidars must satisfy that when the robot is in different poses, the ground and the point cloud in the front must appear in the field of view of at least one radar respectively.
[0044] The beneficial effects brought by this solution are as follows: It avoids the defects of missing lidar field of view and poor point cloud quality caused by the structure and motion characteristics of the rolling robot, and realizes continuous and stable environmental perception; it solves the defects of large overhead, high latency caused by the lidar data volume and its own characteristics, and the influence of dynamic objects on the pose calculation effect; it reduces the computational overhead of point cloud processing and improves the accuracy and stability of pose calculation. BRIEF DESCRIPTION OF THE DRAWINGS
[0045] Figure 1 is a flowchart of the present invention;
[0046] Figure 2 is a schematic diagram of the overall structure of the rolling robot platform of the present invention;
[0047] In the figure: 1, lidar; 2, rollable spherical housing; 3, swing block. Detailed Implementation Manner
[0048] To make the objectives, technical solutions and advantages of the present invention clearer, the technical solutions in the present invention will be clearly and completely described below with reference to the accompanying drawings in the present invention. Apparently, the described embodiments are some, but not all, of the embodiments of the present invention. All other embodiments obtained by those of ordinary skill in the art based on the embodiments in the present invention without making creative efforts shall fall within the protection scope of the present invention.
[0049] The following describes in detail the specific implementation of the present invention with reference to specific embodiments.
[0050] The present invention provides a method for calculating the pose of a rolling robot with multiple lidars. Figure 1 is a schematic flowchart of a method for calculating the pose of a rolling robot with multiple lidars according to the present invention, as Figure 1 shown, the method includes:
[0051] (1) Hardware synchronization and data preprocessing, projecting the point cloud data into a two-dimensional image.
[0052] (1.1) Complete the clock synchronization between the radars, between the radar and the host, and between the radar and the IMU, and establish the correspondence between the point cloud data and the IMU data according to the timestamp information of each lidar and the timestamp information of the IMU data;
[0053] Here, the correspondence between the point cloud data and the IMU data can be established by using the linear interpolation method. First, it is determined whether the timestamp of this frame of point cloud data is greater than the timestamp of the latest IMU data or less than the timestamp of the initial IMU data. If so, this frame of point cloud data cannot match the IMU data; if not, the two frames of IMU data (with timestamps t 1 、t 2 ) closest to the timestamp of this frame of point cloud data are used to interpolate and calculate the attitude quaternion to obtain, where q 1 、q 2 are the quaternions of the attitude parts of the two frames of IMU data before and after respectively; calculate the displacement where x 1 、v 1 、a 1 are the displacement value, speed value and acceleration value after removing the influence of bias and gravitational acceleration of the first frame of IMU data respectively, assuming that the robot moves in a uniformly accelerated form between the two frames. The method for establishing the correspondence between the point cloud data and the IMU data in the embodiments of the present invention is not specifically limited, and can be specifically set according to the actual situation.
[0054] (1.2) Project the point clouds of each radar obtained after synchronization. Specifically, given a point cloud C of the radar i , for each point P ij , according to the formula
[0055]
[0056] Get P respectively ij The horizontal azimuth and elevation azimuth in three-dimensional space. The embodiment of the present invention does not specifically limit the coordinate range on the two-dimensional plane of the image, which can be set according to the radar model and system performance. Considering that the x coordinate range on the two-dimensional plane of the image is [0, a x ], the y coordinate range is [0,a y ],a x 、a y is a positive integer. According to the formula: P ij The discretized coordinates on the image are
[0057]
[0058] P ij The three channels of the pixel are P ij Distance to origin
[0059]
[0060] P ij Reflection intensity information I ij , P ij The height z ij , the above three channels are discretized according to the range of [0,255], where the distance exceeds D max When ij Channel is set to 255, height exceeds Z max When ij The channel is set to 255, and the rest of the data is distributed in [0,254]. max and Z max The value of is not specifically limited and can be set according to the radar model and actual application scenario. The obtained RGB image is added to the corresponding image sequence.
[0061] (2) Construct image clusters and obtain differential images.
[0062] (2.1) Initialize the set of unclustered pixels using the projection image, and initialize an empty cluster mapping hash table. The key value of the hash table is the cluster ID, and the value is the pixel points in the image. All pixel points included in a cluster can be retrieved by its ID. Divide the projection image into k regions on average, and randomly select one pixel point from each region as the clustering starting point. In the embodiments of the present invention, the value of k is not specifically limited and can be set according to the actual situation;
[0063] (2.2) Using the three channels described in step (1.2), perform clustering on the clustering starting points in step (2.1) in parallel. The clustering condition is: calculate the distance between the pixel point P ij in the same region as the clustering starting point P n (n = 1,..., k) and the difference in reflection intensity ΔI between P ij and the clustering starting point P n = abs(I ij - I ij ). When both d n < d ij < d 0 and ΔI ij < I 0 are satisfied, it is determined to be in the same cluster. In the embodiments of the present invention, the values of d 0 and I 0 are not specifically limited and can be set according to the actual situation. Obtain the pixel points in the same cluster, add them to the corresponding cluster mapping hash table, and delete them from the set of unclustered pixels;
[0064] (2.3) For each cluster of pixel points obtained in step (2.2), respectively take the pixel points farthest from the clustering starting point in the four directions of up, down, left, and right as the new clustering starting points, and execute step (2.2) in the set of unclustered pixels until the set of unclustered pixels is stable, where all pixel points are classified into the outlier cluster.
[0065] (2.4) For the latest adjacent two frames of images in each sequence described in step (1.2), perform differencing pixel by pixel and channel by channel to obtain a difference image, and add it to the corresponding difference image sequence;
[0066] (3) Obtain the pose transformation between two frames according to the IMU data. The pose transformations of the front and rear frames relative to the navigation coordinate system at the initial moment are respectively represented in the form of transformation matrices as T 1 and T 2 ,
[0067]
[0068] where R 1 , R 2They are the rotation matrices of the navigation coordinate systems of the front and rear frames relative to the initial moment; t 1 and t 2 are the translation transformations of the front and rear frames relative to the navigation coordinate system at the initial moment; α, β, and γ are the Euler angles (yaw, pitch, roll) of the front and rear frames relative to the initial moment, which are obtained by converting the quaternions included in the IMU data. Specifically, Eigen library functions can be used, or other conversion methods can also be adopted. The pose transformation between two frames
[0069] It should be noted that during the calculation of the transformation matrix, the rotation matrix R is obtained by multiplying the rotations in three directions in sequence: R = R Z (α)R Y (β)R X (γ), where R Z (α), R Y (β), and R Z (γ) are the rotation matrices around the Z-axis, Y-axis, and X-axis respectively:
[0070]
[0071] The multiplication order of the three matrices is not fixed and can be determined according to the specified coordinate axis directions. In the embodiment of this method, the order of XYZ is taken, but the specification of this multiplication order is not specifically limited.
[0072] (4) Input each difference image and the corresponding pose transformation into the neural network for inference to obtain the category of the pixel points.
[0073] (5) Judge the categories of each cluster, perform cluster filtering and cluster merging, and count the radar weights.
[0074] (5.1) Judge the categories of each cluster and filter the clusters. According to the categories of each pixel point obtained in step (4), count the number of dynamic points n 1 and the number of available static points n 2 in each cluster, and calculate the relative ratio Set parameters a and b. If P > a, then judge that this cluster is a dynamic point cluster; if P < b, then judge that this cluster is an available static point cluster; if b < P < a, then judge that this cluster is a fuzzy point cluster, that is, it cannot be accurately judged whether this cluster is an available static point cluster for pose calculation. To ensure the accuracy of subsequent pose calculation, both the dynamic point cluster and the fuzzy point cluster are classified as clusters that need to be filtered. The values of a and b are preferably 0.5 and 2, and can be specifically set according to the actual situation.
[0075] (5.2) Cluster merging. It includes the following steps:
[0076] (5.2.1) Based on the available point clusters obtained by filtering in (5.1) and the cluster class mapping hash table obtained in step (2), calculate the centroid coordinates of each cluster class
[0077] (m = 1, …, k; n m is the total number of pixel points contained in the m-th cluster class)
[0078] (5.2.2) Calculate the intersection-over-union ratio between each cluster class
[0079] (5.2.3) Set parameters IoU 0 and D 0 , if the intersection-over-union ratio IoU between cluster classes AB > IoU 0 , or the distance D between centroids PAPB < D 0 , then consider them as the same cluster class and merge. In the embodiments of the present invention, the values of IoU 0 and D 0 are not specifically limited, and can be specifically set according to the actual situation. ;
[0080] (5.2.4) Re-perform steps (5.2.1) to (5.2.3) on the merged cluster classes obtained in step (5.2.3) until no new cluster class mergers occur, and complete the cluster class merger.
[0081] (5.2.5) Calculate the weights for each merged cluster class obtained in step (5.2.4) E i is the number of available static pixel points contained in the i-th cluster class).
[0082] (6) Perform pose calculation under cluster class constraints, and perform fusion according to the weights to obtain the final pose.
[0083] The cluster class constraints described here refer to that in the feature point matching between two adjacent frames in the pose calculation step, it is only performed within the same cluster class obtained in step (5), that is, a single pixel point only performs feature matching with other pixel points in the same cluster class as it, and does not perform feature matching with the remaining pixel points in a different cluster class. This can greatly reduce the probability of false matching, improve the accuracy, and greatly reduce the required computational amount, improving the program operation efficiency. The pose matrix calculated by each radar is H_i. According to the weights of each radar calculated in step (5), fuse the calculation results of each radar. The weight fusion formula: (H i is the pose matrix calculated by each radar, C i(where the weights of each radar are involved). This method can incorporate all the available static points obtained after filtering all the radars into the calculation, ensuring the accuracy of pose calculation. Moreover, since multiple radars participate in the calculation together, it can ensure the robustness of pose calculation when the rolling robot shakes in various directions during the movement process, and has strong adaptability.
[0084] The rolling robot with multiple lidars of the present invention is as Figure 2 shown. The platform is characterized in that: (1) Several groups of lidars are arranged on the surface of the housing. Each lidar group includes two lidars. There is a common viewing area for the two lidars in the same camera group. At least one inertial measurement device for obtaining angular pose information is carried on the robot. (2) The lidars are arranged outside the housing, and the vertical field of view of the lidars must satisfy that when the robot is in different poses, the ground and the front point clouds should appear in the field of view of at least one radar respectively.
[0085] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention and are not intended to limit them. Although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions described in the foregoing embodiments, or perform equivalent replacements for some of the technical features. However, these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for calculating the pose of a rolling robot with multiple lidars, characterized in that: It includes the following steps: Step 1: Complete the clock synchronization between lidars, between lidars and the host, and between lidars and IMU. Step 2: According to the timestamp information of the point cloud data obtained by each lidar and the timestamp information of the IMU data, establish the corresponding relationship between the point cloud data and the IMU data. Step 3: Project the point clouds obtained by each lidar, that is, project the three-dimensional point cloud onto a two-dimensional plane with a fixed size, and construct image sequences respectively. Step 4: Divide each image in each of the image sequences in Step 3 into k regions on average, randomly select 1 pixel point in each region as the clustering starting point, use the search algorithm for cluster growth, and use a hash table to construct the mapping relationship between clusters and pixels. Step 5: Perform outlier cluster filtering and update the cluster mapping hash table. Step 6: For the two latest adjacent frames of images in each of the sequences in Step 3, perform differential calculation pixel by pixel and channel by channel to obtain the differential image, and add it to the corresponding differential image sequence. Step 7: According to the IMU data, solve the pose transformation between the two frames corresponding to the differential image. Step 8: Input each differential image and the corresponding pose transformation into the neural network for inference respectively. The output of the network is the softmax layer. According to the network output, obtain the category of the corresponding pixel point. The categories of pixel points include ground points, dynamic points, and available static points. Delete all ground points in all clusters. Step 9: According to the category of the pixels in each cluster, judge the category of the cluster through the discrimination criterion. If the cluster is a dynamic point cluster or a fuzzy point cluster, then delete the cluster. Step 10: Merge the clusters after deleting the dynamic clusters, count the total number of available pixel points in all clusters of each lidar finally, and calculate the weights of each lidar according to the total number of available pixel points. Step 11: Use the data of each lidar and the corresponding IMU data to calculate the pose under the cluster constraint, and perform fusion according to the above weights to obtain the final pose.
2. A method for calculating the pose of a rolling robot with multiple lidars according to claim 1, characterized in that: Step 2 includes the following steps: Step 2.1: After synchronization, add the subsequent obtained IMU information to the IMU data sequence, and the IMU data sequence includes timestamps. Step 2.2: Judge in turn whether the timestamp of the point cloud data obtained by the lidar is greater than the timestamp of the latest IMU data or less than the timestamp of the initial IMU data. If so, the point cloud data is unmatched data and is filtered out. Step 2.3: For the filtered point cloud data, use the linear interpolation or spherical interpolation method to find the corresponding IMU data.
3. A method for calculating the pose of a rolling robot with multiple lidars according to claim 1, characterized in that: The projection in Step 3 is the front view projection, and each pixel point contains three channels, namely reflection intensity, depth, and height information.
4. A method for calculating the pose of a rolling robot with multiple lidars according to claim 3, characterized in that: Step 4 includes the following steps: Step 4.1: Initialize the set of unclustered pixels using the projected image, and initialize an empty cluster mapping hash table; for the projected image, divide it evenly into k regions, and randomly select 1 pixel point from each region as the clustering starting point; Step 4.2: Adopt the depth channel to perform Euclidean clustering on the clustering starting points in parallel, obtain the pixel points of the same cluster, add them to the corresponding cluster mapping hash table, and delete them from the set of unclustered pixels; Step 4.3: For each cluster of pixel points obtained in Step 4.2, respectively take the pixel points that are farthest from the clustering starting point in the up, down, left, and right directions as new clustering starting points, and execute Step 4.2 in the set of unclustered pixels until the set of unclustered pixels is stable, where all pixel points are classified into the outlier cluster.
5. A pose calculation method for a rolling robot with multiple lidars according to claim 1, characterized in that: The filtering method in Step 5 is: deleting the cluster with the number of pixel points less than the point threshold as the outlier cluster.
6. A pose calculation method for a rolling robot with multiple lidars according to claim 1, characterized in that: The neural network in Step 8 needs to be trained first and then inferred. The training process is as follows: Step 8.1: Collect the lidar point cloud and the corresponding pose transformation data set during the movement of the rolling robot in multiple different scenarios, and label the categories of each pixel point in the point cloud to form training, test, and validation data sets; Step 8.2: Add 6 channels related to the IMU pose transformation information to the difference image in the training data of two adjacent frames. The 6 channels are yaw, pitch, roll, x, y, and z respectively. Yaw is the yaw angle, pitch is the pitch angle, roll is the roll angle, and x, y, and z are three-dimensional coordinates; the increased difference image is batch-processed through several downsampling units. Each downsampling unit includes a convolutional layer, a BN layer, a RELU activation function, and a pooling layer connected in sequence. The convolutional layer parameters in different downsampling units are different; in the downsampling unit, the data output by the convolutional layer first passes through the BN layer to normalize the data distribution; the data output by the BN layer passes through the RELU activation function and then enters the pooling layer to eliminate poor features, and then enters the next downsampling unit; Step 8.3: The features after multiple downsamplings are first upsampled and then processed again according to Step 8.2, and repeated multiple times until the width and height are restored to the input size; the upsampling is specifically implemented by inputting the features into subsequent network layers with increasing output data dimensions connected in series; Step 8.4: Input the image features into the softmax layer to output the per-pixel segmentation result; Step 8.5: Calculate the loss function and update the network parameters through backpropagation; end the training when the loss function value does not decrease for several consecutive rounds; During inference and testing, the data of two adjacent frames are directly input into the trained neural network, processed according to Steps 8.2 - 8.4, and finally the per-pixel segmentation result can be obtained.
7. A pose calculation method for a rolling robot with multiple lidars according to claim 1, characterized in that: The discrimination criterion described in step 9 is as follows: count the number of dynamic points n1 and the number of available static points n2 in each cluster. Calculate the relative ratio P = n1 / n2. If P is greater than 2, then determine that this cluster is a dynamic point cluster; if P is less than 0.5, then determine that this cluster is an available static point cluster; if P is between 0.5 and 2, then determine that this cluster is a fuzzy point cluster; delete all dynamic point clusters and fuzzy point clusters.
8. A method for calculating the pose of a rolling robot with multiple lidars according to claim 1, characterized in that: The merging of each cluster after deleting the dynamic cluster classes described in step 10 includes the following steps: Step 10.1.1: Based on the available point clusters obtained in step 9 and the cluster mapping hash table obtained in step 6, obtain the centroid coordinates of each cluster. Step 10.1.2: Calculate the intersection-over-union ratio between each cluster. Step 10.1.3: If the intersection-over-union ratio between clusters is greater than the intersection-over-union ratio threshold, or the distance between centroids is less than the centroid distance threshold, then consider them as the same cluster and merge. Step 10.1.4: Re-perform steps 10.1.1 to 10.1.3 on the merged clusters obtained in step 10.1.3 until no new cluster merges occur, and complete the cluster merging.
9. A method for calculating the pose of a rolling robot with multiple lidars according to claim 1, characterized in that: The pose calculation described in step 11 refers to using a point cloud registration algorithm to perform feature point matching on two adjacent frames of point cloud data and obtain a pose matrix; the cluster constraint means that the feature point matching of two adjacent frames of point cloud data is only performed within the same cluster obtained in step 10; the lidar fusion algorithm is to perform weighted averaging according to the weights obtained in step 10.
10. A method for calculating the pose of a rolling robot with multiple lidars according to claim 1, characterized in that: Several groups of lidars are provided on the surface of the housing of the rolling robot with multiple lidars. Each lidar group includes two lidars. There is a common viewing area between the two lidars in the same camera group. At least one inertial measurement device for obtaining angular pose information is carried on the robot; the lidars are arranged outside the housing, and the vertical field of view of the lidars must satisfy that when the robot is in different poses, the ground and the point cloud in the front must appear in the field of view of at least one lidar respectively.
Citation Information
Patent Citations
Multi-view deep neural network for lidar awareness
CN112904370A
Bidirectional depth vision inertial pose estimation method combined with multi-line laser radar
CN114966734A