Method for controlling movement of mobile device and mobile device

By employing a single laser ranging and SLAM algorithm in a robotic vacuum cleaner, and utilizing the processor's own memory for computation, the problems of high cost and difficulty in processor analysis are solved, achieving cost reduction and improved computational efficiency.

CN115877831BActive Publication Date: 2026-04-07SHANGHAI FUSHEN OPTOELECTRONICS CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-09-29
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

Existing robotic vacuum cleaners that use two lasers for ranging require high-end processors and dedicated memory, resulting in high manufacturing costs and difficulties in processor analysis.

Method used

It employs a single laser ranging method combined with the SLAM algorithm, and performs calculations using the processor's own memory, reducing its reliance on dedicated memory.

Benefits of technology

This effectively reduces the manufacturing cost of robotic vacuum cleaners and improves the computing efficiency and accuracy of the processor.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115877831B_ABST
    Figure CN115877831B_ABST
Patent Text Reader

Abstract

This invention discloses a motion control method for a self-propelled device and the self-propelled device itself. The motion control method includes two ranging steps and a navigation step. Each ranging step executes a ranging program to obtain a distance information, each distance information containing N laser point information. Each laser point information includes the laser point position and depth value. Each ranging program includes a projection step, an image acquisition step, and N calculation steps. Each calculation step includes a pixel selection step: selecting one pixel from one row of pixels in the acquired image as the center pixel; and a judgment step: judging whether the grayscale value of the center pixel is greater than the grayscale values ​​of the two pixels on either side of it. If so, the row and column number of the center pixel are recorded as the laser point position, and the depth value is calculated using the grayscale value of the center pixel.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a motion control method for a self-propelled device and a self-propelled device, particularly a motion control method and a self-propelled device applicable to self-propelled devices that use lasers for distance measurement. Background Technology

[0002] Many common robotic vacuum cleaners use two lasers for distance measurement, combined with related algorithms to plan their movement path. Specifically, the processor inside the robot controls the laser emitter to emit two laser beams forward. An image acquisition device then captures an image containing the two laser beams projected forward. The processor analyzes the captured image to determine the environmental conditions ahead, thereby deciding the robot's subsequent movement path.

[0003] Because the processor must complete the image processing and analysis within a short time, manufacturers must select relatively high-end processors during manufacturing, and also require separate memory, as they cannot directly utilize the processor's internal memory for computation. This results in high manufacturing costs. Furthermore, when two lasers are projected simultaneously, mutual interference occurs, further increasing the difficulty for the processor to analyze the acquired images. Summary of the Invention

[0004] This invention discloses a mobile control method and a self-propelled device, which is mainly used to improve the problem that existing sweeping robots that use two lasers for distance measurement require high-end processors and independent memory, resulting in high manufacturing costs.

[0005] One embodiment of the present invention discloses a motion control method for a self-propelled device, which is provided for execution by a processor of the self-propelled device. The motion control method for the self-propelled device includes: a first ranging step: executing a ranging program to obtain a distance information, each distance information including N laser point information, each laser point information including a laser point position and a depth value; a second ranging step: executing a ranging program to obtain another distance information; a navigation step: calculating motion information using a SLAM algorithm based on the two distance information, and controlling the self-propelled device to move based on the motion information; the motion information includes at least one of a movement direction, a movement distance, and a rotation angle; wherein each ranging program includes: a projection step: controlling a laser emitter to project a single laser beam onto a target area; an image acquisition step: controlling an image acquisition module to acquire an image of the target area to form an acquired image, the acquired image including N rows of pixel groups, each row of pixel groups including M pixels; wherein N and M are both greater than 100. A positive integer; perform N calculation steps to obtain N laser point positions. Each calculation step includes: a pixel selection step: select one pixel from the pixel group of one row of the acquired image as a center pixel; a judgment step: judge whether the gray level value of the center pixel is greater than the gray level value of at least one pixel to the left of the center pixel and greater than the gray level value of at least one pixel to the right of the center pixel; if not, re-execute the pixel selection step and select another pixel from the pixel group of the same row as the center pixel; if yes, perform the following steps: a recording and depth calculation step: record the row number and column number of the center pixel as a laser point position, calculate a depth value of the center pixel, and record the laser point position and depth value as a laser point information; wherein, in the projection steps of the two ranging procedures, if the single lasers projected are simultaneously projected onto the target area and the target area is acquired by the image acquisition module to form an acquired image, then the two lasers in the acquired image are set to interweave with each other.

[0006] Preferably, in the depth calculation step, a lookup table is consulted using the grayscale value of the center pixel to obtain the depth value corresponding to the grayscale value of the center pixel.

[0007] Preferably, in each calculation step, when performing the pixel selection step for the first time, the second pixel in one row of pixels in the acquired image, counting from the leftmost pixel, is selected as the center pixel; or, the second pixel in one row of pixels in the acquired image, counting from the rightmost pixel, is selected as the center pixel. In each judgment step, it is determined whether the grayscale value of the center pixel is greater than the grayscale value of the pixel to the left of the center pixel and greater than the grayscale value of the pixel to the right of the center pixel. When performing the pixel selection step for the second time, the pixel to the right or left of the previous center pixel is selected as the center pixel.

