Positioning method of self-moving device, self-moving device and readable storage medium

By acquiring the slip type and the first predicted pose of the mobile device, determining multiple second predicted poses and selecting the target pose, the problem of inaccurate positioning of the mobile device in the slip situation is solved, and the accuracy of AMCL positioning is improved.

CN119779265APending Publication Date: 2025-04-08SHENZHEN ZHUMANG TECH CORP
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411791942.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-06
Publication Date
2025-04-08

AI Technical Summary

Technical Problem

It is difficult to accurately locate the mobile device when it is slipped, which affects the accuracy of AMCL positioning.

Method used

By acquiring the slip type and the first predicted pose from the mobile device, a plurality of second predicted poses are determined and the target poses are selected from there to accurately determine the positioning of the self-mobile device.

Benefits of technology

When a slip occurs in a mobile device, its positioning can be accurately determined, thereby eliminating the impact of slip on the accuracy of AMCL positioning, and it has low cost, strong robustness, high practical value and good scalability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119779265A_ABST
    Figure CN119779265A_ABST
Patent Text Reader

Abstract

This application discloses a positioning method for a self-moving device, a self-moving device, and a computer-readable storage medium, relating to the field of artificial intelligence. The method includes: obtaining a slippage type of the self-moving device; obtaining a first predicted pose of the self-moving device; determining a plurality of second predicted poses based on the slippage type and the first predicted pose, and determining a target pose from the plurality of second predicted poses; and determining the positioning of the self-moving device based on the target pose. This application aims to solve the problem that self-moving devices cannot perform targeted positioning optimization based on the cause of failure in specific situations.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of artificial intelligence, and in particular to a positioning method for a self-moving device, a self-moving device, and a readable storage medium. Background Art

[0002] Self-moving devices refer to devices that can move automatically without manual operation, and are therefore widely used in all walks of life. Self-moving devices may lose their positioning during operation, for example, due to program failure or parts damage. Therefore, self-moving devices often optimize their positioning based on the causes of failures such as program failure or parts damage. However, the causes of failures for positioning optimization of self-moving devices in related technologies are limited, and it is impossible to perform targeted positioning optimization based on the causes of failures in specific situations. Summary of the invention

[0003] The present application provides a positioning method for a self-moving device, a self-moving device and a computer-readable storage medium, which solve the problem that the self-moving device cannot perform targeted positioning optimization according to the cause of a fault in a specific situation.

[0004] In a first aspect, the present application provides a method for positioning a mobile device, the method comprising:

[0005] Obtaining the slip type of the self-moving device;

[0006] Obtaining a first predicted position of the mobile device;

[0007] Determine a plurality of second predicted postures according to the slip type and the first predicted posture, and determine a target posture from the plurality of second predicted postures;

[0008] The positioning of the self-moving device is determined according to the target position.

[0009] In a second aspect, the present application also provides a self-mobile device, which includes a memory and a processor; the memory is used to store a computer program; the processor is used to execute the computer program and implement the steps of the positioning method of the self-mobile device provided in an embodiment of the present application when executing the computer program.

[0010] In a third aspect, the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the processor implements the steps of the positioning method for a mobile device provided in an embodiment of the present application.

[0011] The positioning method of the self-moving device, the self-moving device and the computer-readable storage medium disclosed in the embodiments of the present application obtain the slip type and the first predicted posture of the self-moving device; determine multiple second predicted postures according to the slip type and the first predicted posture, and determine the target posture from the multiple second predicted postures; determine the positioning of the self-moving device according to the target posture. In this way, the positioning of the self-moving device can be accurately determined when the self-moving device slips, thereby effectively eliminating the influence of the slip of the self-moving device on the positioning accuracy of Augmented Monte Carlo Localization (AMCL). At the same time, the positioning method also has the advantages of low cost, strong robustness, high practical value and good scalability. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] In order to more clearly illustrate the technical solutions of 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 some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0013] Figure 1 is a structural diagram of a positioning system provided in an embodiment of the present application;

[0014] Figure 2 It is a structural schematic diagram of a self-moving device provided in an embodiment of the present application;

[0015] Figure 3 is a schematic flow chart of a positioning method for a mobile device provided in an embodiment of the present application;

[0016] Figure 4 It is a schematic flow chart of a method for detecting slippage of a self-moving device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0017] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0018] The flowcharts shown in the accompanying drawings are only examples and do not necessarily include all the contents and operations / steps, nor must they be executed in the order described. For example, some operations / steps may also be decomposed, combined or partially merged, so the actual execution order may change according to actual conditions.

[0019] It should be understood that the terms used in this application specification are only for the purpose of describing specific embodiments and are not intended to limit the application. As used in this application specification and the appended claims, unless the context clearly indicates otherwise, the singular forms "a", "an" and "the" are intended to include plural forms.

[0020] It should also be understood that the term “and / or” used in the specification and appended claims refers to any and all possible combinations of one or more of the associated listed items, and includes these combinations.

[0021] The self-moving devices currently used in commercial scenarios such as hotels, supermarkets, buildings, and airports are generally wheeled mobile robots. In the above scenarios, wheeled mobile robots will inevitably encounter slipping problems due to slippery ground, wide gaps, and high slopes. If the robot slips for too long, it is easy to cause the robot based on AMCL positioning to lose its positioning, thereby affecting the normal execution of the navigation task. Therefore, it is difficult for the self-moving device to accurately locate itself when slipping occurs.

[0022] To this end, the embodiments of the present application provide a positioning method for a self-moving device, a self-moving device, and a computer-readable storage medium. Among them, the positioning method for a self-moving device can be applied to a self-moving device. The self-moving device can obtain the slip type and the first predicted posture of the self-moving device; determine multiple second predicted postures according to the slip type and the first predicted posture, and determine the target posture from the multiple second predicted postures; determine the positioning of the self-moving device according to the target posture. In this way, the positioning of the self-moving device can be accurately determined when the self-moving device slips, thereby effectively eliminating the influence of the slip of the self-moving device on the positioning accuracy of the AMCL. At the same time, the positioning method also has the advantages of low cost, strong robustness, high practical value, and good scalability.

[0023] See also Figure 1 , Figure 1 1 is a schematic diagram of the structure of a positioning system 10 provided in an embodiment of the present application. Figure 1 As shown, the positioning system 10 may include a mobile device 100 and a server 200. The mobile device 100 and the server 200 may communicate with each other via wireless communication methods such as Bluetooth, 4G, 5G, 6G, and WIFI.

[0024] Exemplarily, the self-mobile device 100 may be a mobile robot such as a sweeping robot, a food delivery robot, a snow sweeping robot, or a welcoming robot.

[0025] Exemplarily, server 200 can be an independent server or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms.

[0026] It should be noted that the execution subject corresponding to the positioning method of the self-moving device in the embodiment of the present application can be the self-moving device 100 or the server 200. When the execution subject is the server 200, the self-moving device 100 can upload its own slip type and first predicted posture and other data to the server 200, and the server 200 determines multiple second predicted postures according to the slip type and the first predicted posture, and determines the target posture from the multiple second predicted postures; according to the target posture, the positioning of the self-moving device is determined. In the embodiment of the present application, for the sake of convenience, the self-moving device 100 will be used as the execution subject to explain how to perform positioning.

[0027] See also Figure 2 , Figure 2 1 is a schematic diagram of the structure of a self-moving device 100 provided in an embodiment of the present application. The self-moving device 100 may include a processor 1001, a memory 1002, and a laser radar 1003, wherein the processor 1001, the memory 1002, and the laser radar 1003 may be connected via a bus, and the bus may be any applicable bus such as an Inter-integrated Circuit (I2C) bus.

[0028] The memory 1002 may include a storage medium and an internal memory. The storage medium may store an operating system and a computer program. The computer program includes program instructions, which, when executed, may enable the processor 1001 to execute the positioning method for a mobile device described in any embodiment.

