Method, device and apparatus for determining ground plane
By acquiring and adjusting the ground plane of the mobile device in the local map of multiple position points, the Z-axis drift problem caused by position data error in the prior art is solved, and more accurate level determination and navigation accuracy are achieved.
Patent Information
- Application Number
- CN202011080514.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-10-10
- Publication Date
- 2025-04-04
- Estimated Expiration
- 2040-10-10
AI Technical Summary
There are errors in the existing point cloud data and laser mileage calculation methods for laser radar scanning, resulting in upward drifting problems on the Z-axis during the robot movement, and in order to determine the position of the robot in the wrong flat layer in complex multi-level scenarios.
By obtaining a local map corresponding to the mobile device at multiple position points, a first ground plane of each position point is determined, and adjusting based on the proximity between the first ground planes of the multiple position points, a more accurate second ground plane is obtained to determine the level layer where the mobile device is located.
It effectively avoids determining the mobile device in the wrong plane due to pose data errors, improving the accuracy of ground plane determination, thereby enhancing navigation accuracy in complex scenarios.
Smart Images

Figure CN114415648B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of intelligent control technology, and in particular to a method, device and equipment for determining a ground plane. Background Art
[0002] With the development of intelligent control technology, mobile devices (such as robots) can move in some scenes and then complete some corresponding tasks based on the posture data. For example, the robot can determine the position and posture of the robot in the scene based on the posture data, so that it can complete the obstacle avoidance task during the movement. In addition, the robot can also be equipped with a laser radar, which can establish a global map (3D map) corresponding to the scene based on the posture data of the robot when it moves in the scene and the point cloud data scanned by the laser radar.
[0003] In related technologies, the robot may be equipped with devices such as laser radar, IMU (Inertial Measurement Unit), wheel speed sensor, etc. The laser odometer can be used to calculate the data obtained by high-frequency sensors such as IMU and wheel speed and the point cloud data scanned by the laser radar to obtain the corresponding posture data of the robot.
[0004] In the process of implementing this application, the inventors found that the related technology has at least the following problems:
[0005] Since the existing laser radar scanning point cloud data and laser mileage calculation method have certain errors, the calculated posture data of the robot during movement will have an upward drift problem on the Z axis, resulting in that in some complex multi-level scenes, the robot's current position is likely to be determined in the wrong level according to the calculated posture data. For example, the robot is actually on the second negative floor, but due to the error in the robot's posture data, the robot's position is likely to be determined on the first negative floor. Summary of the invention
[0006] The embodiments of the present application provide a method, device and apparatus for determining a ground plane, which can avoid determining a mobile device in an incorrect plane due to errors in posture data. The technical solution is as follows:
[0007] In one aspect, a method for determining a ground plane is provided, the method comprising:
[0008] Obtaining a first local map corresponding to a plurality of location points of the mobile device during movement;
[0009] Determine a first ground plane at a location of the mobile device in each first local map, and obtain a first ground plane corresponding to each location point;
[0010] Based on the proximity between the first ground planes of the multiple location points, the first ground planes of the multiple location points are adjusted to obtain the second ground planes of the multiple location points.
[0011] Optionally, the method further includes:
[0012] Acquire first position data corresponding to multiple position points of the mobile device during movement;
[0013] After adjusting the first ground planes of the plurality of position points based on the proximity between the first ground planes of the plurality of position points to obtain the second ground planes of the plurality of position points, the method further includes:
[0014] Adjusting and processing the first pose data corresponding to the multiple position points based on the second ground planes corresponding to the multiple position points to obtain second pose data corresponding to the multiple position points;
[0015] A global map is determined based on first local maps corresponding to the plurality of location points and second position data of the plurality of location points.
[0016] Optionally, the adjusting the first ground planes of the plurality of position points based on the proximity between the first ground planes of the plurality of position points to obtain the second ground planes of the plurality of position points includes:
[0017] The first position point in the detection sequence is set as the starting position point, and position points are acquired one by one in the detection sequence starting from the starting position point. Each time a position point is acquired, the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point is determined. If the determined proximity is greater than the proximity threshold, the currently acquired position point is determined as the ending position point. If the currently acquired position point is the last position point in the detection sequence, the currently acquired position point is determined as the ending position point.
[0018] After the end position point is determined, all position points from the start position point to the end position point are determined as position points corresponding to the same physical plane, the next position point of the end position in the detection time sequence is determined as the start position point, and the step of acquiring position points one by one in the detection time sequence starting from the start position point is performed;
[0019] The first ground planes corresponding to the multiple position points corresponding to the same physical plane are adjusted to the same ground plane to obtain the second ground planes of the multiple position points.
[0020] Optionally, determining the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point includes:
[0021] Convert the first ground plane of the next position point to the coordinate system corresponding to the currently acquired position point to obtain the first ground plane of the next position point after conversion;
[0022] Determine the angle between the normal vector of the first ground plane after the next position point is converted and the normal vector of the first ground plane corresponding to the currently acquired position point, and the difference between the distance of the first ground plane after the next position point is converted from the currently acquired position point and the distance of the first ground plane corresponding to the currently acquired position point from the currently acquired position point as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point; or,
[0023] The coordinate point closest to the currently acquired position point in the first ground plane after the next position point is converted, and the distance between the coordinate point closest to the currently acquired position point in the first ground plane corresponding to the currently acquired position point is determined as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point.
[0024] Optionally, the adjusting and processing the first pose data corresponding to the multiple position points based on the second ground plane corresponding to the multiple position points to obtain the second pose data corresponding to the multiple position points includes:
[0025] Taking the second ground plane and the first pose data corresponding to the multiple position points as constraint conditions, the first pose data corresponding to the multiple position points are adjusted based on the least squares method to obtain the second pose data corresponding to the multiple position points.
[0026] Optionally, determining the global map based on the first local maps corresponding to the multiple location points and the second position data of the multiple location points includes:
[0027] Based on the second posture data corresponding to the multiple position points, adjusting the first local maps corresponding to the multiple position points to obtain second local maps corresponding to the multiple position points;
[0028] Performing loop closure detection on the second local map corresponding to the multiple position points to obtain a loop closure detection result, wherein the loop closure detection result includes position point pairs corresponding to the second local map pairs that meet the loop closure detection condition;
[0029] Taking the second ground plane corresponding to the multiple position points, the second pose data, and the second pose data pair corresponding to each position point pair in the loop detection result as constraint conditions, adjusting the second pose data corresponding to the multiple position points based on the least squares method to obtain third pose data corresponding to the multiple position points;
[0030] Based on the third posture data corresponding to the multiple position points, adjusting the second local maps corresponding to the multiple position points to obtain third local maps corresponding to the multiple position points;
[0031] A global map is determined based on the third local maps corresponding to the multiple location points.
[0032] In another aspect, there is provided an apparatus for determining a ground plane, the apparatus comprising:
[0033] An acquisition module, used to acquire a first local map corresponding to a plurality of location points of a mobile device during movement;
[0034] A determination module, configured to determine a first ground plane at a location of the mobile device in each first local map, and obtain a first ground plane corresponding to each location point;
[0035] The adjustment module is used to adjust the first ground planes of the multiple location points based on the proximity between the first ground planes of the multiple location points to obtain the second ground planes of the multiple location points.
[0036] Optionally, the acquisition module is further used to acquire first position data corresponding to multiple position points of the mobile device during movement;
[0037] The adjustment module is further used to adjust the first posture data corresponding to the multiple position points based on the second ground plane corresponding to the multiple position points to obtain the second posture data corresponding to the multiple position points;
[0038] The determination module is further used to determine the global map based on the first local maps corresponding to the multiple location points and the second posture data of the multiple location points.
[0039] Optionally, the adjustment module is used to:
[0040] The first position point in the detection sequence is set as the starting position point, and position points are acquired one by one in the detection sequence starting from the starting position point. Each time a position point is acquired, the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point is determined. If the determined proximity is greater than the proximity threshold, the currently acquired position point is determined as the ending position point. If the currently acquired position point is the last position point in the detection sequence, the currently acquired position point is determined as the ending position point.
[0041] After the end position point is determined, all position points from the start position point to the end position point are determined as position points corresponding to the same physical plane, the next position point of the end position in the detection time sequence is determined as the start position point, and the step of acquiring position points one by one in the detection time sequence starting from the start position point is performed;
[0042] The first ground planes corresponding to the multiple position points corresponding to the same physical plane are adjusted to the same ground plane to obtain the second ground planes of the multiple position points.
[0043] Optionally, the adjustment module is used to:
[0044] Convert the first ground plane of the next position point to the coordinate system corresponding to the currently acquired position point to obtain the first ground plane of the next position point after conversion;
[0045] Determine the angle between the normal vector of the first ground plane after the next position point is converted and the normal vector of the first ground plane corresponding to the currently acquired position point, and the difference between the distance of the first ground plane after the next position point is converted from the currently acquired position point and the distance of the first ground plane corresponding to the currently acquired position point from the currently acquired position point as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point; or,
[0046] The coordinate point closest to the currently acquired position point in the first ground plane after the next position point is converted, and the distance between the coordinate point closest to the currently acquired position point in the first ground plane corresponding to the currently acquired position point is determined as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point.
[0047] Taking the second ground plane and the first pose data corresponding to the multiple position points as constraint conditions, the first pose data corresponding to the multiple position points are adjusted based on the least squares method to obtain the second pose data corresponding to the multiple position points.
[0048] Optionally, the determining module is used to:
[0049] Based on the second posture data corresponding to the multiple position points, adjusting the first local maps corresponding to the multiple position points to obtain second local maps corresponding to the multiple position points;
[0050] Performing loop closure detection on the second local map corresponding to the multiple position points to obtain a loop closure detection result, wherein the loop closure detection result includes position point pairs corresponding to the second local map pairs that meet the loop closure detection condition;
[0051] Taking the second ground plane corresponding to the multiple position points, the second pose data, and the second pose data pair corresponding to each position point pair in the loop detection result as constraint conditions, adjusting the second pose data corresponding to the multiple position points based on the least squares method to obtain third pose data corresponding to the multiple position points;
[0052] Based on the third posture data corresponding to the multiple position points, adjusting the second local maps corresponding to the multiple position points to obtain third local maps corresponding to the multiple position points;
[0053] A global map is determined based on the third local maps corresponding to the multiple location points.
[0054] On the other hand, a mobile device is provided, the mobile device comprising a moving component, a laser radar, and a processor, wherein:
[0055] The moving component is used to drive the mobile device to move under the control of the processor;
[0056] The laser radar is used to scan point cloud data of the surrounding environment during the movement of the mobile device;
[0057] The processor is used to determine, based on the point cloud data of the surrounding environment, first local maps corresponding to multiple location points of the mobile device during movement; determine the first ground plane of the position of the mobile device in each first local map to obtain the first ground plane corresponding to each location point; and adjust the first ground planes of the multiple location points based on the proximity between the first ground planes of the multiple location points to obtain the second ground planes of the multiple location points.
[0058] In yet another aspect, a computer-readable storage medium is provided, wherein at least one instruction is stored in the storage medium, and the at least one instruction is loaded and executed by a processor to implement the operations performed to determine the ground plane as described above.
[0059] The beneficial effects of the technical solution provided by the embodiment of the present application are:
[0060] By obtaining the local map corresponding to the mobile device at multiple location points, and then determining the first ground plane in the local map, the first ground planes of the multiple location points are adjusted according to the proximity between the first ground planes of the multiple location points to obtain the second ground plane of each location point. The second ground plane obtained after adjustment is a more accurate ground plane corresponding to the mobile device at each location point, and then the level where the mobile device is located can be determined according to the second ground plane corresponding to each mobile device at each location point. It can be seen that the use of this application can avoid the mobile device being determined in the wrong level due to errors in posture data. BRIEF DESCRIPTION OF THE DRAWINGS
[0061] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0062] Figure 1 It is a schematic diagram of an implementation environment provided by an embodiment of the present application;
[0063] Figure 2 is a flow chart of a method for determining a ground plane provided in an embodiment of the present application;
[0064] Figure 3 is a schematic diagram of a method for determining a ground plane provided in an embodiment of the present application;
[0065] Figure 4 is a schematic diagram of a method for determining a ground plane provided in an embodiment of the present application;
[0066] Figure 5 is a schematic diagram of a method for determining a ground plane provided in an embodiment of the present application;
[0067] Figure 6 is a schematic diagram of a method for determining a ground plane provided in an embodiment of the present application;
[0068] Figure 7 is a flow chart of a method for determining a ground plane provided in an embodiment of the present application;
[0069] Figure 8 is a schematic diagram of a method for determining a ground plane provided in an embodiment of the present application;
[0070] Fig. 9 is a schematic diagram of the structure of a device for determining a ground plane provided in an embodiment of the present application;
[0071] Fig.10 It is a schematic diagram of the structure of a mobile device provided in an embodiment of the present application;
[0072] Fig.11 It is a schematic diagram of a server structure provided in an embodiment of the present application. DETAILED DESCRIPTION
[0073] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.
[0074] The method for determining the ground plane provided in the embodiment of the present application can be implemented by the terminal alone, or by the terminal and the server together. If the embodiment of the present application is implemented by the terminal alone, the terminal can have a processor and a memory, and the memory can store the execution program corresponding to the method for determining the ground plane provided in the embodiment of the present application, and the processor can execute the corresponding execution program to implement the method for determining the ground plane provided in the embodiment of the present application. In addition, the terminal can also have components such as a laser radar, an IMU (Inertial Measurement Unit), a camera, and a wheel speed sensor to obtain processing data for implementing the method for determining the ground plane. If the embodiment of the present application is implemented by the terminal and the server together, a connection can be established between the terminal and the server, and the terminal can obtain processing data for implementing the method for determining the ground plane through various sensors, and transmit the data to the server, and the server completes the processing corresponding to the method for determining the ground plane provided in the embodiment of the present application, wherein the server can be a separate server or a server group, and different servers in the server group can respectively determine different processing corresponding to the method for determining the ground plane, and the specific processing distribution can be arbitrarily set by the technician according to actual needs, and will not be repeated here.
[0075] Figure 1 is a schematic diagram of an implementation environment provided by an embodiment of the present application. Figure 1 , a terminal (i.e., mobile device) equipped with a laser radar, such as a robot, can move in any multi-level environment, such as an underground parking lot. The laser radar can scan the point cloud data of the surrounding environment according to a fixed scanning cycle. Then, the corresponding local map can be determined based on the point cloud data of the surrounding environment scanned by the mobile device during movement, where the local map is a 3D map corresponding to part of the surrounding environment. For example, multiple frames of point cloud data can be aligned to obtain the corresponding local map. Then, the ground plane corresponding to the terminal at each position point is determined based on each local map. In this way, the level corresponding to each position point can be determined based on the ground plane corresponding to each position point, that is, the number of floors where the terminal is located at each position point.
[0076] Figure 2 A flow chart of a method for determining a ground plane provided in an embodiment of the present application. Figure 2 , the embodiments of the present application include:
[0077] Step 201: Obtain a first local map corresponding to a plurality of location points of a mobile device during movement.
[0078] In implementation, a robot (mobile terminal) equipped with a laser radar can move in any scene and scan the point cloud data of the surrounding environment according to a fixed scanning cycle. The mobile device can also be equipped with IMU (Inertial Measurement Unit), camera, wheel speed sensor and other components. During the movement process, the IMU can obtain the angular velocity and acceleration of the robot at different times during the movement process, and the wheel speed sensor can obtain the wheel speed at each time. Among them, the angular velocity, acceleration and wheel speed of the robot during the movement process can be input into the preset IMU wheel speed fusion module to obtain the initial posture data of the robot at each time during the movement process. Then, according to the initial posture data at each time and the multi-frame point cloud data scanned during the movement process, the point cloud data is dedistorted, and then the movement trajectory of the robot is obtained according to the point cloud data and the initial posture data after dedistortion and the laser mileage calculation method, that is, the posture data of the robot at each time. Among them, the accuracy of the posture data is higher than that of the initial posture data. Then, according to the initial posture data at each moment and the multi-frame point cloud data scanned during the movement, the point cloud data is dedistorted, and then the robot's movement trajectory, that is, the robot's posture data at each moment, is obtained based on the dedistorted point cloud data and the initial posture data and the laser mileage calculation method. Among them, the accuracy of the posture data is higher than that of the initial posture data.
[0079] After obtaining the moving trajectory corresponding to the robot, multiple position points in the moving process can be determined according to the moving trajectory of the robot. For example, the moving trajectory can be divided according to time or moving distance to obtain multiple sub-moving trajectories. The position points corresponding to the multiple division nodes are the multiple position points in the moving process. In the present application, the moving trajectory is divided by moving distance as an example, and the position points corresponding to the corresponding division nodes are determined as multiple position points in the moving process, and the scheme is described in detail. For example, the moving trajectory can be divided by a moving distance of 5 meters, and the position of the 0th meter, the starting position of the 5th meter, and the starting position of the 10th meter in the laser radar moving trajectory are used as multiple position points in the moving trajectory. Then, the multi-frame point cloud data scanned by the laser radar in the moving trajectory corresponding to each position point can be point cloud aligned to obtain the local map corresponding to each sub-moving trajectory, that is, to obtain the first local map corresponding to each position point. Among them, the first local map is the point cloud data after the multi-frame point cloud data is point cloud aligned. For example, the first local map corresponding to the position point of the laser radar at the starting position of the 5th meter can be the first local map obtained after point cloud registration of multiple frames of point cloud data scanned by the laser radar between the starting position of the 5th meter and the ending position of the 9th meter. The coordinate value of each point in the first local map can be the coordinate value in the local coordinate system with the corresponding position point as the origin.
[0080] Step 202: Determine a first ground plane at the location of the mobile device in each first local map, and obtain a first ground plane corresponding to each location point.
[0081] In implementation, after obtaining the first local map corresponding to the location point, the ground point cloud data in the first local map can be extracted by using the existing ground extraction algorithm. Then, the extracted ground point cloud data is clustered using the region growing algorithm, and the extracted point cloud is plane fitted using the RANSAC algorithm to remove the point cloud data that does not belong to the ground in the extracted ground point cloud data, such as roadblocks in the parking lot, tires in contact with the ground, etc.
[0082] Among them, the ground point cloud data corresponding to each location point can be determined as the first ground plane corresponding to each location point, and the expression for expressing the corresponding first ground plane of the local map can be determined according to the coordinate values of each point in the ground point cloud data in the corresponding local map.
[0083] In another feasible manner, the ground point closest to the corresponding position point can be determined in each ground point cloud data; for each position point, the plane including the nearest ground point and perpendicular to the line connecting the position point and the ground point is determined as the corresponding ground plane.
[0084] In implementation, the ground plane of the ground of the local map can be represented by the ground point closest to the corresponding position point in the ground point cloud data corresponding to the first local map. The ground plane is a plane that includes the ground point closest to the corresponding position point and is perpendicular to the line connecting the ground point closest to the corresponding position point and the position point. Figure 3 As shown, since the laser radar is located above the ground, the ground point closest to the corresponding position point will not overlap with the corresponding position point, so the ground point closest to the corresponding position point can uniquely represent the plane of the ground in the local map, that is, the first ground plane.
[0085] Step 203: Based on the proximity between the first ground planes of the multiple location points, the first ground planes of the multiple location points are adjusted to obtain the second ground planes of the multiple location points.
[0086] In implementation, after determining the first ground plane corresponding to each location point, it can be determined whether the first ground planes corresponding to each location point belong to the same physical plane, that is, whether the local map corresponding to each location point is on the same ground. Then, multiple first ground planes belonging to the same physical plane can be adjusted to the same ground plane to obtain the second ground plane of each location point. For example, among multiple location points A belonging to the same physical plane, the first ground plane corresponding to the first point in the detection sequence is determined as the second ground plane corresponding to multiple location points A.
[0087] Optionally, the process of determining whether the first ground planes corresponding to the respective position points belong to the same physical plane may be as follows:
[0088] Step 2031, set the first position point on the detection sequence as the starting position point, and obtain position points one by one in the detection sequence starting from the starting position point. Each time a position point is obtained, determine the proximity between the first ground plane corresponding to the currently obtained position point and the first ground plane of the next position point. If the determined proximity is greater than the proximity threshold, determine the currently obtained position point as the ending position point. If the currently obtained position point is the last position point on the detection sequence, determine the currently obtained position point as the ending position point.
[0089] In implementation, it is possible to determine whether the first ground planes corresponding to each adjacent position point belong to the same physical plane according to the detection sequence corresponding to the position point. The first position point A in the detection sequence can be set as the starting position point, and then it is determined whether the first ground plane A corresponding to the starting position point A and the first ground plane B corresponding to the next position point B belong to the same physical plane, that is, it is determined whether the proximity of the first ground plane A and the first ground plane B is greater than the proximity threshold. If it is greater than the proximity threshold, it is determined that the first ground plane A and the first ground plane B belong to the same physical plane. After determining that the first ground plane A and the first ground plane B belong to the same physical plane, it can be determined whether the first ground plane B corresponding to the position point B and the first ground plane C corresponding to the position point C belong to the same physical plane, where the position point C is the next position point corresponding to the position point B, and then by analogy, until it is determined that the first ground plane N corresponding to the position point N and the first ground plane M corresponding to the position point M do not belong to the same physical plane, then the position point N is determined as the end position point. In addition, if the currently acquired position point is the last position point in the detection sequence, the currently acquired position point is determined as the end position point.
[0090] Step 2032, after determining the end position point, determine all position points from the start position point to the end position point as position points corresponding to the same physical plane, determine the next position point of the end position point in the detection sequence as the start position point, and proceed to acquire position points one by one according to the detection sequence starting from the start position point.
[0091] In implementation, after the end position point is determined, all position points from the start position point to the end position point corresponding to the end position point can be determined as position points corresponding to the same physical plane. For example, in the above step 2031, position point A is the start position point A, and position point N is determined as the end position point, then the first ground plane corresponding to all position points from position point A to position point N (including position point A and position point N) corresponds to the same physical plane. And after the end position point is determined among multiple position points, the next position point of the end position point in the detection sequence can be determined as the start position point, and the process after setting as the start position point in step 2031 is executed.
[0092] Step 2033: adjust the first ground planes corresponding to the multiple position points corresponding to the same physical plane to the same ground plane, so as to obtain the second ground planes of the multiple position points.
[0093] In implementation, for multiple position points belonging to the same physical plane, different first ground planes corresponding to the multiple position points can be determined as the same ground plane, that is, the second ground plane. For example, among the multiple position points corresponding to the same physical plane, the first ground plane corresponding to the position point that is the most forward in the detection time sequence can be determined as the second ground plane of the multiple position points corresponding to the same physical plane.
[0094] Optionally, in step 2031, the process of determining the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point may be performed in the following two ways:
[0095] Method 1: Convert the first ground plane of the next position point to the coordinate system corresponding to the currently acquired position point to obtain the first ground plane after the conversion of the next position point. The angle between the normal vector of the first ground plane after the conversion of the next position point and the normal vector of the first ground plane corresponding to the currently acquired position point, and the difference between the distance of the normal vector of the first ground plane after the conversion of the next position point from the currently acquired position point and the distance between the first ground plane corresponding to the currently acquired position point and the currently acquired position point are determined as the proximity of the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point.
[0096] In implementation, the first position point (the currently acquired position point) corresponding to the first position data, the first ground plane, and the second position point (the next position point of the currently acquired position point) corresponding to the first position data, the first ground plane can be obtained. Then, the corresponding coordinate system conversion matrix can be determined based on the first position point corresponding to the first position data and the second position point corresponding to the first position data, and the first ground plane corresponding to the second position point can be converted to the coordinate system corresponding to the first position point according to the coordinate system conversion matrix to obtain the converted first ground plane, such as Figure 4 As shown. Then the first normal vector of the first ground plane corresponding to the first position point and the first distance from the first position point can be calculated, and the second normal vector of the first ground plane after transformation corresponding to the second position point and the second distance from the first position point can be calculated, and the angle between the first normal vector and the second normal vector and the difference between the first distance and the second distance can be determined as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point. Among them, if the angle between the first normal vector n1 and the second normal vector n2 is within the angle range preset by the technician, and the difference between the first distance value d1 and the second distance value d2 is within the preset difference range of the second ground plane, it can be determined that the ground planes corresponding to the first position point and the second position point are the same physical plane.
[0097] Method 2: The first ground plane of the next position point is converted into the coordinate system corresponding to the currently acquired position point to obtain the first ground plane of the next position point after conversion. The distance between the coordinate point closest to the currently acquired position point in the first ground plane after conversion of the next position point and the coordinate point closest to the currently acquired position point in the first ground plane corresponding to the currently acquired position point is determined as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point.
[0098] In implementation, the first position data and the first ground plane corresponding to the first position point (the position point currently obtained) and the first position data and the first ground plane corresponding to the second position point (the position point next to the position point currently obtained) can be obtained. Among them, the first ground plane corresponding to the first position point can be the coordinate value of the first ground point in the ground point cloud data closest to the corresponding first position point, and the first ground plane corresponding to the second position point can be the coordinate value of the second ground point in the ground point cloud data closest to the corresponding second position point. Then, according to the first position data corresponding to the first position point and the first position data corresponding to the second position point, the corresponding coordinate system conversion matrix can be determined, and the coordinate value of the second ground point can be converted to the coordinate system corresponding to the first position point according to the coordinate system conversion matrix, so as to obtain the coordinate value of the second ground point after conversion, such as Figure 5As shown. Then the coordinate value of the second ground point after the conversion is obtained. Then the distance between the second ground point after the conversion and the first ground point can be determined as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point. Among them, if the distance is within the distance range preset by the technician, it can be considered that the ground planes corresponding to the first position point and the second position point are the same physical plane.
[0099] Optionally, the level position of the mobile device is determined according to the second ground plane corresponding to each position point.
[0100] In implementation, after obtaining the second ground plane corresponding to each position point, the leveling position of each position point can be determined according to each corresponding position point. The leveling position corresponding to each position point can be determined by the detection timing of each position point. For example, the leveling corresponding to the first position point is determined to be the first leveling, and then the position point after the first position point is determined according to the detection timing to see whether the second ground plane corresponding to the previous position point is the same. If they are the same, the two adjacent position points are located in the same leveling. When there are adjacent position points A and B that are in different physical planes, it can be determined that position points A and B are located in different levels. For example Figure 6 As shown, position point A is on the Nth floor, and position point B is on the ramp connecting the Nth floor to other floors. Then, position point B can be used as the starting point to determine whether the position point after position point B is the same as the second ground plane corresponding to the previous position point. If they are the same, the two adjacent position points are both located on the ramp. If there is a position point C that is different from the second ground plane corresponding to the previous position point, it can be determined that position point C is located in the second floor. Furthermore, when the second ground planes corresponding to the two adjacent position points are different, the corresponding ramp can be determined to be an up ramp or a down ramp based on the angle between the two second ground planes, and then the positional relationship between the first floor and the second floor can be determined.
[0101] The embodiment of the present application obtains the local map corresponding to the mobile device at multiple location points, then determines the first ground plane in the local map, and adjusts the first ground planes of the multiple location points according to the proximity between the first ground planes of the multiple location points to obtain the second ground plane of each location point. The second ground plane obtained by adjustment is a more accurate ground plane corresponding to the mobile device at each location point, and then the level where the mobile device is located can be determined according to the second ground plane corresponding to each mobile device at each location point. It can be seen that the use of this application can avoid the mobile device being determined in the wrong level due to errors in posture data.
[0102] Figure 7is a flow chart of a method for determining a ground plane provided by an embodiment of the present application. In the above embodiment, the second ground plane corresponding to the position point is determined, and the position and posture data of each position point can be adjusted according to the second ground plane, so as to establish a global map of the current environment of the mobile device according to the adjusted position and posture data and the local map, such as Figure 7 As shown, this embodiment includes:
[0103] Step 701: Obtain first position data and a first local map corresponding to a plurality of position points of a mobile device during movement.
[0104] In practice, a robot (terminal) equipped with a laser radar can move in a scene that needs to be mapped, and scan the point cloud data of the environment in the scene according to a fixed scanning cycle. The scene that needs to be mapped can be a flat scene, that is, the scene that needs to be mapped only corresponds to one physical ground, such as a square, one floor of a building, etc.; the scene that needs to be mapped can be a multi-level scene, such as a multi-storey parking lot, multiple floors of a building, etc. Figure 1 As shown, the mapping scene is a multi-storey parking lot. The robot (terminal) equipped with a laser radar can move in the scene where mapping is required, and scan the point cloud data of the environment in the mapping scene according to a fixed scanning cycle. Among them, the first pose data is the pose data of the robot at each moment during the movement. The process of obtaining the first pose data and the first local map is the same as the process in the above step 201, and will not be repeated here.
[0105] It should be noted that the first pose data and the first local map corresponding to multiple position points can be generated and obtained during the movement of the robot, or they can be calculated and generated after the robot completes scanning of all environmental point cloud data in the mapping scene.
[0106] Step 702: Determine a first ground plane at the location of the mobile device in each first local map, and obtain a first ground plane corresponding to each location point.
[0107] The processing of step 702 is the same as that of step 202, and will not be repeated here.
[0108] In addition, since the ground point cloud data corresponding to the first local map may contain noise, errors, etc., the ground point closest to the corresponding position point may also have certain errors. Therefore, a robust ground parameter optimization algorithm is also provided in the embodiment of the present application to improve the accuracy of determining the ground point closest to the corresponding position point. That is, after determining the ground point closest to the corresponding position point, the coordinate value of the ground point can be adjusted. Accordingly, the coordinates of the determined ground point can be input into the following algorithm:
[0109]
[0110] Where Π is the coordinate value of the ground point closest to the corresponding position point in the local map, {p i} i=1,..,N is the ground point cloud of the local ground, Π * is the optimized coordinate value, that is, the coordinate value of the ground point after adjustment. The above formula can be solved by the Gauss-Newton algorithm to obtain the corresponding Π * .
[0111] Step 703: Based on the proximity between the first ground planes of the multiple location points, the first ground planes of the multiple location points are adjusted to obtain the second ground planes of the multiple location points.
[0112] The processing of step 703 is the same as that of step 203, and will not be repeated here.
[0113] Step 704: Adjust the first pose data corresponding to the multiple position points based on the second ground plane corresponding to the multiple position points to obtain second pose data corresponding to the multiple position points.
[0114] In implementation, the first pose data corresponding to the position points on the same physical plane can be adjusted to eliminate the error of the first pose data on the Z axis. For example, the Z axis values of the first pose data corresponding to the position points on the same physical plane are adjusted to be consistent to obtain the second pose data corresponding to multiple position points. Figure 8 As shown, the position of the first pose data in space before adjustment shows an upward trend, and the second pose data after adjustment can be located at the same horizontal position.
[0115] Optionally, the second ground plane and the first posture data corresponding to the multiple position points can be used as constraints, and the posture data of the multiple position points can be adjusted based on the least squares method to obtain the second posture data corresponding to the multiple position points.
[0116] In implementation, the first pose data of multiple position points can be jointly optimized by constructing a least squares problem with ground constraints and laser odometer constraints. That is, the first pose data of multiple position points obtained by the laser odometer calculation method and the second ground plane corresponding to the multiple position points are used as constraints at the same time, and the first pose data of the maximum number of position points are adjusted. Specifically, the first pose data can be input into the following formulas (1)-(4) to obtain the adjusted second pose data.
[0117]
[0118]
[0119] e(Πj ,T i )=Π j -d m R m -n m T R T R m ∈R 3 Formula (3)
[0120] x * =arg min F(x) Formula (4)
[0121] Where F(x) is the objective function, Co corresponds to the laser odometer constraint, including the first position data of multiple positions obtained by the laser odometer calculation method; i and j represent the identifiers of any two adjacent positions respectively; Ti and Tj represent the first position data corresponding to position point i and position point j respectively; Tij represents the relative transformation matrix from the jth local map corresponding coordinate system to the ith local map corresponding coordinate system calculated by the laser odometer; e ij It represents the difference between the first pose data corresponding to the i-th position point and the j-th position point and the difference between the adjusted second pose data corresponding to the i-th position point and the j-th position point.
[0122] Cp corresponds to the ground detection constraint, including the first pose data of multiple position points obtained by the laser mileage calculation method and the corresponding second ground plane; j is the second ground plane corresponding to the jth position point; dm and nm are the distance and normal vector from the origin of the coordinate system to the position point j observed in the coordinate system corresponding to the i-th position point; R is the rotation matrix in the pose data corresponding to the i-th position point; t is the translation vector in the pose data corresponding to the i-th position point; e(Π j ,T i ) represents the difference between the first ground plane and the second ground plane at the i-th position point.
[0123] Ω α ,Ω γ is a preset conversion matrix, which can be preset by a technician, x * is the matrix corresponding to the minimum value of the objective function F(x), that is, the matrix composed of the adjusted second posture data corresponding to each position point. The objective function F(x) can be solved by the Gauss-Newton algorithm to obtain x * .
[0124] Step 705: Determine a global map based on the first local maps corresponding to the multiple location points and the second position data of the multiple location points.
[0125] In implementation, after obtaining the second posture data corresponding to multiple position points, the corresponding first local map can be adjusted according to the second posture data to obtain the adjusted local map corresponding to each position point, and then each adjusted local map can be projected into the same coordinate system according to the posture data of the position point corresponding to each adjusted local map, thereby obtaining a global map.
[0126] In addition, before obtaining the global map, loop detection can be performed on the adjusted local map, and then the loop detection result is used as a constraint condition, and the second ground plane and the first pose data corresponding to the multiple position points are used as constraints to perform joint optimization processing on the second pose data again. The corresponding processing is as follows:
[0127] Step 7051: Based on the second posture data corresponding to the multiple position points, the first local map corresponding to the multiple position points is adjusted to obtain the second local map corresponding to the multiple position points.
[0128] In implementation, after obtaining the second posture data corresponding to multiple position points, the adjustment matrix of the local map can be determined based on the second posture data and the corresponding first posture data, and then the corresponding first local map is adjusted according to the adjustment matrix to obtain the adjusted local map, that is, the second local map corresponding to multiple position points is obtained.
[0129] Step 7052: Perform loop detection on the second local map corresponding to the multiple location points to obtain loop detection results.
[0130] The loop detection result includes the position point pair corresponding to the second local map pair that meets the loop detection condition.
[0131] In implementation, loop detection can be performed on the corresponding second local maps according to the order of the position points in the moving trajectory. For example, the corresponding detection order is second local map A, second local map B, second local map C..., then a local map whose Euclidean distance to local map A is less than a preset Euclidean distance threshold can be first determined from multiple local maps, and then As the initial value, ICP (a point cloud registration algorithm) or NDT (point cloud registration algorithm) is used to perform point cloud registration on two local maps whose Euclidean distance is less than the preset Euclidean distance threshold. i is the position of the corresponding point in the second local map A, T jis the position of any local map whose Euclidean distance to the second local map A is less than the preset Euclidean distance threshold. If the registration residual is less than the preset threshold, it is considered that the loop is successfully detected, and the position point pair where the loop is detected can be recorded to obtain the loop detection result. In this way, by performing loop detection on the adjusted second local map, the influence of the errors in the laser radar scanning data and the laser mileage calculation method on the loop detection results can be reduced, and the accuracy of loop detection can be improved.
[0132] Step 7053: Using the second ground plane corresponding to the multiple position points, the second pose data, and the second pose data pair corresponding to each pair of position points in the loop detection result as constraints, adjust the second pose data corresponding to the multiple position points based on the least squares method to obtain third pose data corresponding to the multiple position points.
[0133] In implementation, the first position data of multiple position points can be jointly optimized by constructing a least squares problem with ground constraints and laser odometer constraints. That is, the first position data of multiple position points obtained by the laser odometer calculation method and the second ground plane corresponding to the multiple position points are used as constraints at the same time, and the first position data of the maximum number of position points are adjusted. Specifically, the adjustment can be made through the following formulas (5)-(9).
[0134]
[0135]
[0136]
[0137]
[0138] x * =arg min F(x) Formula (9)
[0139] Where F(x) is the objective function, Co corresponds to the laser odometer constraint, including the first position data of multiple positions obtained by the laser odometer calculation method; i and j represent the identifiers of any two adjacent positions respectively; Ti and Tj represent the first position data corresponding to position point i and position point j respectively; Tij represents the relative transformation matrix from the jth local map corresponding coordinate system to the ith local map corresponding coordinate system calculated by the laser odometer; e ij It represents the difference between the first pose data corresponding to the i-th position point and the j-th position point and the difference between the adjusted second pose data corresponding to the i-th position point and the j-th position point.
[0140] The loop detection constraints corresponding to Cl include the first position data corresponding to the position points of each loop detection condition, k and l respectively represent the identifiers of any two position points that meet the loop detection conditions; Tk and Tl respectively represent the first position data corresponding to the position point k and the position point l; Tkl represents the relative transformation matrix from the coordinate system corresponding to the kth local map to the coordinate system corresponding to the lth local map calculated by the laser mileage calculation method; where e kl It represents the difference between the second pose data corresponding to the position point pair (the kth position point and the lth position point) that meets the loop detection condition and the difference between the adjusted second pose data corresponding to the position point pair.
[0141] Cp corresponds to the ground detection constraint, including the first pose data of multiple position points obtained by the laser mileage calculation method and the corresponding second ground plane; j is the second ground plane corresponding to the jth position point; dm and nm are the distance and normal vector from the origin of the coordinate system to the position point j observed in the coordinate system corresponding to the i-th position point; R is the rotation matrix in the pose data corresponding to the i-th position point; t is the translation vector in the pose data corresponding to the i-th position point; e(Π j ,T i ) represents the difference between the first ground plane and the second ground plane at the i-th position point.
[0142] Ω α ,Ω β ,Ω γ is a preset conversion matrix, which can be preset by a technician, x * is the matrix corresponding to the minimum value of the objective function F(x), that is, the matrix composed of the adjusted second posture data corresponding to each position point. The objective function F(x) can be solved by the Gauss-Newton algorithm to obtain x * .
[0143] Step 7054: Based on the third posture data corresponding to the multiple position points, the second local maps corresponding to the multiple position points are adjusted to obtain third local maps corresponding to the multiple position points, and the global map is determined based on the third local maps corresponding to the multiple position points.
[0144] In implementation, after obtaining the third pose data corresponding to multiple position points, the corresponding second local map can be adjusted according to the third pose data to obtain a third local map, and then each third local map can be projected into the same coordinate system according to the third pose data of the position point corresponding to each third local map, thereby obtaining a global map.
[0145] In the embodiment of the present application, by obtaining the ground plane of the local map corresponding to each position point, the ground plane corresponding to each position point can be adjusted according to the proximity of the ground plane corresponding to each position point, so that the ground planes with higher proximity can be adjusted to be consistent, and then the posture data of the corresponding position point can be adjusted according to the adjusted ground plane to obtain the adjusted posture data, and then the corresponding global map is determined according to the adjusted posture data and each local map. Based on the above-mentioned adjustment method of the ground plane, the adjusted ground plane can be made relatively stable in the vertical direction of the space, so by adjusting the posture data of the adjusted ground plane, the posture data of multiple position points corresponding to the same physical plane can be made relatively stable on the Z axis, which can reduce the problem of upward drift of the posture data on the Z axis. Therefore, the use of this application can also improve the accuracy of generating a global map.
[0146] All the above optional technical solutions can be arbitrarily combined to form optional embodiments of the present disclosure, and will not be described in detail here.
[0147] Fig. 9 An embodiment of the present application provides a device for determining a ground plane, which may be a terminal or a server in the above embodiment, and includes:
[0148] An acquisition module 910 is used to acquire a first local map corresponding to a plurality of location points of a mobile device during movement;
[0149] A determination module 920, configured to determine a first ground plane at a location of the mobile device in each first local map, and obtain a first ground plane corresponding to each location point;
[0150] The adjustment module 930 is used to adjust the first ground planes of the multiple location points based on the proximity between the first ground planes of the multiple location points to obtain the second ground planes of the multiple location points.
[0151] Optionally, the acquisition module 910 is used to acquire first position data corresponding to multiple position points of the mobile device during movement;
[0152] The adjustment module 930 is further configured to adjust the first pose data corresponding to the plurality of position points based on the second ground plane corresponding to the plurality of position points to obtain second pose data corresponding to the plurality of position points;
[0153] The determination module 920 is further configured to determine a global map based on the first local maps corresponding to the multiple location points and the second position data of the multiple location points.
[0154] Optionally, the adjustment module 930 is used to:
[0155] The first position point in the detection sequence is set as the starting position point, and position points are acquired one by one in the detection sequence starting from the starting position point. Each time a position point is acquired, the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point is determined. If the determined proximity is greater than the proximity threshold, the currently acquired position point is determined as the ending position point. If the currently acquired position point is the last position point in the detection sequence, the currently acquired position point is determined as the ending position point.
[0156] After the end position point is determined, all position points from the start position point to the end position point are determined as position points corresponding to the same physical plane, the next position point of the end position in the detection time sequence is determined as the start position point, and the step of acquiring position points one by one in the detection time sequence starting from the start position point is performed;
[0157] The first ground planes corresponding to the multiple position points corresponding to the same physical plane are adjusted to the same ground plane to obtain the second ground planes of the multiple position points.
[0158] Optionally, the adjustment module 930 is used to:
[0159] Convert the first ground plane of the next position point to the coordinate system corresponding to the currently acquired position point to obtain the first ground plane of the next position point after conversion;
[0160] Determine the angle between the normal vector of the first ground plane after the next position point is converted and the normal vector of the first ground plane corresponding to the currently acquired position point, and the difference between the distance of the first ground plane after the next position point is converted from the currently acquired position point and the distance of the first ground plane corresponding to the currently acquired position point from the currently acquired position point as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point; or,
[0161] The coordinate point closest to the currently acquired position point in the first ground plane after the next position point is converted, and the distance between the coordinate point closest to the currently acquired position point in the first ground plane corresponding to the currently acquired position point is determined as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point.
[0162] Taking the second ground plane and the first pose data corresponding to the multiple position points as constraint conditions, the first pose data corresponding to the multiple position points are adjusted based on the least squares method to obtain the second pose data corresponding to the multiple position points.
[0163] Optionally, the determining module 920 is used to:
[0164] Based on the second posture data corresponding to the multiple position points, adjusting the first local maps corresponding to the multiple position points to obtain second local maps corresponding to the multiple position points;
[0165] Performing loop closure detection on the second local map corresponding to the multiple position points to obtain a loop closure detection result, wherein the loop closure detection result includes position point pairs corresponding to the second local map pairs that meet the loop closure detection condition;
[0166] Taking the second ground plane corresponding to the multiple position points, the second pose data, and the second pose data pair corresponding to each position point pair in the loop detection result as constraint conditions, adjusting the second pose data corresponding to the multiple position points based on the least squares method to obtain third pose data corresponding to the multiple position points;
[0167] Based on the third posture data corresponding to the multiple position points, adjusting the second local maps corresponding to the multiple position points to obtain third local maps corresponding to the multiple position points;
[0168] A global map is determined based on the third local maps corresponding to the multiple location points.
[0169] Fig.10 The structural block diagram of a mobile terminal 1000 provided by an exemplary embodiment of the present application is shown. The mobile device includes a moving component 1010, a laser radar 1020, and a processor 1030, wherein: the moving component is used to drive the mobile device to move under the control of the processor; the laser radar is used to scan the point cloud data of the surrounding environment during the movement of the mobile device; the processor is used to determine the first local map corresponding to multiple position points of the mobile device during the movement according to the point cloud data of the surrounding environment; determine the first ground plane of the position of the mobile device in each first local map, and obtain the first ground plane corresponding to each position point; based on the proximity between the first ground planes of the multiple position points, adjust the first ground planes of the multiple position points to obtain the second ground planes of the multiple position points.
[0170] Fig.111 is a schematic diagram of the structure of a server provided in an embodiment of the present application. The server 1100 may have relatively large differences due to different configurations or performances, and may include one or more processors (central processing units, CPU) 1110 and one or more memories 1120, wherein the memory 1120 stores at least one instruction, and the at least one instruction is loaded and executed by the processor 1110 to implement the methods provided in the above-mentioned various method embodiments. Of course, the server may also have components such as a wired or wireless network interface, a keyboard, and an input and output interface for input and output, and the server may also include other components for implementing device functions, which will not be described in detail here.
[0171] In an exemplary embodiment, a computer-readable storage medium is also provided, such as a memory including instructions, which can be executed by a processor in a terminal to complete the method for determining the ground plane in the above embodiment. The computer-readable storage medium can be non-transitory. For example, the computer-readable storage medium can be a ROM (Read-Only Memory), a RAM (Random Access Memory), a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, etc.
[0172] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.
[0173] The above description is only a preferred embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application should be included in the protection scope of the present application.
Claims
1. A method for determining a ground plane, characterized in that: The method comprises: Obtaining a first local map corresponding to a plurality of location points of the mobile device during movement; Determine a first ground plane at a location of the mobile device in each first local map, and obtain a first ground plane corresponding to each location point; The first position point in the detection sequence is set as the starting position point, and position points are acquired one by one in the detection sequence starting from the starting position point. Each time a position point is acquired, the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point is determined. If the determined proximity is greater than the proximity threshold, the currently acquired position point is determined as the ending position point. If the currently acquired position point is the last position point in the detection sequence, the currently acquired position point is determined as the ending position point. After the end position point is determined, all position points from the start position point to the end position point are determined as position points corresponding to the same physical plane, the next position point of the end position in the detection time sequence is determined as the start position point, and the step of acquiring position points one by one in the detection time sequence starting from the start position point is performed; The first ground planes corresponding to the multiple position points corresponding to the same physical plane are adjusted to the same ground plane to obtain the second ground planes of the multiple position points.
2. The method according to claim 1, characterized in that The method further comprises: Acquire first position data corresponding to multiple position points of the mobile device during movement; Based on the proximity between the first ground planes of the multiple location points, after adjusting the first ground planes of the multiple location points to obtain the second ground planes of the multiple location points, the method further includes: Adjusting and processing the first pose data corresponding to the multiple position points based on the second ground planes corresponding to the multiple position points to obtain second pose data corresponding to the multiple position points; A global map is determined based on first local maps corresponding to the plurality of location points and second position data of the plurality of location points.
3. The method according to claim 1, characterized in that: The determining of the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point includes: Converting the first ground plane of the next position point to the coordinate system corresponding to the currently acquired position point to obtain the first ground plane of the next position point after conversion; Determine the angle between the normal vector of the first ground plane after the next position point is converted and the normal vector of the first ground plane corresponding to the currently acquired position point, and the difference between the distance of the first ground plane after the next position point is converted from the currently acquired position point and the distance of the first ground plane corresponding to the currently acquired position point from the currently acquired position point as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point; or, The coordinate point closest to the currently acquired position point in the first ground plane after the next position point is converted, and the distance between the coordinate point closest to the currently acquired position point in the first ground plane corresponding to the currently acquired position point is determined as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point.
4. The method according to claim 2, characterized in that: The adjusting and processing of the first posture data corresponding to the multiple position points based on the second ground plane corresponding to the multiple position points to obtain the second posture data corresponding to the multiple position points includes: Taking the second ground plane and the first pose data corresponding to the multiple position points as constraint conditions, the first pose data corresponding to the multiple position points are adjusted based on the least squares method to obtain the second pose data corresponding to the multiple position points.
5. The method according to claim 2, characterized in that: The determining of the global map based on the first local maps corresponding to the plurality of position points and the second position data of the plurality of position points comprises: Based on the second posture data corresponding to the multiple position points, adjusting the first local maps corresponding to the multiple position points to obtain second local maps corresponding to the multiple position points; Performing loop closure detection on the second local map corresponding to the multiple position points to obtain a loop closure detection result, wherein the loop closure detection result includes position point pairs corresponding to the second local map pairs that meet the loop closure detection condition; Taking the second ground plane corresponding to the multiple position points, the second pose data, and the second pose data pair corresponding to each position point pair in the loop detection result as constraint conditions, adjusting the second pose data corresponding to the multiple position points based on the least squares method to obtain third pose data corresponding to the multiple position points; Based on the third posture data corresponding to the multiple position points, adjusting the second local maps corresponding to the multiple position points to obtain third local maps corresponding to the multiple position points; A global map is determined based on the third local maps corresponding to the multiple location points.
6. A device for determining a ground plane, characterized in that: The device comprises: An acquisition module, used to acquire a first local map corresponding to a plurality of location points of a mobile device during movement; A determination module, configured to determine a first ground plane at a location of the mobile device in each first local map, and obtain a first ground plane corresponding to each location point; An adjustment module is used to set the first position point on the detection sequence as the starting position point, and to acquire position points one by one according to the detection sequence starting from the starting position point. Each time a position point is acquired, the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point is determined. If the determined proximity is greater than a proximity threshold, the currently acquired position point is determined as the ending position point. If the currently acquired position point is the last position point on the detection sequence, the currently acquired position point is determined as the ending position point. After the ending position point is determined, all position points from the starting position point to the ending position point are determined as position points corresponding to the same physical plane, and the next position point of the ending position on the detection sequence is determined as the starting position point, and the process of acquiring position points one by one according to the detection sequence starting from the starting position point is executed. The first ground planes corresponding to the multiple position points corresponding to the same physical plane are adjusted to the same ground plane to obtain the second ground planes of the multiple position points.
7. The device according to claim 6, characterized in that The acquisition module is further used to acquire first position data corresponding to multiple position points of the mobile device during movement; The adjustment module is further used to adjust the first posture data corresponding to the multiple position points based on the second ground plane corresponding to the multiple position points to obtain the second posture data corresponding to the multiple position points; The determination module is further used to determine the global map based on the first local maps corresponding to the multiple location points and the second posture data of the multiple location points.
8. The device according to claim 6, characterized in that The adjustment module is used for: Converting the first ground plane of the next position point to the coordinate system corresponding to the currently acquired position point to obtain the first ground plane of the next position point after conversion; Determine the angle between the normal vector of the first ground plane after the next position point is converted and the normal vector of the first ground plane corresponding to the currently acquired position point, and the difference between the distance between the first ground plane after the next position point is converted and the currently acquired position point and the distance between the first ground plane corresponding to the currently acquired position point and the currently acquired position point as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point; or, Determine the distance between the coordinate point closest to the currently acquired position point in the first ground plane after the next position point is converted and the coordinate point closest to the currently acquired position point in the first ground plane corresponding to the currently acquired position point as the proximity between the first ground plane corresponding to the currently acquired position point and the first ground plane of the next position point; Taking the second ground plane and the first pose data corresponding to the multiple position points as constraint conditions, the first pose data corresponding to the multiple position points are adjusted based on the least squares method to obtain the second pose data corresponding to the multiple position points.
9. The device according to claim 7, characterized in that The determining module is used to: Based on the second posture data corresponding to the multiple position points, adjusting the first local maps corresponding to the multiple position points to obtain second local maps corresponding to the multiple position points; Performing loop closure detection on the second local map corresponding to the multiple position points to obtain a loop closure detection result, wherein the loop closure detection result includes position point pairs corresponding to the second local map pairs that meet the loop closure detection condition; Taking the second ground plane corresponding to the multiple position points, the second pose data, and the second pose data pair corresponding to each position point pair in the loop detection result as constraint conditions, adjusting the second pose data corresponding to the multiple position points based on the least squares method to obtain third pose data corresponding to the multiple position points; Based on the third posture data corresponding to the multiple position points, adjusting the second local maps corresponding to the multiple position points to obtain third local maps corresponding to the multiple position points; A global map is determined based on the third local maps corresponding to the multiple location points.
10. A mobile device, characterized in that: The mobile device includes a moving component, a laser radar, and a processor, wherein: The moving component is used to drive the mobile device to move under the control of the processor; The laser radar is used to scan point cloud data of the surrounding environment during the movement of the mobile device; The processor is used to determine, based on the point cloud data of the surrounding environment, a first local map corresponding to a plurality of position points of the mobile device during movement; determine a first ground plane of the position of the mobile device in each first local map, and obtain a first ground plane corresponding to each position point; set the first position point in the detection sequence as a starting position point, and start from the starting position point to obtain position points one by one according to the detection sequence, and for each position point obtained, determine the proximity between the first ground plane corresponding to the currently obtained position point and the first ground plane of the next position point, and if the determined proximity is greater than a proximity threshold, set the currently obtained position point as a starting position point. Determine as the end position point, if the currently acquired position point is the last position point on the detection sequence, then the currently acquired position point is determined as the end position point; after determining the end position point, all position points from the starting position point to the end position point are determined as position points corresponding to the same physical plane, and the next position point of the end position on the detection sequence is determined as the starting position point, and the process of acquiring position points one by one according to the detection sequence starting from the starting position point is executed; the first ground plane corresponding to the multiple position points corresponding to the same physical plane is adjusted to the same ground plane, and the second ground plane of the multiple position points is obtained.
Citation Information
Patent Citations
Mobile robot pose correction algorithm based on multi-level map matching
CN108917759A
Livestock position and posture normalization method and device
CN109238264A