The present disclosure relates to the field of robots, and in particular to a method for controlling robot movements and a robot.
As an intelligent device, a robot serves for human, and users of robots usually control robot movements when the robots are performing tasks. For example, a robot is performing a task within a certain area, then the robot may not be allowed to move out of the area until the task is finished. Currently in the art, the robot working area is limited by obstacle signals generated by a virtual wall generation device, or by a virtual obstacle boundary, which is in a pattern form and can be recognized by the robot.
However, when a robot is required to move across and cover a large area, users may need multiple virtual wall generation devices or patterns to divide the robot working area into multiple sub-regions, which increases cost.
The present disclosure is to solve the problem that, in the art, virtual wall generation devices or patterns are required to generate virtual obstacle boundaries.
To solve the above-mentioned problem, the present disclosure is to provide a robot, including a position acquiring module, which acquires position information of two adjacent obstacles located on two sides of the robot along the robot moving direction or a direction perpendicular to the moving direction, and calculates distance between the two adjacent obstacles; a distance determination module, which determines whether the distance between the two adjacent obstacles is less than or equal to a first preset distance; a boundary defining module. which defines a virtual obstacle boundary between the two adjacent obstacles when the distance between the two adjacent obstacles is less than or equal to the first preset distance; and a movement controlling module, which controls robot moving paths based on the virtual obstacle boundary. When the robot subsequently moves to reach the virtual obstacle boundary, the movement controlling module may be further used to control the robot movement by defining obstacles at the virtual obstacle boundary. The position acquiring module may then obtain a virtual map of a nonworking area, wherein the virtual map is divided into girds in an array. When the robot is in the process of moving, the position acquiring module may detect status of grids, which are adjacent to the grid that the robot is located, along the robot moving direction or perpendicular to the moving direction. The status of each grid may be recorded on the virtual map, wherein grids, which are passed by the robot, may be recorded as operated grids; grids, which are detected to contain obstacles, may be recorded as obstacle grids; grids, which have not been passed by the robot and are detected to not contain any obstacle, may be recorded as grids to be operated; and grids, which have not been passed by the robot and have not undergone the detection process, may be recorded as unknown grids.
To solve the above-mentioned technical problem, the present disclosure is to provide another solution, which is a method for controlling robot movement, including: acquiring position information of two adjacent obstacles located on two sides of the robot along the robot moving direction or a direction perpendicular to the moving direction, calculating distance between the two adjacent obstacles; determining whether the distance between the two adjacent obstacles is less than or equal to a first preset distance, defining a virtual obstacle boundary between the two adjacent obstacles when the distance between the two adjacent obstacles is less than or equal to the first preset distance, and controlling movement paths of the robot based on the virtual obstacle boundary.
To solve the above-mentioned technical problem, the present disclosure is to provide another solution, which is a robot including a sensor and a processor interconnected with each other. The sensor may acquire position information of two adjacent obstacles located on two sides of the robot along the robot moving direction or a direction perpendicular to the moving direction, and the processor may calculate distance between the two adjacent obstacles, determining whether the distance between the two adjacent obstacles is less than or equal to a first preset distance. When the distance between the two adjacent obstacles is less than or equal to the first preset distance, the processor may define a virtual obstacle boundary between the two adjacent obstacles, and control moving paths of the robot based on the virtual obstacle boundary.
Differentiating from the current skills available in the art, the present disclosure is to acquire position information of two adjacent obstacles located on two sides of a robot along the robot moving direction or a direction perpendicular to the moving direction, calculate distance between the two adjacent obstacles, and define a virtual obstacle boundary between the two adjacent obstacles when the distance between the two adjacent obstacles is less than or equal to a first preset distance. External virtual wall generation devices may not be required, defining virtual obstacle boundaries may be performed by the robot itself, which efficiently reduces cost.
Technical solutions of embodiments in the present disclosure are to be clearly and completely described referring to appended figures. Obviously, embodiments to be described are only a part but not all of the available embodiments for the present disclosure. Based on the embodiments in the present disclosure, any other embodiments made by ordinary skilled personnel in the art without creative endeavor should be within the scope of the present disclosure.
Referring to
Block S11: position information of two adjacent obstacles located on two sides of a robot along the robot moving direction or a direction perpendicular to the moving direction may be acquired, and distance between the two adjacent obstacles may be calculated.
Before the block S11, the method may further include S101: obtaining a virtual map of a to-be-operated region for the robot, wherein the virtual map is divided into a plurality of grids in an array. To be specific, referring to
S102: during the process of robot moving, status of grids adjacent to the robot located grid along the robot moving direction and the direction perpendicular to the moving direction may be detected, and the status of the grids may be marked on the virtual map, wherein grids that are passed by the robot may be marked as operated grids, grids that contain obstacles may be marked as obstacle grids, grids that are detected as obstacle free and never passed by the robot may be marked as to-be-operated grids, and grids that are never passed by the robot and the status thereof are not detected may be marked as unknown grids.
To be specific, in the above embodiment, the robot may have two modes of moving: row by row moving and column by column moving. Further referring to
In the example of row by row moving mode, during the moving process, status of the grids adjacent to the robot located grid along the moving direction (row direction) and the perpendicular direction (column direction) may be detected and marked on the virtual map. The status of the grids may be updated while the robot moving. As shown in
In other embodiments, the robot may move along other directions, and the virtual map may be stored by other means, which will not be limited herein.
Further, the block S11 may include S111: acquiring two adjacent obstacle grids located on two sides of the robot along the moving direction or the direction perpendicular to the moving direction, and calculating distance between the two adjacent obstacle grids based on the position information of the two adjacent obstacle grids on the virtual map.
The S111 may further include S1111: along the moving direction of the robot or a direction perpendicular to the robot moving direction, acquiring position information of a first obstacle located on one side of the robot and a second obstacle located on another side of the robot, wherein a region between the first and the second obstacles may be obstacle free.
To be specific, in one embodiment, as shown in
Block S12: it may be determined whether the distance between two adjacent obstacles is equal to or less than a first preset distance.
To be specific, the robot may preset a first threshold distance as the first preset distance. In the above embodiment, the first preset distance may be expressed in grids as unit, wherein a specific value may be determined based on actual demand, which will not be limited herein.
The block S12 may further include S121: determining whether a to-be-operated grid is located on at least one side of a grid between the two adjacent obstacle grids and whether the to-be-operated grid communicates with an unknown grid.
To be specific, in the above embodiment, as shown in
Block S13: When the distance between the two adjacent obstacles is equal to or less than the first preset distance, a virtual obstacle boundary may be defined between the two adjacent obstacles.
Further, the block S13 may include S131: defining a virtual obstacle boundary between the two adjacent obstacle grids, when the distance between the two adjacent obstacle grids is equal to or less than the first preset distance, and a to-be-operated grid is located on at least one side of the grid between the two adjacent obstacle grids and communicates with an unknown grid.
To be specific, in the above embodiment, as shown in
In another embodiment, referring to
Referring to
S132 may be performed as: controlling the robot to continue moving till the robot moves out of grids between the two adjacent obstacle grids, and defining a virtual obstacle boundary between the two adjacent obstacle grids.
To be specific, referring to
Referring to
The block S13 may further include S133: when the virtual map has two or more than two virtual obstacle boundaries, determining whether distance between two of the virtual obstacle boundaries along a first direction and a second direction, which is perpendicular the first direction, either of which is less than a second preset distance, and whether projections of the two boundaries along the direction other than the one for calculating the distance have an overlapping area.
The second preset distance is a second threshold distance defined by the robot, which may depend on the actual demand, and will not be limited herein. In one embodiment, a first direction on the virtual map is the row direction, and a second direction on the virtual map is the column direction. It may be determined whether the distance between two virtual obstacle boundaries along any one of the directions, either the row direction or the column direction, is less than the second preset distance, and whether the projections of the virtual boundaries along the direction other than the one used for calculating the boundary distance have an overlapping area, so that it may be determined whether the two virtual obstacle boundaries are defined too close.
S134: when the distance between two virtual obstacle boundaries is less than the second preset distance, and has an overlapping projection area, then one of the boundaries may be selected to be deleted.
To be specific, in one embodiment, referring to
Referring to
Referring to
Further, the S134 may include S1341: deleting the virtual obstacle boundary, which is defined at a later time.
To be specific, in the above embodiment, referring to
Block S14: the robot moving paths may be controlled by virtual obstacle boundaries.
The block S14 may include S141: controlling the robot to move by defining obstacles at virtual obstacle boundaries, when the robot moves to reach virtual obstacle boundaries.
To be specific, after a virtual obstacle boundary is effective, the robot may treat the position of which a virtual obstacle boundary is located as containing an obstacle. During the subsequent moving process, the robot may not be able to cross grids, which are located at the virtual obstacle boundary, until the virtual obstacle boundary is deleted.
Further, the S141 may include S1411: dividing the to-be-operated region into at least two sub-regions using the virtual obstacle boundary.
To be specific, referring to
S1412: After the robot is controlled to traverse to-be-operated grids and unknown grids of a sub-region, the virtual obstacle boundaries may be deleted, the robot may then start traversing to-be-operated grids and unknown grids of another sub-region.
To be specific, referring to
Referring to
Referring to
In contrast with the available technologies in the art as shown in
S1413: during the process of moving, when the robot discovers a grid, which communicates with an operated grid and/or a to-be-operated grid, which are located in at least two sub-regions, the virtual obstacle boundary may be deleted.
To be specific, it may be seen from blocks S11 to S13, a virtual obstacle boundary may be defined while the robot is moving from an operated region to an non-operated region, which means when a virtual obstacle boundary is defined initially, sub-regions located on two sides of the virtual obstacle boundary cannot communicate through operated and/or to-be-operated grids. However, during the robot moving process, status of grids may change, and, referring to
In the above embodiments, by acquiring position information of two adjacent obstacles located on two sides of the robot along the robot moving direction or the direction perpendicular to the moving direction, and calculating distance between the two adjacent obstacles, when the distance between the two adjacent obstacles is less than or equal to a first preset distance, a virtual obstacle boundary may be defined, and moving paths of the robot may be controlled dependent on the virtual obstacle boundary, which may not require an external virtual wall generator, virtual obstacle boundaries may be defined by the robot itself, saving cost efficiently. Also, the defined virtual obstacle boundaries may divide a to-be-operated region into at least two sub-regions, so that after completion of traversing to-be-operated grids and unknown grids within one of the sub-regions, the robot may start traversing to-be-operated grids and unknown grids within another sub-region, which effectively improves the robot working efficiency and saves working time.
Referring to
The robot 60 may be a floor sweeping robot and other types of robots, which should not be limited herein.
The position acquiring module 601 may acquire position information of two adjacent obstacles located on two sides of the robot 60 along the robot 60 moving direction or a direction perpendicular the moving direction, and calculate distance between the two adjacent obstacles.
To be specific, in one embodiment, the robot 60 may acquire position information of two adjacent obstacles located on two sides of the robot 60 along the robot 60 moving direction or the direction perpendicular the moving direction via a sensor, and calculate distance between the two adjacent obstacles, wherein the distance is transferred to the distance determination module 602.
The distance determination module 602 may be used to determine whether the distance between the two adjacent obstacles is less than or equal to a first preset distance.
To be specific, the first preset distance may be a first threshold distance preset by the robot, values may be determined dependent on actual demand, which will be not be limited herein. The distance determination module 602 may receive the distance between the two adjacent obstacles transferred from the position acquiring module 601, determine whether the distance is less than or equal to the first preset distance, and transfer the determined results to the boundary defining module 603.
The boundary defining module 603 may be used to define a virtual obstacle boundary between the two adjacent obstacles, when the distance between the two adjacent obstacles is less than or equal to the first preset distance.
To be specific, the boundary defining module 603 may receive the determined results from the distance determination module 602, when the result shows the distance is less than or equal to the first preset distance, the robot 60 may define a virtual obstacle boundary between the two adjacent obstacles by using the boundary defining module 603.
The moving control module 604 may be used to control moving paths of the robot depending on the virtual obstacle boundaries.
To be specific, in one embodiment, after a virtual obstacle boundary is defined, during the subsequent moving process, the robot 60 may determine that an obstacle is located at the position of which the virtual obstacle boundary is defined, and the robot cannot cross the virtual obstacle boundary, so that the moving paths of the robot may be controlled.
In the above embodiment, the robot may acquire position information of the two adjacent obstacles located on the two sides of the robot along the robot moving direction or the direction perpendicular to the moving direction, and calculate distance between the two adjacent obstacles, when the distance between the two adjacent obstacles is less than or equal to a first preset distance, a virtual obstacle boundary may be defined, and moving paths of the robot may be controlled dependent on the virtual obstacle boundary, which may not require an external virtual wall generator, virtual obstacle boundaries may be defined by the robot itself, saving cost efficiently.
Referring to
The robot 60 may be a floor sweeping robot and other types of robots, which will not be limited herein.
The sensor 701 may be used acquire position information of two adjacent obstacles located on two sides of the robot along the robot moving direction or a direction perpendicular to the moving direction.
To be specific, the sensor 701 may be a distance sensor module. The robot 70 may acquire position information of the two adjacent obstacles located on the two sides of the robot 70 along the robot moving direction or the direction perpendicular to the moving direction via the sensor 701. The sensor 701 may also be a sensor of other types, as long as the position information of the two adjacent obstacles located on two sides of the robot can be acquired, the type of the sensor will not be limited herein.
The processor 702 may control the robot to move, wherein the processor 702 may also be called as a central processing unit (CPU). The processor 702 may be an integrated circuit chip, being capable of processing data. The processor 702 may also be a general processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete component gate or transistor logic devices, discrete hardware assembly. The general processor may be a microprocessor or any regular processor and the like.
The robot 70 may further include a non-transitory memory (not shown in the figure), which may store necessary instructions and data for the processor 702 to operate, for example, the position information of the two adjacent obstacles located on two sides of the robot 70 and position information of where virtual obstacle boundaries are defined, and the like.
The processor 702 may be used to calculate distance between two adjacent obstacles and determine whether the distance is less than or equal to a first preset distance. When the distance between the two adjacent obstacles is less than or equal to the first preset distance, a virtual obstacle boundary may be defined between the two adjacent obstacles, and moving paths of the robot may be controlled depending on the virtual obstacle boundaries.
The first preset distance is a first distance threshold defined by the robot 70, the value of the first distance threshold may be defined depending on specific demand, which will not be limited herein.
To be specific, in one embodiment, the processor 702 may receive the position information of the two adjacent obstacles located on two sides of the robot 70 acquired by the sensor 701, calculate distance between the two adjacent obstacles, and determine whether the distance is less than or equal to the first preset distance. When the distance is less than or equal to the first preset distance, a virtual obstacle boundary may be defined between the two adjacent obstacles. Then, the processor 702 may control the robot 70 to not cross the virtual obstacle boundary by defining obstacles at the virtual obstacle boundary, so that moving paths of the robot 70 is controlled. Of course, in other embodiments, the processor 702 may execute other blocks of an implementation of the robot moving control method as described in the present disclosure, which will not be limited herein.
The above descriptions are implementations of the present disclosure only, and should not limit the scope of the present disclosure. Any equivalent structures or transformation of the process based on the present specification and appended figures of the present disclosure used directly or indirectly in the related art should be within the scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
201710013906.0 | Jan 2017 | CN | national |
The present application is a continuation-application of International (PCT) Patent Application No. PCT/CN2017/086187 filed or May 26, 2017, which claims foreign priorities of Chinese Patent Application No. 201710013906.0, filed on Jan. 9, 2017, in China National Intellectual Property Administration, the entire contents of which are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2017/086187 | May 2017 | US |
Child | 16443893 | US |