[0029] The laser radar 1003 is used to locate the self-mobile device 100. For example, the laser radar 1003 can collect point cloud data and generate an environmental grid map of the environment where the self-mobile device 100 is located.

[0030] The processor 1001 is used to provide computing and control capabilities to support the operation of the entire mobile device 100 .

[0031] The processor 1001 may be a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other types of processors such as programmable logic devices, discrete gate or transistor logic devices, and discrete hardware components. A general-purpose processor may be a microprocessor, or a general-purpose processor may be any conventional processor.

[0032] In one embodiment, the processor 1001 is used to run a computer program stored in the memory 1002 to implement the following steps:

[0033] Obtain a slip type of the self-moving device; obtain a first predicted posture of the self-moving device; determine a plurality of second predicted postures according to the slip type and the first predicted posture, and determine a target posture from the plurality of second predicted postures; determine a positioning of the self-moving device according to the target posture.

[0034] In one embodiment, when determining a plurality of second predicted postures according to the slip type and the first predicted posture, the processor 1001 is configured to implement:

[0035] Determine a posture displacement interval of the self-moving device according to the slip type; and adjust the first predicted posture according to the posture displacement interval to obtain multiple second predicted postures.

[0036] In one embodiment, when determining the target pose from the plurality of second predicted poses, the processor 1001 is configured to implement:

[0037] Acquire the current point cloud data collected by the self-mobile device; acquire the environmental grid map of the environment in which the self-mobile device is located and the grid map boundary point cloud of the environmental grid map; map the current point cloud data to the environmental grid map based on each second predicted posture to obtain the point cloud data corresponding to each second predicted posture; determine the matching information between the point cloud data corresponding to each second predicted posture and the grid map boundary point cloud; and determine the target posture from multiple second predicted postures based on the matching information.

[0038] In one embodiment, when determining the matching information between the point cloud data corresponding to each of the second predicted poses and the boundary point cloud of the grid map, the processor 1001 is used to implement:

[0039] For any point cloud data corresponding to the second predicted posture, determine the positional relationship between each point cloud in the point cloud data and the boundary point cloud of the grid map; based on the positional relationship between each point cloud in the point cloud data and the boundary point cloud of the grid map, determine the matching information between the point cloud data corresponding to the second predicted posture and the boundary point cloud of the grid map.

[0040] In one embodiment, when the processor 1001 determines the target posture from the plurality of second predicted postures according to the matching information, it is configured to implement:

[0041] The point cloud data corresponding to the plurality of second predicted postures are matched with the grid map boundary point cloud, and the second predicted posture having the largest number of matching point clouds is taken as the target posture.

[0042] In one embodiment, before determining the location of the mobile device according to the target posture, the processor 1001 is further configured to implement:

[0043] Determining a particle distribution weight corresponding to the target posture according to the slip type;

[0044] The processor 1001 determines the location of the mobile device according to the target posture, so as to implement:

[0045] The positioning of the self-moving device is determined according to the target posture and its corresponding particle distribution weight.

[0046] In one embodiment, when determining the particle distribution weight according to the slip type, the processor 1001 is used to implement:

[0047] If the slip type is the first slip type or the second slip type, obtaining a particle distribution weight corresponding to the slip type, the slip degree of the first slip type being greater than the slip degree of the second slip type;

[0048] If the skidding type is the third skidding type, determining the particle distribution weight corresponding to the skidding type according to the matching information corresponding to the target posture and the first predicted posture, and the skidding degree of the second skidding type is greater than the skidding degree of the third skidding type;

[0049] In one embodiment, after determining the particle distribution weight corresponding to the target posture according to the slip type, the processor 1001 is further configured to implement:

[0050] Determining the distance between the target pose and the grid map boundary point cloud;

[0051] If the distance between the target posture and the grid map boundary point cloud does not exceed the preset distance threshold, the target posture is determined to be invalid, and the particle distribution weight corresponding to the target posture is reset to zero.

[0052] In one embodiment, before obtaining the slip type of the self-moving device, the processor 1001 is further configured to implement:

[0053] Performing a slip detection on the self-moving device;

[0054] When implementing the skid detection on the self-moving device, the processor 1001 is used to implement:

[0055] Acquire the first point cloud data collected from the mobile device at the current moment and the second point cloud data collected at a historical moment, wherein the difference between the historical moment and the current moment is less than a preset time length;

[0056] Determining matching point cloud data between the first point cloud data and the second point cloud data according to point cloud position information of the first point cloud data and the second point cloud data;

[0057] The device state of the self-moving device is determined according to the matching point cloud data, and the device state includes a slipping state and a non-slipping state.

[0058] In one embodiment, the first point cloud data includes a plurality of first point clouds, and the second point cloud data includes a plurality of second point clouds; when the processor 1001 determines matching point cloud data between the first point cloud data and the second point cloud data according to point cloud position information of the first point cloud data and the second point cloud data, it is used to implement:

[0059] According to the point cloud position information, second point clouds adjacent to each of the first point clouds are determined; the positional relationship between each of the first point clouds and its adjacent second point clouds is determined, and matching point cloud data between the first point cloud data and the second point cloud data is determined according to the positional relationship.

[0060] In one embodiment, the processor 1001, when determining the positional relationship between each of the first point clouds and the second point clouds adjacent thereto, and determining matching point cloud data between the first point cloud data and the second point cloud data according to the positional relationship, is used to implement:

[0061] For any one of the first point clouds, determine the target boundary area according to the point cloud position information of the first point cloud; determine the positional relationship between the adjacent second point cloud and the target boundary area; if the adjacent second point cloud is located within or on the boundary of the target boundary area, determine that the first point cloud is matched successfully, and use the successfully matched first point cloud as the matching point cloud data; if the adjacent second point cloud is located outside the target boundary area, determine that the first point cloud is matched unsuccessfully.

[0062] In one embodiment, when the processor 1001 determines the device state of the self-mobile device according to the matching point cloud data, it is used to implement:

[0063] Based on the point cloud numbers of the first point cloud data, the second point cloud data and the matching point cloud data, determine the point cloud matching intersection-and-union ratio of the first point cloud data and the second point cloud data; if the point cloud matching intersection-and-union ratio exceeds a preset intersection-and-union ratio threshold, determine that the device state of the self-moving device is a slipping state; if the point cloud matching intersection-and-union ratio does not exceed the preset intersection-and-union ratio threshold, determine that the device state of the self-moving device is a non-slipping state.

[0064] In one embodiment, before obtaining the first point cloud data collected from the mobile device at the current moment and the second point cloud data collected at the historical moment, the processor 1001 is further configured to implement:

[0065] Obtain the current posture information of the self-mobile device corresponding to the current moment and the historical posture information corresponding to the historical moment; if the posture error between the current posture information and the historical posture information is greater than the first posture error threshold, determine that the self-mobile device has the possibility of slipping, and execute the step of obtaining the first point cloud data collected by the self-mobile device at the current moment and the second point cloud data collected at the historical moment.

[0066] In one embodiment, after determining the device state of the mobile device, the processor 1001 is further configured to implement:

[0067] If it is determined that the device state is a slipping state, determine a first boundary point cloud corresponding to the environment in which the self-moving device is located based on the first point cloud data; obtain an environmental grid map, determine a local sub-map from the environmental grid map based on the position of the self-moving device, and obtain a second boundary point cloud corresponding to the local sub-map; determine a matching boundary point cloud between the first boundary point cloud and the second boundary point cloud; and determine the slip type of the self-moving device based on the first boundary point cloud and the matching boundary point cloud.

[0068] In one embodiment, when determining the first boundary point cloud corresponding to the environment in which the mobile device is located according to the first point cloud data, the processor 1001 is used to implement:

