WO2023231757A1 - 基于地图区域轮廓的设置方法与机器人沿边结束控制方法 - Google Patents
基于地图区域轮廓的设置方法与机器人沿边结束控制方法 Download PDFInfo
- Publication number
- WO2023231757A1 WO2023231757A1 PCT/CN2023/094396 CN2023094396W WO2023231757A1 WO 2023231757 A1 WO2023231757 A1 WO 2023231757A1 CN 2023094396 W CN2023094396 W CN 2023094396W WO 2023231757 A1 WO2023231757 A1 WO 2023231757A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- robot
- edged
- area
- point
- corner points
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000008569 process Effects 0.000 claims description 18
- 230000007704 transition Effects 0.000 claims description 9
- 238000009434 installation Methods 0.000 claims 2
- 238000004140 cleaning Methods 0.000 description 23
- 238000010276 construction Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010408 sweeping Methods 0.000 description 3
- 238000005452 bending Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 208000035657 Abasia Diseases 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
Definitions
- the present invention relates to the technical field of robots walking along the edge in indoor areas, and in particular to a setting method based on the outline of a map area and a method for controlling the edge end of the robot.
- cleaning robots will clean along the walls of the room through position information collected by visual technology. Generally, they clean the room area according to the historical map in a global planning manner before cleaning along the edges, in order to improve the cleaning coverage and clean the room.
- the purpose of dead space garbage Due to the variety of room wall layouts and furniture furnishings in different families, it is easy to form a complex robot cleaning environment.
- the cumulative error of the sensor will become larger and larger. Therefore, using traditional Methods to determine whether the cleaning robot should end cleaning along the edge (it has completed a circle of cleaning along the edge of the room) are often not timely or misjudged.
- the rotation angle recorded by the robot at the current position is different from the rotation recorded at the starting point of walking along the edge. The difference in angle is a positive integer multiple of 360 degrees.
- the cleaning robot continues to walk along the same local area, causing the cleaning robot to clean repeatedly; thus reducing the working efficiency of the cleaning robot.
- the present invention discloses a setting method based on the outline of the map area and a method for controlling the edge end of the robot.
- the specific technical solutions are as follows: a setting method based on the outline of the map area. Before executing the setting method, the robot obtains a map of the work area, and the map is used to represent the work.
- the outline of the area so that the robot can walk along the outline; the setting method includes: the robot searches for the corner points of the work area from the map; then the robot sets the rectangular area where the two adjacent corner points are located as the unit area to be edged, Among them, two adjacent corner points are covered by the unit area to be edged; in the map, the contour consistent with the extension direction of the two adjacent corner points covered by each unit area to be edged uses the unit to be edged. It is represented by the area or two adjacent corner points covered by the edge unit area.
- the beneficial technical effect of this technical solution is to first represent the outline of the work area by presetting a rectangular area or two corner points corresponding to two adjacent corner points in the clockwise direction, so that the robot can judge whether the walking trajectory along the edge passes through the corresponding corner points.
- the rectangular area corresponding to the two corner points of the robot is used to identify the edge-alonging situation of the robot, and then by judging whether the robot's edge-alonging walking trajectory has sequentially covered the corresponding map outline segment of the entire work area according to the preset clockwise direction, it is judged whether it should stop continuing to follow the edge-alonging. walk.
- a method for controlling the end of the edge along a robot includes: the robot executes the setting method based on the outline of the map area, and sets a plurality of unit areas to be edged; and then the robot performs the process in the working area.
- the robot walks along the edge; when the robot walks through all the unit areas to be edged, the robot stops walking along the edge; when the robot repeatedly walks through the same batch of unit areas to be edged, the robot stops walking along the edge; wherein, the same batch of units to be edged
- the area is a preset number of unit areas to be edged that are different from each other; wherein the number of unit areas to be edged set by the setting method is greater than the preset number.
- the beneficial technical effect of this technical solution is that when there is an abnormal situation in which the work area is blocked by obstacles or the work area is restricted by a virtual wall, the robot cannot smoothly walk along the edge of the work area. At this time, It only needs to be judged that the robot has repeatedly walked through a certain number of rectangular areas and did not wander in the same rectangular area each time, then it can be determined that the robot has an abnormality in the process of walking along the edge, so that it can stop walking along the edge in time to ensure work efficiency.
- Figure 1 is a schematic diagram of the corner points of the work area and the unit area to be edged (a rectangular area surrounding two adjacent corner points) of the work area disclosed in an embodiment of the present invention.
- Figure 2 is a schematic diagram of the edge walking trajectory formed by the robot in the work area and the unit area to be edged passed by in a scenario where the indoor area is blocked by a virtual wall or obstacle according to another embodiment of the present invention.
- FIG. 3 is a flowchart of a method for controlling a robot to end along an edge according to yet another embodiment of the present invention.
- the wall here can be regarded as the outline of the room; when the robot detects the wall, it adjusts the robot's forward direction to be parallel to the wall. Among them, the wall can be split into two adjacent parallel walls.
- the outline or outline line or outline segment of the room can be regarded as the projection line of the wall on the horizontal ground; then the position of the detected wall is recorded as the starting point along the edge.
- Wall walking along the edge Contour walking
- the forward direction of the robot is adjusted to be parallel to the extension direction of the wall, that is, the forward direction of the robot is parallel to the extension direction of the outline of the wall, forming the posture that the robot should maintain while walking along the edge; when the robot is a cleaning robot
- one mode of the cleaning robot is the global edge-alonging mode, that is, the cleaning robot walks along the contour line of the entire terrain, and the forward direction of the cleaning robot is adjusted to be parallel to the contour line of the entire terrain.
- the cleaning robot walks globally in the indoor working area. For example, it walks along the outline of the wall.
- the forward direction of the cleaning robot is parallel to the outline of the wall.
- the robot is in the working mode of walking along the edge.
- the robot will mark each position point that it has walked along the edge in the map constructed in real time. It can execute the setting method based on the outline of the map area disclosed in the present invention and The robot constructs a historical map of the room before completing the control method along the edge.
- a setting method based on the outline of a map area is disclosed to simplify the existing method of setting the outline of a map area.
- the execution subject of the setting method is a robot, and it is a robot that stores historical maps internally. It can be understood as a robot.
- the map area outline is an outline that describes the work area within the map. It is suitable for robots that are preparing to walk along the edge, especially robots that are preparing to walk along the edge in the work area, and the robot has been prepared in advance. After walking through the work area, local maps of each partition in the work area have been constructed and combined into a global map.
- the map currently constructed by the robot is a historical map of the work area. In this embodiment, the The historical map is used to represent the outline of the work area so that the robot can walk along the corresponding outline.
- the setting method includes: the robot searches for the corner points of the work area from the map, that is, searches for the determined corner points in the work area from the historical map and can form a corner point map, where , the search method includes but is not limited to extracting all the corner points from the neighborhood pixels through the corner point extraction algorithm. For example: if the gray value of a pixel point is significantly different from that of the neighborhood pixel point (too bright or too bright). Dark), then it is more likely to be a corner point; the search method also includes graph search algorithms based on four-neighborhood, eight-neighborhood, etc.; it is equivalent to the robot searching for the corner point from the working area.
- the robot sets the rectangular area with a specific geometric relationship where the two adjacent corner points are located as the unit area to be edged. Specifically, it sets each adjacent corner point in the preset clockwise direction.
- the rectangular area with a specific geometric relationship where the two corner points are located is set as the unit area to be edged, so that the robot divides multiple unit areas to be edged from the work area along the preset clockwise direction, where the preset clockwise direction can
- the detour direction that the robot relies on when walking along the edge can be set to be parallel to the extension direction of the outline of the working area.
- the preset clockwise direction is clockwise or counterclockwise, which corresponds to the edge-edge mode of the cleaning robot. Cleaning direction; two adjacent corner points are covered by the unit area to be edged.
- the robot can sequentially save each corner point and/or the unit area to be edged into the linear storage space according to the collection sequence in the preset clockwise direction, so that the robot can walk along the edge in the preset clockwise direction. Pass The corresponding corner points or unit areas to be edged are extracted in the process, where the ordering of each pair of two adjacent corner points and the unit area to be edged in the preset clockwise direction can simplify the representation of the robot traversal or movement. The order of the locations of the areas passed through.
- the robot controls a contour that is consistent with the extension of two adjacent corner points covered by each unit area to be edged along, using the unit area to be edged or the unit area covered by the unit area to be edged.
- Two adjacent corner points are represented.
- the outline segment that is consistent with the extension direction of the two adjacent corner points covered by the unit area to be edged along in the preset clockwise direction uses the unit area to be edged or the unit to be edged.
- the two adjacent corner points covered by the area are represented to achieve the effect of simplifying the outline of the work area.
- this embodiment represents the outline of the work area by presetting a rectangular area or two corner points corresponding to two adjacent corner points in the clockwise direction, so that the robot can determine whether the walking trajectory along the edge passes through the corresponding two corner points.
- the corresponding rectangular area is used to identify the edge condition of the robot.
- the working area is an area to be cleaned, which can be a separate room unit in the family space, the area to be cleaned is a part of a room unit, or the area to be cleaned is a room composed of multiple room units. area, or the area to be cleaned is a domestic space.
- the area to be cleaned can also be public places such as offices in office buildings, large shopping malls or airports. In the embodiment of the present application, the working area is not specifically limited.
- the robot uses the visual sensor (camera or depth camera) installed on the body to collect position information in the environment, and then converts the collected position information into pixels, and arranges them one by one in a grid composed of unit cells.
- each unit cell represents a pixel and is configured with corresponding map coordinates.
- the map coordinate system is different from the sensor coordinate system, but is also configured with an origin, Y-axis, and X-axis.
- the method for the robot to set the rectangular area where two adjacent corner points are located as the unit area to be edged includes: when the coordinate values of one dimension in the two adjacent corner points are equal, select parallel The line segment connecting the two adjacent corner points is the long side of the rectangular area, and the length of the long side of the rectangular area is set to be the first preset multiple of the straight-line distance between the two adjacent corner points to construct Rectangular area, preferably, the length of the short side of the rectangular area is related to the width of the robot's body or the thickness of the wall to facilitate the passage of the robot.
- the specific construction method of the rectangular area is: when the abscissa values of two adjacent corner points are equal or the ordinate values of the two corner points are equal, a line segment parallel to the line connecting the two adjacent corner points is selected as the rectangular area the long side of the rectangular area, and set the length of the long side of the rectangular area to be the first preset multiple of the straight-line distance between the two adjacent corner points, and set the length of the short side of the rectangular area to be greater than the width of the robot's body or the wall The thickness of the body, and set the rectangular area to cover only two corner points, which are the two adjacent corner points; then set the rectangular area as the unit area to be edged, where the first preset The multiple is greater than or equal to 1; the length of the long side of the rectangular area (generally the side in the width direction of the rectangular area) is greater than or equal to the length of the short side of the rectangular area (generally the side in the height direction of the rectangular area).
- two unit areas to be edged arranged along the preset clockwise direction may have a large overlapping area, but this does not affect the map.
- the representation of the contour line does not affect the robot's ability to walk along the edge based on the unit area to be edged and the corner points it covers.
- the rectangular area where every two adjacent corner points are located is repeatedly set as the unit area to be edged.
- the rectangular area where every two adjacent corner points are located is set along the preset clockwise direction. Wait for the edge unit area to be set until all corner points are set in the work area. It can be realized that the areas of each unit to be edged are not completely coincident.
- the long side of the rectangular area includes two endpoints, and the long side of the rectangular area can be regarded as connected by the two endpoints.
- the two endpoints are located outside the two adjacent corner points.
- one of the endpoints extends to the other endpoint in a direction parallel to the line connecting the two adjacent corner points.
- the result is The long side of the rectangular area, wherein the length of the line connecting the two end points is equal to the first preset multiple of the straight-line distance between the two adjacent corner points, and the line connecting the two adjacent corner points is between the two adjacent corner points.
- the projected line segment on the connection between the endpoints does not exceed the connection between the two endpoints; in this embodiment, the number of corner points covered by the rectangular area is two, and the two adjacent corner points are the only ones covered by the rectangular area.
- the long side of the rectangular area may extend from the left side to the right side of one of the two adjacent corner points, and the long side of the rectangular area may also extend from The right side of one of the two adjacent corner points extends to its left side; the two long sides of the rectangular area can both extend in the same direction or in opposite directions, wherein the two long sides of the rectangular area The long side is separated on both sides of the line connecting two adjacent corner points, so that the two short sides perpendicular to the long side of the rectangular area are combined to surround the line connecting the two adjacent corner points inside the rectangular area.
- the intermediate point can be located in the corresponding The upper, lower, left or right side of the line connecting two adjacent corner points, starting from the middle point along the direction parallel to the line connecting the two adjacent corner points, toward the middle point respectively Extend on both sides to obtain the long side of the rectangular area, wherein the sum of the lengths extending on both sides of the intermediate point is equal to the first preset multiple of the straight-line distance between the two adjacent corner points, that is, equal to the The length of the long side of the rectangular area, the projected line segment of the line connecting the two adjacent corner points on the long side of the rectangular area does not exceed the long side of the rectangular area; in some embodiments, the length of the rectangular area The long side may extend from the middle point to the left side of the middle point and the right side of the middle point respectively; in some embodiments, a vertical line connecting the two adjacent corner points is provided.
- a first intermediate point, a second intermediate point is set vertically below the line connecting two adjacent corner points, the long side of the rectangular area includes a first long side and a second long side, the first long side is located at the corresponding On the upper side of the line connecting two adjacent corner points, the second long side is located on the lower side of the line connecting two adjacent corner points; starting from the first middle point and parallel to the two adjacent corner points
- the direction of the connecting line extends to both sides of the first intermediate point respectively to obtain the first long side of the rectangular area; at the same time, starting from the second intermediate point and parallel to the phase
- the direction of the line connecting two adjacent corner points extends to both sides of the second intermediate point respectively to obtain the second long side of the rectangular area; wherein, between the first long side and the second long side of the rectangular area
- the distance is equal to the length of the short side of the rectangular area, so as to combine the two short sides perpendicular to the long side of the rectangular area to surround the line connecting the two adjacent corner points inside it.
- the line connecting the two adjacent corner points is selected as the long side of the rectangular area, so that the long side of the rectangular area
- the length of is equal to the straight-line distance between the two adjacent corner points
- a rectangular area is constructed, and then the rectangular area is set as the unit area to be edged, where the number of corner points covered by the rectangular area is two, and these two corners If the point is the two adjacent corner points, then the two adjacent corner points are the only two corner points covered by the rectangular area, so that the different unit areas to be edged do not completely overlap.
- the abscissa values of the two corner points are equal or the ordinate values of the two corner points are equal, select the connection between the two adjacent corner points.
- the line is the long side of the rectangular area, so that the length of the rectangular area is equal to the straight-line distance between the two adjacent corner points, and the length of the short side of the rectangular area is set to be greater than or equal to the width of the robot's body, and Only two corner points covered by the rectangular area are set as the two adjacent corner points, and then the rectangular area is marked as the unit area to be edged. Further simplify the outline representation of the work area.
- the method for the robot to set the rectangular area where two adjacent corner points are located as the unit area to be edged includes: when the coordinate values of the same dimension in the two adjacent corner points (the abscissa values are not equal) , and the ordinate values are not equal), select the line segment parallel to the line connecting the two adjacent corner points as the diagonal of the rectangular area, and set the length of the diagonal to the length of the two adjacent corner points.
- the second preset multiple of the straight-line distance of the corner points constructs a rectangular area, in which the number of corner points covered by the rectangular area is only two, and the two adjacent corner points are the only two corners covered by the rectangular area.
- the length of the short side of the rectangular area is related to the width of the robot's body or the thickness of the wall to facilitate the passage of the robot.
- the specific construction method of the rectangular area is: among the two corner points closest to each other in the preset clockwise direction, the abscissa values of the two corner points are not equal and the ordinate values of the two corner points are not equal.
- the second preset multiple of the straight-line distance between two adjacent corner points, and the length of the short side of the rectangular area is greater than the width of the robot's body or the thickness of the wall, and the rectangular area only covers the two corner points.
- the length is greater than or equal to the length of the short side of the rectangular area (generally the side in the height direction of the rectangular area).
- the second preset multiple may be equal to the first preset multiple, which may allow a larger overlapping area for the two edge unit areas set along the preset clockwise direction, but does not affect the outline in the map.
- the representation of the line does not affect the robot's ability to walk along the edge based on the unit area to be edged and the corner points it covers. Repeat this Set the rectangular area where every two adjacent corner points are located as the unit area to be edged. Specifically, set the rectangular area where every two adjacent corner points are located along the preset clockwise direction as the edge to be edged. unit area until all corner points are set within the work area. It can be realized that the areas of each unit to be edged are not completely coincident.
- the diagonal of the rectangular area includes two endpoints, and the diagonal of the rectangular area can be regarded as connected by the two endpoints.
- the two endpoints are separated from the outside of the two adjacent corner points.
- one of the endpoints is along the direction parallel to the line connecting the two adjacent corner points, or with the direction of the line connecting the two adjacent corner points.
- the direction in which the line connecting two adjacent corner points intersects extends to the other endpoint to obtain the diagonal line of the rectangular area, where the length of the line connecting the two endpoints is equal to the straight line between the two adjacent corner points.
- the second preset multiple of the distance, the projected line segment of the connecting line between the two adjacent corner points on the connecting line between the two end points does not exceed the connecting line between the two end points, where the corner points covered by the rectangular area
- the number is two, and the two adjacent corner points are the only two corner points covered by the rectangular area; in some embodiments, the diagonal line of the rectangular area can be from the two adjacent corner points.
- the lower left of a corner point extends to its upper right, and the diagonal of a rectangular area can also extend from the upper right of one of the two adjacent corner points to its lower left; the two diagonals of the rectangular area extend from The angle formed is not equal to 0 degrees or an integer multiple of 180 degrees.
- the intermediate point can be located at the The upper, lower, left or right side of the line connecting two adjacent corner points, starting from the middle point along the direction parallel to the line connecting the two adjacent corner points or with the adjacent The direction in which the line connecting the two corner points intersects extends to both sides of the intermediate point respectively to obtain the diagonal line of the rectangular area, wherein the sum of the lengths extending on both sides of the intermediate point is equal to the length of the adjacent two
- the second preset multiple of the linear distance between the corner points is equal to the length of the diagonal of the rectangular area, and the projection of the line connecting the two adjacent corner points on the diagonal of the rectangular area
- the line segment does not exceed the diagonal of the rectangular area, where the number of corner points covered by the rectangular area is two, and the two adjacent corner points are the only two corner points covered by the rectangular area; in some implementations In this method, the diagonal lines of the rectangular area may extend from the
- a first intermediate point is set vertically above the line connecting the two adjacent corner points, and a second intermediate point is set parallel to the line segment connecting the two adjacent corner points,
- the long side of the rectangular area includes a first diagonal and a second diagonal. The second diagonal intersects the line connecting the two adjacent corner points.
- the first diagonal can be parallel to the two adjacent corner points.
- the rectangular area surrounds the two adjacent corner points.
- the line segment connecting the two adjacent corner points is selected as the diagonal of the rectangular area to construct a rectangular area. , and then set the rectangular area as the unit area to be edged, where the number of corner points covered by the rectangular area is two, and these two corner points are the two adjacent corner points, then the two adjacent corner points
- the corner points are the only two corner points covered by the rectangular area. For example, among the two corner points that are closest in the preset clockwise direction, if the abscissa values of the two corner points are not equal and the ordinate values of the two corner points are not equal, select the adjacent two corner points.
- the line segment connecting the corner points is the diagonal of the rectangular area, and the length of the diagonal of the rectangular area is set to be greater than or equal to the width of the robot's body or the thickness of the wall, where the diagonal of the rectangular area
- the length of the line is greater than the length of the short side of the rectangular area; and the two corner points covered only by the rectangular area are set as the two adjacent corner points, and then the rectangular area is marked as the unit area to be edged. Further simplifying the outline representation of the work area.
- the length of the long side of the rectangular area (generally the side in the width direction of the rectangular area) is greater than or equal to the length of the short side of the rectangular area (generally the side in the height direction of the rectangular area).
- the minimum side length of the unit area to be edged is greater than or equal to the width of the robot's body, or greater than or equal to the wall thickness of the work area, so as to reserve space for the robot to enter the unit area to be edged.
- the robot sets the empirical width value (long side) of the rectangular area based on the relative position relationship between a pair of adjacent two corner points. length) and the empirical height value (the length of the short side) to ensure that the extracted unit area to be edged is available for the robot to walk, so that the robot's walking trajectory passes through it.
- the robot starts from the corner point A1 and walks along the outline of the working area in a counterclockwise direction, that is, walking along the edge, corresponding to the shape shown in the figure. Walk along the edge.
- the robot starts from the corner point A1 and constructs various rectangles in the counterclockwise direction, corresponding to the unit area to be edged.
- the corner points searched in the counterclockwise direction are the corner points A1.
- the horizontal direction of FIG. 1 is set as the abscissa axis direction
- the vertical direction of FIG. 1 is set as the ordinate axis direction.
- the counterclockwise direction here is the edge direction set relative to the outline of the working area, so that the robot walks along the outline of the working area in the counterclockwise direction.
- the ordinate value of corner point A1 is equal to the ordinate value of corner point B1. If the abscissa value of A1 is not equal to the abscissa value of corner point B1, then the line segment parallel to the line connecting corner point A1 and corner point B1 is selected as the long side of the rectangular area.
- the rectangular area selected in Figure 1 is The long sides are respectively the line segment a2a3 above the line connecting corner point A1 and corner point B1, and the line segment a4a5 below the line connecting corner point A1 and corner point B1, and set the length of line segment a2a3 to be greater than or equal to corner point A1
- the length of the line connecting corner point B1, and the length of line segment a4a5 is set to be equal to the length of line segment a2a3.
- Line segment a2a3 starts from point a2 and extends to point a3 along the direction parallel to the line connecting corner point A1 and corner point B1.
- line segment a4a5 can start from point a4 and extend to point a5 (extending from right to left) in the direction parallel to the line connecting corner point A1 and corner point B1, and then connect Line segment a2a5 and line segment a3a4 construct a rectangular area a2a3a4a5, which is the unit area to be edged.
- the length of the short side of the rectangular area is related to the width of the robot's body or the thickness of the wall.
- Line segment a2a5 and line segment a3a4 serve as the rectangular area.
- each pair of adjacent corner points required to construct the unit area to be edged in the counterclockwise direction is: corner point A1 and corner point B1, corner point C1 and corner point D1, corner point F1 and corner point G1, corner point I1 and corner point J1, corner point K1 and corner point L1, corner point N1 and corner point O1.
- the abscissa value of corner point J1 is equal to the abscissa value of corner point K1.
- the line segment parallel to the line connecting corner point J1 and corner point K1 is selected as the long side of the rectangular area, corresponding to line segment b2b3 and line segment b4b5 in Figure 1
- Line segment b2b3 and line segment b4b5 are separated on the left and right sides of the line connecting corner point J1 and corner point K1
- the length of line segment b2b3 is set to be greater than the length of the line connecting corner point E1 and corner point F1
- the length of line segment b4b5 is set equal to the line segment
- the length of b2b3, line segment b2b3 starts from point b2 and extends to point b3 in a direction parallel to the
- Line segment b4b5 can start from point b4 and extends along the direction parallel to the line connecting corner point J1 and corner point K1. Extend to point b5 in the direction parallel to the line connecting corner point J1 and corner point K1 (extending from bottom to top), and then connect line segment b2b5 and line segment b3b4 to construct a rectangular area b2b3b4b5, which is the unit area to be edged, The length of the short side of the rectangular area is related to the width of the robot or the thickness of the wall. Let the rectangular area frame the corner point J1 and the corner point K1, and the length of the line connecting the corner point J1 and the corner point K1 is greater than its length.
- each pair of adjacent corner points of the unit area to be edged is constructed in the counterclockwise direction: corner point B1 and corner point C1, corner point E1 and corner point F1, corner point G1 and corner point H1, corner point J1 and corner point K1, corner point M1 and corner point N1, corner point O1 and corner point P1, corner point S1 and corner point A1.
- the unit area to be edged for a pair of two adjacent corner points, such as corner point L1 and corner point M1, If the abscissa value of corner point L1 is not equal to the abscissa value of corner point M1, and the ordinate value of corner point L1 is not equal to the ordinate value of corner point M1, then select the line parallel to the corner point L1 and corner point M1.
- the line segment is the diagonal of the rectangular area, corresponding to the line connecting point c3 and point c5 in Figure 1.
- the line connecting point c3 and point c5 is parallel to the line connecting corner point D1 and corner point E1 and sets the length of line segment c3c5 is greater than the length of the line connecting corner point L1 and corner point M1.
- Line segment c3c5 starts from point c3 and extends to point c5 in a direction parallel to the line connecting corner point L1 and corner point M1 (extending from upper right to lower left ); At the same time, set another diagonal in a direction that intersects the line connecting point c3 and point c5, specifically a line segment extending from point c2 to point c4, and set the length of line segment c2c4 to be greater than the corner point
- each pair of adjacent corner points to construct the edge unit area in the counterclockwise direction is: corner point D1 and corner point E1, corner point L1 and corner point M1, corner point Point H1 and corner point I1, corner point P1 and corner point Q1, corner point Q1 and corner point R1, corner point R1 and corner point S1.
- the robot walks along the edge in the working area along the outline of the working area in a counterclockwise direction, and the generated edge walking trajectory will pass through each edge in turn.
- the unit area to be edged is corresponding to Figure 1.
- a total of 19 unit areas to be edged are generated.
- the number of unit areas to be edged is equal to the number of corner points searched in the same working area.
- the outline of the working area is connected by a plurality of outline segments; each outline segment corresponds to two adjacent corner points.
- the unit area to be edged when each contour segment is expressed in the map by the unit area to be edged corresponding to two adjacent corner points according to the preset clockwise direction, the unit area to be edged is expressed in the map in the preset clockwise direction. out its coordinate coverage in the working area and its sorting in the preset clockwise direction, then the coordinate coverage of each edge unit area to be edged in the working area and each edge to be edged are sequentially recorded in the robot memory.
- each two adjacent corner points will be expressed in the map according to
- the preset clockwise direction expresses its coordinates in the working area and the order in the first preset clockwise direction, making the outline information presented on the map more refined.
- This embodiment further records it sequentially in the robot's memory.
- the coordinates of each two adjacent corner points in the working area and the ordering of each two adjacent corner points in the preset clockwise direction are as follows: It is convenient for subsequent identification of the status of walking along the edge. This further reduces the density of feature points or corresponding areas representing the actual contour.
- the robot can store the corner points searched in the map in the linear table according to the preset clockwise direction (the preset walking direction along the edge or its opposite direction (counterclockwise direction)), and record the corner points in the preset Sort in the clockwise direction; and along the counterclockwise direction, divide a rectangular area with a specific geometric relationship from the area where each two adjacent corner points are located, and record the order of the divided rectangular areas into a linked list, record
- the order of the rectangular areas in the preset clockwise direction is used to determine the relative positional relationship of one of the unit areas to be edged in the preset clockwise direction, and also to determine the relative position of a pair of adjacent corner points relative to the preset clockwise direction.
- linear lists include linked lists and sequential lists.
- the storage space occupied by sequential lists must be continuous. Linked lists do not have this requirement. Continuous refers to the continuity of storage space.
- each data in the linear list must be continuous.
- the storage address of an element in the computer storage space is uniquely determined by the position number of the element in the linear table.
- the sorting of the corner points in the linear table is consistent with the sorting of the unit area to be edged, so that it can be easily mapped to a map to represent the extension of the outline of the working area in the preset clockwise direction.
- contour segments and the contours of the working area they constitute are essentially the contour lines that the robot needs to walk along, but the contours of the working area or all the contour segments are not necessarily completely complete.
- the outline marked by the robot in the historical map The line does not necessarily follow the predicted direction, and the prediction may not be accurate, but it at least shows the approximate direction along the edge, and is as close as possible to the outline of the obstacle or wall, forming the preset clockwise direction.
- the distance between the outline of the working area and the robot's edge walking trajectory is greater than or equal to the robot's body radius to prevent the robot from frequently colliding with obstacles or walls during edge walking.
- the robot walks along the wall of the room.
- the actual outer walls of the wall or obstacles against the wall are regarded as walls and obstacles against the wall.
- the overhead projection line of the floor of the indoor work area including the specific room floor.
- the robot regards the surface of the wall obstacle that is not in contact with the wall outer wall as the wall outer wall when traveling.
- the edge control method disclosed in this embodiment can be applied to multi-room situations. Because when the door is opened, the walls of multiple rooms are continuous, and the robot travels along the walls of the room, the robot can choose to go back and forth periodically, and finally traverses multiple rooms.
- the robot First, mark a pre-selected corner point as the current corner point. Starting from the current corner point, select the nearest corner point according to the preset clockwise direction and mark the corner point as the next corner point, where, the distance The nearest corner point can be the four-neighborhood or eight-neighborhood from the current corner point, which is the closest corner point in the process of extending in the preset clockwise direction relative to the current corner point; then the rectangle where the two corner points are located is The area is set as the unit area to be edged, and then the sorting and coordinate coverage of the unit area to be edged and the corresponding corner points in the preset clockwise direction are recorded, and the current corner point and the next corner point are marked as Two adjacent corner points; then update the next corner point to the current corner point, and repeat this until the corresponding unit areas to be edged are set at the locations of all corner points, and all two adjacent corner points can be determined. Corresponding unit areas to be
- the neighborhood of the pixel or corner point mentioned in the present invention is the grid occupied by the pixel or corner point in the raster map.
- the adjacent upper, lower, left and right grid areas are used to describe the area adjacent to the pixel or corner point, making it easier to search for the surrounding area of the pixel or corner point.
- the method for the robot to search for the corner points of the working area from the map includes: in the map, the robot starts from a preset search starting point and obtains the corner points through neighborhood search.
- the search method includes eight-neighborhood search or four-neighborhood search; wherein, the corner point is the intersection point of a group of mutually perpendicular contour line segments in the map, and the intersection point is the end point of the contour line segment.
- the search starting point is Used to represent pixels of obstacles; in some embodiments, the endpoint is the corner point of the room wall, which is useful for constructing a rectangular area within the work area.
- the contour line segment is marked by the robot when it traverses the work area in advance, and uses two adjacent corner points to directly represent a contour line segment of an obstacle or wall (which can be regarded as its projection line segment on the horizontal ground).
- the room outline is simplified, and only the endpoint information is used to make more state judgments about the robot walking along the edge.
- the search starting point is a corner point.
- the search starting point is set as a corner point, and the pixel is marked as the current candidate point; and then Search in the neighborhood of the current candidate point (which can be a four-neighborhood or eight-neighborhood). If there is no pixel collinear with the current candidate point and the search starting point, mark the current candidate point.
- the method for the robot to search for the corner points of the work area from the map includes:
- Step (1) first select any pixel with a gray value of 1 as a seed point, recorded as Z1, and search its eight or four neighbors. If there is no pixel with a value of 1 in the neighborhood, terminate this process. Sub-neighborhood search, if there is only one pixel with a value of 1 around it, then the point is recorded as Z2, and Z1 is recorded as the corner point. Then search other neighborhoods of Z2. If there is no pixel that can be collinear with Z1 and Z2, Z2 is recorded as a corner point. If there is a certain pixel that can form a collinear line between these three points, the pixel will be recorded as Z3, and the Z2 point will be marked as the transition point.
- Step (2) if there are two or more pixels with a gray value of 1 around the Z1 point, find whether there are two points that can form a collinear line with Z1. If not, mark Z1 as the corner point and extend to each point respectively. Repeat step (1) until another corner point is reached. If there is a pair of pixels with a gray value of 1 that are collinear with Z1, then the Z1 point is recorded as the transition point instead of the corner point, and extends from Z1 to the two points respectively, and repeats the previous step until the corner point is reached. If there are more than one pair of pixels with a grayscale value of 1 that are collinear with Z1, repeat the previous steps for each pair of points.
- Step (3) after completing a search, select the next seed point.
- the seed point in the previous step can no longer be used as a seed point, and the transition point marked in the previous step can no longer be used as a seed point.
- the gray value of the pixels used to represent obstacles or walls in the map is 1.
- the present invention also discloses a method for controlling the robot to end along the edge.
- the method for controlling the robot to end along the edge is based on the fact that the robot has completed traversing the work area and obtained a map of the work area.
- the robot ends along the edge.
- the control method will combine the corner information in the historical map and the edge walking trajectory of the robot in the work area to determine whether the edge walking task in the established edge direction should be ended.
- the robot edge end control method includes:
- Step S301 The robot searches for the corner points of the working area from the map. Specifically, the robot searches for the corner points from the historical map (a previously constructed map of the working area), and the search range is within the working area. Within the map area, it is equivalent to the robot searching for corner points from the working area; in step S301, the search method can be based on four-neighborhood, eight-neighborhood and other graph search algorithms to extract from neighborhood point clouds or neighborhood pixels. to all corners. Then step S302 is executed.
- Step S302 The robot sets the rectangular area where two adjacent corner points are located as the unit area to be edged. Specifically, after the robot obtains all the corner points in the working area, it sets each adjacent two corner points in the preset clockwise direction. The rectangular areas where the corner points are located are all set as the unit areas to be edged, so that the robot divides multiple unit areas to be edged from the work area along the preset clockwise direction. Then the robot starts to walk along the edge in the working area, and starts to generate an edge walking trajectory, and marks it on the map; then step S303 is executed; where the preset clockwise direction can be regarded as the edge direction required for the robot to walk along the edge.
- the clockwise direction is clockwise or counterclockwise, it corresponds to the edge cleaning direction in the edge edge mode of the cleaning robot; two adjacent corner points are covered by the area of the edge edge unit where they are located.
- the robot can sequentially save each corner point and/or the unit area to be edged into the linear storage space according to the collection sequence corresponding to the preset clockwise direction.
- the unit area to be edged is in the preset clockwise direction.
- the sorting direction from large to small or from small to large can simplify the order in which the positions of the areas traversed or moved by the robot are expressed. This is to facilitate the robot to sequentially extract the corner points or unit areas to be edged in the corresponding edge-alonging stages while walking along the edge in the preset clockwise direction.
- the robot sets multiple unit areas to be edged by executing the setting method disclosed in the foregoing embodiments.
- each contour segment that constitutes the working area is expressed in the map by the unit area to be edged corresponding to two adjacent corner points according to the preset clockwise direction
- the unit area to be edged is expressed in the map according to The preset clockwise direction expresses its coordinate coverage in the working area and its ordering in the preset clockwise direction, then the coordinate coverage of each unit area to be edged in the working area is sequentially recorded in the robot memory.
- each contour segment is expressed by two corresponding adjacent corner points in the map
- each two adjacent corner points In the map its coordinates in the working area and its sorting in the first preset clockwise direction will be expressed according to the preset clockwise direction, so that the outline information presented on the map is more refined.
- This embodiment furthermore The coordinates of each two adjacent corner points in the working area and the order of each two adjacent corner points in the preset clockwise direction are sequentially recorded in the robot's memory to facilitate subsequent identification of the state of walking along the edge, such as whether the robot enters One of the edge unit areas to be edged.
- Step S303 Determine whether the robot's edge walking trajectory passes through all unit areas to be edged or repeatedly walks through the same batch of unit areas to be edged. If so, execute step S307; otherwise, execute step S304.
- step S303 the robot determines whether it has walked through all the unit areas to be edged set in step S302 or repeatedly walked through the same batch of unit areas to be edged. If so, step S307 will be executed. Otherwise, step S304 will be executed.
- whether the robot's edge walking track passes through all the edge unit areas to be edged can be determined by whether the robot's edge walking track passes through all the edge unit areas to be edged at one time according to the preset clockwise direction; wherein, the same batch of edge units to be edged
- the area is a preset number of different unit areas to be edged; when the robot repeatedly walks through the same batch of unit areas to be edged, if the robot follows If a certain work cycle repeatedly walks through the same batch of units to be edged once, the robot will not repeatedly walk each unit area to be edged in a corresponding work cycle; a batch of units to be edged that the robot has repeatedly walked through
- the number of regions is preferably greater than 1 or less than 3; this leaves enough redundancy for the robot's judgment as a sign of abnormalities in the robot's walking along the edge.
- the robot Each time the robot walks through the same batch of unit areas to be edged, it walks through each unit area to be edged in this batch of unit areas to be edged and does not repeatedly traverse the same unit area to be edged, indicating that the robot is trapped.
- the robot In the local area of the working area, it is impossible to continue walking along the edge to areas outside the local area, and cannot traverse part of the edge unit area set in step S302 and part of the corner points searched in step S301, so that the robot It is impossible to complete the working area; preferably, the larger the area where the robot is trapped, the larger the preset number is set, and the fewer times the robot repeatedly walks within the specified edge time; conversely, the preset number is The smaller the setting, the more times the robot will repeatedly walk within the specified edge time.
- Step S304 The robot walks along the edge in the working area, and simultaneously generates an edge walking trajectory and marks it on the map. As shown in the closed bending trajectory in Figure 1, it can cover each small rectangular area shown in the figure; Then step S305 is executed. Specifically, the robot can walk along the edge in the working area in the preset clockwise direction or in the opposite direction of the preset clockwise direction. For example, the preset clockwise direction is set to the counterclockwise direction. The robot can move from Figure 1 Point A1 or point A2 in Figure 2 starts to walk along the edge in the counterclockwise or clockwise direction. Since the unit areas to be edged corresponding to the corner point and the two adjacent corner points are all in accordance with the above The preset clockwise direction is marked in the robot's memory or map.
- the robot when the robot starts walking clockwise along the edge from point A1 in Figure 1 or point A2 in Figure 2, it can confirm the starting point of the mark in the robot's memory.
- the relative position of the unit area to be edged that the current edge walks through is identified by reversing the ordering of the corner point or the unit area to be edged in the memory, including the current edge position of the robot relative to point A1 or point A1 in Figure 1 Position information of point A2 in Figure 2.
- Step S305 Determine whether the robot's edge walking trajectory passes through the unit area to be edged. If so, execute step S306; otherwise, execute step S304.
- the robot When the robot is walking along the edge in the work area, it needs to determine in real time whether it is walking into one of the unit areas to be edged.
- the robot's current forward direction is parallel to the contour segment it is currently walking along, so as to form a posture of walking along the edge, and can walk through the corner point or the two adjacent areas.
- the path formed by the robot walking along the edge becomes more consistent with the contour segment, including direction and length.
- the existing technology requires matching and comparison in the map.
- the unit area to be edged is set to track the position along which the robot is positioned, and the vertex information of the rectangular area is used to simplify the calculation amount.
- the machine The human's edgewise direction is configured as the left edgewise direction of the robot's edgewalking, so that the position point in the outline of the obstacle or wall that the robot follows is located on the left side of the robot's forward direction, where the initial edgewise starting point is located in the robot's forward direction. of the left side.
- the edge direction is configured as the right edge direction of the robot walking along the edge, so that the position point in the outline of the obstacle or wall that the robot follows is located on the right side of the robot's forward direction, where the initial edge starting point is located on the right side of the robot's forward direction.
- Step S306 The robot marks the unit area to be edged that its edge walking trajectory currently passes through as the unit area to be edged that it has already walked, that is, it is determined that the robot's edge walking trajectory passes through the unit area to be edged, and then step S303 is executed.
- the abscissa recorded in real time by the robot is greater than the minimum abscissa of the vertex of the unit area to be edged and less than the maximum abscissa of the vertex of the unit area to be edged, and the ordinate recorded by the robot in real time is greater than the edge
- the minimum ordinate of the vertex of the unit area is less than the maximum ordinate of the vertex of the unit area to be edged
- the current abscissa of the robot is already within the coordinate coverage of the abscissa of the unit area to be edged
- the current ordinate of the robot is If the coordinates are already within the coordinate coverage range of the ordinate of the unit area to be edged, then it is determined that the robot has entered the unit area to be edged, and it is determined that the robot's edge walking trajectory passes through the unit area to be edged, and it is determined that the robot has walked through the unit area to be edged.
- the unit area to be edged is a planar area in the map, and the unit area to be edged can be obtained in step S302.
- the coordinates of the four vertices of the edge unit area including the maximum abscissa, the minimum abscissa, the maximum ordinate, and the minimum ordinate, form the coordinate coverage of the unit area to be edged. Specifically, during the execution of the corresponding embodiment of the setting method, it can be obtained by converting the rectangular area with a specific geometric relationship where two adjacent corner points are located.
- the robot when the robot enters the coordinate coverage of the unit area to be edged, it continues to determine whether the robot's current position coordinates are consistent with one of the two adjacent corner points covered by the unit area to be edged.
- the distance is greater than the preset distance threshold before it is determined that the robot has entered the unit area to be edged, and the robot's edge walking trajectory is determined to pass through the unit area to be edged, and it is determined that the robot has walked through the unit area to be edged; wherein, when the unit area to be edged is determined, When the area occupied by the edge unit area is larger, the preset distance threshold is set larger, and the outline segment consistent with the extension of the two adjacent corner points to be covered by the edge unit area is longer, so that it can accommodate As the minimum trajectory length of the robot walking along the edge becomes larger, more contour segments are allowed for the robot to normally walk along the edge.
- the area covered by the robot walking along the edge becomes larger, which improves the integrity of the robot walking along the edge, but it does not Increases the amount of calculations for the robot, because identifying whether the robot has walked along the edge and extends along the same contour segment covering two adjacent corner points does not require calculation one by one at each position point or pixel.
- the coordinate coverage of each unit area to be edged in the working area can be known from step S302.
- the preset distance is greater than or equal to the width of the robot's body to facilitate passage of the robot.
- Step S307 The robot stops walking along the edge in the working area. Specifically, when the robot's edge walking trajectory passes through all the unit areas to be edged, it is determined that the robot has completed the outline of the working area, and the robot has walked through all the unit areas to be edged set in step S302, and may be According to the preset clockwise direction, it walks through all the edge-side unit areas set in step S302 at one time.
- the robot's edge-walking trajectory has traversed and covered the 19 small rectangular areas in Figure 1, indicating that the edge-side walking can be ended to avoid the appearance of the background.
- the technology involves the problem of misjudgment, controlling the robot not to end walking along the edge in advance, and improving the accuracy and timeliness of the robot's judgment of ending walking along the edge. Specifically, after the robot starts walking along the edge from an edge starting point, when the robot's edge walking trajectory passes through all the unit areas to be edged, it is determined that the robot has walked along the edge for one circle in the working area, but does not necessarily return to the edge starting point, then There is no need to calculate the specific pose information (including angle information and coordinate information) on the edge walking trajectory. Instead, it only determines whether the position coordinates measured in real time by the robot enter the last walking unit area to be edged, simplifying the calculation complexity.
- the order of traversal of the last unit area to be edged by the robot in the preset clockwise direction may be set in step S302; corresponding to Figure 1, the robot starts from the corner point A1 and walks in the opposite direction. Walk along the edge in the working area in the clockwise direction.
- the corner point A1 is first searched, and then the other corner points are searched in the working area in the counterclockwise direction and the corresponding edges to be along are set in sequence.
- each of the unit areas to be edged along is only walked once by the robot.
- the robot Stop walking along the edge in the working area Specifically, every time the robot repeatedly walks the same batch of edge unit areas to be edged, the robot walks through each edge to be edged in the preset clockwise direction or in the opposite direction of the preset clockwise direction. unit area; in the process of the robot walking the same batch of unit areas to be edged, each unit area to be edged in the same batch of unit areas to be edged is only walked once by the robot; where, all All unit areas to be edged in the same batch of unit areas to be edged are arranged in the working area according to the preset clockwise direction.
- each edge walking of the robot can be regarded as an edge behavior that occurs within an edge walking cycle.
- the robot moves along the preset clockwise direction or in the preset clockwise direction. Walk in the opposite direction successively through a preset number of different unit areas to be edged, wherein each unit area to be edged in the same batch of unit areas to be edged is distributed in the working area according to the preset clockwise direction, so that Each time the robot repeatedly walks along the same batch of unit areas to be edged, the robot can walk through each unit area to be edged in the same batch of unit areas to be edged without repeatedly walking in the preset clockwise direction.
- the robot sets a plurality of unit areas to be edged by executing the setting method disclosed in the previous embodiment, and these unit areas to be edged can be arranged in the work area according to the preset clockwise direction.
- the number of unit areas to be edged set by the setting method is greater than the preset number.
- the preset number can be specifically determined according to the size of the area where the robot occurs repeated edge-edge behavior. Since the robot is trapped, Repeated edge edge behavior occurs, so the number of unit areas to be edge edge set by the setting method cannot be equal to the preset number.
- the robot's edge walking trajectory repeatedly passes through the presets. number of unit areas to be edged, and the robot does not repeatedly walk through the same unit area to be edged in each round, then the robot obtains the geometric information of the contour associated with the trapped state, and does not need to traverse all corner points and all If the unit area to be edged is located, the edge edge abnormality can be identified in time and the edge walking can be stopped to avoid loops in the edge walking trajectory of the robot in the same local area and ensure the robot's work efficiency.
- the present invention first expresses the outline of the working area by presetting a rectangular area or two corner points corresponding to two adjacent corner points in the clockwise direction, so that the robot can determine whether the walking trajectory along the edge passes through the corresponding two corner points.
- the rectangular area corresponding to the corner point is used to identify the robot's edge-alonging situation, and then by judging whether the robot's edge-walking trajectory has covered the corresponding map outline segment of the entire work area in sequence according to the preset clockwise direction, to determine whether it should stop continuing to walk along the edge.
- the robot is a cleaning robot that takes full consideration of the cleaning coverage in the work area and the purpose of cleaning garbage in dead corners of the room.
- the robot cannot smoothly walk along the edge in the working area. At this time, it is judged that the robot has repeated multiple times. Walk through a batch of rectangular areas to determine if the robot is abnormal while walking along the edge, so that it can stop walking along the edge in time to ensure work efficiency and reduce the number of times the robot repeatedly traverses the same local area.
- the robot when the size of the obstacles existing in the working area is larger, or/and the working restricted area set by the virtual wall is larger, the area separated by the robot in the working area becomes larger, then The smaller the preset number is set by the robot, the number of edge unit areas to be edged that the robot walks through without repetition within the passable area will decrease.
- the robot will move the preset number The larger the setting, the number of edge unit areas to be edged that the robot has walked through in the passable area will increase.
- the robot cannot walk along the edge in the separated area, that is, it cannot walk through the corresponding edge unit area to be edged.
- the preset number is set smaller.
- the corner area there is a relatively large overlapping area between the two unit areas to be edged.
- the preset number only needs to be set relatively small, and the preset number is preferably 2.
- the robot when the robot may be hindered by some movable objects in the room (opening and closing of room doors, moving tables and chairs, etc.) and is trapped in a local area, it can be judged solely from the movement angle and posture of the robot. There is a misjudgment when the robot walks around the contours of the work area. Specifically, in some embodiments, before the robot walks along the edge and returns to the effective starting point along the edge, it may spin or be trapped in one of the local areas, such as the bottom of the dining table in a restaurant (where there is a lot of dirt), and the robot performs repeated operations in this local area.
- the behavior of walking along the edge causes a path loop in the walking path along the edge marked on the map, causing the robot to rotate at an angle reaching or even exceeding 360 degrees.
- the robot detects that a path loop occurs in the local area, and the robot will Choose to stop walking along the edge to avoid affecting work efficiency; alternatively, when the robot walks along the edge in the global area (equal to the working area), it is equivalent to walking along the wall contour in the entire indoor working area. If there is the same path loop situation in the area, in order to avoid repeated traversal, the robot stops walking along the edge in time.
- the corner points searched in the counterclockwise direction are corner point A2, corner point B2, corner point C2, corner point D2, corner point E2, corner point F2, corner point G2, corner point H2, Corner point I2, corner point J2, corner point K2, corner point L2, corner point M2, corner point N2, corner point O2, corner point P2, corner point Q2, and corner point R2; then the robot can reverse from corner point A2
- the hour hand starts walking along the route extending to position point B2.
- corner point A2 is the first corner point searched
- the last corner point searched can be corner point R2.
- one corner point is reduced compared to Figure 1, which has been covered by the obstacle or virtual wall as shown in the illustration.
- the robot walks along the edge to the obstacle or the contour segment set by the virtual wall (the thick black horizontal line segment in Figure 2, with the corner point R2 below it and the corner point M above it). , unable to walk along the edge to the front unit area to be edged, and instead walk along the contour segment to the unit area to be edged where the corner point R2 is located, where the corner point M2 and the corner point R2 are not set as the two adjacent ones.
- Corner points, but corner point M2 and corner point N2 are set as the two adjacent corner points to construct the unit area to be edged (since no robot has actually walked, there is no corresponding rectangular area marked in Figure 2); Specifically, it is the edge walking trajectory extending counterclockwise from corner point M2 to corner point R2, but it is not the connection between corner point M2 and corner point R2. Among them, viewed from the counterclockwise direction, the robot walks along the edge to corner points R2 and corner points. After the area of the edge-side unit where A2 is located, it can be connected with the previously formed edge-side walking track to form a closed walking track, which is regarded as a circle of edge-side walking track of the robot in the working area, but it does not mean that the robot is in the working area.
- the robot may repeatedly enter the corresponding edge unit areas to be edged in the enclosed area along the previously generated edge walking trajectory, where , each time the robot enters a unit area to be edged, it can be automatically recognized.
- the identification is based on whether the robot's current position coordinates are within the coordinate coverage of the unit area to be edged, and the coordinate coverage of the unit area to be edged and the edge to be edged.
- the positional relationship of the unit area relative to the corner point A2 is recorded in step S302, and can be sequentially retrieved from the robot's memory in accordance with the preset clockwise direction (for example, when the counterclockwise direction is set as the edge walking direction). Read it out.
- the robot walks in a counterclockwise direction and does not repeatedly walk in the same unit area to be edged.
- the number of unit areas to be edged that the robot walks in each circle is equal to the figure.
- the number of unit areas to be edged marked in 2 is smaller than the number of all unit areas to be edged set in step S302 (unit areas to be edged corresponding to all corner points that need to be walked along the edge).
- This embodiment allows the robot to repeatedly walk along the edge for many rounds in the area blocked by the obstacles or the contour segments set by the virtual wall before it is determined that the robot's edge walking is in an abnormal state, which can be more accurately determined to be the robot's edge walking.
- the walking trajectory is in a loop state in the corresponding area in Figure 2. At this time, the robot is controlled to stop walking along the edge.
- the ordinate value of corner point K2 is equal to the ordinate value of corner point L2
- the corner point If the abscissa value of K2 is not equal to the abscissa value of corner point L2, then the line segment parallel to the line connecting corner point K2 and corner point L2 is selected as the long side of the rectangular area.
- the rectangular area selected in Figure 2 is The long sides are respectively the line segment d3d4 above the line connecting corner point K2 and corner point L2, and the line segment d5d6 below the line connecting corner point K2 and corner point L2, and set the length of line segment d3d4 to be greater than or equal to corner point K2
- the length of the line connecting corner point L2, and the length of line segment d5d6 is set to be equal to the length of line segment d3d4.
- Line segment d3d4 starts from point d3 and extends to point d4 in the direction parallel to the line connecting corner point K2 and corner point L2.
- each pair of adjacent corner points required to construct the unit area to be edged in the counterclockwise direction is: corner point A2 and corner point B2, corner point C2 and corner point D2, corner point E2 and corner point F2, corner point I2 and corner point J2, corner point K2 and corner point L2.
- the abscissa value of corner point D2 is equal to the abscissa value of corner point E2
- the corner point The ordinate value of D2 is not equal to the ordinate value of corner point E2.
- the length of the line connecting D2 and corner point E2 constructs a corresponding rectangular area, that is, the unit area to be edged.
- the length of the short side of the rectangular area is associated with the width of the robot's body or the thickness of the wall.
- the abscissa value of corner point L2 is not equal to the abscissa value of corner point M2. If the ordinate value of point L2 is not equal to the ordinate value of corner point M2, then the line segment parallel to the line connecting corner point L2 and corner point M2 is selected as the diagonal of the rectangular area, which corresponds to point e4 and point e4 in Figure 2
- the line connecting e6, the line connecting points e4 and e6 is parallel to the line connecting corner point L2 and corner point M2, and the length of line segment e4e6 is set to be greater than the length of the line connecting corner point L2 and corner point M2.
- Line segment e4e6 is given by Point e4 starts to extend to point e6 along the direction parallel to the line connecting corner point L2 and corner point M2 (extending from upper right to lower left); at the same time, it is set in a direction that intersects the line connecting point e3 and point e5
- Another diagonal line specifically a line segment extending from point e3 to point e5, and set the length of line segment e3e5 to be greater than the length of the line connecting corner point L2 and corner point M2; then connect points e3 and points in sequence from end to end.
- each pair of adjacent corner points of the unit area to be edged is constructed in the counterclockwise direction: corner point G2 and corner point H2, corner point H2 and corner point I2, corner point L2 and corner point M2.
- the robot Since the robot is blocked by the obstacle or the outline segment set by the virtual wall (the thick black horizontal line segment in Figure 2, with the corner point R2 below it and the corner point M above it), the robot will be blocked from walking along the edge.
- the area is divided into upper and lower partitions; therefore, the robot cannot continue along the edge to corner point N2, corner point O2, corner point P2, and corner point Q2, that is, it cannot walk along the edge in the counterclockwise direction through the unit area to be edged corresponding to the aforementioned corner points.
- the robot passes through the unit area to be edged where the corner point L2 and the corner point M2 are located, it walks along the outline segment set by the obstacle or virtual wall to the corner point R2 , to enter the unit area to be edged along where the corner point R2 and the corner point A2 are located.
- the number of a batch of unit areas to be edged along the edge that the robot has walked along in the working area is less than all the units to be edged along that are set in step S302.
- the number of areas that is, the number of unit areas to be edged that the robot walks through in the process of completing a circle in the local area blocked by the obstacle or virtual wall is smaller than all unit areas to be edged set in step S302. quantity, and then without triggering the instruction to stop walking along the edge, the robot continues to walk along the contour of the working area, starts a new circle in the working area in the counterclockwise direction, and repeats walking in the previous circle.
- a batch of unit areas to be edged are walked in this way for two rounds, and the robot stops walking along the edge in the work area, although it has not traversed to the obstacles or edges to be edged corresponding to the corners above the contour segments set by the virtual wall. unit area, but it can prevent the robot from endlessly walking along the edge in the working area, and also eliminates the influence of misjudgment factors on edge behavior, and stops walking along the edge in time to ensure the robot's work efficiency and reduce the number of repeated traversals.
- the robot when the robot enters the last unit area to be edged that it has not walked through in the preset clockwise direction, it is determined that the robot has walked through the unit area to be edged, and the robot walks along the edge in the working area.
- the trajectory passes through all the unit areas to be edged, and then the robot stops walking along the edge; in this embodiment, the sorting of the unit areas to be edged in the preset clockwise direction is obtained first, so as to determine where one of the unit areas to be edged is located.
- the relative position relationship in the preset clockwise direction facilitates the robot to walk through all the unit areas to be edged at one time according to the preset clockwise direction; if there are no obstacles or virtual walls blocking or separating the work area, in this embodiment,
- the traversal order of the last untraveled unit area to be edged by the robot in the preset clockwise direction may be set in step S302; corresponding to Figure 1, the robot starts from the corner point A1 and moves counterclockwise. The direction is to walk along the edge in the working area.
- the corner point A1 is first searched and then other corner points are searched in the counterclockwise direction in the working area and the corresponding edge units to be along are set in sequence.
- the adjacent two corner points corresponding to the unit area to be edged set by the robot in the counterclockwise direction are: corner point A1 and corner point B1, corner point B1 and corner point C1, corner point C1 and corner point D1, corner point D1 and corner point E1, corner point E1 and corner point F1, corner point F1 and corner point G1, corner point G1 and corner point H1, Corner point H1 and corner point I1, corner point I1 and corner point J1, corner point J1 and corner point K1, corner point K1 and corner point L1, corner point L1 and corner point M1, corner point M1 and corner point N1, corner point N1 and corner point O1, corner point O1 and corner point P1, corner point P1 and corner point Q1, corner point Q1 and corner point R1, corner point R1 and corner point S1, and corner point S1 and corner point A1, so that in all The relative position relationship of each unit area to be edged in the preset clockwise direction is determined within the above working area, that is, the order and coordinate coverage of each unit area to be edged in the counterclockwise direction
- the robot walks along the edge along the contour of the work area in a counterclockwise direction.
- the generated edge walking trajectory will pass through each of the edge unit areas to be edged, the corner point S1 and the corner point S1 in turn.
- Point A1 is the last untraveled unit area to be edged, which corresponds to the rectangular area surrounding corner point S1 and corner point A1 in Figure 1.
- the robot starts from the corner point A1 and walks along the edge of the work area in the clockwise direction.
- the corner point A1 is first searched and then other corner points are searched in the working area in the counterclockwise direction and the corresponding unit areas to be edged are set in sequence; therefore, the corners searched by the robot in the counterclockwise direction are The points in order are corner point A1, corner point B1, corner point C1, corner point D1, corner point E1, corner point F1, corner point G1, corner point H1, corner point I1, corner point J1, corner point K1 , corner point L1, corner point M1, corner point N1, corner point O1, corner point P1, corner point Q1, corner point R1, and corner point S1; then, determine the location of each edge unit area to be edged in the working area.
- the relative position relationship in the clockwise direction is to determine the order and coordinate coverage of each unit area to be edged in the clockwise direction, where the ordering of each unit area to be edged in the clockwise direction is relative to its order in the counterclockwise direction.
- the ordering in the direction is reversed; the two adjacent corner points corresponding to the unit area to be edged that the robot has walked in the clockwise direction are: corner point A1 and corner point S1, corner point S1 and corner point R1, corner point R1 and corner point Q1, corner point Q1 and corner point P1, corner point P1 and corner point O1, corner point O1 and corner point N1, corner point N1 and corner point M1, corner point M1 and corner point L1, corner point L1 and Corner point K1, corner point K1 and corner point J1, corner point J1 and corner point I1, corner point I1 and corner point H1, corner point H1 and corner point G1, corner point G1 and corner point F1, corner point F1 and corner point E1, corner point E1 and corner point D1, corner point D1 and corner point C1, corner point C
- the last unit area to be edged that has not been walked along the outline of the work area is the unit area to be edged where the corner point B1 and the corner point A1 are located, which corresponds to the unit area surrounding the corner point S1 and the corner point A1 in Figure 1. Rectangular area.
- the technical solution of the present application is exemplified by taking a robot that can perform sweeping tasks (referred to as a sweeping robot) as an example, but it is not limited to sweeping robots.
- a robot that can perform sweeping tasks
- the above embodiments are only for illustrating the technical concepts and features of the present invention. Their purpose is to enable those skilled in the technical field to understand the content of the present invention and implement it accordingly, and cannot limit the scope of protection of the present invention. All equivalent transformations or modifications made based on the spirit and essence of the present invention shall be included in the protection scope of the present invention.
Landscapes
- Engineering & Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
一种地图区域轮廓的设置方法及机器人沿边结束控制方法,机器人沿边结束控制方法包括:机器人通过执行设置方法来设置出多个待沿边单元区域;然后机器人在工作区域内进行沿边行走(S302);当机器人行走过所有的待沿边单元区域时,机器人停止沿边行走(S306);当机器人重复行走过同一批待沿边单元区域时,机器人停止沿边行走(S307);其中,同一批待沿边单元区域是预设数量的彼此不同的待沿边单元区域;设置方法设置出的待沿边单元区域的数量大于预设数量。
Description
本发明涉及机器人在室内区域沿边行走的技术领域,尤其涉及基于地图区域轮廓的设置方法与机器人沿边结束控制方法。
目前清洁机器人会通过视觉技术手段采集的位置信息来沿着房间的墙面进行清扫,一般是按照历史地图对房间区域全局式的规划清扫后才进行沿边清扫,以达到提高清扫覆盖率和清理房间死角垃圾的目的。由于不同家庭的房间墙体布局以及房间内的家具摆设多样,容易形成复杂的机器人清扫环境,同时,机器人在沿墙行走的过程中,传感器的累计误差会越来越大,所以,利用传统的方法判断清洁机器人是否该结束沿边清扫(已经对该房间的轮廓线沿边清扫完一圈)往往会不及时或者误判,比如,机器人在当前位置记录的旋转角度与沿边行走的起点处记录的旋转角度的差值是360度的正整数倍,此时,清洁机器人继续在同一个局部区域内沿边行走,导致清洁机器人重复清扫;进而降低清洁机器人的工作效率。
发明内容
本发明公开基于地图区域轮廓的设置方法与机器人沿边结束控制方法,具体技术方案如下:基于地图区域轮廓的设置方法,在执行该设置方法之前,机器人获取工作区域的地图,该地图用于表示工作区域的轮廓,以便于机器人沿着轮廓行走;所述设置方法包括:机器人从地图中搜索出工作区域的角点;然后机器人将相邻两个角点所在的矩形区域设置为待沿边单元区域,其中,相邻两个角点被其所在的待沿边单元区域覆盖;在地图中,与每个待沿边单元区域所覆盖的相邻两个角点的延伸走向相一致的轮廓使用该待沿边单元区域或该待沿边单元区域所覆盖的相邻两个角点来表示。本技术方案的有益技术效果在于,先通过预设时针方向上的相邻两个角点对应的矩形区域或两个角点来表示工作区域的轮廓,使得机器人可以通过判断沿边行走轨迹是否经过相应的两个角点对应的矩形区域来识别机器人的沿边情况,进而通过判断机器人的沿边行走轨迹是否已经按照预设时针方向依次覆盖到整个工作区域对应的地图轮廓段,来裁决是否应该停止继续沿边行走。不仅便于判断机器人在工作区域内所沿边的轮廓段,而且准确判断是否要结束沿边行走模式,避免机器人重复遍历局部区域或者因为误判而提前结束沿边行走,提高机器人在所述工作区域内的工作效率。
一种机器人沿边结束控制方法,机器人沿边结束控制方法包括:机器人执行所述基于地图区域轮廓的设置方法,设置出多个所述待沿边单元区域;然后机器人在所述工作区域内进
行沿边行走;当机器人行走过所有的所述待沿边单元区域时,机器人停止沿边行走;当机器人重复行走过同一批待沿边单元区域时,机器人停止沿边行走;其中,所述同一批待沿边单元区域是预设数量的彼此不同的待沿边单元区域;其中,所述设置方法设置出的所述待沿边单元区域的数量大于所述预设数量。本技术方案的有益技术效果在于,当出现工作区域被障碍物阻挡部分可通行区域或被虚拟墙限定工作禁区的异常情况时,机器人则无法顺利在所述工作区域内完整地沿边行走,此时只需要判断机器人有重复多回行走过一定数量的矩形区域并且每回不是徘徊于同一个矩形区域,即可确定机器人在沿边行走过程中出现异常,从而可以及时停止沿边行走,以保证工作效率。
图1是本发明的一种实施例公开的工作区域的角点及其所在的待沿边单元区域(包围相邻两个角点的矩形区域)的示意图。
图2是本发明的另一种实施例公开的室内区域被虚拟墙或障碍物拦住的场景下,机器人在所述工作区域内形成的沿边行走轨迹及经过的待沿边单元区域的示意图。
图3是本发明的又一种实施例公开机器人沿边结束控制方法的流程图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
一般情形下,机器人的沿边行走是,机器人从房间内任意位置出发寻找墙体,这里的墙体可以视为该房间的轮廓;机器人检测到墙体时,调整机器人的前进方向平行于墙面,其中,墙体可以拆分为两个临近平行的墙面,房间的轮廓或轮廓线或轮廓线段可以视为墙面在水平地面的投影线;然后将这个检测到墙体的位置记为沿边起点,在实时构建的地图中记录此时机器人的坐标以及机器人前进的角度(机器人前进方向相对于X轴方向的角度或机器人前进相对于Y轴方向的角度),再从这个沿边起点开始保持平行于墙面作沿边行走(沿房间的轮
廓行走),其中,机器人前进方向被调整为与墙面延伸方向平行,即机器人前进方向与墙的轮廓的延伸方向平行,形成机器人在沿边行走过程中应该保持的姿态;在机器人是清洁机器人的实施例中,清洁机器人有一种模式是全局沿边模式,即清洁机器人沿着整个地形的轮廓线行走,清洁机器人的前进方向被调整为平行于整个地形的轮廓线。清洁机器人在室内工作区域进行全局沿边行走,比如,沿着墙体的轮廓线行走,清洁机器人的前进方向与墙体的轮廓线平行。此时机器人处于沿边行走的工作模式,机器人在该工作模式下会将沿边行走过的每个位置点都标记在即时构建的地图中,能够在执行本发明公开的基于地图区域轮廓的设置方法和机器人沿边结束控制方法之前构建出房间内的历史地图。
作为一种实施例,公开基于地图区域轮廓的设置方法以简化现有技术对于地图区域的轮廓的设置方式,该设置方法的执行主体是机器人,而且是内部存储历史地图的机器人,可以理解为机器人内部设置的能够运行程序代码的控制器,地图区域轮廓是在地图内描述工作区域的轮廓,适用于准备进行沿边行走的机器人,尤其是准备在工作区域内进行沿边行走的机器人,而该机器人预先行走完所述工作区域,并已经构建出该工作区域内各个分区的局部地图,组合成一个全局地图,相对于机器人当前构建的地图是所述工作区域的历史地图,在本实施例中,该历史地图用于表示工作区域的轮廓,以便于机器人沿着相应的轮廓行走。
具体地,所述设置方法包括:机器人从地图中搜索出工作区域的角点,即从所述历史地图中搜索出所述工作区域内的已经确定出来的角点并能够形成角点图,其中,搜索方式包括但不限于通过角点提取算法从邻域像素点中提取到其中所有的角点,比如:如果一个像素点与邻域的像素点的灰度值差别较大(过亮或过暗),那么它更可能是角点;所述搜索方式还包括基于四邻域、八邻域等图搜索算法;则相当于机器人从工作区域内搜索出角点。机器人在所述工作区域内获取到所有的角点后,机器人将相邻两个角点所在的具有特定几何关系的矩形区域设置为待沿边单元区域,具体是按照预设时针方向将每相邻两个角点所在的具有特定几何关系的矩形区域设置为待沿边单元区域,使得机器人沿着预设时针方向从所述工作区域中划分出多个待沿边单元区域,其中,预设时针方向可以视为机器人沿边行走所依赖的绕行方向,可以设置为与所述工作区域的轮廓的延伸方向平行,预设时针方向是顺时针方向或逆时针方向,对应到清洁机器人的沿边模式中是沿边清扫方向;相邻两个角点被其所在的待沿边单元区域覆盖。
需要说明的是,机器人可以按照所述预设时针方向的采集顺序,将各个角点和/或待沿边单元区域依次保存入线性存储空间内,以便于机器人在按照预设时针方向进行沿边行走的过
程中提取出相应的角点或待沿边单元区域,其中,各对相邻两个角点及其所在的待沿边单元区域在所述预设时针方向上的排序,可以简化表示机器人遍历或移动经过的区域位置的先后顺序。
在此基础上,本实施例中,机器人控制与每个待沿边单元区域所覆盖的相邻两个角点的延伸走向相一致的轮廓使用该待沿边单元区域或该待沿边单元区域所覆盖的相邻两个角点来表示,具体控制与待沿边单元区域所覆盖的相邻两个角点在预设时针方向上的延伸走向相一致的轮廓段使用该待沿边单元区域或该待沿边单元区域所覆盖的相邻两个角点来表示,达到简化工作区域的轮廓的效果。因此,本实施例通过预设时针方向上的相邻两个角点对应的矩形区域或两个角点来表示工作区域的轮廓,使得机器人可以通过判断沿边行走轨迹是否经过相应的两个角点对应的矩形区域来识别机器人的沿边情况。
需要说明的是,所述工作区域是待清洁区域,可以为家庭空间中的一个单独的房间单元,待清洁区域为一个房间单元中的部分区域,或者待清洁区域为多个房间单元组成的房间区域,或者待清洁区域为家庭空间。待清洁区域还可以为写字楼中的办公室,大型商场或者机场等公共场所。在本申请实施例中,对所述工作区域不作具体限定。
在所述工作区域中,机器人使用机体安装的视觉传感器(摄像头或深度相机)采集环境中的位置信息,再将采集的位置信息转换为像素点,并一一配置在由单位格组成的栅格地图中,每个单位格对应代表一个像素点,并配置有对应的地图坐标,其中,地图坐标系不同于传感器坐标系,但也配置有原点、Y轴和X轴。
作为一种实施例,所述机器人将相邻两个角点所在的矩形区域设置为待沿边单元区域的方法包括:当相邻两个角点中存在一种维度的坐标值相等时,选择平行于该相邻两个角点的连线的线段为矩形区域的长边,并设置该矩形区域的长边的长度是该相邻两个角点的直线距离的第一预设倍数,构建出矩形区域,优选地,该矩形区域的短边的长度与机器人的机身宽度或墙体的厚度相关联,以便于机器人通行。矩形区域的具体构建方式是:相邻两个角点的横坐标值相等或这两个角点的纵坐标值相等时,选择平行于该相邻两个角点的连线的线段为矩形区域的长边,并设置该矩形区域的长边的长度是该相邻两个角点的直线距离的第一预设倍数,并将该矩形区域的短边的长度大于机器人的机身宽度或墙体的厚度,并将该矩形区域设置为只覆盖两个角点,这两个角点是该相邻两个角点;然后将该矩形区域设置为待沿边单元区域,其中,第一预设倍数是大于或等于1;矩形区域的长边(一般属于矩形区域的宽度方向的边)的长度大于或等于矩形区域的短边(一般属于矩形区域的高度方向的边)的长度。
在一些实施例中可能让沿着预设时针方向设置出的两个待沿边单元区域(可以视为位置相邻的两个待沿边单元区域)存在较大的重叠区域,但不影响地图中的轮廓线的表示,也不影响机器人依据待沿边单元区域及其所覆盖的角点进行沿边行走。如此重复地将每相邻两个角点所在的矩形区域都设置为所述待沿边单元区域,具体是沿着预设时针方向将每相邻两个角点所在的矩形区域都设置为所述待沿边单元区域,直至在所述工作区域内设置完所有的角点。可以实现每个待沿边单元区域不完全重合。
需要说明的是,当相邻两个角点中存在一种维度的坐标值相等时,矩形区域的长边包括两个端点,矩形区域的长边可以视为由两个端点连接而成,这两个端点分居所述相邻两个角点的外侧,在这两个端点当中,其中一个端点沿着平行于所述相邻两个角点的连线的方向向另一个端点延伸,得到所述矩形区域的长边,其中,两个端点的连线长度等于所述相邻两个角点的直线距离的第一预设倍数,所述相邻两个角点的连线在该两个端点的连线上的投影线段没有超出该两个端点的连线;在本实施例中,该矩形区域覆盖的角点的数量是两个,该相邻两个角点是被该矩形区域唯一覆盖的两个角点;在一些实施方式中,矩形区域的长边可以自所述相邻两个角点中的一个角点的左侧向其右侧延伸,矩形区域的长边也可以自所述相邻两个角点中的一个角点的右侧向其左侧延伸;矩形区域的两条长边可以都按照相同的方向或者分别按照相反的方向延伸,其中,矩形区域的两条长边分居相邻两个角点的连线的两侧,以实现结合垂直于矩形区域的长边的两条短边将所述相邻两个角点的连线包围在其内部。
需要说明的是,当相邻两个角点中存在一种维度的坐标值相等时,所述相邻两个角点的连线的垂线上存在中间点,该中间点可以位于所述相邻两个角点的连线的上侧、下侧、左侧或右侧,从该中间点开始沿着平行于所述相邻两个角点的连线的方向,分别向该中间点的两侧延伸,得到所述矩形区域的长边,其中,该中间点的两侧延伸的长度之和等于所述相邻两个角点的直线距离的第一预设倍数,即等于所述该矩形区域的长边的长度,所述相邻两个角点的连线在所述矩形区域的长边上的投影线段没有超出所述矩形区域的长边;在一些实施方式中,矩形区域的长边可以从所述中间点开始分别向所述中间点的左侧和所述中间点的右侧延伸;在一些实施例中,所述相邻两个角点的连线的垂直上方设置一个第一中间点,所述相邻两个角点的连线的垂直下方设置一个第二中间点,矩形区域的长边包括第一长边和第二长边,第一长边位于所述相邻两个角点的连线的上侧,第二长边位于所述相邻两个角点的连线的下侧;从第一中间点开始沿着平行于所述相邻两个角点的连线的方向,分别向第一中间点的两侧延伸,得到所述该矩形区域的第一长边;同时,从第二中间点开始沿着平行于所述相
邻两个角点的连线的方向,分别向第二中间点的两侧延伸,得到所述该矩形区域的第二长边;其中,矩形区域的第一长边和第二长边之间的距离等于矩形区域的短边的长度,以实现结合垂直于矩形区域的长边的两条短边将所述相邻两个角点的连线包围在其内部。
在一些实施例中,当相邻两个角点中存在一种维度的坐标值相等时,选择该相邻两个角点的连线为矩形区域的长边,以使得该矩形区域的长边的长度等于该相邻两个角点的直线距离,构建出矩形区域,再将该矩形区域设置为待沿边单元区域,其中,该矩形区域覆盖的角点的数量是两个,这两个角点是所述相邻两个角点,则所述相邻两个角点是被该矩形区域唯一覆盖的两个角点,使得不同的待沿边单元区域不完全重合。比如在预设时针方向上的最为接近的两个角点中,这两个角点的横坐标值相等或这两个角点的纵坐标值相等时,选择该相邻两个角点的连线为矩形区域的长边,以使得该矩形区域的长度等于该相邻两个角点的直线距离,并将该矩形区域的短边的长度设置为大于或等于机器人的机身宽度,并将该矩形区域仅覆盖的两个角点设置为该相邻两个角点,然后将该矩形区域标记为所述待沿边单元区域。进一步简化工作区域的轮廓表示形式。
作为一种实施例,所述机器人将相邻两个角点所在的矩形区域设置为待沿边单元区域的方法包括:当相邻两个角点中同种维度的坐标值(横坐标值不相等,且纵坐标值不相等)都不相等时,选择平行于该相邻两个角点的连线的线段为矩形区域的对角线,并设置该对角线的长度是该相邻两个角点的直线距离的第二预设倍数,构建出矩形区域,其中,该矩形区域覆盖的角点的数量只有两个,该相邻两个角点是被该矩形区域唯一覆盖的两个角点,优选地,该矩形区域的短边的长度与机器人的机身宽度或墙体的厚度相关联,以便于机器人通行。所述矩形区域的具体构建方式是:在预设时针方向上的位置最为接近的两个角点中,这两个角点的横坐标值不相等且这两个角点的纵坐标值不相等时,选择平行于该相邻两个角点的连线的线段或与该相邻两个角点的连线相交的线段为矩形区域的对角线,并设置该对角线的长度是该相邻两个角点的直线距离的第二预设倍数,并将该矩形区域的短边的长度大于机器人的机身宽度或墙体的厚度,并将该矩形区域仅仅覆盖的两个角点设置为所述相邻两个角点,然后将该矩形区域设置为待沿边单元区域,其中,第二预设倍数是大于1,矩形区域的长边(一般属于矩形区域的宽度方向的边)的长度大于或等于矩形区域的短边(一般属于矩形区域的高度方向的边)的长度。在一些实施例中,第二预设倍数可以等于第一预设倍数,可能让沿着预设时针方向设置出的两个待沿边单元区域存在较大的重叠区域,但不影响地图中的轮廓线的表示,也不影响机器人依据待沿边单元区域及其所覆盖的角点进行沿边行走。如此重复
地将每相邻两个角点所在的矩形区域都设置为所述待沿边单元区域,具体是沿着预设时针方向将每相邻两个角点所在的矩形区域都设置为所述待沿边单元区域,直至在所述工作区域内设置完所有的角点。可以实现每个待沿边单元区域不完全重合。
需要说明的是,当相邻两个角点中同种维度的坐标值都不相等时,矩形区域的对角线包括两个端点,矩形区域的对角线可以视为由两个端点连接而成,这两个端点分居所述相邻两个角点的外侧,在这两个端点当中,其中一个端点沿着平行于所述相邻两个角点的连线的方向、或与所述相邻两个角点的连线相交的方向,向另一个端点延伸,得到所述矩形区域的对角线,其中,这两个端点的连线长度等于所述相邻两个角点的直线距离的第二预设倍数,所述相邻两个角点的连线在该两个端点的连线上的投影线段没有超出该两个端点的连线,其中,该矩形区域覆盖的角点的数量是两个,该相邻两个角点是被该矩形区域唯一覆盖的两个角点;在一些实施方式中,矩形区域的对角线可以自所述相邻两个角点中的一个角点的左下方向其右上方延伸,矩形区域的对角线也可以自所述相邻两个角点中的一个角点的右上方向其左下方延伸;矩形区域的两条对角线所成的夹角不等于0度或180度的整数倍。
需要说明的是,当相邻两个角点中同种维度的坐标值都不相等时,所述相邻两个角点的连线的垂线上存在中间点,该中间点可以位于所述相邻两个角点的连线的上侧、下侧、左侧或右侧,从该中间点开始沿着平行于所述相邻两个角点的连线的方向或与所述相邻两个角点的连线相交的方向,分别向该中间点的两侧延伸,得到所述矩形区域的对角线,其中,该中间点的两侧延伸的长度之和等于所述相邻两个角点的直线距离的第二预设倍数,即等于所述该矩形区域的对角线的长度,所述相邻两个角点的连线在所述矩形区域的对角线上的投影线段没有超出所述矩形区域的对角线,其中,该矩形区域覆盖的角点的数量是两个,该相邻两个角点是被该矩形区域唯一覆盖的两个角点;在一些实施方式中,矩形区域的对角线可以从所述中间点开始分别向所述中间点的左下方和所述中间点的右上方延伸。在一些实施例中,所述相邻两个角点的连线的垂直上方设置一个第一中间点,平行于所述相邻两个角点的连线的线段上设置一个第二中间点,矩形区域的长边包括第一对角线和第二对角线,第二对角线与所述相邻两个角点的连线相交,第一对角线可以平行所述相邻两个角点的连线;从第一中间点开始沿着平行于所述相邻两个角点的连线的方向,分别向第一中间点的两侧延伸,得到所述该矩形区域的第一对角线;同时,从第二中间点开始沿着与所述相邻两个角点的连线的方向相交的方向,分别向第二中间点的两侧延伸,得到所述该矩形区域的第二对角线;其中,矩形区域的第一对角线和第二对角线之间的距离等于矩形区域的对角线的长度,且相交于一
点,第一对角线和第二对角线所成的夹角不等于0度或180度的整数倍,第一对角线和第二对角线关于该点中心对称设置,以实现结合所述矩形区域包围所述相邻两个角点。
在一些实施例中,当相邻两个角点中同种维度的坐标值都不相等时,选择该相邻两个角点的连线的线段为矩形区域的对角线,构建出矩形区域,再将该矩形区域设置为待沿边单元区域,其中,该矩形区域覆盖的角点的数量是两个,这两个角点是所述相邻两个角点,则所述相邻两个角点是被该矩形区域唯一覆盖的两个角点。比如,在预设时针方向上的位置最为接近的两个角点中,这两个角点的横坐标值不相等且这两个角点的纵坐标值不相等时,选择该相邻两个角点的连线的线段为矩形区域的对角线,并将该矩形区域的对角线的长度设置为大于或等于机器人的机身宽度或墙体的厚度,其中,该矩形区域的对角线的长度是大于该矩形区域的短边的长度;并将该矩形区域仅覆盖的两个角点设置为该相邻两个角点,然后将该矩形区域标记为所述待沿边单元区域。进一步简化工作区域的轮廓表示方式。
在前述实施例中,矩形区域的长边(一般属于矩形区域的宽度方向的边)的长度大于或等于矩形区域的短边(一般属于矩形区域的高度方向的边)的长度。所述待沿边单元区域的最小边长是大于或等于机器人的机身宽度,或大于或等于工作区域的墙体厚度,以便于为机器人预留进入所述待沿边单元区域的空间。使得由一对相邻两个角点构建出的矩形区域更加符合机器人的行走习惯,机器人依据一对相邻两个角点之间的相对位置关系设定矩形区域的经验宽度值(长边的长度)和经验高度值(短边的长度),以保证提取出来的待沿边单元区域是可供机器人行走的,使得机器人的行走轨迹穿过。
作为一种实施例,参阅图1可知,机器人所在的工作区域内,机器人从角点A1开始,按照逆时针方向,沿着所述工作区域的轮廓进行行走,即沿边行走,对应形成图示的沿边行走轨迹。在图1中,机器人从角点A1开始,按照逆时针方向依次构建出各个矩形,对应为所述待沿边单元区域,在地图中,沿着逆时针方向搜索出的角点依次是角点A1、角点B1、角点C1、角点D1、角点E1、角点F1、角点G1、角点H1、角点I1、角点J1、角点K1、角点L1、角点M1、角点N1、角点O1、角点P1、角点Q1、角点R1、以及角点S1,其中,机器人可以在从角点A1逆时针向位置点B1延伸的路线上进行开始沿边行走,其中,从逆时针方向来看待,当角点A1是第一个搜索出的角点时,最后一个搜索出的角点可以是角点S1。本实施例将图1的水平方向设置为横坐标轴方向,将图1的竖直方向设置为纵坐标轴方向。这里的逆时针方向是相对于所述工作区域的轮廓而设置的沿边方向,使得机器人按照逆时针方向,沿着所述工作区域的轮廓行走。
作为其中一种待沿边单元区域的构建方式,对于一对相邻两个角点,如角点A1和角点B1,角点A1的纵坐标值和角点B1的纵坐标值相等,角点A1的横坐标值和角点B1的横坐标值不相等,则选择平行于角点A1和角点B1的连线的线段为矩形区域的长边,具体在图1中选择出的矩形区域的长边分别为角点A1和角点B1的连线的上方的线段a2a3、以及角点A1和角点B1的连线的下方的线段a4a5,并设置线段a2a3的长度是大于或等于角点A1和角点B1的连线的长度,同时设置线段a4a5的长度是等于线段a2a3的长度,线段a2a3是由点a2开始沿着平行于角点A1和角点B1的连线的方向向点a3延伸而来(自左向右延伸),线段a4a5可以是由点a4开始沿着平行于角点A1和角点B1的连线的方向向点a5延伸而来(自右向左延伸),然后连接线段a2a5和线段a3a4,构建出矩形区域a2a3a4a5,即所述待沿边单元区域,该矩形区域的短边的长度与机器人的机身宽度或墙体的厚度相关联,线段a2a5和线段a3a4作为矩形区域a2a3a4a5的短边,与矩形区域的长边垂直,让矩形区域a2a3a4a5框住角点A1和角点B1。在此基础上,按照该构建方式,沿着逆时针方向构建所述待沿边单元区域所需的各对相邻两个角点依次为:角点A1和角点B1、角点C1和角点D1、角点F1和角点G1、角点I1和角点J1、角点K1和角点L1、角点N1和角点O1。
作为另一种待沿边单元区域的构建方式,对于一对相邻两个角点,如角点J1和角点K1,角点J1的横坐标值和角点K1的横坐标值相等,角点J1的纵坐标值和角点K1的纵坐标值不相等,则选择平行于角点J1和角点K1的连线的线段为矩形区域的长边,对应为图1的线段b2b3和线段b4b5,线段b2b3和线段b4b5分居角点J1和角点K1的连线的左右两侧,并设置线段b2b3的长度是大于角点E1和角点F1的连线的长度,并设置线段b4b5的长度等于线段b2b3的长度,线段b2b3是由点b2开始沿着平行于角点J1和角点K1的连线的方向向点b3延伸而来(自上向下延伸),线段b4b5可以是由点b4开始沿着平行于角点J1和角点K1的连线的方向向点b5延伸而来(自下向上延伸),然后连接线段b2b5和线段b3b4,构建出矩形区域b2b3b4b5,即所述待沿边单元区域,该矩形区域的短边的长度与机器人的机身宽度或墙体的厚度相关联,让该矩形区域框住角点J1和角点K1,且角点J1和角点K1的连线长度大于其所在的矩形的短边的长度,其中,线段b2b5和线段b3b4作为矩形区域b2b3b4b5的短边。在此基础上,按照该构建方式,沿着逆时针方向构建待沿边单元区域的各对相邻两个角点依次为:角点B1和角点C1、角点E1和角点F1、角点G1和角点H1、角点J1和角点K1、角点M1和角点N1、角点O1和角点P1、角点S1和角点A1。
作为又一种待沿边单元区域的构建方式,对于一对相邻两个角点,如角点L1和角点M1,
角点L1的横坐标值和角点M1的横坐标值不相等,角点L1的纵坐标值和角点M1的纵坐标值不相等,则选择平行于角点L1和角点M1的连线的线段为矩形区域的对角线,对应为图1的点c3和点c5的连线,点c3和点c5的连线平行于角点D1和角点E1的连线且设置线段c3c5的长度是大于角点L1和角点M1的连线的长度,线段c3c5是由点c3开始沿着平行于角点L1和角点M1的连线的方向向点c5延伸而来(自右上向左下延伸);同时在与点c3和点c5的连线相交的一个方向上设置另一对角线,具体是从点c2向点c4延伸的一条线段,并设置线段c2c4的长度的长度是大于角点L1和角点M1的连线的长度;然后首尾依次连接点c2和点c3、点c3和点c4、点c4和点c5、点c5和点c2,构建出矩形区域c2c3c4c5,即所述待沿边单元区域,该矩形区域的短边的长度大于或等于机器人的机身宽度或墙体的厚度,让该矩形区域框住角点L1和角点M1。其中,线段c2c3和线段c4c5作为矩形区域c2c3c4c5的短边。在此基础上,按照该构建方式,沿着逆时针方向构建待沿边单元区域的各对相邻两个角点依次为:角点D1和角点E1、、角点L1和角点M1、角点H1和角点I1、角点P1和角点Q1、角点Q1和角点R1、角点R1和角点S1。
在上述三种待沿边单元区域的构建方式中,机器人在所述工作区域内,按照逆时针方向,沿着所述工作区域的轮廓进行沿边行走,所产生的沿边行走轨迹会依次经过每个所述待沿边单元区域,对应到图1,累计产生19个待沿边单元区域,待沿边单元区域的构建数量等于同一工作区域内搜索出的角点的数量。当机器人的沿边行走轨迹经过所述待沿边单元区域时,确定机器人已经沿着与待沿边单元区域所覆盖的相邻两个角点的延伸走向一致的轮廓段行走,具体是确定机器人已经按照预设时针方向,沿着待沿边单元区域所覆盖的相邻两个角点在所述预设时针方向上的延伸走向一致的轮廓段行走。所述工作区域的轮廓由多条轮廓段连接成;每条轮廓段对应相邻两个角点。
在一种实施方式中,每条轮廓段在地图中由对应相邻两个角点所在的待沿边单元区域按照预设时针方向表达时,该待沿边单元区域在地图中按照预设时针方向表达出其在所述工作区域内的坐标覆盖范围及在预设时针方向上的排序,则在机器人内存中依次记录每个待沿边单元区域在所述工作区域内的坐标覆盖范围及每个待沿边单元区域在预设时针方向上的排序;在另一种实施方式中,每条轮廓段在地图中由对应的相邻两个角点表达时,每相邻两个角点在地图中会按照预设时针方向表达出其在所述工作区域内的坐标及在所述第一预设时针方向上的排序,使得地图呈现的轮廓信息更加精细化,本实施例还进一步在机器人内存中依次记录每相邻两个角点在所述工作区域内的坐标及每相邻两个角点在预设时针方向上的排序,以
便于后续识别沿边行走的状态。进而降低表示实际轮廓的特征点或对应的区域的密集程度。
因此,机器人可以把地图中搜索到的角点按照预设时针方向(预先设定的沿边行走的走向或其相反的走向(逆时针方向))存放在线性表中,并记录角点在预设时针方向上的排序;且沿着逆时针方向,从每相邻两个角点所在的区域中划分出具有特定几何关系的矩形区域,并且将划分出的矩形区域的次序记录到链表中,记为该矩形区域在预设时针方向上的排序,以便于确定其中一个待沿边单元区域在所述预设时针方向上的相对位置关系,也便于确定其中一对相邻两个角点相对于预先选定的第一对相邻两个角点的排序,或确定其中一个角点相对于预先选定的第一个角点(沿边行走的起点)的排序。
需要说明的是,线性表包括链表和顺序表两类,顺序表所占的存储空间必须连续,链表没有这个要求,连续指的是存储空间的连续,顺序存储结构中,线性表中每一个数据元素在计算机存储空间中的存储地址由该元素在线性表中的位置序号唯一确定。使得在线性表内角点的排序与待沿边单元区域的排序一致,便于映射到地图中来表示所述工作区域的轮廓在所述预设时针方向上的延伸走向。
需要说明的是,所轮廓段及其组成的所述工作区域的轮廓,实质上是属于机器人的沿边行走所需要沿的轮廓线,但所述工作区域的轮廓或全部轮廓段不一定全部完整被机器人沿过。机器人预先存储的地图(历史地图)中相应的栅格或像素点组成的轮廓最大限度地逼近障碍物或墙面的轮廓。在一些实施场景中,机器人沿着低矮障碍物进行沿边行走时,机器人与低矮障碍物的距离比较远,以防止推动并撞开低矮障碍物,则机器人在历史地图中标记出的轮廓线不一定是按照预测的走向,预测不一定准,但至少表示出了大概沿边方向的走向,与障碍物或墙面的轮廓尽可能的接近,形成所述预设时针方向。优选地,所述工作区域的轮廓与机器人的沿边行走轨迹之间的间距是大于或等于机器人的机身半径,以防止机器人在沿边行走过程中与障碍物或墙面频繁碰撞。
需要补充的是,机器人是沿着房间墙体进行沿边行走,为了便于描述与理解,对应在机器人构建的地图中,实际墙体外壁或者靠墙障碍物均视作墙体和靠墙障碍物在室内工作区域的地面(包括具体的房间地面)的俯视投影线。当存在与所述墙体外壁紧挨的墙边障碍物时,机器人在行进时将所述墙边障碍物的未与墙体外壁接触的面视作墙体外壁。本实施例所公开的沿边控制方法可以适用于多房间的情形。因为,当房门打开时,多个房间的墙体是连续的,所述机器人是沿房间的墙体行进的,机器人可以选择周期性地往返,最终遍历了多个房间。
在上述实施例的基础上,在所述工作区域内设置所述待沿边单元区域的过程中,机器人
先将预先选定的一个角点标记为当前角点,从当前角点开始,按照所述预设时针方向选择距离最近的一个角点并将该角点标记为下一个角点,其中,距离最近的一个角点可以是来自当前角点的四邻域或八邻域,相对于当前角点往预设时针方向延伸的过程中距离最近的一个角点;然后将该两个角点所在的矩形区域设置为待沿边单元区域,再记录下该待沿边单元区域及相应的角点在所述预设时针方向上的排序及坐标覆盖范围,并将当前角点和下一个角点标记为所述相邻两个角点;然后将下一个角点更新为当前角点,如此重复,直至在所有的角点所在的位置都设置出对应的待沿边单元区域,即可确定所有的相邻两个角点所在位置处都设置出对应的待沿边单元区域,并获得所有待沿边单元区域在所述工作区域内的坐标覆盖范围及在所述第一预设时针方向上的排序。
需要说明的是,当所述工作区域是由栅格地图描述时,本发明中提及的像素点或角点的邻域是与该像素点或角点在栅格地图中所占据的栅格相邻的上下左右的栅格区域,用于描述与该像素点或角点位置相邻的区域,便于搜索该像素点或角点的周围区域。
作为一种实施例,所述机器人从地图中搜索出工作区域的角点的方法包括:在地图中,机器人从预先设定的搜索起点开始,通过邻域搜索的方式获得角点,角点的搜索方式包括八邻域搜索或四邻域搜索;其中,所述角点是地图中一组相互垂直的轮廓线段的交点,该交点是属于轮廓线段的端点,本实施例将所述搜索起点是用于表示障碍物的像素点;在一些实施例中,该端点是房间墙面的角点,对于在所述工作区域内构建矩形区域是有用的。轮廓线段是机器人预先在所述工作区域中遍历时标记出,实现使用相邻两个角点直接表示障碍物或墙面的一条轮廓线段(可以视为其在水平地面的投影线段),在一定程度中让房间轮廓简化,只是使用端点信息进行更多的机器人沿边行走的状态判断。在本实施例中,若从预先设定的搜索起点开始,先后邻域搜索到的两个用于表示障碍物的像素点与所述搜索起点不共线,则所述搜索起点是角点。具体地,在所述搜索起点的邻域中只搜索到一个用于表示障碍物的像素点时,将所述搜索起点设置为角点,并将该像素点标记为当前备选点;再在该当前备选点的邻域(可以是四邻域或八邻域)中进行搜索,若不存在与该当前备选点和所述搜索起点共线的像素点,则将该当前备选点标记为所述搜索起点的邻域中搜索到的角点,并将所述搜索起点和所述当前备选点标记为所述相邻两个角点;若存在与该当前备选点和所述搜索起点共线的像素点,则将当前备选点更新为过渡点,将该像素点更新为当前备选点,再在该当前备选点的邻域中进行搜索,如此重复,直至不存在与所述当前备选点和所述过渡点共线的像素点时,将所述当前备选点标记为角点;其中,已经标记为搜索起点的像素点不允许再次被标
记为所述搜索起点,已经标记为过渡点的像素点不允许再次被标记为所述搜索起点。从而得到所述工作区域内部的精细边缘轮廓。
作为一种实施例,所述机器人从地图中搜索出工作区域的角点的方法包括:
步骤(1),首先选取灰度值为1的任意一像素点作为种子点,记为Z1,对其八邻域或四邻域进行搜索,若邻域内没有值为1的像素点,则终止此次邻域搜索,若其周围只有一个值为1的像素点,则将该点记为Z2,且记Z1为角点。然后对Z2的其他邻域进行搜索,若不存在某一像素点能与Z1,Z2共线,则记Z2为角点。若存在某一像素点能形成这三点共线,则该像素点记为Z3,Z2点标记为过渡点,然后继续对Z3进行邻域搜索,以此类推,直到Zn的邻域中,没有任何一个像素点能与Zn-1、Zn共线,则记Zn为角点,Z1与Zn连成的直线段构成一段墙面。
步骤(2),若Z1点周围有两个及以上的灰度值为1的像素点,则寻找是否有能与Z1形成共线的两点。如果没有,则记Z1为角点,且分别向各点延伸,重复步骤(1)直到达到另一个角点。如果有一对灰度值为1的像素点与Z1形成共线,则记Z1点为过渡点而不是角点,且由Z1分别向该两点延伸,重复上一步骤,直到达到角点。如果有超过一对灰度值为1的像素点与Z1形成共线,则对每一对点依次重复前面的步骤。
步骤(3),完成一次搜索后进行下一个种子点的选取,其中,前面步骤中的种子点不可再作为种子点,前面步骤中标记的过渡点不可再作为种子点。直到完成对所有灰度值为1的像素点的判断。其中,用于表示障碍物或墙面的像素点在所述地图中的灰度值是1。
综上,使用前述步骤搜索出的角点,可以让判断机器人的沿边行走轨迹是否能沿过到整个工作区域的轮廓变得更加方便。
基于前述实施例,本发明还公开一种机器人沿边结束控制方法,该机器人沿边结束控制方法是建立在机器人已经遍历完所述工作区域并获取该工作区域的地图的基础上执行,该机器人沿边结束控制方法会结合历史地图中的角点信息和机器人在所述工作区域内的沿边行走轨迹来判断是否应该结束既定沿边方向上的沿边行走任务。
如图3所示,所述机器人沿边结束控制方法包括:
步骤S301、机器人从地图中搜索出工作区域的角点,具体地,机器人从历史地图(在先构建的关于所述工作区域的地图)中搜索出角点,搜索范围是处于所述工作区域对于的地图区域内,则相当于机器人从工作区域内搜索出角点;在步骤S301中,搜索方式可以是基于四邻域、八邻域等图搜索算法从邻域点云或邻域像素点中提取到所有的角点。然后执行步骤S302。
步骤S302、机器人将相邻两个角点所在的矩形区域设置为待沿边单元区域,具体是机器人在所述工作区域内获取到所有的角点后,按照预设时针方向将每相邻两个角点所在的矩形区域都设置为所述待沿边单元区域,使得机器人沿着预设时针方向从所述工作区域中划分出多个待沿边单元区域。然后机器人开始在所述工作区域内进行沿边行走,并开始产生沿边行走轨迹,并标记到地图中;然后执行步骤S303;其中,预设时针方向可以视为机器人沿边行走所需的沿边方向,预设时针方向是顺时针方向或逆时针方向,对应到清洁机器人的沿边模式中是沿边清扫方向;相邻两个角点被其所在的待沿边单元区域覆盖。需要说明的是,机器人可以按照所述预设时针方向对应的采集顺序,将各个角点和/或待沿边单元区域依次保存入线性存储空间内,所述待沿边单元区域在所述预设时针方向上由大到小的排序方向或由小到大的排序方向,可以简化表示机器人遍历或移动经过的区域位置的先后顺序。以便于机器人在按照预设时针方向进行沿边行走的过程中依次提取出相应沿边阶段下的角点或待沿边单元区域。综上,机器人通过执行前述实施例公开的设置方法,设置出多个所述待沿边单元区域。
需要说明的是,组成所述工作区域的每条轮廓段在地图中是由对应相邻两个角点所在的待沿边单元区域按照预设时针方向表达时,该待沿边单元区域在地图中按照预设时针方向表达出其在所述工作区域内的坐标覆盖范围及在预设时针方向上的排序,则在机器人内存中依次记录每个待沿边单元区域在所述工作区域内的坐标覆盖范围及每个待沿边单元区域在预设时针方向上的排序;在另一种实施方式中,每条轮廓段在地图中由对应的相邻两个角点表达时,每相邻两个角点在地图中会按照预设时针方向表达出其在所述工作区域内的坐标及在所述第一预设时针方向上的排序,使得地图呈现的轮廓信息更加精细化,本实施例还进一步在机器人内存中依次记录每相邻两个角点在所述工作区域内的坐标及每相邻两个角点在预设时针方向上的排序,以便于后续识别沿边行走的状态,比如机器人是否进入其中一个待沿边单元区域。
步骤S303、判断机器人的沿边行走轨迹是否经过所有的待沿边单元区域或重复行走过同一批待沿边单元区域,是则执行步骤S307,否则执行步骤S304。在步骤S303中,机器人判断自身是否行走过步骤S302设置出的所有的待沿边单元区域或反复行走过同一批所述待沿边单元区域,是则执行步骤S307,否则执行步骤S304。这里的机器人的沿边行走轨迹是否经过所有的待沿边单元区域可以是判断机器人的沿边行走轨迹是否按照所述预设时针方向一次性经过所有的待沿边单元区域;其中,所述同一批待沿边单元区域是预设数量个互不相同的待沿边单元区域;机器人反复行走过的同一批所述待沿边单元区域的过程中,若机器人按照
一定的工作周期重复行走过同一批所述待沿边单元区域一次,则机器人在对应的一个工作周期内,不重复地行走每个待沿边单元区域;机器人反复行走过的一批所述待沿边单元区域的次数优选为大于1,或小于数值3;留给机器人足够的判断冗余度,作为机器人的沿边行走出现异常的标志。机器人每回行走所述同一批待沿边单元区域的过程中,是先后行走过这一批待沿边单元区域中的每个待沿边单元区域且不重复遍历同一个待沿边单元区域,表示机器人被困在所述工作区域的局部区域内,无法继续沿边行走至该局部区域之外的区域,无法遍历到步骤S302中设置出的部分待沿边单元区域和步骤S301中搜索出的部分角点,使得机器人无法沿完所述工作区域;优选地,机器人被困的区域越大,则预设数量被设置得越大,且在规定的沿边时间内机器人反复行走的次数越少;反之,预设数量被设置得越小,且在规定的沿边时间内机器人反复行走的次数越多。
步骤S304、机器人在所述工作区域内进行沿边行走,同时产生沿边行走轨迹,并标记到地图中,如图1中的封闭的弯折轨迹所示,能够覆盖到图示的各个小矩形区域;然后执行步骤S305。具体地,机器人在所述工作区域内可以按照所述预设时针方向或所述预设时针方向的相反方向进行沿边行走,比如将所述预设时针方向设置为逆时针方向,机器人从图1的点A1或图2的点A2开始作逆时针方向或顺时针方向上的沿边行走,其中,由于所述角点及所述相邻两个角点对应的待沿边单元区域都是按照所述预设时针方向标记到机器人的内存或地图中,所以,当机器人从图1的点A1或图2的点A2开始作顺时针方向上的沿边行走时,可以在确认机器人内存中作为标记起点的角点后,通过对调内存中关于所述角点或所述待沿边单元区域的排序来识别当前沿边行走过的待沿边单元区域的相对位置,包括机器人当前沿边位置相对于图1的点A1或图2的点A2的位置信息。
步骤S305、判断机器人的沿边行走轨迹是否经过待沿边单元区域,是则执行步骤S306,否则执行步骤S304。机器人在所述工作区域内进行沿边行走的过程中,需要实时判断是否行走入其中一个待沿边单元区域。优选地,机器人在沿着所述工作区域的轮廓行走时,机器人当前的前进方向平行于当前所沿的轮廓段,以形成沿边行走的姿态,可以行走过所述角点或所述相邻两个角点对应的待沿边单元区域,由于机器人沿边行走形成的路径变得与轮廓段越一致,包括走向、以及长度尺寸,若定位机器人的沿边状态,则现有技术在地图中需要匹配比较的坐标点比较多,然而本实施例通过设置待沿边单元区域来跟踪定位机器人所沿的位置情况,使用矩形区域的顶点信息来简化计算量。
需要说明的是,所述预设时针方向是顺时针方向并配置为机器人的沿边方向时,则机器
人的沿边方向被配置为机器人沿边行走的左沿边方向,使得机器人所沿的障碍物或墙面的轮廓中的位置点位于机器人的前进方向的左侧,其中,初始沿边起点位于机器人的前进方向的左侧。所述预设时针方向是逆时针方向并配置为机器人的沿边方向时,所述沿边方向被配置为机器人沿边行走的右沿边方向,使得机器人所沿的障碍物或墙面的轮廓中的位置点位于机器人的前进方向的右侧,其中,初始沿边起点位于机器人的前进方向的右侧。
步骤S306、机器人标记其沿边行走轨迹当前经过的待沿边单元区域为已行走过的待沿边单元区域,即确定机器人的沿边行走轨迹经过该待沿边单元区域,然后执行步骤S303。具体地,当机器人实时记录的横坐标大于所述待沿边单元区域的顶点的最小横坐标且小于所述待沿边单元区域的顶点的最大横坐标,且机器人实时记录的纵坐标大于所述待沿边单元区域的顶点的最小纵坐标且小于所述待沿边单元区域的顶点的最大纵坐标时,确定机器人的当前横坐标已经处于该待沿边单元区域的横坐标的坐标覆盖范围,且机器人的当前纵坐标已经处于该待沿边单元区域的纵坐标的坐标覆盖范围,则确定机器人进入该待沿边单元区域内,并确定机器人的沿边行走轨迹经过该待沿边单元区域,并确定机器人行走过该待沿边单元区域,进而确定机器人沿边行走过所覆盖的相邻两个角点的延伸走向一致的轮廓段;其中,所述待沿边单元区域是地图中的平面区域,是可以在步骤S302中获知所述待沿边单元区域的四个顶点的坐标,包括最大横坐标、最小横坐标、最大纵坐标以及最小纵坐标,形成所述待沿边单元区域的坐标覆盖范围。具体在执行所述设置方法对应的实施例的过程中,由相邻两个角点所在的具有特定几何关系的矩形区域可以换算得到的。从而只要计算机器人某一时刻是否有路过某一个小矩形框的方法就可以简化为判断机器人的实时坐标是否处于对应的待沿边单元区域的坐标覆盖范围内;不仅可以有效精简数据量,也增加了后续触发沿边结束的正确性。
在一些实施例中,当机器人进入所述待沿边单元区域的坐标覆盖范围后,继续判断到机器人的当前位置坐标与所述待沿边单元区域所覆盖的相邻两个角点当中的一个角点的距离大于预设距离阈值,才确定机器人进入该待沿边单元区域内,并确定机器人的沿边行走轨迹经过该待沿边单元区域,并确定机器人行走过该待沿边单元区域;其中,当所述待沿边单元区域所占据的区域面积越大时,预设距离阈值就设置得越大,则与该待沿边单元区域所覆盖的相邻两个角点的延伸走向一致的轮廓段越长,使得容纳机器人进行沿边行走的最小轨迹长度变得越大,允许机器人正常沿边行走所沿的轮廓段变得更多,则机器人沿边行走所覆盖的区域更大,提高机器人沿边行走的完整性,但不会增加机器人的计算量,因为识别机器人是否沿边行走过所覆盖的相邻两个角点的延伸走向一致的轮廓段不需逐个位置点或像素点地计算
坐标信息,而是计算比较对应的待沿边单元区域的个别顶点的坐标信息,况且所述工作区域中的每个待沿边单元区域的坐标覆盖范围是可以从步骤S302中获知的。优选地,所述预设距离是大于或等于机器人的机身宽度,以便于机器人通行。
步骤S307、机器人停止在所述工作区域内沿边行走。具体地,当机器人的沿边行走轨迹经过所有的待沿边单元区域时,判断为机器人已经沿完所述工作区域的轮廓,机器人已经行走过步骤S302设置出的所有的待沿边单元区域,且可以是按照所述预设时针方向一次性行走过步骤S302设置出的所有的待沿边单元区域,机器人的沿边行走轨迹已经遍历覆盖到图1中19个小矩形区域,说明可以结束沿边行走,避免出现背景技术涉及的误判问题,控制机器人不提前结束沿边行走,提高机器人对结束沿边行走的判断准确性和及时性。具体地,机器人从一个沿边起点开始进行沿边行走后,机器人的沿边行走轨迹经过所有的待沿边单元区域时,确定机器人在所述工作区域内已经沿边行走一圈,但不一定返回沿边起点,则不需计算沿边行走轨迹上的具体位姿信息(包括角度信息和坐标信息),而只是判断机器人实时测得的位置坐标是否进入最后一个行走过的待沿边单元区域,简化计算复杂度。其中,最后一个行走过的待沿边单元区域被机器人在所述预设时针方向上的遍历顺序可以是在步骤S302中设定好的;对应到图1中,机器人从角点A1开始沿着逆时针方向在所述工作区域内沿边行走,在前述步骤S301和步骤S302中也是先搜索角点A1再沿着逆时针方向在所述工作区域内继续搜索其它的角点并依次设置对应的待沿边单元区域;因此,机器人沿着逆时针方向行走过的待沿边单元区域对应的相邻两个角点依次是:角点A1和角点B1、角点B1和角点C1、角点C1和角点D1、角点D1和角点E1、角点E1和角点F1、角点F1和角点G1、角点G1和角点H1、角点H1和角点I1、角点I1和角点J1、角点J1和角点K1、角点K1和角点L1、角点L1和角点M1、角点M1和角点N1、角点N1和角点O1、角点O1和角点P1、角点P1和角点Q1、角点Q1和角点R1、角点R1和角点S1、以及角点S1和角点A1。然后,机器人在所述工作区域内,按照逆时针方向,沿着所述工作区域的轮廓进行沿边行走,所产生的沿边行走轨迹会依次经过每个所述待沿边单元区域,对应到图1,累计行走过19个待沿边单元区域,此时,待沿边单元区域的构建数量等于同一工作区域内搜索出的角点的数量,机器人的沿边行走轨迹已经经过所有产生的待沿边单元区域,但机器人不一定回到角点A1,只会处于角点S1和角点A1所在的待沿边单元区域,优选地,在这一过程中,每个所述待沿边单元区域都只被机器人行走过一次。
另外,当判断到机器人的沿边行走轨迹重复多回经过同一批待沿边单元区域时,机器人
停止在所述工作区域内沿边行走,具体地,每当机器人重复一回行走所述同一批待沿边单元区域时,机器人按照预设时针方向或预设时针方向的反方向行走过每个待沿边单元区域;机器人在该回行走所述同一批待沿边单元区域的过程中,所述同一批所述待沿边单元区域中的每个待沿边单元区域都是只被机器人行走过一次;其中,所述同一批待沿边单元区域的所有待沿边单元区域是按照所述预设时针方向设置在所述工作区域。在一些实施例中,机器人每一回的沿边行走可以视为一个沿边行走周期内发生的沿边行为,在每个沿边行走周期内,沿着所述预设时针方向或所述预设时针方向的反方向先后行走过预设数量的彼此不同的待沿边单元区域,其中,同一批待沿边单元区域中的每个待沿边单元区域是按照所述预设时针方向分布在所述工作区域内,使得机器人每一回重复行走沿边行走所述同一批待沿边单元区域的过程中,机器人可以按照所述预设时针方向不重复地行走过同一批待沿边单元区域中的每个待沿边单元区域。值得注意的是,机器人通过执行前述实施例公开的设置方法,设置出多个所述待沿边单元区域,这些所述待沿边单元区域可以是按照所述预设时针方向设置在所述工作区域。所述设置方法设置出的所述待沿边单元区域的数量大于所述预设数量,所述预设数量具体可以根据机器人发生重复沿边行为所处的区域的尺寸进行确定,由于机器人是受困才发生重复沿边行为,所以所述设置方法设置出的所述待沿边单元区域的数量不可能等于所述预设数量。比如,用户在移动终端上用虚拟墙把工作区域隔开或实际环境下有障碍物把工作区域隔断让机器人无法顺利沿完整个工作区域时,机器人的沿边行走轨迹反复多回经过所述预设数量的待沿边单元区域,且机器人每一回中都不重复行走过同一个待沿边单元区域,则机器人获取到对应被困状态关联的轮廓的几何信息,不需要遍历完所有的角点及所有的待沿边单元区域,就能够及时识别出发生沿边异常,并中止沿边行走,避免机器人在同一个局部区域内的沿边行走轨迹出现回环,保证机器人的工作效率。
综上步骤,本发明先通过预设时针方向上的相邻两个角点对应的矩形区域或两个角点来表示工作区域的轮廓,使得机器人可以通过判断沿边行走轨迹是否经过相应的两个角点对应的矩形区域来识别机器人的沿边情况,进而通过判断机器人的沿边行走轨迹是否已经按照预设时针方向依次覆盖到整个工作区域对应的地图轮廓段,来裁决是否应该停止继续沿边行走,当机器人是清洁机器人,充分考虑到所述工作区域内的清扫覆盖率和清理房间死角垃圾的目的,通过引用待沿边单元区域的遍历数量来选择在恰当的沿边阶段停止沿边行走。不仅便于判断机器人在工作区域内所沿边的轮廓段,而且准确判断是否要结束沿边行走模式,减小机器人重复遍历局部区域的次数或者因为误判而提前结束沿边行走,提高机器人在所述工作区
域内的工作效率。
另外,当出现工作区域被障碍物阻挡部分可通行区域或被虚拟墙限定工作禁区的异常情况时,机器人则无法顺利在所述工作区域内完整地沿边行走,此时通过判断机器人有重复多回行走过一批矩形区域,来确定机器人在沿边行走过程中出现异常,从而可以及时停止沿边行走,以保证工作效率,减少机器人在同一块局部区域重复遍历的次数。
作为一种实施例,当所述工作区域内存在的障碍物的尺寸越大、或/和虚拟墙设置的工作禁区越大时,机器人在所述工作区域内被隔开的区域越大,则机器人将所述预设数量设置得越小,则机器人在可通行的区域内不重复地行走过的待沿边单元区域的数量会减小。当所述工作区域内存在的障碍物的尺寸越小、或/和虚拟墙设置的工作禁区越小时,机器人在所述工作区域内被隔开的区域越小,则机器人将所述预设数量设置得越大,机器人在可通行的区域内行走过的待沿边单元区域的数量会增加,其中,机器人无法在被隔开的区域内沿边行走,即不能行走过相应的待沿边单元区域。当两个待沿边单元区域的重叠区域越大时,所述预设数量设置得越小。一般在墙角区域处,存在其中两个待沿边单元区域的重叠区域比较大,则为了判断机器人在沿边行走过程中是否被困于这一墙角区域,即判断机器人的沿边行走轨迹是否反复多次经过一批待沿边单元区域时,只需要将所述预设数量设置得比较小,所述预设数量优选为2。
在一些实施例中,机器人可能受到房间内的一些可移动的物体(房间门的开闭、桌椅的搬移等)的阻碍而困于一个局部区域内时,单从机器人的运动角度姿态上去判断机器人沿所述工作区域的轮廓行走一圈是存在误判的。具体在一些实施例中,机器人沿边行走回到有效沿边起点之前,可能出现打转或被困在其中一个局部区域,比如餐厅内餐桌的底部(污垢较多),机器人在此局部区域内进行了反复的沿边行走的行为,在地图对应标记出的沿边行走轨迹出现路径回环,从而导致机器人旋转过的角度也会达到甚至超过360度。但是,无论是第一圈沿边行走还是第二圈沿边行走,如果机器人被前述障碍物困住打转或打滑而无法继续沿墙行走时,机器人检测到在局部区域内出现路径回环,此时机器人会选择停止沿边行走,避免影响工作效率;或者,机器人在全局区域(等同于所述工作区域)内进行沿边行走时,等效于在整个室内工作区域内沿墙面轮廓行走,若在其中一个局部区域内存在相同的路径回环情形,则为了避免重复遍历,机器人及时停止沿边行走。
作为一种实施例,参阅图2可知,机器人所在的工作区域内,机器人从角点A2开始,按照逆时针方向,沿着所述工作区域的轮廓进行行走,即沿边行走,但受到图2所示的虚拟墙
或障碍物的阻挡,对应形成图2中的封闭的弯折轨迹,作为机器人在图2内的沿边行走轨迹。在图2中,机器人在执行所述步骤S301和所述步骤S302的过程中,机器人从角点A2开始,按照逆时针方向依次构建出各个矩形框,对应为所述待沿边单元区域,在图2对应的地图中,沿着逆时针方向搜索出的角点依次是角点A2、角点B2、角点C2、角点D2、角点E2、角点F2、角点G2、角点H2、角点I2、角点J2、角点K2、角点L2、角点M2、角点N2、角点O2、角点P2、角点Q2、以及角点R2;然后机器人可以在从角点A2逆时针向位置点B2延伸的路线上进行开始沿边行走,其中,从逆时针方向来看待,当角点A2是第一个搜索出的角点时,最后一个搜索出的角点可以是角点R2,相对于图1减少一个角点,已经被图示的障碍物或虚拟墙盖住。
在图2的实施例中,机器人沿边行走至图示的障碍物或虚拟墙设定的轮廓段(图2的粗黑色的水平线段,角点R2在其下方,角点M在其上方)后,无法沿边行走至前方的待沿边单元区域,转而沿着该轮廓段行走至角点R2所在的待沿边单元区域,其中,角点M2和角点R2不被设置为所述相邻两个角点,而是角点M2和角点N2被设置为所述相邻两个角点以构建待沿边单元区域(由于没有机器人实际行走过,所以在图2中没有对应标记出矩形区域);具体是由角点M2逆时针向角点R2延伸的沿边行走轨迹,但不是角点M2和角点R2的连线,其中,从逆时针方向来看待,机器人沿边行走至角点R2和角点A2所在的待沿边单元区域后,能够与在先形成的沿边行走轨迹连接成封闭的行走轨迹,作为机器人在所述工作区域内的一圈沿边行走轨迹,但不代表机器人在所述工作区域内沿完其完整的轮廓;具体地,对于前述沿边行走轨迹围成的封闭区域内,机器人可能会重复沿着在先产生的沿边行走轨迹重复进入该封闭区域内对应的各个待沿边单元区域,其中,机器人每进入一个待沿边单元区域是能够被自动识别出来,识别依据是机器人的当前位置坐标是否处于该待沿边单元区域的坐标覆盖范围,而该待沿边单元区域的坐标覆盖范围及该待沿边单元区域相对于所述角点A2的位置关系是在所述步骤S302中记录好的,可以按照所述预设时针方向(比如将逆时针方向设置为沿边行走方向时)依次从机器人的内存中读取出来。进一步地,机器人每沿边行走一圈,机器人是按照逆时针方向依次行走过且不重复行走于同一个待沿边单元区域,其中,每一圈中被机器人行走过的待沿边单元区域的数量等于图2中已标记出的待沿边单元区域的数量,小于步骤S302设置出的所有待沿边单元区域的数量(所需沿边行走过的全部角点对应的待沿边单元区域)。本实施例允许机器人在图示的障碍物或虚拟墙设定的轮廓段阻碍的区域重复沿边行走多圈后,才确定机器人的沿边行走出现异常状态,可以更加准确地确定为机器人的沿边
行走轨迹在图2对应的区域内处于回环状态,此时控制机器人停止沿边行走。
作为其中一种待沿边单元区域的构建方式,对于一对相邻两个角点,如角点K2和角点L2,角点K2的纵坐标值和角点L2的纵坐标值相等,角点K2的横坐标值和角点L2的横坐标值不相等,则选择平行于角点K2和角点L2的连线的线段为矩形区域的长边,具体在图2中选择出的矩形区域的长边分别为角点K2和角点L2的连线的上方的线段d3d4、以及角点K2和角点L2的连线的下方的线段d5d6,并设置线段d3d4的长度是大于或等于角点K2和角点L2的连线的长度,同时设置线段d5d6的长度是等于线段d3d4的长度,线段d3d4是由点d3开始沿着平行于角点K2和角点L2的连线的方向向点d4延伸而来(自左向右延伸),然后连接线段d4d5和线段d6d3,构建出矩形区域d3d4d5d6,即所述待沿边单元区域,矩形区域d3d4d5d6框住角点K2和角点L2。在此基础上,按照该构建方式,沿着逆时针方向构建所述待沿边单元区域所需的各对相邻两个角点依次为:角点A2和角点B2、角点C2和角点D2、角点E2和角点F2、角点I2和角点J2、角点K2和角点L2。
作为另一种待沿边单元区域的构建方式,对于一对相邻两个角点,如角点D2和角点E2,角点D2的横坐标值和角点E2的横坐标值相等,角点D2的纵坐标值和角点E2的纵坐标值不相等,则选择平行于角点D2和角点E2的连线的线段为矩形区域的长边,并设置该长边的长度是大于角点D2和角点E2的连线的长度,构建出对应的矩形区域,即所述待沿边单元区域,该矩形区域的短边的长度与机器人的机身宽度或墙体的厚度相关联,让该矩形区域框住角点D2和角点E2,且角点D2和角点E2的连线长度大于其所在的矩形的短边的长度。
作为又一种待沿边单元区域的构建方式,对于一对相邻两个角点,如角点L2和角点M2,角点L2的横坐标值和角点M2的横坐标值不相等,角点L2的纵坐标值和角点M2的纵坐标值不相等,则选择平行于角点L2和角点M2的连线的线段为矩形区域的对角线,对应为图2的点e4和点e6的连线,点e4和点e6的连线平行于角点L2和角点M2的连线且设置线段e4e6的长度是大于角点L2和角点M2的连线的长度,线段e4e6是由点e4开始沿着平行于角点L2和角点M2的连线的方向向点e6延伸而来(自右上向左下延伸);同时在与点e3和点e5的连线相交的一个方向上设置另一对角线,具体是从点e3向点e5延伸的一条线段,并设置线段e3e5的长度的长度是大于角点L2和角点M2的连线的长度;然后首尾依次连接点e3和点e4、点e4和点e5、点e5和点e6、点e6和点e3,构建出矩形区域e3e4e5e6,即所述待沿边单元区域,该矩形区域的短边的长度大于或等于机器人的机身宽度或墙体的厚度,让该矩形区域框住角点L2和角点M2。其中,线段e3e4和线段e5e6作为矩形区域e3e4e5e6的短边。
在此基础上,按照该构建方式,沿着逆时针方向构建待沿边单元区域的各对相邻两个角点依次为:角点G2和角点H2、角点H2和角点I2、角点L2和角点M2。
由于机器人被图示的障碍物或虚拟墙设定的轮廓段(图2的粗黑色的水平线段,角点R2在其下方,角点M在其上方)阻挡沿边行走轨迹,进而将所述工作区域分隔为上下两个分区;所以,机器人无法继续沿边至角点N2、角点O2、角点P2、以及角点Q2,即无法按照逆时针方向沿边行走过前述角点对应的待沿边单元区域并在此基础上沿边回角点R2;此时,机器人经过角点L2和角点M2所在的待沿边单元区域后,沿着所述障碍物或虚拟墙设定的轮廓段行走至角点R2,以进入角点R2和角点A2所在的待沿边单元区域,此时,机器人在所述工作区域内沿边行走过的一批待沿边单元区域的数量是小于步骤S302设置出的所有待沿边单元区域的数量,即机器人在受所述障碍物或虚拟墙阻挡的局部区域内,沿完一圈的过程中行走过的待沿边单元区域的数量是小于步骤S302设置出的所有待沿边单元区域的数量,然后在不触发停止沿边行走指令的前提下,机器人继续沿着所述工作区域的轮廓行走,开始在所述工作区域按照逆时针方向沿新的一圈,重复行走上一圈行走过的一批待沿边单元区域,如此重复行走两圈,机器人则停止在所述工作区域内沿边行走,虽然没有遍历到图示的障碍物或虚拟墙设定的轮廓段上方的角点对应的待沿边单元区域,但是能够避免机器人在所述工作区域内无休止地沿边行走下去,也排除对沿边行为的误判因素的影响,及时停止沿边行走,保证机器人的工作效率,减少重复遍历的次数。
作为一种实施例,当机器人按照所述预设时针方向进入最后一个未行走过的待沿边单元区域内后,确定机器人行走过该待沿边单元区域,机器人在所述工作区域内行走出的沿边行走轨迹经过所有的待沿边单元区域,然后,机器人停止沿边行走;在本实施例中,该待沿边单元区域在预设时针方向上的排序是在先获得,以便于确定其中一个待沿边单元区域在预设时针方向上的相对位置关系,进而便于机器人按照所述预设时针方向一次性行走过所有的待沿边单元区域;若无障碍物或虚拟墙阻挡或分隔工作区域,在本实施例中,最后一个未行走过的待沿边单元区域被机器人在所述预设时针方向上的遍历顺序可以是在步骤S302中设定好的;对应到图1中,机器人从角点A1开始沿着逆时针方向在所述工作区域内沿边行走,在前述步骤S301和步骤S302中也是先搜索角点A1再沿着逆时针方向在所述工作区域内继续搜索其它的角点并依次设置对应的待沿边单元区域;因此,机器人沿着逆时针方向设置出的待沿边单元区域对应的相邻两个角点依次是:角点A1和角点B1、角点B1和角点C1、角点C1和角点D1、角点D1和角点E1、角点E1和角点F1、角点F1和角点G1、角点G1和角点H1、
角点H1和角点I1、角点I1和角点J1、角点J1和角点K1、角点K1和角点L1、角点L1和角点M1、角点M1和角点N1、角点N1和角点O1、角点O1和角点P1、角点P1和角点Q1、角点Q1和角点R1、角点R1和角点S1、以及角点S1和角点A1,从而在所述工作区域内确定每个待沿边单元区域在预设时针方向上的相对位置关系,即确定每个待沿边单元区域在逆时针方向上的排序及坐标覆盖范围。然后,机器人在所述工作区域内,按照逆时针方向,沿着所述工作区域的轮廓进行沿边行走,所产生的沿边行走轨迹会依次经过每个所述待沿边单元区域,角点S1和角点A1是最后一个未行走过的待沿边单元区域,对应到图1中包围角点S1和角点A1的矩形区域。
在一些实施例中,若无障碍物或虚拟墙阻挡或无分隔工作区域,对应到图1中,机器人从角点A1开始沿着顺时针方向在所述工作区域内沿边行走,在前述步骤S301和步骤S302中也是先搜索角点A1再沿着逆时针方向在所述工作区域内继续搜索其它的角点并依次设置对应的待沿边单元区域;因此,机器人沿着逆时针方向搜索出的角点依次是角点A1、角点B1、、角点C1、、角点D1、角点E1、、角点F1、、角点G1、角点H1、角点I1、角点J1、角点K1、角点L1、角点M1、角点N1、角点O1、角点P1、角点Q1、角点R1、以及角点S1;然后,在所述工作区域内确定每个待沿边单元区域在顺时针方向上的相对位置关系,即确定每个待沿边单元区域在顺时针方向上的排序及坐标覆盖范围,其中,每个待沿边单元区域在顺时针方向上的排序相对于其在逆时针方向上的排序是对调过来;机器人沿着顺时针方向行走过的待沿边单元区域对应的相邻两个角点依次是:角点A1和角点S1、角点S1和角点R1、角点R1和角点Q1、角点Q1和角点P1、角点P1和角点O1、角点O1和角点N1、角点N1和角点M1、角点M1和角点L1、角点L1和角点K1、角点K1和角点J1、角点J1和角点I1、角点I1和角点H1、角点H1和角点G1、角点G1和角点F1、角点F1和角点E1、角点E1和角点D1、角点D1和角点C1、角点C1和角点B1、以及角点B1和角点A1,从而,机器人在所述工作区域内,按照顺时针方向,沿着所述工作区域的轮廓行走到的最后一个未行走过的待沿边单元区域是角点B1和角点A1所在的待沿边单元区域,对应到图1中包围角点S1和角点A1的矩形区域。
在上述实施例中,以可执行扫地任务的机器人(简称为扫地机器人)为例对本申请技术方案进行了示例性说明,但并不限于扫地机器人。上述实施例只为说明本发明的技术构思及特点,其目的是让熟悉该技术领域的技术人员能够了解本发明的内容并据以实施,并不能以此来限制本发明的保护范围。凡根据本发明精神实质所作出的等同变换或修饰,都应涵盖在本发明的保护范围之内。
Claims (14)
- 基于地图区域轮廓的设置方法,其特征在于,在执行该设置方法之前,机器人获取工作区域的地图,该地图用于表示工作区域的轮廓,以便于机器人沿着轮廓行走;所述设置方法包括:机器人从地图中搜索出工作区域的角点;然后机器人将相邻两个角点所在的矩形区域设置为待沿边单元区域,其中,相邻两个角点被其所在的待沿边单元区域覆盖;在地图中,与每个待沿边单元区域所覆盖的相邻两个角点的延伸走向相一致的轮廓使用该待沿边单元区域或该待沿边单元区域所覆盖的相邻两个角点来表示。
- 根据权利要求1所述设置方法,其特征在于,所述机器人将相邻两个角点所在的矩形区域设置为待沿边单元区域的方法包括:当相邻两个角点中存在一种维度的坐标值相等时,选择平行于该相邻两个角点的连线的线段为矩形区域的长边,并设置该矩形区域的长边的长度是该相邻两个角点的直线距离的第一预设倍数,构建出矩形区域;再将该矩形区域设置为待沿边单元区域;其中,第一预设倍数是大于或等于1;当相邻两个角点中同种维度的坐标值都不相等时,选择平行于该相邻两个角点的连线的线段或与该相邻两个角点的连线相交的线段为矩形区域的对角线,并设置该矩形区域的对角线的长度是该相邻两个角点的直线距离的第二预设倍数,构建出矩形区域;再将该矩形区域设置为待沿边单元区域;其中,第二预设倍数是大于1;其中,所述相邻两个角点是被所述矩形区域唯一覆盖的两个角点。
- 根据权利要求2所述设置方法,其特征在于,在所述工作区域内设置所述待沿边单元区域的过程中,存在以下情况:当相邻两个角点中存在一种维度的坐标值相等时,矩形区域的长边包括两个端点,其中一个端点沿着平行于所述相邻两个角点的连线的方向向另一个端点延伸,得到所述矩形区域的长边,其中,两个端点的连线长度等于所述相邻两个角点的直线距离的第一预设倍数,所述相邻两个角点的连线在该两个端点的连线上的投影线段没有超出该两个端点的连线;当相邻两个角点中存在一种维度的坐标值相等时,所述相邻两个角点的连线的垂线上存在中间点,从该中间点开始沿着平行于所述相邻两个角点的连线的方向,分别向该中间点的两侧延伸,得到所述矩形区域的长边,其中,该中间点的两侧延伸的长度之和等于所述相邻两个角点的直线距离的第一预设倍数,所述相邻两个角点的连线在所述矩形区域的长边上的 投影线段没有超出所述矩形区域的长边;当相邻两个角点中同种维度的坐标值都不相等时,矩形区域的对角线包括两个端点,其中一个端点沿着平行于所述相邻两个角点的连线的方向、或与所述相邻两个角点的连线相交的方向,向另一个端点延伸,得到所述矩形区域的对角线,其中,两个端点的连线长度等于所述相邻两个角点的直线距离的第二预设倍数,所述相邻两个角点的连线在该两个端点的连线上的投影线段没有超出该两个端点的连线;当相邻两个角点中同种维度的坐标值都不相等时,所述相邻两个角点的连线的垂线上存在中间点,从该中间点开始沿着平行于所述相邻两个角点的连线的方向、或与所述相邻两个角点的连线相交的方向,分别向该中间点的两侧延伸,得到所述矩形区域的对角线,其中,该中间点的两侧延伸的长度之和等于所述相邻两个角点的直线距离的第二预设倍数,所述相邻两个角点的连线在所述矩形区域的对角线上的投影线段没有超出所述矩形区域的对角线。
- 根据权利要求1所述设置方法,其特征在于,所述机器人将相邻两个角点所在的矩形区域设置为待沿边单元区域的方法包括:当相邻两个角点中存在一种维度的坐标值相等时,将该相邻两个角点的连线设置为矩形区域的长边以使得该矩形区域的长度等于该相邻两个角点的直线距离,构建出矩形区域,其中,该相邻两个角点是被该矩形区域唯一覆盖的两个角点;再将该矩形区域设置为待沿边单元区域;当相邻两个角点中同种维度的坐标值都不相等时,选择该相邻两个角点的连线设置为矩形区域的对角线,构建出矩形区域,其中,该相邻两个角点是被该矩形区域唯一覆盖的两个角点;再将该矩形区域设置为待沿边单元区域。
- 根据权利要求2或4所述设置方法,其特征在于,所述待沿边单元区域的最小边长是大于或等于机器人的机身宽度,或大于或等于工作区域的墙体厚度,以便于为机器人预留进入所述待沿边单元区域的空间。
- 根据权利要求2或4所述设置方法,其特征在于,当机器人的沿边行走轨迹经过所述待沿边单元区域时,确定机器人已经沿着与待沿边单元区域所覆盖的相邻两个角点的延伸走向一致的轮廓段行走;所述工作区域的轮廓由多条轮廓段连接成;每条轮廓段对应相邻两个角点;其中,每条轮廓段在地图中由对应相邻两个角点所在的待沿边单元区域按照预设时针方向表达时,在机器人内存中依次记录每个待沿边单元区域在所述工作区域内的坐标覆盖范围 及每个待沿边单元区域在预设时针方向上的排序;其中,每条轮廓段在地图中由对应的相邻两个角点按照预设时针方向表达时,在机器人内存中依次记录每相邻两个角点在所述工作区域内的坐标及每相邻两个角点在预设时针方向上的排序。
- 根据权利要求6所述设置方法,其特征在于,在所述工作区域内设置所述待沿边单元区域的过程中,先将预先选定的一个角点标记为当前角点,从当前角点开始,按照所述预设时针方向选择距离最近的一个角点并将该角点标记为下一个角点,然后将该两个角点所在的所述矩形区域设置为待沿边单元区域,再记录下该待沿边单元区域及相应的角点在所述预设时针方向上的排序及坐标覆盖范围,并将当前角点和下一个角点标记为所述相邻两个角点;然后将下一个角点更新为当前角点,如此重复,直至所有的相邻两个角点所在位置处都设置出对应的待沿边单元区域,并获得所有待沿边单元区域在所述工作区域内的坐标覆盖范围及在所述预设时针方向上的排序。
- 根据权利要求1所述设置方法,其特征在于,所述机器人从地图中搜索出工作区域的角点的方法包括:在地图中,机器人从预先设定的搜索起点开始,通过邻域搜索的方式获得角点;其中,所述搜索起点是用于表示障碍物的像素点;其中,所述角点是地图中一组相互垂直的轮廓线段的交点,该交点是属于轮廓线段的端点;轮廓线段是机器人预先在所述工作区域中遍历时标记出。
- 根据权利要求8所述设置方法,其特征在于,所述通过邻域搜索的方式获得角点的方法包括:在所述搜索起点的邻域中只搜索到一个用于表示障碍物的像素点时,将所述搜索起点设置为角点,并将该像素点标记为当前备选点;再在该当前备选点的邻域中进行搜索,若不存在与该当前备选点和所述搜索起点共线的像素点,则将该当前备选点标记为所述搜索起点的邻域中搜索到的角点,并将所述搜索起点和所述当前备选点标记为所述相邻两个角点;若存在与该当前备选点和所述搜索起点共线的像素点,则将当前备选点更新为过渡点,并将该像素点更新为当前备选点,再在该当前备选点的邻域中进行搜索,如此重复,直至不存在与所述当前备选点和所述过渡点共线的像素点时,将所述当前备选点标记为角点。
- 一种机器人沿边结束控制方法,其特征在于,机器人沿边结束控制方法包括:机器人执行权利要求1至4任一项所述基于地图区域轮廓的设置方法,设置出多个所述待沿边单元区域;然后机器人在所述工作区域内进行沿边行走;当机器人行走过所有的所述待沿边单元区域时,机器人停止沿边行走;当机器人重复行走过同一批待沿边单元区域时,机器人停止沿边行走;其中,所述同一批待沿边单元区域是预设数量个互不相同的待沿边单元区域;其中,所述设置方法设置出的所述待沿边单元区域的数量大于所述预设数量。
- 根据权利要求10所述机器人沿边结束控制方法,其特征在于,当所述工作区域内存在的障碍物的尺寸越大、或/和虚拟墙设置的工作禁区越大时,所述预设数量设置得越小;当所述工作区域内存在的障碍物的尺寸越小、或/和虚拟墙设置的工作禁区越小时,所述预设数量设置得越大;当两个待沿边单元区域的重叠区域越大时,所述预设数量设置得越小。
- 根据权利要求10所述机器人沿边结束控制方法,其特征在于,每当机器人重复一回行走所述同一批待沿边单元区域时,机器人按照预设时针方向或预设时针方向的反方向行走过每个待沿边单元区域;机器人在该回行走所述同一批待沿边单元区域的过程中,所述同一批所述待沿边单元区域中的每个待沿边单元区域都是只被机器人行走过一次;其中,所述同一批待沿边单元区域的所有待沿边单元区域是按照所述预设时针方向设置在所述工作区域。
- 根据权利要求10所述机器人沿边结束控制方法,其特征在于,当机器人实时记录的横坐标大于所述待沿边单元区域的顶点的最小横坐标且小于所述待沿边单元区域的顶点的最大横坐标,且机器人实时记录的纵坐标大于所述待沿边单元区域的顶点的最小纵坐标且小于所述待沿边单元区域的顶点的最大纵坐标时,机器人进入该待沿边单元区域内,并确定机器人的沿边行走轨迹经过该待沿边单元区域,并确定机器人行走过该待沿边单元区域;其中,所述待沿边单元区域是地图中的平面区域。
- 根据权利要求13所述机器人沿边结束控制方法,其特征在于,当机器人按照预设时针方向进入最后一个未行走过的待沿边单元区域内后,确定机器人的沿边行走轨迹经过所有的待沿边单元区域,然后,机器人停止沿边行走;其中,该待沿边单元区域在预设时针方向上的排序是在先获得,以便于确定其中一个待沿边单元区域在预设时针方向上的相对位置关系。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210596096.7 | 2022-05-30 | ||
CN202210596096.7A CN117193277A (zh) | 2022-05-30 | 2022-05-30 | 基于地图区域轮廓的设置方法与机器人沿边结束控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023231757A1 true WO2023231757A1 (zh) | 2023-12-07 |
Family
ID=88987396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/094396 WO2023231757A1 (zh) | 2022-05-30 | 2023-05-16 | 基于地图区域轮廓的设置方法与机器人沿边结束控制方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117193277A (zh) |
WO (1) | WO2023231757A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827076B (zh) * | 2024-03-04 | 2024-06-18 | 上海海栎创科技股份有限公司 | 一种多指并拢触摸区域分割方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111580525A (zh) * | 2020-05-26 | 2020-08-25 | 珠海市一微半导体有限公司 | 沿边行走中返回起点的判断方法、芯片及视觉机器人 |
CN111596662A (zh) * | 2020-05-26 | 2020-08-28 | 珠海市一微半导体有限公司 | 一种沿全局工作区域一圈的判断方法、芯片及视觉机器人 |
CN111638713A (zh) * | 2020-05-26 | 2020-09-08 | 珠海市一微半导体有限公司 | 可通行区域的框定方法、面积计算方法、芯片及机器人 |
CN111830970A (zh) * | 2020-06-12 | 2020-10-27 | 珠海市一微半导体有限公司 | 一种机器人沿边行走的区域清扫规划方法、芯片及机器人 |
CN111857127A (zh) * | 2020-06-12 | 2020-10-30 | 珠海市一微半导体有限公司 | 一种机器人沿边行走的清洁分区规划方法、芯片及机器人 |
WO2021238000A1 (zh) * | 2020-05-29 | 2021-12-02 | 苏州科瓴精密机械科技有限公司 | 机器人沿边工作方法、系统,机器人及可读存储介质 |
-
2022
- 2022-05-30 CN CN202210596096.7A patent/CN117193277A/zh active Pending
-
2023
- 2023-05-16 WO PCT/CN2023/094396 patent/WO2023231757A1/zh unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111580525A (zh) * | 2020-05-26 | 2020-08-25 | 珠海市一微半导体有限公司 | 沿边行走中返回起点的判断方法、芯片及视觉机器人 |
CN111596662A (zh) * | 2020-05-26 | 2020-08-28 | 珠海市一微半导体有限公司 | 一种沿全局工作区域一圈的判断方法、芯片及视觉机器人 |
CN111638713A (zh) * | 2020-05-26 | 2020-09-08 | 珠海市一微半导体有限公司 | 可通行区域的框定方法、面积计算方法、芯片及机器人 |
WO2021238000A1 (zh) * | 2020-05-29 | 2021-12-02 | 苏州科瓴精密机械科技有限公司 | 机器人沿边工作方法、系统,机器人及可读存储介质 |
CN113807118A (zh) * | 2020-05-29 | 2021-12-17 | 苏州科瓴精密机械科技有限公司 | 机器人沿边工作方法、系统,机器人及可读存储介质 |
CN111830970A (zh) * | 2020-06-12 | 2020-10-27 | 珠海市一微半导体有限公司 | 一种机器人沿边行走的区域清扫规划方法、芯片及机器人 |
CN111857127A (zh) * | 2020-06-12 | 2020-10-30 | 珠海市一微半导体有限公司 | 一种机器人沿边行走的清洁分区规划方法、芯片及机器人 |
WO2021248846A1 (zh) * | 2020-06-12 | 2021-12-16 | 珠海一微半导体股份有限公司 | 一种机器人沿边行走的区域清扫规划方法、芯片及机器人 |
Also Published As
Publication number | Publication date |
---|---|
CN117193277A (zh) | 2023-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021248846A1 (zh) | 一种机器人沿边行走的区域清扫规划方法、芯片及机器人 | |
US11914391B2 (en) | Cleaning partition planning method for robot walking along boundry, chip and robot | |
CN109363585B (zh) | 分区遍历方法、清扫方法及其扫地机器人 | |
CN109464074B (zh) | 区域划分方法、分区清扫方法及其机器人 | |
JP7212074B2 (ja) | 自律移動ロボットの縁沿い走行の制御方法 | |
CN110362079B (zh) | 机器人的遍历控制方法和芯片以及清洁机器人 | |
CN112799398B (zh) | 基于寻径代价的清洁路径规划方法、芯片及清洁机器人 | |
CN112137529B (zh) | 一种基于密集障碍物的清扫控制方法 | |
KR101372482B1 (ko) | 이동 로봇의 경로 계획 방법 및 장치 | |
CN113219992B (zh) | 一种路径规划方法及清洁机器人 | |
CN109298717A (zh) | 智能机器人的清扫方法和芯片以及智能清洁机器人 | |
CN109240312A (zh) | 一种机器人的清扫控制方法和芯片以及清洁机器人 | |
CN107065872A (zh) | 智能机器人的栅格地图创建方法 | |
CN107981790A (zh) | 室内区域划分方法及扫地机器人 | |
WO2023231757A1 (zh) | 基于地图区域轮廓的设置方法与机器人沿边结束控制方法 | |
CN107357295B (zh) | 一种基于栅格地图的路径搜索方法和芯片及机器人 | |
CN114431771B (zh) | 一种扫地机器人清扫方法及相关装置 | |
US20240201700A1 (en) | Robot task execution method and apparatus, robot, and storage medium | |
CN107478232B (zh) | 机器人导航路径的搜索方法 | |
CN112656307B (zh) | 一种清洁方法及清洁机器人 | |
CN113985866A (zh) | 扫地机器人路径规划方法、装置、电子设备、存储介质 | |
CN114253270A (zh) | 室内机器人自动探索建图的方法及系统 | |
CN106873601A (zh) | 栅格地图构建中的地图平移控制方法 | |
CN111897336B (zh) | 一种机器人沿边行为结束的判断方法、芯片及机器人 | |
CN116339302A (zh) | 一种沿边小区域划分清扫方法及区域合并显示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23814942 Country of ref document: EP Kind code of ref document: A1 |