[0008] Preferably, in each judgment step, it is determined whether the grayscale value of the center pixel is greater than the two grayscale values ​​of the two pixels to the left of the center pixel, and greater than the two grayscale values ​​of the two pixels to the right of the center pixel.

[0009] Preferably, in each calculation step, when performing the pixel selection step for the first time, the third pixel in one row of pixels in the acquired image, counting from the leftmost pixel, is taken as the center pixel; or, the third pixel in one row of pixels in the acquired image, counting from the rightmost pixel, is taken as the center pixel. In each judgment step, it is determined whether the grayscale value of the center pixel is greater than the grayscale value of the pixel to the left of the center pixel and greater than the grayscale value of the pixel to the right of the center pixel. When performing the pixel selection step for the second time, the pixel to the right or left of the previous center pixel is taken as the center pixel.

[0010] Preferably, in the second calculation step and in subsequent calculation steps, the pixel in the current pixel group that corresponds to the column number of the laser point position in the previous record is taken as the center pixel.

[0011] Preferably, in each calculation step, when performing the calculation step for the third and subsequent odd-numbered times, the pixel to the left of the center pixel selected in the previous odd-numbered pixel selection step is selected as the center pixel; when performing the calculation step for the fourth and subsequent even-numbered times, the pixel to the right of the center pixel selected in the previous even-numbered pixel selection step is selected as the center pixel.

[0012] Preferably, in each calculation step, when performing the calculation step for the third and subsequent odd-numbered times, the pixel to the right of the center pixel selected in the previous odd-numbered pixel selection step is selected as the center pixel; when performing the calculation step for the fourth and subsequent even-numbered times, the pixel to the left of the center pixel selected in the previous even-numbered pixel selection step is selected as the center pixel.

[0013] One embodiment of the present invention discloses a self-propelled device, which includes: a driving device, a laser emitter, an image acquisition module, and a processor. The processor is electrically connected to the driving device and can execute the self-propelled device movement control method of the present application to control the self-propelled device to move through the driving device.

[0014] Preferably, in each judgment step, it is determined whether the grayscale value of the center pixel is greater than the two grayscale values ​​of the two pixels to the left of the center pixel and greater than the two grayscale values ​​of the two pixels to the right of the center pixel; in each calculation step, when the pixel selection step is executed for the first time, the third pixel in one row of pixels in the acquired image, counting from the leftmost pixel, is taken as the center pixel, or the third pixel in one row of pixels in the acquired image, counting from the rightmost pixel, is taken as the center pixel; when the pixel selection step is executed for the second time, the pixel to the right or left of the previous center pixel is taken as the current center pixel.

[0015] In summary, the self-propelled device movement control method and self-propelled device of the present invention, by designing that only a single laser beam is projected in the projection step of each ranging procedure, and the calculation step, allow the processor of the self-propelled device to directly utilize the memory of the processor itself to perform relevant calculations. During the calculation process, the processor does not need to utilize additional memory independent of the processor, thus effectively reducing the manufacturing cost of the self-propelled device.

[0016] To further understand the features and technical content of this invention, please refer to the following detailed description and accompanying drawings. However, these descriptions and drawings are only for illustrating the invention and are not intended to limit the scope of protection of the invention in any way. Attached Figure Description

[0017] Figure 1 This is a schematic flowchart of the movement control method for the self-propelled device of the present invention.

[0018] Figure 2 This is a flowchart illustrating the distance measurement procedures of the movement control method for the self-propelled device of the present invention.

[0019] Figure 3 This is a flowchart illustrating a single calculation step in the movement control method of the self-propelled device of the present invention.

[0020] Figure 4 This is a schematic diagram of image acquisition according to one embodiment of the movement control method of the self-propelled device of the present invention.

[0021] Figures 5 to 9 This is a flowchart illustrating different embodiments of how a processor finds the position of a white pixel in a pixel group within a row.

[0022] Figure 10 This is a flowchart illustrating a single calculation step of another embodiment of the movement control method for the self-propelled device of the present invention.

[0023] Figure 11 For corresponding Figure 10 A schematic diagram of image acquisition in an embodiment.

[0024] Figure 12 for Figure 10 In one embodiment, the processor finds the position of a white pixel in a pixel group in one row. This is a flowchart illustrating another embodiment.

[0025] Figure 13 This is a block diagram of the self-propelled device of the present invention. Detailed Implementation

[0026] In the following description, if a specific diagram is mentioned or indicated, it is only for emphasis in the following description, and the relevant content mostly appears in that specific diagram, but does not limit the following description to referring only to that specific diagram. In the following embodiments, the terms "row" and "column" can be interchanged as needed.