[0069] Determine the space boundary point cloud corresponding to the environment in which the self-mobile device is located according to the first point cloud data; obtain the coordinate transformation relationship corresponding to the first point cloud data; and perform coordinate transformation on the space boundary point cloud according to the coordinate transformation relationship to obtain a first boundary point cloud.

[0070] In one embodiment, when acquiring the second boundary point cloud corresponding to the local sub-graph, the processor 1001 is configured to implement:

[0071] Continuous pixel points whose number of pixel points in the local sub-image is greater than or equal to a preset number are determined as target continuous pixel points, wherein the continuous pixel points are composed of first pixel points of adjacent positions and the same type, and the first pixel points are used to characterize that the self-moving device is impassable; and the point cloud corresponding to the target continuous pixel points is used as the second boundary point cloud.

[0072] In one embodiment, when determining the matching boundary point cloud between the first boundary point cloud and the second boundary point cloud, the processor 1001 is configured to implement:

[0073] According to the point cloud position information of the first boundary point cloud and the second boundary point cloud, the positional relationship between the first boundary point cloud and the second boundary point cloud is determined; according to the positional relationship between the first boundary point cloud and the second boundary point cloud, the matching boundary point cloud between the first boundary point cloud and the second boundary point cloud is determined.

[0074] In one embodiment, when determining the slip type of the self-moving device according to the first boundary point cloud and the matching boundary point cloud, the processor 1001 is configured to implement:

[0075] Point cloud matching processing is performed based on the first boundary point cloud and the matching boundary point cloud to obtain a matching posture error; if the matching posture error is greater than a second posture error threshold, the slip type of the self-moving device is determined to be the first slip type; if the matching posture error is not greater than the second posture error threshold, the slip type of the self-moving device is determined to be the second slip type.

[0076] Some embodiments of the present application are described in detail below in conjunction with the accompanying drawings. In the absence of conflict, the following embodiments and features of the embodiments can be combined with each other. Figure 3 , Figure 3 FIG. 1 is a schematic flow chart of a method for positioning a mobile device provided in an embodiment of the present application. Figure 3As shown, the positioning method of the mobile device may include steps S101 to S104.

[0077] S101. Obtaining a slip type from a mobile device.

[0078] In an embodiment of the present application, the slip type may include at least three types, namely a first slip type, a second slip type and a third slip type. The first slip type is used to indicate that the self-moving device has experienced severe slippage, the second slip type is used to indicate that the self-moving device has experienced slight slippage, and the third slip type is used to indicate that the self-moving device has not experienced any slippage.

[0079] Exemplarily, the device status of the self-moving device can be monitored in real time to determine whether the self-moving device is slipping. If slipping is detected in the self-moving device, it is determined whether the slip type of the self-moving device is the first slip type or the second slip type. If slipping is not detected in the self-moving device, it is determined that the slip type of the self-moving device is the third slip type.

[0080] For example, the slip type of the self-moving device can be detected by setting a sensor on the self-moving device, and the slip type can be assisted by using information such as the displacement change integrated by the IMU data of the self-moving device over a period of time to determine the slip type. The slip type of the self-moving device can also be determined by the point cloud data collected by the self-moving device.

[0081] It should be noted that in the embodiment of the present application, the self-equipped device can determine the slip type through its own detection, or obtain its own slip type from an additional terminal device, which is not specifically limited here.

[0082] S102: Obtain a first predicted position and posture from a mobile device.

[0083] The first predicted posture is the posture of the mobile device after the motion prediction in the current laser frame, which is essentially a predicted value.

[0084] Exemplarily, the first predicted pose can be obtained by tf (tensorflow function) mapping. In the embodiment of the present application, the tf mapping of map->odom can be used.

[0085] It should be noted that tf mapping refers to the position transformation relationship between the mobile device at a certain moment, from the robot body (base_link) coordinate system to the laser coordinate system, from the odometer (odom) coordinate system to the base_link coordinate system, from the map (map) coordinate system to the odom coordinate system, etc. All these transformation relationships will form a tf tree. At this time, it is necessary to obtain the coordinate transformation relationship at the same time as the laser frame through tf mapping to convert the corresponding coordinate system.

[0086] S103, determining a plurality of second predicted postures according to the slip type and the first predicted posture, and determining a target posture from the plurality of second predicted postures.

[0087] The second predicted posture is a plurality of postures different from the first predicted postures, for example, a predicted posture having a different displacement or angle from the first predicted posture. The target posture is the posture most suitable for positioning among the plurality of second predicted postures.

[0088] In some embodiments, the posture traversal range of the self-moving device is determined according to the slip type; within the posture traversal range, the first predicted posture is adjusted according to the posture displacement interval to obtain multiple second predicted postures. In this way, multiple second predicted postures can be accurately generated based on the first predicted posture and the slip type, thereby improving the accuracy of the second predicted posture and the efficiency of screening subsequent target postures.

[0089] The pose traversal range may include a displacement traversal range in the x-axis direction, a displacement traversal range in the y-axis direction, and a rotation traversal range around the z-axis yaw angle (yaw angle), for generating a second predicted pose based on the first predicted pose within the pose traversal range. The pose displacement interval may include a displacement interval in the x-axis direction, a displacement interval in the y-axis direction, and a rotation interval around the z-axis yaw angle (yaw angle), etc.

[0090] Specifically, the traversal range of the yaw angle in the x-axis direction, the y-axis direction and around the z-axis can be determined according to the slip type, and then the posture adjustment of the first predicted posture is generated according to the traversal range and displacement interval in the x-axis direction, the y-axis direction and around the z-axis, so as to obtain multiple second predicted postures.

[0091] Exemplarily, the posture traversal range of the self-mobile device can be determined according to the following formula:

[0092] gap_T=(t+1)*gap_T0

[0093] Among them, gap_T is the pose traversal range, t is the slip type, and gap_T0 is the preset pose range.

[0094] It should be noted that the correspondence between the slip type and the t value can be determined according to actual conditions, the preset posture range can also be determined according to actual conditions, the displacement interval in the x-axis direction, the displacement interval in the y-axis direction, and the rotation interval around the z-axis yaw angle (yaw angle) can also be determined according to actual conditions, and no specific limitations are made here.

[0095] In the embodiment of the present application, if the slip type is the first slip type, the t value is 2, if the slip type is the second slip type, the t value is 1, and if the slip type is the third slip type, the t value is 0. The preset posture range in the x-axis direction is 0.5m, the preset posture range in the y-axis direction is 0.5m, and the preset posture range around the z-axis yaw angle is 30°. The displacement interval x_ interval is 0.1m, and the displacement interval in the y-axis direction is y_ interval is 0.1m, the rotation interval yaw_ around the z-axis yaw angle interval 1°

[0096] For example, taking gap_T as the traversal range in the x-axis and y-axis directions, if the slip type is the first slip type, the t value is 2, that is, the formula is:

[0097] gap_T=(2+1)*0.5=1.5m

[0098] Therefore, if the slip type is the first slip type, the traversal range in the x-axis and y-axis directions is 1.5 m.

[0099] For example, taking gap_T as the traversal range of the yaw angle around the z-axis as an example, if the slip type is the second slip type, the t value is 1, that is, the formula is:

[0100] gap_T=(1+1)*30°=60°

[0101] Therefore, if the slip type is the second slip type, the traversal range of the yaw angle around the z-axis is 60°.

[0102] It can be seen from this that the displacement traversal range in the x-axis direction, the displacement traversal range in the y-axis direction, and the rotation traversal range around the z-axis yaw angle can be accurately determined according to the slip type. Within the above-mentioned posture traversal range, the displacement of the first predicted posture in the x-axis direction, the displacement in the y-axis direction, and the rotation angle around the z-axis yaw angle are adjusted in sequence according to the corresponding posture displacement interval, thereby generating multiple different second predicted postures.

