Method for identifying a blanket and a self-moving robot
By collecting point cloud data using a dual-line laser sensor on a self-moving robot, and employing filtering and calculation methods to identify blankets, the problem of the robot's inability to accurately identify blankets was solved, achieving stable identification and obstacle avoidance.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SHEN ZHEN 3IROBOTICS CO LTD
- Filing Date
- 2024-12-27
- Publication Date
- 2026-06-30
AI Technical Summary
Existing robots cannot accurately identify blankets or need to rely on other sensors or increase obstacle avoidance height when recognizing them, which leads to the risk of collisions with obstacles and getting stuck.
Point cloud data is collected using a dual-line laser sensor on a self-moving robot. After filtering, variance and mean are calculated, point cloud data within a preset height range are selected to identify the blanket.
It achieves stable identification of blankets using only dual-line laser sensors while ensuring obstacle avoidance performance against low obstacles, thus avoiding cumbersome actions and collision risks.
Smart Images

Figure CN122296748A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of robotics, and in particular to a method for recognizing blankets and a self-moving robot. Background Technology
[0002] One existing method for robots to identify carpets while moving involves first performing obstacle avoidance maneuvers in front of the carpet, then rotating the robot to be perpendicular to the carpet, and moving in a straight line onto the carpet. An ultrasonic sensor is used to detect if the object is a carpet; if it is, cleaning continues; otherwise, it retreats back to its original position. This identification method is relatively cumbersome, relies on ultrasonic sensors to identify carpets, carries the risk of collisions with obstacles during forward movement, and also involves backward movement, which carries the risk of collisions or even falling off a cliff.
[0003] Another existing method for robots to identify blankets while moving involves sacrificing obstacle avoidance height, raising it to around 30mm, meaning the robot cannot see the blanket and can drive directly onto it. This method sacrifices obstacle avoidance height because it requires driving onto the blanket, making it unable to avoid low obstacles and easily causing the robot to get stuck or run over obstacles.
[0004] There is currently no effective solution to the above problems. Summary of the Invention
[0005] The present application provides a method for identifying blankets and a self-moving robot, which at least solves the problem that existing robots cannot accurately identify blankets using only a dual-line laser sensor and need to rely on other sensors or increase obstacle avoidance height to identify blankets.
[0006] According to one aspect of the embodiments of this application, a method for identifying a blanket is provided, comprising: acquiring at least one frame of raw point cloud data collected by a dual-line laser sensor on the self-mobilizing robot during its movement, wherein the dual-line laser sensor is disposed at the front of the self-mobilizing robot body; determining the raw point cloud data located within one or more preset height ranges as target point cloud data based on the height distribution of the raw point cloud data; and identifying a blanket on the self-mobilizing robot's movement path based on the target point cloud data.
[0007] Optionally, based on the height distribution of the original point cloud data, the original point cloud data located within one or more preset height ranges is identified as target point cloud data, including: filtering the original point cloud data and storing the filtered point cloud data in a queue; calculating the variance and the corresponding average of a preset number of point cloud data in the queue; and determining whether the point cloud data in the queue is target point cloud data based on the variance and the average.
[0008] Optionally, the variance and the corresponding average of a preset number of point cloud data in the queue are calculated, including: when the length of the queue reaches the preset length, the variance and the corresponding average of the preset number of point cloud data in the queue are calculated in a rolling manner to obtain multiple sets of variance and average.
[0009] Optionally, determining whether the point cloud data in the queue is the target point cloud data based on the variance and the mean includes: determining whether each variance in multiple sets of variances is within a preset variance threshold; if the determination result is yes, recording the mean corresponding to the variance, and determining whether the point cloud data in the queue is the target point cloud data based on the recorded multiple mean values; if the determination result is no, not recording the mean corresponding to the variance.
[0010] Optionally, determining whether the point cloud data in the queue is the target point cloud data based on multiple recorded average values includes: determining the maximum and minimum average values from the multiple recorded average values; if any one of the following conditions is met, the point cloud data in the queue is determined to be the target point cloud data: the maximum average value is less than a first threshold corresponding to the blanket and greater than a second threshold corresponding to the ground; the difference between the maximum and minimum average values is less than the first threshold and greater than the second threshold.
[0011] Optionally, after determining whether the point cloud data in the queue is the target point cloud data based on multiple average values recorded, the above method further includes: performing weighted fusion calculation on all point cloud data corresponding to the blanket to obtain the sum of historical frame data; comparing the sum of historical frame data with the third threshold corresponding to the blanket; if the sum of historical frame data is greater than the third threshold, determining that the point cloud data used to calculate the sum of historical frame data is the point cloud data of the blanket.
[0012] Optionally, the above method further includes: if it is determined that the point cloud data in the queue is the target point cloud data, controlling the self-moving robot to travel to the area corresponding to the blanket; if it is determined that the point cloud data in the queue is not the target point cloud data, controlling the self-moving robot to perform obstacle avoidance actions to avoid the area corresponding to the point cloud data in the queue.
[0013] According to another aspect of the embodiments of this application, a self-moving robot is also provided, including: a dual-line laser sensor disposed at the front of the self-moving robot body, configured to collect point cloud data in the area where the self-moving robot is located; and a controller communicatively connected to the dual-line laser sensor, configured to execute the above method.
[0014] According to another aspect of the embodiments of this application, an electronic device is also provided, including: a processor, and a memory storing a program, the program including instructions that, when executed by the processor, cause the processor to perform the above-described method.
[0015] According to another aspect of the embodiments of this application, a non-transitory machine-readable medium storing computer instructions for causing a computer to perform the above-described methods is also provided.
[0016] According to another aspect of the embodiments of this application, a computer program product is also provided, including a computer program that, when executed by a computer's processor, causes the computer to perform the above-described methods.
[0017] The beneficial effects of the embodiments of this application are as follows:
[0018] In this embodiment, a method for identifying a blanket is provided, comprising: acquiring at least one frame of raw point cloud data collected by a dual-line laser sensor on the self-mobilizing robot during its movement, wherein the dual-line laser sensor is disposed at the front of the self-mobilizing robot; determining the raw point cloud data located within one or more preset height ranges as target point cloud data based on the height distribution of the raw point cloud data; identifying the blanket on the self-mobilizing robot's movement path based on the target point cloud data, wherein the raw point cloud data collected by the dual-line laser sensor on the self-mobilizing robot is processed to filter out the point cloud data located within the preset height range as target point cloud data, and the blanket on the self-mobilizing robot's movement path is identified using the target point cloud data, thereby achieving the technical effect of stable identification of the blanket using only a dual-line laser sensor while ensuring obstacle avoidance performance for low-lying obstacles.
[0019] Details of one or more embodiments of this application are set forth in the following drawings and description to make other features, objects and advantages of this application more readily apparent. Attached Figure Description
[0020] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the accompanying drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other embodiments can be obtained based on these drawings without creative effort.
[0021] Figure 1 This is a flowchart of a blanket identification method according to an embodiment of this application;
[0022] Figure 2 This is a schematic diagram of the structure of a self-moving robot according to an embodiment of this application;
[0023] Figure 3 This is a schematic diagram of the structure of the electronic device in this embodiment. Detailed Implementation
[0024] Embodiments of this embodiment will now be described in more detail with reference to the accompanying drawings. While some embodiments of this embodiment are shown in the drawings, it should be understood that this embodiment can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this embodiment. It should be understood that the accompanying drawings and embodiments are for illustrative purposes only and are not intended to limit the scope of protection of this embodiment.
[0025] To better understand the embodiments of this application, the technical terms involved in the embodiments of this application are explained below:
[0026] Dual-line laser sensors are a common type of sensor primarily used to detect the position, distance, or obstacles of objects. In robotics and automation, dual-line laser sensors are frequently used for obstacle avoidance, navigation, and localization. The term "dual-line" refers to the fact that this type of sensor works by emitting and receiving two beams of light (usually infrared light) to determine the presence and distance of obstacles ahead.
[0027] In related technologies, robots cannot accurately identify blankets using only a dual-line laser sensor; they need to rely on other sensors or increase obstacle avoidance height to identify blankets. To solve this problem, this application provides a related solution, which is described in detail below.
[0028] Figure 1 This is a flowchart of a blanket identification method according to an embodiment of this application, such as... Figure 1 As shown, the method includes the following steps:
[0029] Step S102: During the movement of the self-moving robot, acquire at least one frame of raw point cloud data collected by the dual-line laser sensor on the self-moving robot, wherein the dual-line laser sensor is located at the front of the self-moving robot body.
[0030] According to an optional embodiment of this application, the aforementioned self-moving robot includes, but is not limited to, a robotic vacuum cleaner.
[0031] Point cloud data is a collection of numerous three-dimensional coordinate points, typically used to represent the surface shape of an object or environment. Point cloud data is widely used in various fields, including but not limited to 3D modeling, Geographic Information Systems (GIS), robot navigation, autonomous vehicles, Virtual Reality (VR), and Augmented Reality (AR). Point cloud data can describe the shape and size of objects with very high precision, making it suitable for applications requiring high-precision measurements. In addition to three-dimensional coordinates, each point in a point cloud can also contain additional information such as color, reflectivity, and timestamps.
[0032] In this step, the raw point cloud data collected includes at least one frame of continuous point cloud data, and the dual-line laser sensor is installed at the front of the mobile robot body.
[0033] According to an optional embodiment of this application, when performing step S102, while the robot is in a driving state, the raw point cloud data collected by the dual-line laser sensor is read at a certain acquisition frequency, and all subsequent calculations will be performed based on the raw point cloud data.
[0034] Step S104: Based on the height distribution of the original point cloud data, determine the original point cloud data located within one or more preset height ranges as the target point cloud data.
[0035] The aforementioned target point cloud data are point cloud data at the same height, and are also point cloud data of the blanket on the self-moving robot's travel path.
[0036] In the field of robotic vacuum cleaners that recognize blankets, blankets generally refer to textiles with a certain thickness and softness that are laid on the ground.
[0037] Step S106: Identify the blankets on the self-moving robot's path based on the target point cloud data.
[0038] The above technical solution processes the raw point cloud data collected by the dual-line laser sensor on the self-moving robot, filters out the point cloud data within a preset height range as the target point cloud data, and uses the target point cloud data to identify the blanket on the self-moving robot's path. This achieves the technical effect of stable identification of the blanket using only the dual-line laser sensor while ensuring obstacle avoidance performance for low-lying obstacles.
[0039] According to an optional embodiment of this application, step S104, based on the height distribution of the original point cloud data, determines the original point cloud data located within one or more preset height ranges as target point cloud data, including the following steps:
[0040] Step S10402: Filter the original point cloud data and store the filtered point cloud data in a queue.
[0041] After reading the raw point cloud data, it is necessary to filter the raw point cloud data to prevent the sensor from producing large or small outliers due to some factors. In addition, for the stability of the data, the raw data needs to be smoothed to prevent large data jitter from causing abnormalities in subsequent calculations or interfering with the recognition of the blanket and resulting in incorrect judgments.
[0042] Smoothing filtering of raw point cloud data is an important step in improving data quality and reducing noise. Smoothing filtering can remove outliers and noise from point cloud data, making the data more accurate and reliable. Here are some commonly used smoothing filtering methods:
[0043] 1) Mean filtering works by taking the average value of the neighborhood of each point and replacing the coordinates of that point with the average value.
[0044] 2) Gaussian filtering works by using Gaussian weights to perform a weighted average of points in their neighborhood.
[0045] 3) Bilateral filtering, the principle of which is to combine spatial distance and color (or grayscale) differences to perform a weighted average of points.
[0046] 4) Median filtering, etc., works by taking the median of the coordinates of all points in the neighborhood of each point.
[0047] 5) Moving Least Squares (MLS) is based on the principle of fitting a polynomial surface by minimizing the sum of squared errors in the neighborhood of each point.
[0048] The choice of which smoothing filtering method to use depends on the specific characteristics of the point cloud data and the application scenario. Generally, mean filtering and Gaussian filtering are suitable for most situations, while bilateral filtering and MLS are more effective when more detail needs to be preserved. By appropriately selecting and adjusting the filtering parameters, the quality of point cloud data can be significantly improved.
[0049] A queue is a special linear data structure that follows the First-In, First-Out (FIFO) principle. This means that the element added to the queue earliest will be removed first. Queues are very useful in many applications, such as task scheduling, message passing, and buffer management. Storing filtered point cloud data in a queue can help manage the order and flow of data, ensuring that data is processed on demand.
[0050] Step S10404: Calculate the variance and the corresponding average of a preset number of point cloud data in the queue.
[0051] Variance is an important concept in statistics, used to measure the dispersion of a set of data. The larger the variance, the greater the difference between the data; the smaller the variance, the smaller the difference between the data.
[0052] Calculating the average value of point cloud data can help understand the central trend of the data.
[0053] In this step, the preset number can be a pre-set threshold. For example, if the preset number is set to 5 and the queue stores 10 point cloud data, the variance and average of 5 point cloud data are calculated each time. First, the variance and average of point cloud data 1 to 5 are calculated, then the variance and average of point cloud data 2 to 6 are calculated, and so on, until the variance and average of point cloud data 6 to 10 are calculated.
[0054] Step S10406: Determine whether the point cloud data in the queue is the target point cloud data based on the variance and mean.
[0055] By using the technical solutions provided in steps S10402 to S10406, the variance and average value of the point cloud data collected by the dual-line laser sensor on the self-moving robot are calculated, thereby achieving the purpose of filtering out the target point cloud data corresponding to the blanket from the original point cloud data.
[0056] According to an optional embodiment of this application, the variance and corresponding average of a preset number of point cloud data in the queue are calculated by the following method: when the length of the queue reaches the preset length, the variance and average of the preset number of point cloud data in the queue are calculated in a rolling manner to obtain multiple pairs of variances and averages.
[0057] As mentioned above, after obtaining the filtered point cloud data, the point cloud data is stored in a queue. When the queue length reaches the predetermined length, the calculation is started, and the variance and mean of the point cloud data under the queue length are calculated in a rolling manner.
[0058] For example, when the queue length reaches 10, calculation begins, calculating the variance and mean of point cloud data 1 to 10. Since the data in the queue follows a first-in, first-out (FIFO) principle, when point cloud data 1 is removed from the queue, point cloud data 11 enters the queue, at which point the queue length reaches 10 again, and calculation begins, this time calculating the variance and mean of point cloud data 2 to 11. This calculation method is what was mentioned above as "rolling calculation." Because it calculates the variance and mean of the point cloud data in the queue in a rolling manner, multiple sets of variances and means are obtained.
[0059] According to another optional embodiment of this application, step S10206 determines whether the point cloud data in the queue is the target point cloud data based on the variance and the average value, which is achieved by the following method: determining whether each variance in multiple sets of variances is within a preset variance threshold; if the determination result is yes, recording the average value corresponding to the variance, and determining whether the point cloud data in the queue is the target point cloud data based on the recorded multiple average values; if the determination result is no, not recording the average value corresponding to the variance.
[0060] After calculating multiple sets of variances and averages, it is determined whether the variance in each set is within the threshold of the stability condition. If it is within the threshold, the average of the set belonging to the same group as the current variance is recorded; otherwise, it is not necessary to record the average of the set belonging to the same group as the current variance. Since the queue length is fixed, subsequent filtered data are calculated according to the first-in-first-out (FIFO) and last-in-last-out (LIFO) principle. The queue average under the stability condition is continuously recorded using a sliding window. Then, based on the multiple recorded averages, it is determined whether the point cloud data in the queue is the target point cloud data.
[0061] In this embodiment, the aforementioned variance threshold is a preset value, for example, set to 1. In this case, if the variance of each group is less than 1, the average value corresponding to that variance is recorded; otherwise, the average value corresponding to the variance is not recorded.
[0062] As some optional embodiments of this application, determining whether point cloud data in the queue is target point cloud data based on multiple recorded average values includes the following steps: determining the maximum and minimum average values from the multiple recorded average values; determining the point cloud data in the queue as target point cloud data if any one of the following conditions is met: the maximum average value is less than a first threshold corresponding to the blanket and greater than a second threshold corresponding to the ground; the difference between the maximum and minimum average values is less than the first threshold and greater than the second threshold.
[0063] The results of all stable values calculated based on the raw point cloud data collected by the dual-line laser sensor are as follows:
[0064] Data_result={(ave1,var1),(ave2,var2),…,(ave n ,var n )}, where, ave n var is the average value. n Let Variance be the variance.
[0065] Calculate the current maximum and minimum average values based on all results:
[0066] Assume j, k < n,
[0067] Average value maximum value max=ave j ;
[0068] Average value Minimum value min =ave k .
[0069] Let the blanket threshold be ave carpet (i.e., the first threshold mentioned above), the ground threshold is ave floor (i.e., the second threshold mentioned above), then the blanket can be identified using the following formula:
[0070]
[0071] As can be seen from the above formula, after calculating all stable values, the characteristics of the stable values are used to determine whether the current point cloud data belongs to the blanket category. If the maximum value of the average is less than the blanket threshold but greater than the ground threshold, the current point cloud data is determined to belong to the blanket category. Alternatively, if the difference between the maximum and minimum values of the average is less than the blanket threshold but greater than the ground threshold, the current point cloud data can also be determined to belong to the blanket category. In all other cases (e.g., the maximum value of the average is greater than the blanket threshold, or the maximum value of the average is less than the ground threshold), the current point cloud data is determined not to belong to the blanket category.
[0072] In the embodiments of this application, the outline of the blanket is identified based on the height difference between the ground and the blanket. If the robot is standing on the blanket, the blanket cannot be identified.
[0073] In some optional embodiments of this application, after determining whether the point cloud data in the queue is the target point cloud data based on multiple recorded average values, the target point cloud data is weighted and fused to obtain the sum of historical frame data; the sum of historical frame data is compared with the third threshold corresponding to the blanket; if the sum of historical frame data is greater than the third threshold, it is determined that the point cloud data used to calculate the sum of historical frame data is the point cloud data corresponding to the blanket.
[0074] The point cloud data of the blanket determined by the formula mentioned above can be understood as single-frame point cloud data. In this embodiment, all previously recorded blanket data are weighted and fused to calculate the sum of historical frame data (if the sum of historical frame data is large enough, some noise filtering can be performed to prevent misjudgment of the blanket due to noise). If the sum of historical frame data is greater than the blanket threshold (i.e., the third threshold mentioned above), it is considered that there is a blanket in front of the robot's path; if the sum of historical frame data is not greater than the blanket threshold, it is considered a low obstacle that needs to be avoided. By distinguishing between blankets and low obstacles using this method, the goal of identifying blankets using only a dual-line laser sensor and avoiding low obstacles is achieved.
[0075] In some other optional embodiments of this application, if it is determined that the point cloud data in the queue is the target point cloud data, the self-moving robot is controlled to travel to the area corresponding to the blanket; if it is determined that the point cloud data in the queue is not the target point cloud data, the self-moving robot is controlled to perform obstacle avoidance actions to avoid the area corresponding to the point cloud data in the queue.
[0076] In the embodiments of this application, if the point cloud data collected by the dual-line laser sensor is identified as belonging to a blanket, no other action is required; the vehicle can simply drive onto it to perform the cleaning task. If the point cloud data collected by the dual-line laser sensor is identified as not belonging to a blanket, it is considered a low obstacle and needs to be avoided. The avoidance action is generally performed by taking a step back to bypass the obstacle.
[0077] The technical solution proposed in this application uses a dual-line laser sensor to identify blankets, eliminating the need for additional cumbersome identification actions and increasing obstacle avoidance height. It can achieve stable identification of blankets using only a dual-line laser sensor while ensuring obstacle avoidance performance against low obstacles.
[0078] This application also provides a self-moving robot. Figure 2 This is a structural diagram of the self-moving robot, as shown below. Figure 2 As shown, the self-moving robot includes:
[0079] A dual-line laser sensor 20 is located at the front of the self-moving robot body and is configured to collect point cloud data in the area where the self-moving robot is located.
[0080] In the embodiments of this application, the dual-line laser sensor 20 includes, but is not limited to, a laser tube, which is disposed at the front of the self-moving robot body and collects point cloud data by emitting laser beams and receiving reflected light signals.
[0081] In this embodiment, the wavelength of the laser beam emitted by the dual-line laser sensor 20 is not limited. Different wavelengths will result in different colors of the laser beam, such as red laser, purple laser, etc.
[0082] Controller 22, which is communicatively connected to dual-line laser sensor 20, is configured to execute... Figure 1 The method in the illustrated embodiment.
[0083] It should be noted that, Figure 2 The location indicated by the controller 22 is for illustrative purposes only; the controller 22 is actually located inside the self-moving robot's body.
[0084] It should be noted that Figure 2 Preferred embodiments of the shown examples can be referred to Figure 1 The relevant descriptions of the embodiments shown will not be repeated here.
[0085] This application also provides an electronic device, including: at least one processor; and a memory communicatively connected to the at least one processor. The memory stores a computer program executable by the at least one processor, which, when executed by the at least one processor, causes the electronic device to perform the methods of this application embodiment.
[0086] This application also provides a non-transitory machine-readable medium storing a computer program, wherein the computer program, when executed by a computer's processor, is used to cause the computer to perform the method of this application embodiment.
[0087] This application also provides a computer program product, including a computer program, wherein the computer program, when executed by a computer's processor, is used to cause the computer to perform the methods of this application embodiment.
[0088] refer to Figure 3 The present invention describes a structural block diagram of an electronic device that can serve as a server or client in embodiments of this application, which is an example of a hardware device that can be applied to various aspects of this application. The electronic device is intended to represent various forms of digital electronic computer devices, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the application described and / or claimed herein.
[0089] like Figure 3 As shown, the electronic device includes a computing unit 301, which can perform various appropriate actions and processes based on a computer program stored in a read-only memory (ROM) 302 or a computer program loaded from a storage unit 308 into a random access memory (RAM) 303. The RAM 303 may also store various programs and data required for the operation of the electronic device. The computing unit 301, ROM 302, and RAM 303 are interconnected via a bus 304. An input / output (I / O) interface 305 is also connected to the bus 304.
[0090] Multiple components in the electronic device are connected to I / O interface 305, including: input unit 306, output unit 307, storage unit 308, and communication unit 309. Input unit 306 can be any type of device capable of inputting information into the electronic device. Input unit 306 can receive input digital or character information and generate key signal inputs related to user settings and / or function control of the electronic device. Output unit 307 can be any type of device capable of presenting information and may include, but is not limited to, a display, speaker, video / audio output terminal, vibrator, and / or printer. Storage unit 308 may include, but is not limited to, disks and optical discs. Communication unit 309 allows the electronic device to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks, and may include, but is not limited to, modems, network cards, infrared communication devices, wireless communication transceivers, and / or chipsets, such as Bluetooth devices, WiFi devices, WiMax devices, cellular communication devices, and / or the like.
[0091] The computing unit 301 can be various general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 301 include, but are not limited to, CPUs, graphics processing units (GPUs), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, digital signal processors (DSPs), and any suitable processors, controllers, microcontrollers, etc. The computing unit 301 performs the various methods and processes described above. For example, in some embodiments, the method embodiments of this application can be implemented as a computer program tangibly contained in a machine-readable medium, such as storage unit 308. In some embodiments, part or all of the computer program can be delivered via ROM.
[0092] 302 and / or communication unit 309 are loaded and / or installed on the electronic device. In some embodiments, computing unit 301 may be configured to perform the methods described above by any other suitable means (e.g., by means of firmware).
[0093] Computer programs used to implement the methods of the embodiments of this application may be written in any combination of one or more programming languages. These computer programs may be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the computer programs cause the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The computer programs may be executed entirely on a machine, partially on a machine, or as a standalone software package, partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0094] In the context of embodiments of this application, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable signal medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, or infrared systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0095] It should be noted that the term "comprising" and its variations used in the embodiments of this application are open-ended, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; and the term "some embodiments" means "at least some embodiments". The modifications of "one" and "multiple" mentioned in the embodiments of this application are illustrative and not restrictive. Those skilled in the art should understand that, unless explicitly indicated otherwise in the context, they should be understood as "one or more".
[0096] The user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in the embodiments of this application are all information and data authorized by the user or fully authorized by all parties. Furthermore, the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions, and corresponding operation entry points are provided for users to choose to authorize or refuse.
[0097] The steps described in the method embodiments provided in this application can be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of protection of this application is not limited in this respect.
[0098] The term "embodiment" in this specification refers to a specific feature, structure, or characteristic described in connection with an embodiment that may be included in at least one embodiment of this application. The appearance of this phrase in various places throughout the specification does not necessarily imply the same embodiment, nor does it imply independence from or alternative to other embodiments. The various embodiments in this specification are described in a related manner, with reference to each other for similar or identical parts. In particular, for apparatus, device, and system embodiments, since they are substantially similar to method embodiments, the description is relatively simple, and relevant details are referred to in the description of the method embodiments.
[0099] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of patent protection. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the appended claims.
Claims
1. A method for identifying blankets, applied to a self-moving robot, characterized in that, include: During the movement of the self-moving robot, at least one frame of raw point cloud data is acquired from the dual-line laser sensor on the self-moving robot, wherein the dual-line laser sensor is located at the front of the self-moving robot body; Based on the height distribution of the original point cloud data, the original point cloud data located within one or more preset height ranges are determined as target point cloud data; The blankets on the self-moving robot's path are identified based on the target point cloud data.
2. The method according to claim 1, characterized in that, Based on the height distribution of the original point cloud data, the original point cloud data located within one or more preset height ranges is determined as target point cloud data, including: The original point cloud data is filtered, and the filtered point cloud data is stored in a queue. Calculate the variance and the corresponding average of a preset number of point cloud data in the queue; The variance and mean are used to determine whether the point cloud data in the queue is the target point cloud data.
3. The method according to claim 2, characterized in that, Calculating the variance and corresponding average of a preset number of point cloud data in the queue includes: When the length of the queue reaches the preset length, the variance and the corresponding average of the preset number of point cloud data in the queue are calculated in a rolling manner to obtain multiple sets of variance and average.
4. The method according to claim 3, characterized in that, Determining whether the point cloud data in the queue is the target point cloud data based on the variance and mean includes: Determine whether each variance in the multiple sets of variances is within a preset variance threshold; If the judgment result is yes, record the average value corresponding to the variance, and determine whether the point cloud data in the queue is the target point cloud data based on the recorded multiple average values; If the judgment result is negative, the average value corresponding to the variance is not recorded.
5. The method according to claim 4, characterized in that, Determining whether the point cloud data in the queue is the target point cloud data based on multiple recorded averages includes: Determine the maximum and minimum average values from the recorded multiple average values; The point cloud data in the queue is determined to be the target point cloud data if any one of the following conditions is met: The maximum value of the average value is less than the first threshold corresponding to the blanket and greater than the second threshold corresponding to the ground. The difference between the maximum value of the average and the minimum value of the average is less than the first threshold and greater than the second threshold.
6. The method according to claim 4, characterized in that, After determining whether the point cloud data in the queue is the target point cloud data based on multiple average values recorded, the method further includes: The target point cloud data is weighted and fused to obtain the sum of historical frame data; The sum of the historical frame data is compared with the third threshold corresponding to the blanket; If the sum of the historical frame data is greater than the third threshold, the point cloud data used to calculate the sum of the historical frame data is determined to be the point cloud data corresponding to the blanket.
7. The method according to any one of claims 2 to 6, characterized in that, The method further includes: If it is determined that the point cloud data in the queue is the target point cloud data, control the self-moving robot to travel to the area corresponding to the blanket. If it is determined that the point cloud data in the queue is not the target point cloud data, the self-moving robot is controlled to perform obstacle avoidance actions to avoid the area corresponding to the point cloud data in the queue.
8. A self-moving robot, characterized in that, include: A dual-line laser sensor is installed at the front of the self-moving robot body and is configured to collect point cloud data in the area where the self-moving robot is located; The controller is communicatively connected to the dual-line laser sensor and configured to perform the method according to any one of claims 1 to 7.
9. A non-transitory machine-readable medium storing computer instructions, characterized in that, The computer instructions are used to cause the computer to perform the method according to any one of claims 1 to 7.
10. A computer program product, comprising a computer program, characterized in that, When executed by the computer's processor, the computer program is used to cause the computer to perform the method of any one of claims 1 to 7.