[0027] Please see Figure 1 The diagram shows a flow chart of the movement control method for a self-propelled device according to the present invention. The movement control method for a self-propelled device of the present invention is provided for execution by a processor of a self-propelled device, and the movement control method includes:

[0028] First ranging step S1: Execute a ranging program to obtain a distance information, each distance information contains N laser point information, each laser point information contains a laser point position and a depth value;

[0029] Second ranging step S2: Execute the ranging procedure to obtain another distance information;

[0030] Navigation step S3: Based on the two distance information, calculate a movement information using the SLAM (Simultaneous Localization and Mapping) algorithm, and control the self-propelled device to move according to the movement information; the movement information includes at least one of a movement direction, a movement distance, and a rotation angle.

[0031] The self-propelled device can be, for example, a robotic vacuum cleaner or an automated guided vehicle (AGV), and is not limited thereto. In practical applications, depending on the type of self-propelled device, more than two ranging steps may be performed before navigation step S3 to allow the processor to more accurately determine the actual situation of the target area.

[0032] like Figure 2 As shown, each ranging procedure includes the following steps:

[0033] Projection step SX1: Control a laser emitter to project a single laser beam into a target area;

[0034] Image acquisition step SX2: Control an image acquisition module to acquire an image of the target area to form an acquired image. The acquired image contains N rows of pixel groups, and each row of pixel groups contains M pixels; where N and M are both positive integers greater than 100.

[0035] Calculation step SX3: Calculate a laser point information, and update the execution count each time the laser point information is calculated, wherein the execution count is the number of times the calculation step has been executed;

[0036] Step SX4 in the process: Determine if the number of executions is N;

[0037] If the current execution count is determined to be N (meaning that calculation step SX3 has been executed N times), then step SX5 is executed: the ranging procedure ends. If the current execution count is determined to be less than N (meaning that calculation step SX3 has not been executed N times), then calculation step SX3 is executed again. In short, in each ranging procedure, calculation step SX3 will be executed N times, and N laser point information will be calculated accordingly.

[0038] It should be emphasized that the number of times calculation step SX3 is executed corresponds to the number of rows contained in the acquired image. Each calculation step SX3 is used to calculate the laser point position of one row of the acquired image. In other words, if the acquired image contains N rows of pixel groups, after calculation step SX3 is executed N times, the processor will calculate the laser point position in each row of pixel groups in the acquired image.

[0039] In the projection step SX1 of the two ranging procedures, if the single laser beams projected are simultaneously projected onto the target area and the target area is acquired by the image acquisition module to form an acquired image, then the two laser beams in the acquired image are set up to intersect each other. In specific applications, the two laser beams can be set up to intersect each other perpendicularly, but this is not a limitation.

[0040] The image acquisition module is mainly used to acquire the laser beam projected by the laser emitter onto the target area. For example, the laser emitter may project infrared light, and the image acquisition module may be a camera that can acquire infrared light, but the type of beam emitted by the laser emitter is not limited to this.

[0041] like Figure 3 As shown, a single calculation step SX3 includes the following steps:

[0042] One-pixel selection step SX31: Select one pixel from the pixel group of one row of the acquired image as a center pixel;

[0043] SX32: Determine whether the grayscale value of the center pixel is greater than the grayscale value of at least one pixel to the left of the center pixel, and greater than the grayscale value of at least one pixel to the right of the center pixel.

[0044] If not, repeat pixel selection step SX31, and take another pixel in the same row of pixel group as the center pixel, and then repeat judgment step SX32.

[0045] If so, then execute a recording and depth calculation step SX33: record the row and column number of the center pixel as a laser point position, calculate a depth value of the center pixel, and record the laser point position and depth value as a laser point information. The depth value represents the straight-line distance between a point in the target area (i.e., corresponding to a pixel in the acquired image) and the lens of the image acquisition module.

[0046] In practical applications, in the recording and depth calculation step SX33, the grayscale value of the center pixel can be used to look up a lookup table to obtain the corresponding depth value. In other words, in the recording and depth calculation step SX33, the grayscale value of the center pixel can be used to obtain the corresponding depth value through a table lookup, thus improving the calculation speed of the recording and depth calculation step SX33. Of course, in different applications, the grayscale value of the center pixel (and the grayscale values ​​of other pixels) can also be used to calculate the corresponding depth value of the center pixel in real time using relevant algorithms.

[0047] like Figure 4 As shown, this is a schematic diagram illustrating one embodiment of image acquisition. Assume the acquired image contains 15 rows of pixel groups PG1, PG2, PG3…PG15, each row containing 20 pixels P1, P2, P3…P20, and the acquired image contains 15*20 pixels P. Figure 4In the acquired image, pixels presented in white correspond to locations within the target area that are illuminated by the laser, while pixels presented in dark gray correspond to locations within the target area that are not illuminated by the laser. It is important to emphasize that in this embodiment, locations within the target area illuminated by the laser are represented as near-white pixels in the acquired image. However, in practical applications, the colors used to represent laser-illuminated and non-laser-illuminated pixels in the acquired image can vary depending on the laser emitter and the image acquisition module.