[0103] In some embodiments, current point cloud data collected from a mobile device is obtained; an environment grid map of the environment in which the mobile device is located and a grid map boundary point cloud of the environment grid map are obtained; based on each second predicted posture, the current point cloud data is mapped to the environment grid map to obtain point cloud data corresponding to each second predicted posture; matching information between the point cloud data corresponding to each second predicted posture and the grid map boundary point cloud is determined; and a target posture is determined from a plurality of second predicted postures based on the matching information. Thus, the target posture can be accurately determined from a plurality of second predicted postures based on the matching information.

[0104] Among them, the current point cloud data can be the point cloud data of the current laser frame, such as the point cloud data collected when the self-mobile device needs to perform slip detection. The point cloud data refers to a set of vectors in a three-dimensional coordinate system. In an embodiment of the present application, the self-mobile device collects point cloud data corresponding to the environment in which the self-mobile device is located. The environmental grid map is a grid map of the environment in which the self-mobile device is located. The environmental grid map can be obtained by the self-mobile device, or by interacting with the self-mobile device and electronic devices such as computers, mobile phones and other devices. The grid map boundary point cloud refers to the black pixel unit in the environmental grid map, which is specifically generated by historical point cloud data and does not represent the real point cloud data at this time. The matching information can be the number of successful point cloud matches between the point cloud data corresponding to each second predicted posture and the grid map boundary point cloud.

[0105] Exemplarily, the current point cloud data can be mapped to the environment grid map based on each different second predicted posture, so as to obtain point cloud data corresponding to different second predicted postures; the point cloud data obtained after mapping each second predicted posture is matched with the boundary point cloud of the grid map; finally, based on the generated matching information, the target posture is determined from multiple second predicted postures.

[0106] It should be noted that the mapping here refers to converting the current point cloud data corresponding to different second predicted postures into point cloud data in the same coordinate system as the grid map boundary point cloud, so as to facilitate matching with the grid map boundary point cloud.

[0107] In some embodiments, for any point cloud data corresponding to the second predicted posture, the positional relationship between each point cloud in the point cloud data and the boundary point cloud of the grid map is determined; based on the positional relationship between each point cloud in the point cloud data and the boundary point cloud of the grid map, the matching information between the point cloud data corresponding to the second predicted posture and the boundary point cloud of the grid map is determined.

[0108] Specifically, the target boundary range can be determined in the environment grid map through the grid map boundary point cloud; the positional relationship between each point cloud in the point cloud data corresponding to any second predicted posture and the target boundary range is determined; and the matching information between the point cloud data corresponding to the second predicted posture and the grid map boundary point cloud is determined based on the positional relationship.

[0109] The target boundary range may be a boundary range formed with the grid map boundary point cloud as the center, such as a circular search range, a square search range, and the like.

[0110] Exemplarily, each point cloud in the grid map boundary point cloud is traversed in turn, with it as the center of the circle, so as to generate a circular search range of a preset radius, until all point clouds in the grid map boundary point cloud are processed. Then, the positional relationship between each point cloud in the point cloud data corresponding to the second predicted posture and each circular search range is determined in turn, until all point clouds in the point cloud data corresponding to the second predicted posture are processed. If any point cloud in the point cloud data corresponding to the second predicted posture is located in each circular search range or on the boundary, it is considered that the point cloud is matched successfully. Finally, the number of successful point cloud matches between the point cloud data corresponding to the second predicted posture and the grid map boundary point cloud is counted as matching information.

[0111] Specifically, the positional relationship between each point cloud in the point cloud data and the grid map boundary point cloud can also be determined by determining the distance between each point cloud in the grid map boundary point cloud and the corresponding point cloud in the point cloud data corresponding to the second predicted posture; then, based on the positional relationship between each point cloud in the point cloud data and the grid map boundary point cloud, if the distance between any point cloud in the grid map boundary point cloud and the corresponding point cloud in the point cloud data corresponding to the second predicted posture is less than a preset point cloud distance threshold, the point cloud is considered to be matched successfully, and finally the number of successful point cloud matches between the point cloud data corresponding to the second predicted posture and the grid map boundary point cloud is counted as matching information.

[0112] By analogy, the point cloud data corresponding to all the second predicted postures are matched with the boundary point cloud of the grid map, so as to obtain the number of successful point cloud matches between the point cloud data corresponding to all the second predicted postures and the boundary point cloud of the grid map.

[0113] In some embodiments, the point cloud data corresponding to the plurality of second predicted postures are matched with the grid map boundary point cloud, and the second predicted posture having the largest number of matching point clouds is used as the target posture.

[0114] Specifically, after matching the point cloud data corresponding to all second predicted poses with the grid map boundary point cloud, the number of successful point cloud matches between the point cloud data corresponding to each second predicted pose and the grid map boundary point cloud is obtained, and the second predicted pose corresponding to the largest number of successful point cloud matches is used as the target pose. Since the point cloud data corresponding to the second predicted pose has the largest number of point cloud matches with the grid map boundary point cloud, it means that the second predicted pose is more accurate than other second predicted poses.

[0115] S104: Determine the location of the mobile device according to the target position.

[0116] Specifically, the target posture and the preset particle distribution weights can be used to perform AMCL particle resampling to determine the positioning of the self-moving device.

[0117] In some embodiments, before determining the position of the self-moving device according to the target position, the particle distribution weight corresponding to the target position is determined according to the slip type; and then the position of the self-moving device is determined according to the target position and its corresponding particle distribution weight. Thus, the position of the self-moving device can be determined more accurately by determining the particle distribution weight.

[0118] Among them, the particle distribution weight may be the particle distribution weight corresponding to the target posture, which is used for AMCL particle resampling and can more accurately determine the positioning of the mobile device.

[0119] Specifically, if the slip type is the first slip type or the second slip type, the particle distribution weight corresponding to the slip type is obtained; if the slip type is the third slip type, the particle distribution weight corresponding to the slip type is determined according to the matching information corresponding to the target posture and the first predicted posture. After the particle distribution weight corresponding to the slip type is determined, AMCL particle resampling can be performed according to the target posture and its corresponding particle distribution weight, thereby determining the positioning of the self-moving device.

[0120] The slip degree of the first slip type is greater than the slip degree of the second slip type, and the slip degree of the second slip type is greater than the slip degree of the third slip type.

[0121] Exemplarily, the relationship between the particle distribution weight W and the slip type can be expressed as:

[0122]

[0123] In the embodiment of the present application, if the slip type is the first slip type, the t value is 2, if the slip type is the second slip type, the t value is 1, and if the slip type is the third slip type, the t value is 0. best The number of matching point clouds between the point cloud data corresponding to the target pose and the boundary point cloud of the grid map, n cur is the number of matching point clouds between the point cloud data corresponding to the first predicted pose and the boundary point cloud of the grid map, and N is the number of point clouds of the point cloud data corresponding to the predicted pose.

[0124] It should be noted that if the slip type is the first slip type and the second slip type, the corresponding particle distribution weights W are 0.8 and 0.5 respectively, and the value can be set according to the actual situation and is not specifically limited here. If the slip type is the third slip type, the corresponding particle distribution weight W can be determined according to the above formula.

[0125] In some embodiments, after determining the particle distribution weight corresponding to the target posture according to the slip type, the distance between the target posture and the grid map boundary point cloud is determined; if the distance between the target posture and the grid map boundary point cloud does not exceed the preset distance threshold, the target posture is determined to be invalid, and the particle distribution weight corresponding to the target posture is reset to zero. In this way, the target posture can be accurately verified to determine whether the target posture is valid.

[0126] Specifically, a corresponding posture coverage range can be generated with the position of the target posture as the midpoint. Within the posture coverage range, it is determined whether there is a grid map boundary point cloud, that is, whether the distance between the target posture and each point cloud in the grid map boundary point cloud exceeds a preset distance threshold. If the distance between the target posture and a point cloud in the grid map boundary point cloud does not exceed the preset distance threshold, the target posture is determined to be invalid, and the particle distribution weight corresponding to the target posture is reset to zero; if the distance between the target posture and each point cloud in the grid map boundary point cloud exceeds the preset distance threshold, the target posture is determined to be valid, and the particle distribution weight corresponding to the target posture is determined to be the particle distribution weight corresponding to the slip type.

[0127] The preset distance threshold may be any distance, such as the radius of the mobile device, and is not specifically limited here.

[0128] Exemplarily, if it is determined that the target posture is valid, AMCL particle resampling is performed according to the target posture and its corresponding particle distribution weight, so as to determine the positioning of the self-moving device.

[0129] The positioning method of the self-moving device disclosed in the embodiment of the present application obtains the slip type and the first predicted posture of the self-moving device; determines multiple second predicted postures according to the slip type and the first predicted posture, and determines the target posture from the multiple second predicted postures; and determines the positioning of the self-moving device according to the target posture. In this way, the positioning of the self-moving device can be accurately determined when the self-moving device slips, thereby effectively eliminating the influence of the slip of the self-moving device on the positioning accuracy of the AMCL. At the same time, the positioning method also has the advantages of low cost, strong robustness, high practical value, and good scalability.

[0130] The above embodiment describes the specific steps of the positioning method of the self-moving device. Before the step of "obtaining the slip type of the self-moving device", the embodiment of the present application also provides a slip detection method for the self-moving device, which is used to detect slip of the self-moving device.

[0131] In the prior art, redundant sensors such as top-view or surround-view cameras are generally added to provide more observation information for detecting or even solving the robot's slipping problem. However, this solution requires additional hardware costs, and the fusion solution design is also relatively more complicated. It is also possible to use information such as the displacement change of the IMU data integrated over a period of time to assist in determining whether the robot has a slipping problem. Although this solution does not require additional hardware costs, the violent shaking of the robot body may cause errors in the measured IMU data, and the start and end time points of the IMU data are difficult to control, which may cause the data collection to be too long or too short. The above reasons will affect the accuracy of the IMU data integration results, resulting in poor robustness of the solution.

[0132] To this end, an embodiment of the present application provides a method for detecting a slippage of a self-moving device, wherein the method for detecting the positioning state of the self-moving device can be applied to the self-moving device. The method for detecting a slippage of a self-moving device does not require the addition of additional hardware and the use of IMU data, and can also realize the slippage detection of the self-moving device, thereby not only improving the accuracy of slippage detection, but also reducing hardware costs, and has high practical value and good scalability.

[0133] like Figure 4 As shown, the skid detection method for the self-moving device may include steps S201 to S203.

[0134] S201. Acquire first point cloud data collected at a current moment from a mobile device and second point cloud data collected at a historical moment, wherein a difference between the historical moment and the current moment is less than a preset duration.

[0135] The first point cloud data may be the point cloud data of the current laser frame, and the current moment may be the moment corresponding to the need for the self-mobile device to perform slip detection, such as the moment corresponding to the acquisition of the slip detection instruction by the self-mobile device. The historical moment may be any moment before the current moment, such as the point cloud data corresponding to the historical laser frame of the last posture optimization. The preset duration is used to limit the acquisition time of the first point cloud data and the second point cloud data to not differ too much, which can generally be 1s, or other durations, and is not specifically limited here.

[0136] In some embodiments, before obtaining the first point cloud data collected from the mobile device at the current moment and the second point cloud data collected at the historical moment, the current posture information corresponding to the mobile device at the current moment and the historical posture information corresponding to the historical moment are obtained; if the posture error between the current posture information and the historical posture information is greater than the first posture error threshold, it is determined that the mobile device has the possibility of slipping, and the step of obtaining the first point cloud data collected from the mobile device at the current moment and the second point cloud data collected at the historical moment is performed. In this way, a rough slip detection can be performed before performing slip detection, thereby avoiding wasting computing resources for accurate slip detection.

[0137] Among them, the current posture information is used to represent the posture of the mobile device at the current moment, and the historical posture information is used to represent the posture of the mobile device at the historical moment. The posture error is used to represent the difference between the posture change amount of the current posture information and the historical posture information. The first posture error threshold can be any posture error value, which is not specifically limited here.

[0138] Specifically, if the posture error between the current posture information and the historical posture information is greater than the first posture error threshold, it is determined that the self-moving device may slip, and the posture needs to be optimized once, that is, step S201 needs to be executed to ensure that the positioning accuracy is high enough; if the posture error between the current posture information and the historical posture information is not greater than the first posture error threshold, it is determined that the self-moving device has a small amount of movement and there is no possibility of slipping, so there is no need to perform posture optimization, that is, there is no need to execute step S201.

[0139] Step S202: determining matching point cloud data between the first point cloud data and the second point cloud data according to the point cloud position information of the first point cloud data and the second point cloud data.

[0140] The point cloud position information of the first point cloud data and the second point cloud data may be the point cloud coordinate information in the first point cloud data and the second point cloud data. The matching point cloud data is used to indicate the number of point clouds that match the first point cloud data and the second point cloud data. The first point cloud data includes a plurality of first point clouds, and the second point cloud data includes a plurality of second point clouds.

[0141] In some embodiments, based on the point cloud position information, a second point cloud adjacent to each first point cloud is determined; the positional relationship between each first point cloud and its adjacent second point cloud is determined, and matching point cloud data between the first point cloud data and the second point cloud data is determined based on the positional relationship. Thus, the matching point cloud data between the first point cloud data and the second point cloud data can be accurately determined based on the point cloud position information.

[0142] Specifically, since the point cloud position information of the first point cloud data and the second point cloud data includes the point cloud positions of each first point cloud and the point cloud positions of each second point cloud, for each first point cloud, there will be a second point cloud closest to it, and the second point cloud closest to it is the adjacent second point cloud of the first point cloud.

[0143] In some embodiments, for any first point cloud, the target boundary area is determined according to the point cloud position information of the first point cloud; the positional relationship between the adjacent second point cloud and the target boundary area is determined; if the adjacent second point cloud is located within or on the boundary of the target boundary area, the first point cloud is determined to be matched successfully, and the successfully matched first point cloud is used as the matching point cloud data; if the adjacent second point cloud is located outside the target boundary area, the first point cloud is determined to be unsuccessful. In this way, it can be accurately determined whether each first point cloud is matched successfully with its adjacent second point cloud, and the corresponding matching point cloud data is generated.

[0144] The target boundary area may be a boundary area formed with the grid map boundary point cloud as the center, such as a circular search range, a square search range, and the like.

[0145] Exemplarily, for any first point cloud, a circular search range with a preset radius is generated with the point cloud position of the first point cloud as the center of the circle, and the positional relationship between the second point cloud adjacent to the first point cloud and the circular search range is determined; if the second point cloud adjacent to the first point cloud is located within or on the boundary of the circular search range, it is determined that the first point cloud is matched successfully, and the successfully matched first point cloud is used as the matching point cloud data; if the adjacent second point cloud adjacent to the first point cloud is located outside the circular search range, it is determined that the first point cloud is matched unsuccessfully.

[0146] Exemplarily, each first point cloud in the first point cloud data is traversed to determine the positional relationship between each first point cloud in the first point cloud data and the adjacent second point cloud and the circular search range, and then determine whether each first point cloud is successfully matched, and record all successfully matched first point clouds in the first point cloud data as matching point cloud data.

[0147] Step S203: Determine the device state of the mobile device according to the matching point cloud data, where the device state includes a slipping state and a non-slipping state.

[0148] In some embodiments, the point cloud matching intersection-and-union ratio of the first point cloud data and the second point cloud data is determined based on the point cloud data, the second point cloud data and the number of point clouds of the matching point cloud data; if the point cloud matching intersection-and-union ratio exceeds a preset intersection-and-union ratio threshold, it is determined that the device state of the self-mobile device is a slipping state; if the point cloud matching intersection-and-union ratio does not exceed the preset intersection-and-union ratio threshold, it is determined that the device state of the self-mobile device is a non-slipping state.