[0048] If the image acquired in the above image acquisition step SX2 is as follows Figure 4 As shown, the calculation step SX3 will be executed 15 times. The first execution of calculation step SX3 may be, for example, at... Figure 4 In the first row of pixel group PG1, find the white pixel WP (that is, the position corresponding to the laser illumination) to generate a laser point information. The laser point position in the laser point information can be presented in coordinate form, that is, after the first execution of calculation step SX3, the processor can produce data (1,8) (that is, the laser point position), where (1,8) represents the 8th pixel from the left in the first row of pixel group PG1.

[0049] Continuing from the above, when performing calculation step SX3 for the second time, for example, it could be at... Figure 4 In the second row of pixel group PG2, find the white pixels to calculate the position of a laser point and the depth value corresponding to the white pixel. If the laser point position is presented in coordinates, it is (2,10). Then, the 3rd, 4th...15th calculation steps SX3 are performed. The laser point positions obtained in sequence, if presented in coordinates, will be (3,10), (4,10), (5,10), (6,11), (7,11), (8,13), (9,13), (10,12), (11,11), (12,9), (13,9), (14,10), (15,10).

[0050] It should be noted that when the processor executes calculation step SX3 for the first time, it may find the white pixel in a pixel group of row PG15, which is not limited to the above description. That is, when the processor executes calculation step SX3 for the first time, it may find the white pixel in pixel group PG15 of row 15, and then the processor may find the white pixel in pixel groups of row 14, 13...1 in sequence.

[0051] like Figure 5The diagram illustrates a flowchart of one embodiment where the processor identifies the position of the white pixel (i.e., the laser dot position) within pixel group PG1 in one row. In this embodiment, the processor executes a total of 7 pixel selection steps SX31, 7 judgment steps SX32, and 1 recording and depth calculation step SX33. It should be noted that... Figure 5 In the above, (a1), (a2), (a3)...(a7) represent the seven judgment steps SX3 executed by the processor, in which pixel in pixel group PG1 is selected as the center pixel.

[0052] like Figure 5 As shown in (a1), when the processor executes the pixel selection step SX31 for the first time, for example, it can take the second pixel in pixel group PG1, counting from the leftmost pixel of pixel group PG1, as the center pixel CP1. In the judgment step SX32, it is determined whether the grayscale value of the center pixel CP1 is greater than the grayscale value of the left pixel CPL1 located to the left of the center pixel CP1, and greater than the grayscale value of the right pixel CPR1 located to the right of the center pixel CP1. After the processor executes the judgment step SX32 for the first time, it will determine that the grayscale values ​​of the center pixel CP1, the left pixel CPL1, and the right pixel CPR1 are approximately the same. Therefore, the processor will execute the pixel selection step SX31 again.

[0053] like Figure 5 As shown in (a2), when the processor executes the pixel selection step SX31 for the second time, for example, the pixel to the right of the previous center pixel CP1 can be taken as the current center pixel CP2 (that is, the current center pixel CP2 is the third pixel counting from the leftmost side of pixel group PG1), and the grayscale value of the center pixel CP2 can be determined to be greater than the grayscale value of the left pixel CPL2 located to the left of the center pixel CP2, and greater than the grayscale value of the right pixel CPR2 located to the right of the center pixel CP2. After the processor executes the judgment step SX32 for the second time, it will determine that the grayscale values ​​of the center pixel CP2, the left pixel CPL2, and the right pixel CPR2 are approximately the same. Therefore, the processor will execute the pixel selection step SX31 again.

[0054] Based on the above, and so on, such as Figure 5 As shown in (a7), after executing the 7th pixel selection step SX31, in the judgment step SX32, the processor will determine that the grayscale value of the center pixel CP7 is greater than the grayscale value of the left pixel CPL7, and the grayscale value of the center pixel CP7 is greater than the grayscale value of the right pixel CPR7. The processor will then continue to execute the recording and depth calculation step SX33 to calculate the corresponding depth value using the grayscale value of the center pixel CP7 (for example, by the aforementioned lookup table method).

[0055] like Figure 6 As shown, this is a flowchart illustrating another embodiment of how a processor finds the white pixel (i.e., the position of the laser point) within a row of pixel group PG1. This embodiment is similar to... Figure 5 The flowchart of the embodiment shown differs in that the processor executes a total of 12 pixel selection steps SX31, 12 judgment steps SX32, and one recording and depth calculation step SX33.

[0056] like Figure 6 As shown in (b1), when the processor executes pixel selection step SX31 for the first time, it selects the second pixel counting from the rightmost pixel of pixel group PG1 as the center pixel CP1; as shown in (b1), Figure 6 As shown in (b2), when the processor executes pixel selection step SX31 for the second time, it takes the pixel to the left of the previous center pixel CP1 as the center pixel CP2, and so on. Figure 6 As shown in (b12), when the processor executes the 12th judgment step SX32, it will determine that the grayscale value of the center pixel CP12 is greater than the grayscale value of the left pixel CPL12 located to the left of the center pixel CP12, and the grayscale value of the center pixel CP12 is greater than the grayscale value of the right pixel CPR12 located to the right of the center pixel CP12. The processor will then continue to execute the recording and depth calculation step SX33 to calculate the depth value of the center pixel CP12.