[0149] The preset intersection-over-union ratio threshold may be set according to actual conditions. For example, the preset intersection-over-union ratio threshold may be 0.85, which is not specifically limited here.

[0150] For example, the intersection-over-union ratio of point cloud matching can be calculated by the following formula:

[0151]

[0152] Among them, IoU is the intersection over union ratio of point cloud matching, m is the number of point clouds in the first point metadata, n is the number of point clouds in the first point metadata, and o is the number of point clouds in the matching point cloud data. If the number of point clouds in the matching point cloud data is greater than the number of point clouds in the first point metadata or the number of point clouds in the second point metadata, the value of o is corrected to the minimum value of the number of point clouds in the first point metadata, the second point metadata, and the matching point cloud data.

[0153] Exemplarily, the point cloud matching intersection-and-union ratio can be calculated by the above formula. Assuming that the preset intersection-and-union ratio threshold is 0.85, if the calculated point cloud matching intersection-and-union ratio is 0.9, it means that the changes observed in the previous and next frames are not large, which means that the self-moving device may slip slightly on the spot, that is, the device state of the self-moving device is determined to be a slipping state. If the calculated point cloud matching intersection-and-union ratio is 0.8, it means that the self-moving device is moving normally, that is, the device state of the self-moving device is determined to be a non-slipping state.

[0154] Exemplarily, the device status of the mobile device can also be determined by calculating the ratio between the number of point clouds of the matching point cloud data and the number of point clouds of the first point cloud data and / or the number of point clouds of the first point cloud data, and then comparing the ratio with a preset ratio.

[0155] It should be noted that any solution that uses the first point cloud data, the second point cloud data, and the matching point cloud data to perform data processing to determine the device status of the mobile device is within the protection scope of this application.

[0156] In some embodiments, after determining the device state of the self-mobile device, if the device state is determined to be a slipping state, determine the first boundary point cloud corresponding to the environment in which the self-mobile device is located according to the first point cloud data; obtain the environment grid map, determine the local sub-map from the environment grid map according to the position of the self-mobile device, and obtain the second boundary point cloud corresponding to the local sub-map; determine the matching boundary point cloud of the first boundary point cloud and the second boundary point cloud; determine the slip type of the self-mobile device according to the first boundary point cloud and the matching boundary point cloud. In this way, the slip type of the self-mobile device can be further determined when the device state is determined to be a slipping state.

[0157] Among them, the first boundary point cloud is the boundary information extracted and converted from the point cloud data. At this time, the boundary information is the coordinate information expressed in the map coordinate system. The environmental grid map is a grid map of the environment in which the self-mobile device is located. The environmental grid map can be obtained by the self-mobile device, or it can be obtained by interacting with the self-mobile device and electronic devices such as computers, mobile phones and other devices. The local sub-graph is used to represent the grid map of the specific position of the self-mobile device in the environmental grid map. The second boundary point cloud can be the boundary information extracted from the local map. At this time, the boundary information is the coordinate information expressed in the map coordinate system. The matching boundary point cloud is used to represent the point cloud in which the first boundary point cloud and the second boundary point cloud have a matching relationship.

[0158] In an embodiment of the present application, the slip type may include at least three types, namely a first slip type, a second slip type and a third slip type. The first slip type is used to indicate that the self-moving device has experienced severe slippage, the second slip type is used to indicate that the self-moving device has experienced slight slippage, and the third slip type is used to indicate that the self-moving device has not experienced slippage, that is, the device state of the self-moving device is in a non-slip state.

[0159] In some embodiments, a space boundary point cloud corresponding to the environment in which the self-mobile device is located is determined based on the first point cloud data; a coordinate transformation relationship corresponding to the first point cloud data is obtained; and a coordinate transformation is performed on the space boundary point cloud based on the coordinate transformation relationship to obtain a first boundary point cloud. In this way, the point cloud data can be accurately extracted and transformed to obtain the first boundary point cloud.

[0160] The spatial boundary point cloud may be boundary information directly extracted from the point cloud data, and the boundary information at this time is coordinate information represented in a three-dimensional space coordinate system. The coordinate transformation relationship is used to transform the coordinate system corresponding to the boundary information, and may refer to a tf (tensorflow function) mapping.

[0161] Specifically, a spatial boundary point cloud corresponding to the mobile device environment is extracted from the first point cloud data, the coordinate transformation relationship at the corresponding moment is obtained according to the timestamp corresponding to the first point cloud data, and finally the coordinate system of the spatial boundary point cloud is transformed according to the coordinate transformation relationship to obtain the first boundary point cloud.

[0162] Exemplarily, continuous data points in the first point cloud data whose number is greater than or equal to a first preset number can be determined as target continuous data points; the coordinate information corresponding to the target continuous data points is used as the boundary information of the spatial boundary point cloud, and the spatial boundary point cloud is then coordinate-transformed using the boundary information of the spatial boundary point cloud to obtain the first boundary point cloud.

[0163] Among them, the number of data points is the number of data points, continuous data points are composed of data points that are adjacent in position and of the same type, the target continuous data points are continuous data points whose number of data points is greater than or equal to the first preset number, and the first preset number can be any value, which can generally be 3, and is not specifically limited here.

[0164] Specifically, as long as there are data points with adjacent positions and the same type as a certain data point, the data point and the data points adjacent to it can be considered as continuous data points.

[0165] It should be noted that the adjacent positions can be adjacent positions in the directions of up, down, left, right, upper left, lower left, upper right, lower right, etc. At the same time, the two adjacent data points need to meet the continuous data point determination condition, and the continuous data point determination condition is that the absolute value of the laser range error of the two adjacent data points needs to be less than the preset distance. Generally, the preset distance can be 5cm, that is, the minimum grid resolution of the environmental grid map. At the same time, the two adjacent data points also need to meet the adjacent data points are not INF, INF means there is no actual measurement value.

[0166] Exemplarily, if the first preset number is 3, and there is continuous data point A, and the number of data points of continuous data point A is 4, then the number of data points of continuous data point A is greater than the first preset number, then continuous data point A can be used as the target continuous data point, and the coordinate information corresponding to multiple data points in continuous data point A can be used as the spatial boundary point cloud.

[0167] Exemplarily, if the first preset number is 3, and there are continuous data points B, and the number of data points of continuous data points B is 2, and the number of data points of continuous data points B is less than the first preset number, then the continuous data points B are filtered out and another continuous data point is traversed again.

[0168] Specifically, the current posture information corresponding to the mobile device at the current moment is obtained; the position of the mobile device in the environment grid map is determined according to the current posture information; based on the preset image interception range, the environment grid map is subjected to image interception processing with the position of the mobile device in the environment grid map as the center to obtain a local sub-image. In this way, the local sub-image can be accurately intercepted, so as to accurately extract the second boundary point cloud in the local sub-image.

[0169] The current position information may represent the position and posture of the mobile device in the three-dimensional space coordinate system. The image capture range may include any image size range, such as 16m*16m, which is not specifically limited here.

[0170] Exemplarily, the position and posture of the mobile device in the three-dimensional space coordinate system can be determined based on the current position information of the mobile device, thereby determining the position of the mobile device in the environment grid map based on the position and posture of the mobile device in the three-dimensional space coordinate system, and performing image capture processing on the environment grid map with the position of the mobile device in the environment grid map as the center. For example, a map within a range of 16m*16m can be captured in the environment grid map as a local sub-image.

[0171] Specifically, after the image is intercepted and processed to obtain a local sub-image, the format of the local sub-image is a 2D laser grid map, so the format of the local sub-image needs to be converted into a single-channel single-byte image.

[0172] The single-channel single-byte image includes a first type of pixel points. The first type of pixel points includes a plurality of first pixel points, and the first pixel points are used to represent that the self-moving device is not passable, and can be represented as 0, for example.

[0173] It should be noted that one pixel can represent a range of 5cm*5cm in real space, or other sizes, which are not specifically limited here.

[0174] In some embodiments, continuous pixel points in a local sub-image whose number of pixel points is greater than or equal to a second preset number are determined as target continuous pixel points, wherein the continuous pixel points are composed of first pixel points of adjacent positions and of the same type, and the first pixel points are used to characterize that the self-moving device is inaccessible; the point cloud corresponding to the target continuous pixel points is used as the second boundary point cloud.

[0175] The number of pixels is the number of pixels, and the continuous pixels are composed of first pixels of the same type and adjacent to each other, and the first pixels are pixels used to indicate that the self-moving device is inaccessible. The target continuous pixels are continuous pixels whose number of pixels is greater than or equal to the second preset number, and the second preset number can be any value, which can generally be 3, and is not specifically limited here.

[0176] Specifically, target continuous pixel points may be extracted from the local sub-image through a region growing algorithm, and the point cloud corresponding to the target continuous pixel points may be used as the second boundary point cloud.

[0177] For example, the local sub-graph can be traversed from left to right and from top to bottom, the first unlabeled pixel point is obtained as the seed point, and a new label Tab is added. i Then, the first pixel points adjacent to the seed point in eight directions, namely, up, down, left, right, upper left, lower left, upper right, and lower right, are traversed in depth-first or breadth-first order. If an adjacent first pixel point is found, the adjacent first pixel point is labeled with the same label Tab. i, traverse the corresponding adjacent first pixel points of each adjacent first pixel point in turn, and also attach the same label Tab i , until there is no new adjacent first pixel point, then the traversal can be stopped, these same labels Tab i The corresponding first pixel point is a continuous pixel point. If the number of first pixel points with the same label in the continuous pixel points is greater than or equal to the second preset number, the continuous pixel point is used as the target continuous pixel point, and the coordinate information corresponding to each first pixel point in the target continuous pixel point is used as the spatial boundary information. At this time, after traversing the continuous pixel points corresponding to a seed point, the above steps can be repeated to find a new seed point until no new seed point is generated.

[0178] The first pixel points with the same label are regarded as continuous pixel points, and the continuous pixel points with different labels represent different wall or object edge features.

[0179] It should be noted that as long as there are adjacent pixels of the same type to a certain pixel, the pixel and its adjacent pixels can be considered as continuous pixels. The adjacent positions can be adjacent positions in directions such as top, bottom, left, right, upper left, lower left, upper right, and lower right.

[0180] Exemplarily, if the second preset number is 3, and there is a continuous pixel point C, and the number of pixels in the continuous pixel point C is 4, and the number of pixels in the continuous pixel point C is greater than the second preset number, then the continuous pixel point C can be used as the target continuous pixel point, and the point cloud corresponding to the multiple first pixel points in the continuous pixel point C can be used as the second boundary point cloud.

[0181] Exemplarily, if the second preset number is 3, and there are continuous pixel points D, and the number of pixel points of the continuous pixel points D is 2, and the number of pixel points of the continuous pixel points D is less than the second preset number, the continuous pixel points D are filtered out and another first pixel point is traversed again.

[0182] In some embodiments, the positional relationship between the first boundary point cloud and the second boundary point cloud is determined based on the point cloud position information of the first boundary point cloud and the second boundary point cloud; and the matching boundary point cloud between the first boundary point cloud and the second boundary point cloud is determined based on the positional relationship between the first boundary point cloud and the second boundary point cloud. Thus, the matching boundary point cloud can be accurately determined.

[0183] Specifically, according to the point cloud position information, the second boundary point cloud adjacent to each first boundary point cloud is determined; the positional relationship between each first boundary point cloud and its adjacent second boundary point cloud is determined, and the matching boundary point cloud between the first boundary point cloud and the second boundary point cloud is determined according to the positional relationship. Thus, the matching boundary point cloud between the first boundary point cloud and the second boundary point cloud can be accurately determined according to the point cloud position information.

[0184] Exemplarily, for any first boundary point cloud, the preset boundary area is determined according to the point cloud position information of the first boundary point cloud; the positional relationship between the adjacent second boundary point cloud and the preset boundary area is determined; if the adjacent second boundary point cloud is located within the preset boundary area or on the boundary, the first boundary point cloud is determined to be matched successfully, and the successfully matched first boundary point cloud is used as the matched boundary point cloud; if the adjacent second boundary point cloud is located outside the preset boundary area, the first boundary point cloud is determined to be unsuccessful in matching. In this way, it is possible to accurately determine whether each first boundary point cloud is matched successfully with its adjacent second boundary point cloud, and generate the corresponding matched boundary point cloud.

[0185] Among them, the preset boundary area is used to indicate the maximum tolerable range of positioning error, which also refers to the maximum searchable range of matching boundary point cloud. It can be a boundary area formed with the grid map boundary point cloud as the center, such as a circular search range, a square search range, etc.

[0186] Exemplarily, for any first boundary point cloud, a circular search range with a preset radius is generated with the point cloud position of the first boundary point cloud as the center of the circle, and the positional relationship between the second boundary point cloud adjacent to the first boundary point cloud and the circular search range is determined; if the second boundary point cloud adjacent to the first boundary point cloud is located within the circular search range or on the boundary, it is determined that the first boundary point cloud is matched successfully, and the successfully matched first boundary point cloud is used as the matching boundary point cloud; if the adjacent second boundary point cloud adjacent to the first boundary point cloud is located outside the circular search range, it is determined that the first boundary point cloud is matched unsuccessfully.

[0187] Exemplarily, each first boundary point cloud is traversed to determine the positional relationship between each first boundary point cloud and the adjacent second boundary point cloud and the circular search range, and then determine whether each first boundary point cloud is successfully matched, and record all successfully matched first boundary point clouds as matched boundary point clouds.

[0188] In some embodiments, point cloud matching processing is performed based on the first boundary point cloud and the matching boundary point cloud to obtain a matching posture error; if the matching posture error is greater than the second posture error threshold, the slip type of the self-moving device is determined to be the first slip type; if the matching posture error is not greater than the second posture error threshold, the slip type of the self-moving device is determined to be the second slip type. In this way, when the self-moving device slips, the slip type of the self-moving device can be accurately determined based on the first boundary point cloud and the matching boundary point cloud.

[0189] The matching pose error may be a pose error after point cloud matching between the first boundary point cloud and the matching boundary point cloud. The second pose error threshold may be any pose error value, which is not specifically limited herein.

[0190] Specifically, point cloud ICP matching is performed based on the first boundary point cloud and the matching boundary point cloud, and the matching pose error is calculated; if the matching pose error is greater than the second pose error threshold, it indicates that the self-moving device has experienced a severe slip with a large positioning offset, and the slip type of the self-moving device is determined to be the first slip type; if the matching pose error is not greater than the second pose error threshold, it indicates that the self-moving device has experienced a severe slip with a small positioning offset, and the slip type of the self-moving device is determined to be the second slip type.

[0191] The method for detecting a slip of a self-moving device disclosed in the embodiment of the present application obtains the first point cloud data collected by the self-moving device at the current moment and the second point cloud data collected at the historical moment; determines the matching point cloud data of the first point cloud data and the second point cloud data according to the point cloud position information of the first point cloud data and the second point cloud data; and determines the device state of the self-moving device according to the matching point cloud data. The method for detecting a slip of a self-moving device can realize the detection of a slip of a self-moving device without adding additional hardware and using IMU data, thereby not only improving the accuracy of the slip detection, but also reducing the hardware cost, and has high practical value and good scalability.

[0192] A computer-readable storage medium is also provided in an embodiment of the present application. The computer-readable storage medium stores a computer program. The computer program includes program instructions. The processor executes the above program instructions to implement any positioning method for a mobile device provided in an embodiment of the present application.