[0057] As described above, in one specific embodiment, if the image is acquired as follows... Figure 4 As shown, the processor will execute calculation step SX3 15 times, and each time the processor executes calculation step SX3, it can be in the form of... Figure 5 or Figure 6 The process shown involves finding white pixels in each row of pixels, obtaining the laser point position, and calculating the corresponding depth value based on the grayscale value of the pixel at the laser point position.

[0058] like Figures 4 to 7 As shown, Figure 7 This is a flowchart illustrating another embodiment of a processor locating the position of a white pixel (i.e., the laser point position) within a row of pixels. When the processor first executes calculation step SX3, it may, for example, utilize... Figure 5 or Figure 6 The flowchart of the embodiment shown is in the first row of pixel group PG1 (e.g. Figure 4 Find the white pixels in the (shown) and obtain the position of a laser point, which is represented by coordinates (1,8).

[0059] When the processor executes the calculation step SX3 for the second time (and subsequent calculation steps SX3), and executes the pixel selection step SX31 for the first time, it may select the pixel in the current pixel group PG2 that corresponds to the column number of the laser point position in the previous record as the center pixel.

[0060] Specifically, such as Figure 4 and Figure 7 As shown in (c1), after the processor executes calculation step SX3 for the first time, the number of columns of the laser point positions obtained in the first row of pixel group PG1 is 8. During the processor's second execution of calculation step SX3, when performing pixel selection step SX31 for the first time, it can select the 8th pixel counting from the leftmost pixel of pixel group PG2 as the center pixel CP2. That is to say, in Figure 7 In the embodiment shown (i.e., during the second execution of calculation step SX3 by the processor), when the processor executes pixel selection step SX31 for the first time, it will not select the second pixel counting from the leftmost (or rightmost) pixel of pixel group PG2 as the center pixel, but will use the column number of the laser point position recorded in the previous entry as the basis.

[0061] like Figure 7 As shown in (c2) to (c9), when the processor executes pixel selection step SX31 for the second time and subsequent times, it selects the pixel to the left or right of the previous center pixel as the center pixel. Specifically, as... Figure 7 As shown in (c2), when the processor executes the pixel selection step SX31 for the second time, the processor can select the pixel to the left of the previous center pixel CP1 (located in the 8th column of this row of pixel groups) (located in the 7th column of this row of pixel groups) as the center pixel CP2. And so on. When the processor executes the pixel selection step SX31 for the 3rd to 7th times, it will select the pixels located in the 6th, 5th, 4th, 3rd and 2nd columns of this row of pixel groups, respectively, as the center pixels CP3, CP4, CP5, CP6 and CP7.

[0062] When the processor executes the seventh pixel selection step SX31, it has reached the second pixel in this row of pixels counting from the left. Since the processor has not yet found a white pixel, when the processor executes the eighth pixel selection step SX31, the processor will take the pixel to the right of the center pixel CP1 from the first pixel selection step SX31 as the center pixel CP8. That is, when the processor executes the eighth pixel selection step SX31, the processor will take the ninth pixel in this pixel group counting from the leftmost side as the center pixel CP8.

[0063] Similar to the foregoing description, after executing the eighth judgment step SX32, the processor will determine that the grayscale value of the center pixel CP8 is approximately the same as the grayscale value of the left pixel CPL8 located to the left of the center pixel CP8, and that the grayscale value of the center pixel CP8 is less than the grayscale value of the right pixel CPR8 located to the right of the center pixel CP8. Therefore, the processor will execute the ninth pixel selection step SX31. When the processor executes the ninth pixel selection step, it will use the pixel located to the right of the previous center pixel CP8 as the center pixel CP9.

[0064] In short, based on the above, Figure 7 In the flowchart shown, when the processor executes the pixel selection step SX31 for the first time, it will take the pixel in the current pixel group PG2 that corresponds to the column number of the laser point position recorded in the previous time (i.e., the 8th column) as the center pixel CP1. Then, when the processor executes the pixel selection steps SX31 for the second to seventh time, the processor will take the pixel located to the left of the center pixel CP1 as the center pixel one by one until the processor determines that there is no white pixel in all the pixels to the left of the center pixel CP1. Then, the processor will take the pixel located to the right of the center pixel CP1 as the center pixel one by one until the processor finds a white pixel.

[0065] like Figures 4 to 6 , Figure 8 As shown, Figure 8 This is a flowchart illustrating another embodiment where the processor identifies the location of a white pixel (i.e., the laser dot location) within a row of pixels. This embodiment is similar to... Figure 7 The biggest difference between the flowcharts shown is that: Figure 8 As shown in (d2), when the processor executes pixel selection step SX31 for the second time, the processor selects the pixel to the right of the previously selected center pixel CP1 as the current center pixel CP2, and as shown in (d2). Figure 8 As shown in (d3), when the processor executes the pixel selection step SX31 for the third time, it uses the pixel to the right of the previously selected center pixel CP2 as the current center pixel CP3.

[0066] like Figures 4 to 6 and Figure 9 As shown, Figure 9 This is a flowchart illustrating another embodiment where the processor identifies the location of a white pixel (i.e., the laser dot location) within a row of pixels. This embodiment differs from the aforementioned... Figure 7The biggest difference in the flowchart of the embodiment shown is that when the processor executes the pixel selection step SX31 for the third and subsequent odd-numbered times, it selects the pixel to the right of the center pixel selected in the previous odd-numbered execution of the pixel selection step SX31 as the center pixel; when it executes the pixel selection step SX31 for the fourth and subsequent even-numbered times, it selects the pixel to the right of the center pixel selected in the previous even-numbered execution of the pixel selection step SX31 as the center pixel.

[0067] Specifically, such as Figure 9 As shown in (e1), when the processor executes the pixel selection step SX31 for the first time, it selects the 8th pixel (corresponding to the column number of the laser point position in the previous record) starting from the leftmost pixel of pixel group PG2 as the center pixel CP1.

[0068] like Figure 9 As shown in (e2), when the processor executes the pixel selection step SX31 for the second time, it selects the pixel to the left of the previously selected center pixel CP1 as the current center pixel CP2 (that is, the 7th pixel counting from the leftmost pixel of the pixel group).

[0069] like Figure 9 As shown in (e3), when the processor executes the pixel selection step SX31 for the third time, it selects the pixel to the right of the center pixel CP1 selected in the first execution of the pixel selection step SX31 as the center pixel CP3 (that is, the 9th pixel counting from the leftmost pixel of pixel group PG2).

[0070] like Figure 9 As shown in (e4), when the processor executes the pixel selection step SX31 for the fourth time, it selects the pixel to the left of the center pixel CP2 selected in the second execution of the pixel selection step SX31 as the center pixel CP4 (that is, the 6th pixel counting from the leftmost pixel of the pixel group).

[0071] like Figure 9 As shown in (e5), when the processor executes the pixel selection step SX31 for the fifth time, it selects the pixel to the right of the center pixel CP3 selected in the third execution of the pixel selection step SX31 as the center pixel CP5 (that is, the 10th pixel counting from the leftmost pixel of the pixel group).

[0072] It should be noted that in another variation of this embodiment, when the processor executes the pixel selection step SX31 for the second time, it may select the pixel to the right of the previously selected center pixel CP1 as the center pixel. When the processor executes the pixel selection step SX31 for the fourth time, it selects the pixel to the right of the center pixel selected in the second execution of the pixel selection step SX31. When the processor executes the pixel selection step SX31 for the third time, it selects the pixel to the left of the center pixel selected in the first execution of the pixel selection step SX31. When the processor executes the pixel selection step SX31 for the fifth time, it selects the pixel to the left of the center pixel selected in the third execution of the pixel selection step SX31.

[0073] like Figure 9 As shown in (e3), in one of the modified embodiments, after the processor completes the third pixel selection step SX31 and before the fourth pixel selection step SX31, a pixel difference calculation step can be added: calculating the difference between the grayscale value of the previous center pixel and the grayscale value of the left pixel, and the difference between the grayscale value of the previous center pixel and the grayscale value of the right pixel, and selecting the pixel with the relatively larger difference as the center pixel during the fourth pixel selection step SX31. Thus, the processor... Figure 9 After step (e3) shown, it will be determined that the difference between the grayscale value of the center pixel CP3 and the grayscale value of the right pixel CPR3 is greater than the difference between the grayscale value of the center pixel CP3 and the grayscale value of the left pixel CPL3. Therefore, when the processor executes pixel selection step SX31 next time, it will select the pixel to the right of the center pixel CP3 as the center pixel (i.e., corresponding to...). Figure 9 (Pixel CP5 shown).

[0074] Please refer to the following: Figures 10 to 12 , Figure 10 This is a flowchart illustrating another embodiment of the calculation steps of the movement control method for the self-propelled device of the present invention. Figure 11 Displayed as corresponding to Figure 10 A schematic diagram of an embodiment for acquiring images. Figure 12 This is a flowchart illustrating another embodiment of how a processor finds the position of a white pixel (i.e., the laser dot position) within one row of pixels.

[0075] like Figure 10 As shown, the calculation steps in this embodiment include a pixel selection step SY31, a judgment step SY32, and a recording and depth calculation step SY33. The pixel selection step SY31 and the recording and depth calculation step SY33 described here are the same as the pixel selection step SX31 and the recording and depth calculation step SX33 described in the previous embodiments, and will not be repeated below.

[0076] This embodiment is similar to the aforementioned Figure 3 The biggest difference in the corresponding embodiment is that in the judgment step SY32, the processor judges whether the grayscale value of the center pixel is greater than the grayscale values ​​of the two pixels to the left of the center pixel and greater than the grayscale values ​​of the two pixels to the right of the center pixel.

[0077] In this embodiment, the processor executes a total of 6 pixel selection steps SY31, 6 judgment steps SY32, and 1 recording and depth calculation step SY33. When the processor executes the pixel selection step SY31 for the first time, for example, the third pixel counting from the leftmost (or rightmost) pixel of pixel group PG1 can be taken as the center pixel CP1. In the judgment step SY32, it is determined whether the grayscale value of the center pixel CP1 is greater than the grayscale value of the first pixel CPL1 to the left of the center pixel CP1, greater than the grayscale value of the second pixel CPLL1 to the left of the center pixel CP1, greater than the grayscale value of the first pixel CPR1 to the right of the center pixel CP1, and greater than the grayscale value of the second pixel CPRR1 to the right of the center pixel CP1.

[0078] like Figure 11 As shown, after the processor executes the judgment step SY32 for the first time, it will determine that the grayscale values ​​of the center pixel CP1, pixel CPL1, pixel CPLL1, pixel CPR1, and pixel CPRR1 are approximately the same. The processor will then execute the pixel selection step SY31 and the judgment step SY32 again. When the processor executes the pixel selection step SY31 and the judgment step SY32 for the sixth time, it will determine that the grayscale value of the center pixel CP1 is greater than the grayscale values ​​of pixel CPL1, pixel CPLL1, pixel CPR1, and pixel CPRR1. At this time, the processor will execute the recording and depth calculation step SY33.

[0079] like Figure 12 As shown, in one variation of the embodiment, after executing the judgment step SY32 and before executing the next pixel selection step SY31, the processor may also include a pixel difference calculation step: calculating the difference between the grayscale value of the previous center pixel and the two grayscale values ​​of the two pixels to its left, and calculating the difference between the grayscale value of the previous center pixel and the two grayscale values ​​of the two pixels to its right, and selecting the pixel with the largest difference as the center pixel when executing the next pixel selection step SY31; that is, after the processor completes the judgment step SY32, the pixel with the largest difference is selected as the center pixel. Figure 12After step (f2) shown, after the processor executes the pixel difference calculation step, because the difference between the grayscale value of pixel CPRR2 and the grayscale value of the center pixel CP2 is the largest, pixel CPRR2 will be directly selected as the new center pixel in the next execution of pixel selection step SY31. That is, after the processor completes the calculation... Figure 12 After step (f2) shown, it will jump directly to... Figure 12 The (f4) step shown is executed by the processor after... Figure 12 After step (f4) shown, it will jump directly to... Figure 12 The (f6) step shown in the diagram.

[0080] Please see Figure 13 The diagram shows a block illustration of the self-propelled device of the present invention. The self-propelled device D of the present invention includes a driving device D1, a laser emitter D2, an image acquisition module D3, and a processor D4. The processor D4 can execute the aforementioned movement control method for the self-propelled device of the present invention, and thereby control the movement of the self-propelled device D by controlling the driving device D1. For a description of the laser emitter and the image acquisition module, please refer to the foregoing embodiments; further details will not be repeated here.

[0081] In summary, the self-propelled device movement control method and self-propelled device of the present invention, by projecting only a single laser beam in the projection step of each ranging procedure, and by designing the pixel selection step, judgment step, etc., included in each calculation step, can significantly reduce the memory capacity required by the processor to calculate the laser point position in the acquired image. This allows the processor to directly use its own memory when performing related calculations, without having to use memory separate from the processor. As a result, manufacturers can choose lower-cost processors, thereby significantly reducing the overall cost of the self-propelled device.

[0082] The above description is only a preferred embodiment of the present invention and does not limit the patent scope of the present invention. Therefore, all equivalent technical changes made based on the description and drawings of the present invention are included within the protection scope of the present invention.

Claims

1. A method for controlling the movement of a self-propelled device, characterized in that, The self-propelled device mobility control method is provided for execution by a processor of the self-propelled device, and the self-propelled device mobility control method includes: First ranging step: Execute a ranging program to obtain a distance information, each distance information containing N laser point information, each laser point information containing a laser point position and a depth value; A second distance measurement step: Execute the distance measurement procedure to obtain another distance information; One navigation step: Based on the two distance information points, a movement information is calculated using the SLAM algorithm, and the self-propelled device is controlled to move according to the movement information; the movement information includes at least one of a movement direction, a movement distance, and a rotation angle; Each of the aforementioned ranging programs includes: Projection Step 1: Control a laser emitter to project a single laser beam onto a target area; An image acquisition step: Control an image acquisition module to acquire an image of the target area to form an acquired image. The acquired image contains N rows of pixel groups, and each row of the pixel group contains M pixels; where N and M are both positive integers greater than 100. Perform N calculation steps to obtain N laser point positions. Each calculation step includes: One-pixel selection step: Select one pixel from the pixel group in a row of the acquired image as a center pixel; A determination step: Determine whether the grayscale value of the center pixel is greater than the grayscale value of at least one pixel located to the left of the center pixel, and greater than the grayscale value of at least one pixel located to the right of the center pixel. If not, the pixel selection step is repeated, and another pixel in the same row of the pixel group is selected as the center pixel; If so, perform the following steps: A recording and depth calculation step: Record the number of rows and columns of the center pixel as a laser point position, calculate a depth value of the center pixel, and record the laser point position and the depth value as a laser point information. In the two projection steps of the ranging procedure, if the single laser beams projected in each step are simultaneously projected onto the target area and the target area is acquired by the image acquisition module to form the acquired image, then the two laser beams in the acquired image are arranged to be interleaved with each other.

2. The movement control method for a self-propelled device according to claim 1, characterized in that, In the depth calculation step, the grayscale value of the center pixel is used to look up a lookup table to find the depth value corresponding to the grayscale value of the center pixel.

3. The movement control method for a self-propelled device according to claim 1, characterized in that, In each of the calculation steps, when the pixel selection step is executed for the first time, the second pixel in the row of pixels in the acquired image, starting from the leftmost pixel, is selected as the center pixel; or, the second pixel in the row of pixels in the acquired image, starting from the rightmost pixel, is selected as the center pixel. In each of the judgment steps, it is determined whether the grayscale value of the center pixel is greater than the grayscale value of a pixel to the left of the center pixel and greater than the grayscale value of a pixel to the right of the center pixel. When the pixel selection step is executed for the second time, the pixel located to the right or left of the previous center pixel is taken as the center pixel.

4. The movement control method for a self-propelled device according to claim 1, characterized in that, In each of the determination steps, it is determined whether the grayscale value of the center pixel is greater than the two grayscale values ​​of the two pixels to the left of the center pixel, and greater than the two grayscale values ​​of the two pixels to the right of the center pixel.

5. The movement control method for a self-propelled device according to claim 4, characterized in that, In each of the calculation steps, when the pixel selection step is executed for the first time, the third pixel in the pixel group of a row in the acquired image, counting from the leftmost pixel, is taken as the center pixel; or, the third pixel in the pixel group of a row in the acquired image, counting from the rightmost pixel, is taken as the center pixel. In each of the judgment steps, it is determined whether the grayscale value of the center pixel is greater than the grayscale value of a pixel to the left of the center pixel and greater than the grayscale value of a pixel to the right of the center pixel. When the pixel selection step is executed for the second time, the pixel located to the right or left of the previous center pixel is taken as the center pixel.

6. The method for controlling the movement of a self-propelled device according to any one of claims 3 to 5, characterized in that, In the second calculation step and in the calculation steps performed thereafter, the pixel in the current pixel group that corresponds to the column number of the laser point position recorded in the previous entry is taken as the center pixel.

7. The movement control method for a self-propelled device according to claim 6, characterized in that, In each of the calculation steps, when the calculation step is executed for the third time and thereafter in odd-numbered executions, the pixel to the left of the center pixel selected in the previous odd-numbered execution of the pixel selection step is selected as the center pixel; when the calculation step is executed for the fourth time and thereafter in even-numbered executions, the pixel to the right of the center pixel selected in the previous even-numbered execution of the pixel selection step is selected as the center pixel.

8. The movement control method for a self-propelled device according to claim 7, characterized in that, In each of the calculation steps, when the calculation step is executed for the third time and subsequent odd-numbered times, the pixel to the right of the center pixel selected in the previous odd-numbered execution of the pixel selection step is selected as the center pixel; when the calculation step is executed for the fourth time and subsequent even-numbered times, the pixel to the left of the center pixel selected in the previous even-numbered execution of the pixel selection step is selected as the center pixel.

9. A self-propelled device, characterized in that, The self-propelled device includes: a driving device, a laser emitter according to claim 1, an image acquisition module according to claim 1, and a processor according to claim 1, wherein the processor is electrically connected to the driving device and the processor is capable of executing the movement control method of the self-propelled device according to claim 1 to control the movement of the self-propelled device through the driving device.

10. The self-propelled device according to claim 9, characterized in that, In each of the determination steps, it is determined whether the grayscale value of the center pixel is greater than the two grayscale values ​​of the two pixels to the left of the center pixel and greater than the two grayscale values ​​of the two pixels to the right of the center pixel; in each of the calculation steps, when the pixel selection step is executed for the first time, the third pixel in a row of pixels in the acquired image, counting from the leftmost pixel, is taken as the center pixel, or the third pixel in a row of pixels in the acquired image, counting from the rightmost pixel, is taken as the center pixel; when the pixel selection step is executed for the second time, the pixel to the right or left of the previous center pixel is taken as the current center pixel.

Citation Information

Patent Citations

  • Separating type floor mopping robot and route planning method thereof

    CN107063257A

  • Obstacle recognition method and device and storage medium

    CN111538034A