[0193] For example, the program is loaded by the processor and may execute the following steps:

[0194] Obtain a slip type of the self-moving device; obtain a first predicted posture of the self-moving device; determine a plurality of second predicted postures according to the slip type and the first predicted posture, and determine a target posture from the plurality of second predicted postures; determine a positioning of the self-moving device according to the target posture.

[0195] The computer-readable storage medium may be an internal storage unit of the mobile device in the aforementioned embodiment, such as a hard disk or memory of the mobile device. The computer-readable storage medium may also be an external storage device of the mobile device, such as a plug-in hard disk, a smart memory card (Smart Media Card, SMC), a secure digital card (Secure Digital Card, SD Card), a flash card (Flash Card), etc. equipped on the mobile device.

[0196] Furthermore, the computer-readable storage medium may mainly include a program storage area and a data storage area, wherein the program storage area may store an operating system, programs required for at least one function, etc.; the data storage area may store data created according to each program, etc.

[0197] The above are only specific implementations of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of various equivalent modifications or replacements within the technical scope disclosed in the present application, and these modifications or replacements should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. A positioning method for a mobile device, characterized in that: The method comprises: Obtaining the slip type of the self-moving device; Obtaining a first predicted position of the mobile device; Determine a plurality of second predicted postures according to the slip type and the first predicted posture, and determine a target posture from the plurality of second predicted postures; The positioning of the self-moving device is determined according to the target position.

2. The method according to claim 1, characterized in that The determining a plurality of second predicted postures according to the slip type and the first predicted posture comprises: Determining a posture traversal range of the self-moving device according to the slip type; Within the posture traversal range, the first predicted posture is adjusted according to the posture displacement interval to obtain multiple second predicted postures.

3. The method according to claim 1, characterized in that Determining the target pose from the plurality of second predicted poses comprises: Acquire the current point cloud data collected from the mobile device; Acquire an environment grid map of the environment in which the mobile device is located and a grid map boundary point cloud of the environment grid map; Mapping the current point cloud data to the environment grid map based on each of the second predicted postures to obtain point cloud data corresponding to each of the second predicted postures; Determining matching information between the point cloud data corresponding to each of the second predicted poses and the boundary point cloud of the grid map; According to the matching information, a target pose is determined from a plurality of the second predicted poses.

4. The method according to claim 3, characterized in that The determining of the matching information between the point cloud data corresponding to each of the second predicted postures and the boundary point cloud of the grid map includes: For any point cloud data corresponding to the second predicted posture, determining the positional relationship between each pixel point in the point cloud data and the grid map boundary point cloud; According to the positional relationship between each pixel in the point cloud data and the grid map boundary point cloud, matching information between the point cloud data corresponding to the second predicted posture and the grid map boundary point cloud is determined.

5. The method according to claim 3, characterized in that: Before determining the location of the mobile device according to the target posture, the method further includes: Determining a particle distribution weight corresponding to the target posture according to the slip type; Determining the location of the self-moving device according to the target posture includes: The positioning of the self-moving device is determined according to the target posture and its corresponding particle distribution weight.

6. The method according to claim 5, characterized in that The step of determining the particle distribution weight according to the slip type comprises: If the slip type is the first slip type or the second slip type, obtaining a particle distribution weight corresponding to the slip type, the slip degree of the first slip type being greater than the slip degree of the second slip type; If the slip type is the third slip type, the particle distribution weight corresponding to the slip type is determined according to the matching information corresponding to the target posture and the first predicted posture, and the slip degree of the second slip type is greater than the slip degree of the third slip type.

7. The method according to claim 1, characterized in that Before obtaining the slip type of the self-moving device, the method includes: performing slip detection on the self-moving device; The performing skidding detection on the self-moving device includes: Acquire the first point cloud data collected from the mobile device at the current moment and the second point cloud data collected at a historical moment, wherein the difference between the historical moment and the current moment is less than a preset time length; Determining matching point cloud data between the first point cloud data and the second point cloud data according to point cloud position information of the first point cloud data and the second point cloud data; The device state of the self-moving device is determined according to the matching point cloud data, and the device state includes a slipping state and a non-slipping state.

8. The method according to claim 7, characterized in that The first point cloud data includes a plurality of first point clouds, and the second point cloud data includes a plurality of second point clouds; and determining matching point cloud data between the first point cloud data and the second point cloud data according to point cloud position information of the first point cloud data and the second point cloud data includes: Determining, according to the point cloud position information, second point clouds adjacent to each of the first point clouds; The positional relationship between each of the first point clouds and its adjacent second point clouds is determined, and matching point cloud data between the first point cloud data and the second point cloud data is determined according to the positional relationship.

9. The method according to claim 8, characterized in that The determining of the positional relationship between each of the first point clouds and its adjacent second point clouds, and determining matching point cloud data between the first point cloud data and the second point cloud data according to the positional relationship, comprises: For any one of the first point clouds, determining a target boundary area according to point cloud position information of the first point cloud; Determining a positional relationship between the adjacent second point cloud and the target boundary area; If the adjacent second point cloud is located within or on the target boundary area, it is determined that the first point cloud is successfully matched, and the successfully matched first point cloud is used as the matching point cloud data; If the adjacent second point cloud is located outside the target boundary area, it is determined that the first point cloud matching is unsuccessful.

10. The method according to claim 7, characterized in that Determining the device state of the self-mobile device according to the matching point cloud data includes: Determine a point cloud matching intersection-over-union ratio between the first point cloud data and the second point cloud data according to the number of point clouds of the first point cloud data, the second point cloud data and the matching point cloud data; If the point cloud matching intersection-over-union ratio exceeds a preset intersection-over-union ratio threshold, determining that the device state of the self-moving device is a slipping state; If the point cloud matching intersection-over-union ratio does not exceed a preset intersection-over-union ratio threshold, it is determined that the device state of the self-moving device is a non-slip state.

11. The method according to claim 7, characterized in that Before obtaining the first point cloud data collected from the mobile device at the current moment and the second point cloud data collected at the historical moment, the method further includes: Obtaining current position information of the mobile device corresponding to the current moment and historical position information corresponding to the historical moments; If the posture error between the current posture information and the historical posture information is greater than the first posture error threshold, it is determined that the self-moving device has the possibility of slipping, and the step of obtaining the first point cloud data collected by the self-moving device at the current moment and the second point cloud data collected at the historical moment is executed.

12. The method according to claim 7, characterized in that After determining the device status of the mobile device, the method further includes: If it is determined that the device state is a slipping state, determining a first boundary point cloud corresponding to the environment where the self-moving device is located according to the first point cloud data; Acquire an environment grid map, determine a local sub-map from the environment grid map according to the position of the mobile device, and acquire a second boundary point cloud corresponding to the local sub-map; Determining a matching boundary point cloud between the first boundary point cloud and the second boundary point cloud; The slip type of the self-moving device is determined according to the first boundary point cloud and the matching boundary point cloud.

13. The method according to claim 12, characterized in that The step of determining the slip type of the self-moving device according to the first boundary point cloud and the matching boundary point cloud includes: Performing point cloud matching processing according to the first boundary point cloud and the matching boundary point cloud to obtain a matching posture error; If the matching posture error is greater than a second posture error threshold, determining that the slip type of the self-moving device is a first slip type; If the matching posture error is not greater than the second posture error threshold, it is determined that the slip type of the self-moving device is the second slip type.

14. A self-propelled device, characterized in that: The self-mobile device includes a memory, a processor, and a sensor; The sensor is used to collect point cloud data; The memory is used to store computer programs; The processor is used to execute the computer program and implement the slip detection method for a self-moving device as described in any one of claims 1 to 13 when executing the computer program.

15. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the processor implements the method for detecting slippage of a self-moving device as claimed in any one of claims 1 to 13.

Citation Information

Cited By

  • Location loss detection method and device, self-moving equipment and computer program product

    CN120779422A