Subdivision of maps for robot navigation
Patent Information
- Application Number
- DE502016017202
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2015-11-11
- Filing Date
- 2016-11-11
- Publication Date
- 2026-08-27
- Estimated Expiration
- 2036-11-11
AI Technical Summary
Existing autonomous mobile robots struggle to create maps of their operating area that are understandable and adaptable to human users, leading to inefficient task planning and user interaction.
The robot uses sensors to detect obstacles and boundaries, formulates hypotheses about the environment, and tests these using sensor data and user feedback to automatically divide the area into sub-areas, assigning attributes that influence its behavior and facilitate user interaction.
The method allows for a robot to intuitively adapt its behavior to user preferences, improving task efficiency and user interaction by creating a map that is comprehensible and adaptable to human needs.
Description
TECHNICAL AREA
[0001] The present description concerns the field of autonomous mobile robots, in particular the subdivision of maps of a robot operating area in which the robot moves and by means of which the robot orients itself. BACKGROUND
[0002] Numerous autonomous mobile robots are available for a wide variety of private and commercial applications, such as cleaning or processing floors, transporting objects, or inspecting an environment. Simple devices operate without creating and using a map of the robot's work area, for example, by moving randomly across a floor to be cleaned (see, e.g., publication EP 2287697 A2 by iRobot Corp.). More complex robots use a map of the robot's work area, which they either create themselves or are provided with electronically.
[0003] The map of such a robot's work area is generally quite complex and not designed for human users to read, which, however, may be necessary for planning the tasks to be performed by the robot. To simplify work planning, the robot's work area can be automatically subdivided into sub-areas. Numerous methods exist for this purpose. Various abstract methods for dividing an area to be cleaned are known from academic literature, which can, for example, simplify the robot's path planning or achieve uniform coverage of the floor surface. Because these abstract methods do not take into account typical characteristics of the human environment (e.g.,While robots that take into account the needs of a user (e.g., an apartment) generally have the problem that they do not adapt to the needs of a user and lead to behavior of the robot that is difficult for the human user to understand.
[0004] A very simple method is to divide the robot's work area into several small, uniform sub-areas of predefined shape and size. These sub-areas are then treated (e.g., cleaned) sequentially using a predefined standard procedure. For a human user, dividing the robot's work area (e.g., an apartment) into rooms such as living room, hallway, kitchen, bedroom, bathroom, etc., is easily understood. To achieve this, the robot (or an associated processor) attempts to determine the position of doors and walls, for example, using a ceiling-mounted camera, a distance sensor pointed at the ceiling, or based on typical geometric features such as door width. Another well-known method is to divide the robot's work area along floor surface boundaries, which the robot can detect using sensors.This division allows, for example, the selection of specific cleaning methods depending on the floor type. The map and its division can be displayed to the human user, who can correct or adapt the division to their needs by, for example, moving or adding area boundaries. Document EP 2 595 024 A1 discloses a method for obstacle detection and avoidance. The detected measurement points located within a certain distance of a robot are combined into clusters. SUMMARY
[0005] The object underlying the invention is to improve, and in particular to make more flexible, known methods for dividing a map of a robot's operational area. This object is achieved by a method according to claim 1 and by a robot according to claim 13. Various embodiments and further developments of the invention are the subject of the dependent claims.
[0006] A method for automatically dividing a map of the operating area of an autonomous mobile robot is described. According to an example of the invention, the method comprises the following: detecting obstacles and determining their size and position on the map using sensors arranged on the robot; analyzing the map using a processor to identify an area with a cluster of obstacles, wherein a cluster comprises at least two obstacles; and defining a first sub-area using a processor such that the first sub-area contains a detected cluster. At least one attribute that can influence the behavior of the mobile robot can be assigned to the first sub-area. The obstacles in a cluster are so close together that a straight passage through the cluster while maintaining a safe distance is not possible.
[0007] Further embodiments relate to a robot connected to an internal and / or external data processing system designed to execute a software program which, when executed by the data processing system, causes the robot to perform the procedures described herein. BRIEF DESCRIPTION OF THE IMAGES
[0008] The invention is explained in more detail below with reference to the examples shown in the figures. The illustrations are not necessarily to scale, and the invention is not limited to the aspects shown. Rather, the emphasis is placed on illustrating the principles underlying the invention. Figure 1 shows a map of a mobile robot's area of operation (an apartment) automatically generated by the robot, with a multitude of boundary lines. Figure 2 shows the outer boundaries of the robot's operating area. Fig. 1, which was determined based on the measurement data (boundary lines). Figure 3 shows a subdivision of the robot application area from Fig. 2 into sub-areas (rooms) e.g. based on detected doors and interior walls. Figure 4 shows the further subdivision of the robot application area from Fig. 3 , whereby inaccessible areas (furniture) were interpreted. Figure 5 shows the further subdivision of a sub-area from Fig. 4 based on identified difficult-to-traverse areas. Figure 6 shows a further refinement of the subdivision from Fig. 5 Figure 7 corresponds to the representation from Fig. 6 , with floor coverings and furniture shown. Figures 8A-8E demonstrates the procedure for the automated identification of a difficult-to-traverse area of a robot deployment area or a sub-area. Figures 9A to 9Fshow a different approach to subdividing a robot's operating area by successively dividing rectangles. Figure 10 schematically shows the assignment of a robot path to a sub-area. DETAILED DESCRIPTION
[0009] A technical device is most useful to a human user in daily life when, on the one hand, its behavior is comprehensible and understandable, and on the other hand, its operation is intuitive. Users expect an autonomous mobile robot, such as a floor cleaning robot ("robotic vacuum cleaner"), to adapt to them (in terms of its operation and behavior). To achieve this, the robot must interpret its area of operation through technical processes similarly to how a human user would (e.g., living room, bedroom, hallway, kitchen, dining area, etc.). This enables simple communication between the user and the robot, for example, in the form of simple commands to the robot (e.g., "Clean the bedroom") and / or notifications to the user (e.g., "Bedroom cleaning complete").Furthermore, the aforementioned sub-areas can be used to display a map of the robot's operating area and to operate the robot using this map.
[0010] A user can divide the robot's operating area into sub-areas according to recognized conventions and personal preferences (and thus be user-specific, e.g., dining area, children's play area, etc.). An example of a well-known convention is the division of an apartment into different rooms such as a bedroom, living room, and hallway (see...). Fig. 3 According to an exemplary user-specific subdivision, a living room could, for example, be divided into a cooking area, a dining area, or areas in front of and beside the sofa (see...). Fig. 4The boundaries between these areas can sometimes be very vaguely defined and are generally subject to user interpretation. For example, a cooking area might be defined by a tiled floor, while the dining area is simply characterized by the presence of a table and chairs. Adapting to the human user can be a very difficult task for a robot, and robot-user interaction is often necessary to correctly divide the robot's operating area. To make this robot-user interaction simple and understandable, the map data and the automatically generated division must be interpreted and processed by the device. Furthermore, the human user expects the autonomous mobile robot to behave in a way that is adapted to the defined division.Therefore, the sub-areas should be able to be assigned attributes by the user or automatically by the robot, which influence the robot's behavior.
[0011] A technical prerequisite for this is that the autonomous mobile robot possesses a map of its operating area to orient itself within it. This map is, for example, created automatically by the robot and permanently stored. To achieve the goal of an intuitive user-friendly division of the robot's operating area, technical processes are required that (1) automatically divide the map of the robot's operating area, such as an apartment, according to predefined rules, (2) allow simple user interaction to adapt to previously unknown user preferences during the division, (3) preprocess the automatically generated division to present it to the user in a clear and understandable map, and (4) can derive certain properties from the resulting division as automatically as possible, properties suitable for achieving user-expected behavior.
[0012] Figure 1 This shows a possible representation of a map of a robot's operating area, as constructed by the robot, for example, using sensors and a SLAM algorithm. For instance, the robot uses a distance sensor to measure the distance to obstacles (e.g., a wall, a piece of furniture, a door, etc.) and calculates line segments from the measurement data (usually a point cloud) that define the boundaries of its operating area. The robot's operating area can be defined, for example, by a closed chain of line segments (usually a concave, simple polygon), where each line segment has a start point, an end point, and consequently, a direction. The direction of the line segment indicates which side of the line segment points into the interior of the operating area, or from which side the robot "saw" the obstacle represented by a particular line segment. The in Fig. 1The depicted polygon fully describes the robot's operating area, but is very poorly suited for robot-user communication. A human user might have difficulty recognizing their own home and orienting themselves within it. An alternative to the aforementioned chain of line segments is a grid map, where a grid of, for example, 10x10cm is overlaid on the robot's operating area, and each cell (i.e., 10x10cm box) is marked if it is occupied by an obstacle. However, such grid maps are also difficult for a human user to interpret.
[0013] Not only to simplify interaction with a human user, but also to "work through" the work area in a more meaningful way (from the user's perspective), the robot should first automatically divide its work area into sub-areas. Such a division into sub-areas allows the robot to perform its task within its work area more easily, systematically, and in a more differentiated and (from the user's perspective) "logical" manner, etc., and to improve interaction with the user. To achieve a meaningful division, the robot must weigh various sensor data against each other. In particular, it can use information about the accessibility (difficult / easy) of an area within its work area to define a sub-area. Furthermore, the robot can start from the (falsifiable) assumption that rooms are generally rectangular. The robot can learn that some changes to the division lead to more meaningful results (so that, for example,certain obstacles are located in a specific sub-area with a certain probability).
[0014] As in Fig. 1 As depicted, a robot is typically able to detect obstacles using sensors (e.g., laser distance sensors, triangulation sensors, ultrasonic distance sensors, collision sensors, or a combination thereof) and to define the boundaries of its operating area as boundary lines on a map. However, the limited sensor capabilities of a robot generally do not allow for the unambiguous recognition of a division of the operating area into different rooms (e.g., bedroom, living room, hallway, etc.) that would be self-evident to a human user. Even the decision as to whether the boundary lines included in the map (for example, the line between points J and K in) Fig. 1Determining whether a surface belongs to a wall or a piece of furniture is not easily automated. Similarly, the "boundary" between two rooms is not readily recognizable by a robot.
[0015] To solve the aforementioned problems and to automatically divide the robot's operating area into different sub-areas (e.g., rooms), the robot formulates "hypotheses" about its environment based on sensor data. These hypotheses are then tested using various methods. If a hypothesis is falsified, it is discarded. If two boundary lines (e.g., lines AA' and OO' in) are present, the robot... Fig. 1If the robot detects door frames that are approximately parallel and spaced at a distance corresponding to the typical clear width (for which standardized sizes exist), it can formulate the hypothesis "door frame" and conclude that it separates two distinct rooms. In the simplest case, an automatically generated hypothesis can be tested by having the robot "question" the user, i.e., request feedback. The user can then either confirm or reject the hypothesis. However, a hypothesis can also be tested automatically by examining the plausibility of the conclusions drawn from it. If the rooms detected by the robot (e.g., by detecting door thresholds) include a central room that is, for example, smaller than one square meter, the hypothesis that ultimately led to this small central room is likely incorrect.Another automated test can consist of checking whether the conclusions derived from two hypotheses contradict each other. For example, if six hypotheses can be formulated regarding a door, and the robot can only detect a threshold (a small step) for five of the supposed doors, this could indicate that the hypothesis regarding the door without a threshold is incorrect.
[0016] When generating a hypothesis, the robot combines various sensor measurements. For a doorway, these include, for example, the doorway width, doorway depth (determined by wall thickness), the presence of walls to the right and left of the doorway, or a door protruding into the room. This information can be obtained by the robot using a distance sensor, for instance. An accelerometer or a position sensor (e.g., a gyroscopic sensor) can detect a door threshold that the robot might cross. Additional information can be gathered through image processing and ceiling height measurements.
[0017] Another example of a possible hypothesis is the course of walls in the robot's operating area. These are characterized, among other things, by two parallel lines, which represent a distance of a typical wall thickness (see Fig. 1, thickness dw) and were seen from two opposite directions by the robot (e.g. the lines KL and L'-K' in Fig. 1 However, other objects (obstacles) such as cabinets, shelves, flowerpots, etc., may be located in front of a wall, and these can also be identified using hypotheses. One hypothesis can also be based on another. For example, a door is an interruption of a wall. Therefore, if reliable hypotheses can be made about the course of walls in the robot's operating area, these can facilitate the detection of doors and thus the automated subdivision of the robot's operating area.
[0018] To test and evaluate hypotheses, a degree of plausibility can be assigned to them. In a simple implementation, a predefined score is assigned to a hypothesis for each confirming sensor measurement. If a particular hypothesis reaches a minimum score in this way, it is considered plausible. A negative score could lead to the rejection of the hypothesis. In a more advanced implementation, a probability of being true is assigned to a particular hypothesis. This requires a probability model that considers correlations between different sensor measurements, but also enables complex probability statements using stochastic computational models, thus allowing for a more reliable prediction of user expectations. For example, door widths may be standardized in certain regions (e.g., countries) where the robot is used.If the robot measures a standardized width, it is highly likely to be a door. Deviations from the standard widths reduce the probability that it is a door. A probability model based on a normal distribution can be used for this purpose. Another way to generate and evaluate hypotheses is to use machine learning to create suitable models and measurement functions (see, for example, Trevor Hastie, Robert Tibshirani, Jerome Friedman: "The Elements of Statistical Learning", 2nd edition. Springer-Verlag, 2008). For this, map data in various residential environments is collected by one or more robots. This data can then be supplemented with floor plans or user-entered data (e.g., regarding the course of walls or doorways, or a desired layout) and evaluated by a learning algorithm.
[0019] Another method, which can be used as an alternative or in addition to the hypotheses explained above, is to divide a robot's operating area (e.g., an apartment) into several rectangular areas (e.g., rooms). This approach is based on the assumption that rooms are generally rectangular or can be composed of several rectangles. In a map created by a robot, this rectangular shape of the rooms is generally not recognizable, as numerous obstacles with complex boundaries, such as furniture, restrict the robot's operating area.
[0020] Based on the assumption of rectangular rooms, the robot's operating area is overlaid with rectangles of varying sizes to represent the rooms. Specifically, the rectangles are chosen so that each point accessible to the robot on the map of the robot's operating area can be uniquely assigned a rectangle. This means that the rectangles generally do not overlap. However, it is not impossible for a rectangle to contain points inaccessible to the robot (e.g., because furniture obstructs access). Therefore, the area described by the rectangles can be larger and geometrically simpler than the actual robot's operating area. To determine the orientation and size of the individual rectangles, long, straight boundary lines on the map of the robot's operating area are used, such as those found along walls (see, for example, [reference]). Fig. 1(Straight lines through points L' and K', straight lines through points P and P', and P" and P‴). Various criteria are used to select the boundary lines to be used. One criterion might be, for example, that the boundary lines in question are approximately parallel or orthogonal to a multitude of other boundary lines. Another criterion might be that the boundary lines in question lie approximately on a straight line and / or are comparatively long (i.e., on the order of the outer dimensions of the robot's operating area). Other criteria for choosing the orientation and size of the rectangles include, for example, detected doorways or floor surface boundaries. These and other criteria can be used to evaluate them in one or more scoring functions (analogous to the degree of plausibility of a hypothesis, e.g., assigning a score to a hypothesis) in order to determine the specific shape and position of the rectangles.For example, points are assigned to the boundary lines for fulfilled criteria. The boundary line with the highest point value is used as the border between two rectangles.
[0021] Based on the assumption that rooms are essentially rectangular, the robot can use the map of boundary lines (see Fig. 1 ) the outermost boundary lines of a rectangular polygon ( rectilinear polygon ) complete. The result is in Fig. 2 shown. Another possibility is to draw a rectangle using the outer boundary lines of the apartment (see Fig. 2 , rectangle enclosing apartment W and inaccessible area X), and inaccessible areas (see Fig. 2 , area X) from this. Based on detected doors (see Fig. 1 , door frame between points O and A as well as P' and P") and interior walls (see Fig. 1, antiparallel boundary lines at a distance dw) the apartment can be automatically divided into three rooms 100, 200 and 300 (see Fig. 3 Areas detected as walls are extended to a door or the outer boundary of the apartment. Inaccessible areas within the rooms can be interpreted by the robot as furniture or other obstacles and recorded accordingly on the map (see Fig. 4 For example, based on its dimensions (distances between the boundary lines), furniture piece 101 could even be identified as a bed (beds have standardized sizes), and consequently room 100 as a bedroom. Area 102 is identified as a chest of drawers. However, it could also be a shaft or a fireplace.
[0022] Room 300 can be further subdivided based on sensor data recorded by the robot (see Fig. 4For example, one criterion for further subdivision could be the type of flooring. Using sensors, the robot can distinguish between, for instance, a tiled floor, a parquet floor, or a carpet. At the boundaries between two floor coverings, there is usually a small (detectable) unevenness, and the wheel slippage can vary depending on the floor covering. Different floors also differ in their optical properties (color, reflection, etc.). In the present example, the robot identifies a sub-area 302 with a tiled floor and a sub-area 303 with carpet in room 300. The remaining sub-area 301 has a parquet floor. The tiled area 302 could, for example, be interpreted by the robot as the kitchen area.
[0023] So far, relatively small obstacles have been disregarded, with "relatively small" meaning that the obstacles are similar in size to the robot or smaller. Fig. 5 In the upper right corner of sub-area 301 of room 300, the robot's map now shows many small obstacles, only a few centimeters in size. One criterion for further subdividing room 300 (or sub-area 301) could also be the accessibility ( passability ) of an area within the robotics field. In which in Fig. 5In the example shown, the sub-area labeled 320 contains a large number (a cluster) of small obstacles (e.g., table and chair legs) that hinder the robot's rapid straight-line travel. If the robot wants to travel quickly from one point to the next (e.g., to its charging station), it would be more efficient not to take the shortest path, but to bypass areas with many small obstacles. Consequently, it can be useful to define areas difficult to traverse due to numerous small obstacles as separate sub-areas. For this purpose, the robot can be trained to analyze the map to identify an area containing a cluster of obstacles distributed within that area in such a way that the robot's straight-line travel through the area is blocked. "Blocked" in this context does not necessarily mean that straight-line travel is impossible.It is sufficient if no straight path exists through the sub-area along which the robot can maintain a certain safety distance from obstacles, or if a small variation (rotation or displacement) of the straight path would lead to a collision with one of the obstacles. If such an area with a cluster of obstacles is detected, the robot defines a sub-area such that the first sub-area contains the detected cluster.
[0024] In the present example ( Fig. 5 Therefore, the area in the upper right of sub-area 301 is defined as sub-area 320, which is associated with the attribute "difficult to traverse". The remaining part of sub-area 301 (see Fig. 4 ) is designated as sub-area 310. Based on the size and number of individual obstacles, the robot could even recognize that the obstacles are table and chair legs and designate sub-area 320 as the "dining area" ( dinette ) define. For example, subarea 320 could be assigned a different cleaning interval or cleaning mode than other subareas. A cluster of obstacles can therefore be detected by the robot if the individual obstacles (e.g., their footprint or diameter) are each smaller than a predefined maximum value and if the number of obstacles is greater than a predefined minimum value (e.g., five).
[0025] The boundaries of "difficult-to-traverse" sub-areas are not geometrically unambiguous (unlike, for example, the boundaries between different floor coverings). However, hypotheses for their location can be formulated based on desired properties of the sub-area to be formed and a complementary sub-area (see Fig. 4, difficult-to-traverse sub-area 320, complementary sub-area 310). The robot can use the following rules, for example, as criteria for defining a difficult-to-traverse sub-area: (1.) The difficult-to-traverse sub-area should be as small as possible. (2.) The sub-area should include small obstacles, for example, obstacles whose base area is smaller than that of the robot or whose length is smaller than the robot's diameter. (3.) Due to their number and spatial distribution, the small obstacles significantly disrupt the robot's straight-line movement; in contrast, for example, a single chair in the middle of an otherwise empty area should not define its own sub-area. (4.) The boundary of the difficult-to-traverse sub-area should be chosen so that cleaning around each small obstacle is possible without the robot having to leave the sub-area.The difficult-to-traverse area therefore comprises a region of at least one robot diameter around each obstacle. (5.) The difficult-to-traverse area should have the simplest possible geometric shape, such as a rectangle or a right-angled polygon. (6.) The complementary area (created by separating a difficult-to-traverse area) should be easy to navigate or clean. It should therefore not contain, in particular, very small isolated areas, long narrow strips, or sharp corners.
[0026] In the present example, the separation of the difficult-to-traverse sub-area 320 from area 301 results (see Fig. 4) the complementary sub-area 310, which can be further subdivided into smaller, essentially rectangular areas 311, 312, and 313. This subdivision is based on the existing area boundaries. For example, sub-area 311 is created by extending the boundary between sub-areas 320 (dining area) and 302 (cooking area) downwards to sub-area 303 (carpet). Sub-areas 312 and 313 are created by extending the boundary of sub-area 303 (carpet) to the exterior wall. To provide a better understanding of the final subdivision of the apartment, a diagram is provided. Fig. 7 The apartment is shown including the furniture.
[0027] Figure 8 shows another example of subdividing a (partial) area (room) into smaller sub-areas based on the aforementioned property of passability ( passability ) . Figure 8Aillustrates, using a top view, an example of a room with a dining area, which includes a table and six chairs as well as a sideboard. Fig. 8B The map created by a robot shows boundary lines similar to the previous example. Fig. 2 At the table's position, the robot "sees" a multitude of small obstacles (table and chair legs) that would impede its straight-line movement (e.g., under the table). The sideboard is represented as an abstract piece of furniture. First, the robot identifies the relatively small obstacles (table and chair legs, see rules 2 and 3 above), groups them, and encloses them with the smallest possible polygon (see...). Fig. 8C(cf. rule no. 1 above). To give the defined sub-area "dining area" the simplest possible geometric shape, the robot attempts to arrange a rectangle around the polygon (cf. rule no. 5 above), whereby the rectangle must maintain a minimum distance from the polygon. This minimum distance should be large enough that the robot does not have to leave the "dining area" while cleaning it (cf. rule 4 above). In general, the minimum distance will therefore be at least as large as the diameter (or the maximum outer dimension) of the robot. In other cases, such as a U-shaped arrangement of several tables as is common in meeting rooms, it may be advantageous to define not one, but several (adjacent) rectangular sub-areas from the group of small obstacles. In the present example, the rectangular sub-area is as in Fig. 8DThe rectangle is shown aligned parallel to the outer wall. Other possibilities for determining a favorable orientation of the rectangle include choosing a rectangle with minimal area or orienting the rectangle along the principal axes of inertia (principal axes of the covariance matrix) of the distribution of small obstacles.
[0028] In order to avoid creating narrow, also difficult-to-pass passages in the complementary sub-area (see rule 6 above), narrow areas are created between the (outer) wall and the rectangular sub-area ( Fig. 8D ) added to the previously defined rectangle. The result is in Fig. 8E depicted.
[0029] Another way to subdivide a robot application area is based on the Fig. 9As shown. In many cases, a robot's operating area can be composed of rectangles that share a common boundary, which is not blocked by obstacles. These rectangles can be combined to form a right-angled polygon. This could, for example, represent a room with a bay window or the room 300, which includes a living and cooking area, as shown in the example from Fig. 3 The following describes a possible approach to dividing a robot application area using the example apartment from Fig. 7 more precisely illustrated. This is based on measurement data from the robot, which was obtained by measuring the distance to obstacles, i.e., the data in Fig. 1The depicted chain of boundary lines. This measurement data may contain measurement errors as well as information that is not relevant for subdividing the map and can be eliminated by filtering. For example, small obstacles (small compared to the entire apartment, a room, or the robot) can be disregarded.
[0030] To create a simplified model of the robot's operating area, the map of the boundary lines detected by the robot is used as a starting point (see Fig. 1) Boundary lines that are approximately perpendicular to each other are aligned perpendicularly to each other, and boundary lines that are approximately parallel to each other are aligned parallel to each other (regularization). For this purpose, a first preferred axis is determined (e.g., parallel to the longest boundary line or the axis to which most boundary lines are approximately parallel). Subsequently, for example, all boundary lines that form an angle of less than 5° with the preferred axis are rotated about their center point so that they are parallel to the preferred axis. The same procedure is followed for boundary lines that are approximately perpendicular to the preferred axis. Oblique boundary lines are disregarded in the example shown here. In the next step, the resulting simplified (map) model is enclosed by a rectangle 500 such that the robot's operating area is completely contained within the rectangle (see Fig. 9AThe rectangle 500 is aligned, for example, along the preferred axes (vertical and horizontal) obtained through regularization. In the next step, the rectangle 500 is subdivided into two smaller rectangles 501 and 502 according to predefined rules (see Fig. 9B ), where in the present case, the rectangle 500 is divided such that the common edge (see Fig. 9B , edge a) of the resulting rectangles 501 and 502 passes through a door frame. Rectangle 502 is again divided into rectangles 503 and 504. The common edge (see Fig. 9B Edge b) of rectangles 503 and 504 passes through the boundary line representing the outer wall. The result is in Fig. 9Cshown. Rectangle 503 covers a completely inaccessible area and is too large to be a piece of furniture; therefore, rectangle 503 can be eliminated from the map. Rectangle 504 is further subdivided into rectangles 505, 507, and 508. The common edge (see Fig. 8C , edge d) of rectangles 507 and 508 passes through a boundary line identified as an inner wall (cf. Fig. 1 , line L'-K'). The common edge (see Fig. 8C , edge c) of rectangles 505 and 507 (as well as 505 and 508) passes through a detected door (cf. Fig. 1 , Line P'-P"). The result is in Fig. 9D depicted.
[0031] With regard to the example above, a rectangle can therefore be divided along intersection lines, which are determined, for example, based on the previously aligned boundary lines that are parallel or perpendicular to the sides of the rectangle to be divided. In the present example, these are several boundary lines along a straight line (see Fig. 9A , boundary lines a and c) and / or comparatively long segments (see Fig. 9A, boundary lines b and d), where "comparatively long" means that the boundary line in question has a length on the order of the width of the apartment (e.g., greater than 30% of the narrow side of the apartment). The line by which a rectangle is divided into two rectangles can be evaluated according to various rules. These rules can refer to absolute or relative sizes of the boundary lines, the rectangle to be divided, or the resulting rectangles. The rules take into account, in particular, (1.) boundary lines with closely spaced parallel boundary lines at a distance corresponding to the thickness of a wall (see Fig. 1 , Thickness dw, Fig. 9A , boundary lines c and d); (2.) several aligned boundary lines (see Fig. 9A, boundary lines a and c); (3.) detected doorways (aligned boundary lines spaced at a distance corresponding to a typical door width); (4.) boundary lines that delineate inaccessible areas (see Fig. 9A , boundary line b); (5.) the absolute size and / or aspect ratios of the resulting rectangles (rectangles with a very large or very small aspect ratio are avoided); and (6.) the size of the rectangle to be divided.
[0032] With regard to the above-mentioned rules, there is rectangle 501 ( Fig. 9B ) no relevant division possibilities. The rectangle 503 ( Fig. 9C ) is separated from rectangle 502 because the boundary line completely passes through the larger rectangle 502. Rectangle 505 ( Fig. 9DRectangle 504 is separated from the larger rectangle because a door was detected along boundary line c, and the two boundary lines labeled c are aligned. A division is performed along boundary line d because it completely passes through the rectangle to be divided (507 and 508 together). Furthermore, a wall can be detected along boundary line d.
[0033] Depending on the criteria used to divide the rectangles, rectangles 507 and / or 508 can be further subdivided. This leads, for example, to a division according to... Fig. 9EThe rectangles obtained in this way are relatively small, which is why it is checked whether they can be added to other rectangles. For example, the area resulting from rectangle 508 has a good connection to 501 (that is, there are no intervening obstacles, e.g., in the form of walls, that would completely or partially separate the two areas) and can be added to it (see Fig. 9F , sub-area 510). The rectangles resulting from rectangle 507 can also be reassembled, effectively cutting out the large inaccessible central area (a bed in the bedroom) (see Fig. 9F , sub-area 511).
[0034] A human user expects that a pre-defined map of the robot's operating area, with which they are familiar, will not fundamentally change during or after a robot deployment. However, they will likely accept some optimizations that lead to improved robot behavior. The basis of a map's division can change from one robot deployment to the next due to moving objects. Therefore, the robot should "learn" a division over time that is not disrupted by this movement. Examples of moving objects include doors, chairs, or furniture with wheels. For instance, image recognition methods can be used to detect, classify, and recognize such objects. The robot can mark objects identified as moving and, if necessary, recognize them again in a later deployment at a different location.
[0035] Only objects with a fixed location (such as walls and large pieces of furniture) should be used for the permanent division of the robot's operating area. Objects that constantly change location can be ignored for this purpose. In particular, a one-time change to the robot's environment should not trigger a recalculation of the map and its division. Doors, for example, can help define the boundaries between two rooms (sub-areas) by comparing their open and closed states. Furthermore, the robot should remember a sub-area that is temporarily inaccessible due to a closed door and, if necessary, inform the user. A sub-area that was inaccessible during the robot's initial exploration run due to a closed door, but is subsequently detected, will be added to the map as a new sub-area.As mentioned above, chair and table legs can be used to delineate a difficult-to-traverse sub-area. However, chair legs can change position due to chair use, which could lead to different sub-area boundaries at different times. The boundary of a difficult-to-traverse sub-area can be adjusted over time so that all chairs with a predetermined high probability are located within the sub-area identified as difficult to traverse. That is, based on previously stored data about the position and size of obstacles, the frequency, and thus the probability (i.e., parameters of a probability model), of encountering an obstacle at a specific location can be determined. For example, the frequency of a chair leg's occurrence in a particular area can be determined by measurement.Additionally or alternatively, the density of chair legs in a specific area, determined through numerous measurements, can be evaluated. Based on the probability model, the identified area containing a cluster of obstacles can then be adjusted so that obstacles are present within this area with a predefined probability. This may lead to an adjustment of the boundaries of the "difficult to traverse" sub-area that includes the cluster of (likely present) obstacles.
[0036] Furthermore, there are objects, such as a recliner, which, while generally always located in a similar position within a room, can (slightly) change their exact position due to human use. At the same time, such an object may be large enough to be used to define a sub-area. This could be, for example, the "area between the sofa and the armchair." For these objects (e.g., recliners), the most likely position is determined over time (e.g., based on the median, expected value, or mode). This position is then used for a permanent map division and subsequent interaction with the user (e.g., for the user's operation and control of the robot).
[0037] In general, users can be given the option to review the automatically generated map division and modify it if necessary. However, the goal of the automated division is to achieve the most realistic map division possible, automatically and without user interaction.
[0038] Generally speaking, when we refer to the map being divided "by the robot," this division can be performed using a processor (including software) located within the robot, but also on a device connected to the robot to which the measurement data collected by the robot has been transmitted (e.g., wirelessly). The calculation of the map division can therefore also be performed on a personal computer or on a server connected to the internet. For the human user, this usually makes no difference.
[0039] By appropriately dividing the robot's operating area into sub-areas, a robot can perform its tasks more "intelligently" and efficiently. To better adapt the robot's behavior to the user's expectations, various properties (also called attributes) of a sub-area can be recorded, assigned to a sub-area, or used to create a sub-area. For example, there are properties that make it easier for a robot to locate itself within its operating area after, say, being carried by the user to a dirty spot. This localization allows the robot to autonomously return to its base station after cleaning. Environmental properties useful for this localization can include, for example, the type of flooring, a characteristic (wall) color, the Wi-Fi signal strength, or other properties of electromagnetic fields.Furthermore, small obstacles can provide the robot with a clue to its position on the map during localization. This doesn't require using the obstacles' exact locations, but rather their (frequent) occurrence in a specific area. Other characteristics directly influence the robot's behavior or allow it to make suggestions to the user. For example, information about average dirt levels can be used to suggest cleaning frequency for a sub-area (or to automatically determine a cleaning interval). If a sub-area is consistently very unevenly dirty, the robot can suggest further subdivision of the area (or perform this subdivision automatically).
[0040] Information about the floor type (tiles, parquet, carpet, non-slip, smooth, etc.) can be used to automatically select a suitable cleaning program or to suggest a cleaning program to the user. Furthermore, the robot's driving behavior (e.g., maximum speed or minimum turning radius) can be automatically adjusted to, for example, correct increased slippage on a carpet. Areas or sections within areas where the robot frequently gets stuck (e.g., on cables or similar obstacles) and can only be freed with user assistance can be saved as a property of a specific area. In the future, such areas can be avoided, cleaned with low priority (e.g., at the end of a cleaning cycle), or only cleaned when the user is present.
[0041] As mentioned previously, a sub-area identified as a room can be assigned a label (bedroom, hallway, etc.). This can be done either by the user or the robot can automatically select a label. Based on the label of a sub-area, the robot can adapt its behavior. For example, depending on the label assigned to a sub-area, the robot can suggest a cleaning behavior tailored to the user's needs, thus simplifying the robot's configuration. For instance, the label of an area can be incorporated into a calendar function. Therefore, a sub-area labeled "bedroom" can be assigned a time period (e.g., 10 PM to 8 AM) during which the robot is not allowed to enter that area. Another example is naming a sub-area "dining area" (see below). Fig. 7, sub-area 320). This designation suggests increased soiling (e.g., crumbs on the floor), which is why this sub-area can be given higher priority during cleaning. These examples show that the subdivision of the robot's map explained above and the (functional) designation of the sub-areas can have a decisive influence on the robot's subsequent behavior.
[0042] To speed up the cleaning of multiple sub-areas, these can be carried out sequentially, avoiding transitions between sub-areas as much as possible. This can be ensured if the endpoint of a cleaning operation in one sub-area is chosen to be close to the starting point of the cleaning operation in the next sub-area. Areas with free passage can be cleaned very effectively along a meandering path. The spacing of the straight sections of the meandering path can be adjusted to the width of the sub-area to be cleaned in order to achieve the most uniform cleaning result possible and to end the cleaning operation at a desired location. For example, a rectangular area is to be cleaned starting in the upper left corner and ending in the lower right corner along a meandering path whose straight sections run horizontally (similar to...). Fig. 10B (The terms right, left, above, below, horizontal, and vertical refer to the map representation.) The height of the rectangular sub-area divided by the maximum distance a between the straight path segments (for comprehensive cleaning) yields the minimum number of passes the robot must make to completely cover the rectangular area. From this, the optimal distance between the path segments to reach the desired endpoint can be determined. This optimal distance, as well as the orientation of the meandering path (horizontal or vertical), can be assigned to a sub-area and saved for that specific sub-area.
[0043] When the robot cleans a sub-area along a meandering path, the straight path segments 11 can be traversed relatively quickly, whereas curves 12 (over 180°) are traversed relatively slowly. To clean a sub-area as quickly as possible, it can be advantageous to minimize the number of curves 12. When cleaning a rectangular sub-area, the meandering path can be oriented such that the straight path segments 11 are parallel to the longest edge of the rectangular sub-area. If the sub-area has a more complex geometry than a rectangle (in particular, if it is a non-convex polygon), the orientation of the meandering path can be crucial in determining whether the area can be completely cleaned in one pass. In the case of a U-shaped sub-area, as in the example from Fig. 10 , this can be evenly covered with a vertically oriented meander (see Fig. 10A ) shown. A horizontally oriented meander creates an uncleaned area U (see Fig. 10B Therefore, as mentioned above, it can be useful to assign and store not only the optimal spacing of the straight meander path sections, but also the orientation of the meander to the relevant sub-area.
[0044] Another example where the direction in which the robot travels a planned path is relevant is carpet cleaning. In the case of a high-pile carpet, the direction of travel can influence the cleaning result, and changing directions can create a striped pattern on the carpet, which may be undesirable. To avoid this striped pattern, for example, when traveling along a meandering path, cleaning can only occur in one preferred direction. On the return journey (against the preferred direction), cleaning can be deactivated by switching off the brushes and suction unit. The preferred direction can be determined by sensors or user input, assigned to the relevant area, and stored for that area.
[0045] As previously explained, it is often undesirable for a robot to slowly navigate through a difficult-to-access area (risking collisions with obstacles). Instead, the robot should bypass the difficult-to-access area. Therefore, an area identified as difficult to navigate (see above) can be assigned the attribute "area to avoid." The robot will then not enter this difficult-to-access area except for scheduled cleaning. Other areas, such as a valuable carpet, can also be marked with the attribute "area to avoid" by the user or by the robot itself. Consequently, the area in question will only be considered during path planning for a transitional route (a trip without cleaning) from one point to another if no other option exists. Furthermore, the numerous obstacles in a difficult-to-access area can be disruptive when cleaning along a meandering path.In difficult-to-navigate areas, a specially adapted cleaning strategy can be used (instead of the meandering pattern). This strategy can be specifically designed to minimize the creation of isolated, uncleaned areas during the numerous obstacle avoidance maneuvers. If such areas do occur, the robot can record whether and where access to these uncleaned areas is possible, or whether the area is completely blocked by closely spaced obstacles (e.g., chair and table legs). In the latter case, the user can be notified about uncleaned (because inaccessible) areas.
[0046] When using a cleaning robot, there may not be enough time to completely clean the robot's operating area. In such cases, it can be advantageous if the robot can independently plan the cleaning time according to certain parameters – for example, taking a time limit into account – and then carry out the cleaning accordingly. Scheduling ) carries out the work. For example, the following factors can be considered in the scheduling: (1.) the expected time for cleaning each sub-area, (2.) the time for traveling from one sub-area to the next, (3.) the priority of the sub-areas, (4.) the time since the last cleaning of an area, and / or (5.) the level of pollution of one or more sub-areas determined during one or more previous reconnaissance and cleaning trips.
[0047] To predict the cleaning time for a specific area, the robot can use empirical data from previous cleaning runs and theoretical values determined through simulations. For example, the expected cleaning time for small, geometrically simple areas can be calculated (e.g., number of meander segments multiplied by the length of a segment, divided by the speed plus the robot's required turning time) to generate a prediction for more complex areas (composed of the simpler areas). To determine the expected cleaning time for multiple areas, the time required to clean each area and the time spent traveling between them are taken into account. The human operator can view the automatically generated cleaning schedule ( Cleaning ScheduleThe user can view the cleaning schedule and modify it as needed. Alternatively, the robot can suggest several cleaning schedules, select one, and modify it if necessary. In another example, the robot can automatically begin cleaning according to an automatically generated schedule without any further user interaction. If a target cleaning time is specified, the robot can determine a schedule based on attributes assigned to the sub-areas. These attributes could include, for example, priorities, the expected cleaning times for individual sub-areas, and the expected level of soiling in each sub-area. Once the target time has elapsed, the robot can stop cleaning, finish cleaning the currently cleaned sub-area, or exceed the target time until the user cancels the cleaning.The principles outlined above will be explained below using two examples.
[0048] Example 1 (Cleaning until demolition by user): In this example, the sample apartment is to be made of Figs. 1 to 7The robot can be cleaned using a quick cleaning program with a time limit of, for example, 15 minutes (e.g., because the user is expecting visitors soon). The actual cleaning time doesn't have to be fixed at 15 minutes; it can be a few minutes longer or shorter, depending on the visitor's arrival time. The time limit is a guideline. Ideally, the robot should clean until interrupted by the user, but the most urgent areas (i.e., the highest priority areas) should be cleaned after, for example, 90% of the allotted time. The user can specify these highest priority areas to the robot in a preset or when activating the quick cleaning program. These could be, for example, the entrance area (see...). Fig. 3 , sub-area 200) and the living room (see Fig. 3, sub-area 300), since the visitor will only be in these rooms. Both rooms together are too large to clean completely within the given time. Therefore, it can be advantageous if the sub-areas, and especially the large living room 300, are further subdivided into sub-areas. For example, the carpet (see Fig. 4 , sub-area 303) a high priority and the dining area (see Fig. 4 , sub-area 320) exhibits a high level of soiling (previously detected by the robot or inferred based on empirical values). The robot may then determine that it can reliably clean either the hallway (200) and the carpet (303) or only the dining area (320) within the given time. For example, due to the greater cleaning efficiency (e.g., area cleaned per unit of time), the robot will begin cleaning the hallway (see Fig. 4 , sub-area 200) and the carpet (see Fig. 4, sub-area 303) to then the dining area (see Fig. 4 , sub-area 320) to be cleaned until the user interrupts the cleaning.
[0049] Example 2(Fixed time limit): In a second example, the robot is used in a department store, which is only cleaned while it is closed. The time available for cleaning is therefore limited and cannot be extended. The robot's area of operation is so large that it cannot be cleaned within the allotted time. It can therefore be advantageous to be able to prioritize the different sub-areas of the robot's operating area. For example, the area encompassing the entrance should be cleaned daily, while other areas, where few customers typically congregate, only need to be cleaned every three days and consequently have a lower priority. Based on this, the robot can create a preliminary weekly work schedule ( weekly work scheduling) . For example, it can also be advantageous if the robot dynamically adjusts its cleaning schedule to the actual requirements. For instance, the expected level of soiling in a particular area can be taken into account. This is determined by the experienced extent of the soiling or the (measurable) number of actual customers in that area. The number of customers is recorded in a database, either manually by store staff or automatically using sensors such as motion detectors, light barriers, or cameras in combination with image processing. Alternatively, store management can request the cleaning of a previously unplanned area at short notice, for example, because it has become particularly dirty due to an accident.The robot can therefore automatically schedule a new area for cleaning and – in order to meet the time requirement – postpone the cleaning of another area to the next day.
[0050] The following describes how a robot map divided into several sub-areas can be used to improve robot-user communication and interaction. As mentioned previously, a human user would typically divide the robot's operating area intuitively. For machines, however, this is generally a very difficult task that doesn't always lead to the desired results (the robot lacks human intuition). Therefore, the user should be able to adapt the robot-generated division of the apartment to their needs. The user's options range from changing the division by moving the boundaries between adjacent sub-areas, to further subdividing existing sub-areas, to creating entirely new, user-defined sub-areas. These sub-areas could, for example, be so-called "keep-out areas"These are areas into which the robot is not allowed to autonomously enter. The sub-areas (suggested by the robot and potentially modified by the user) can therefore be assigned additional attributes by the user, which can also influence the robot's behavior during operation (in the same way as the attributes described above, which can be automatically assigned to a sub-area). Possible attributes include, for example, (1.) priority (how important is the cleaning of the area to the user), (2.) floor type (which cleaning strategy (dry with brush, wet, vacuuming only, etc.) should be used?), (3.) accessibility (is the sub-area in question even accessible?).
[0051] Another option is for the user to influence the automatic mapping process by, for example, confirming or rejecting the robot's hypotheses. To do this, the user can "command" the robot to divide its operating area. The user can then modify the division by, for example, adding doors to the map or deleting doors incorrectly identified by the robot. Afterward, the robot can automatically re-divide the map based on the additional information provided by the user. Furthermore, the user can set relevant parameters (e.g., typical door widths, thickness of interior walls, basic layout of the apartment, etc.) so that the robot can generate a customized division of its operating area using these parameters.
[0052] Within a given culture, certain areas of a robot's operating environment (e.g., an apartment) often resemble one another, such as bedrooms. Therefore, if the user names a recognized room "Bedroom," the criteria used for further automated subdivision of the bedroom—especially the probability models used to generate hypotheses—can be adapted to typical bedrooms. In this way, a one-by-two-meter object in a bedroom can be interpreted relatively reliably as a bed. In a room named "Kitchen," an object of the same size might be detected as a kitchen island. Naming a sub-area is done, for example, by selecting a sub-area marked on the map and then choosing a name from a list provided by the robot.User-selectable room names could also be possible. To simplify orientation within the robot-generated map for the purpose of naming a specific area, the user can select an area, whereupon the robot moves to that area. This allows the user to see a direct connection between the displayed area and the robot's actual position in their home, making it easy to assign a suitable name to the area.
[0053] The user's ability to name a sub-area of the robot's operating area presupposes that the robot has already generated a subdivision of its operating area that is sufficient for the user to recognize the bedroom as such (e.g., a rough subdivision as in...). Fig. 3Users who do not wish to work with such a preliminary map can, according to an alternative implementation, tell the robot which room it is currently in during its first exploration run (i.e., during the initial setup). This room name can then be used directly to divide the room into sub-areas. In this way, the user can be shown a high-quality, well-structured map right from the start. The user can accompany the robot during its exploration run. Alternatively, the user can guide the robot to specific areas of interest, for example, using a remote control, and then name them. In doing so, the user can also point out special features such as the previously discussed keep-out areas.
[0054] According to another embodiment, the robot is trained to subdivide the map or improve the characteristics of a recognized sub-area by asking the user direct questions regarding hypotheses determined during a reconnaissance run. Communication between the robot and the user in this regard is relatively simple, for example, using a software application installed on a mobile device (e.g., tablet computer, phone, etc.). In particular, this can occur before the user is shown an initial version of the map, in order to improve the quality of the map displayed by the robot. For example, the robot can ask whether an area that is difficult to navigate due to a table and chairs is a regularly used dining area.If this question is answered in the affirmative, the robot can automatically draw conclusions from this answer and assign specific attributes to the relevant area. In the case of a dining area, the robot could assign a higher cleaning priority to this area because it is assumed that this area gets dirtier than others. The user could confirm, reject, or change the assigned priority.
[0055] If the robot is to be deployed in a new, unfamiliar area, it can obtain preliminary information about its operating area by asking the user specific questions. This includes information such as the expected size of the apartment (robot operating area) and the number of rooms. In particular, the user can inform the robot about any deviations from a typical apartment layout or about its use in a commercial setting, such as an office floor. This information allows the robot to adjust certain parameters relevant to dividing its operating area (such as the probability models used to generate hypotheses) in order to generate a better map division during a subsequent exploration run and / or to assign appropriate attributes (e.g., regarding the cleaning strategy) to the identified sub-areas.
[0056] For interaction between a human user and the robot, information (such as a map of the robot's operating area) can be transmitted via a human-machine interface ( human machine interface A robot's HMI (Human-Machine Interface) can be displayed to the user or receive user input to control the robot. An HMI can be implemented, for example, on a tablet computer (or a personal computer, a mobile phone, etc.) using a software application. A robot-generated map is generally quite complex and difficult for an untrained observer to interpret (see, for example, [reference to relevant example]). Fig. 1For seamless interaction between robot and user, the information displayed to the user can be filtered and processed. This allows the user to easily understand the information and then give the desired instructions to the robot. To avoid confusing the user, small details and obstacles can be omitted from the displayed map. These include, for example, table and chair legs, as well as shoes or other objects lying around. A user will typically recognize a floor plan of their apartment and be able to identify individual rooms within it. To create the floor plan based on the measurement data (see...), Fig. 1 To be able to generate this automatically, the robot first identifies a very rough representation of the apartment in the form of an outline, such as in Fig. 2 shown. The interior walls are marked in this outline, thus creating a floor plan of the apartment, as shown. Fig. 3 The methods by which the robot can automatically determine such a subdivision of its operating area have already been described above.
[0057] In a floor plan view according to Fig. 3It is generally easy for a human user to identify bedroom 100, hallway 200, and living room 300. To further simplify the user experience, the rooms can be represented as differently colored areas, for example. To identify the apartment's outline, obstacles and objects that lie entirely within the robot's operating area are ignored. This results in an area that is completely bounded externally, but into which numerous obstacles, such as interior walls or furniture placed against walls, still extend. These obstacles are also filtered out or ignored for the floor plan display to obtain a simplified map of the entire robot's operating area.
[0058] This simplified map of the robot's operating area can now be automatically supplemented with easily identifiable elements such as interior walls, doors, and prominent furnishings to create a simple floor plan of the apartment. Sensor data can serve as the basis for this (e.g., the aforementioned boundary lines, see [link]). Fig. 1 ), the robot's automatically generated subdivision of the work area into sub-areas and user input from previous user interactions. From this, the robot can now formulate hypotheses about the course of the interior walls and the cabinets in front of them, and finally display them on the map. In particular, the simplified representation described above can be used for this purpose. Fig. 9The described method of subdividing the area by successively dividing rectangles can be used. If the room names are known, for example, because they were named by the user, this can also be taken into account in the simplified map display to help the user find their way around more quickly. This can be done by displaying the corresponding room name or by sketching typical objects in a room. For example, in the bedroom, an object identified as a bed would also be (schematically) represented as a bed. To provide further points of reference for the user, the position of objects known to the robot, such as the robot's base station, can be plotted on the displayed map. If the robot is connected to a Wi-Fi network ( Wireless Local Area Network ) is connected, so he can approximate the position of the WLAN base station by analyzing the field strength ( Access Point) or other devices present in the wireless network and mark them on the map. If the robot has a camera, it can use image processing methods to identify individual objects such as a table or cabinet type and sketch them onto the map. For this purpose, an image database with sketches of typical furnishings can be used, for example. Other methods for locating and identifying objects, such as RFID tagging ( Radio frequency identification ), are known and will not be discussed further here.
[0059] In everyday life, a user places various demands on the robot. For example, it can clean the entire apartment, or just one room, such as the living room ( Fig. 3 , sub-area 300) or the cleaning of part of a room, such as the carpet in the living room ( Fig. 6, sub-area 303). The user will intuitively perceive this small area as a sub-area of the living room, which in turn is a sub-area of the entire apartment. This intuitive, hierarchical understanding of the apartment for the human user should be reflected in the subdivision and representation of the robot's operating area on a map. This will be illustrated below using the example apartment from Fig. 1 bis 7 explained.
[0060] To make it easy for the user to navigate the map created by the robot, a highly simplified floor plan is first displayed, as in Fig. 3 displayed for the user on an HMI. Further details can be shown as needed and at the user's request. For example, the user can view the simplified floor plan ( Fig. 3 The user can select living room 300 by tapping it on the map displayed via the HMI or by zooming in on the desired area. The corresponding map section will then be enlarged and further details displayed. By tapping again (or using other input methods such as mouse click, keyboard input, voice input, etc.), the user can select an area and choose an action, such as immediately cleaning the displayed area, using a planning function, or viewing further details.
[0061] Fig. 4 An example is shown in which the living room 300 is further subdivided according to the different floor coverings such as carpet (number 303) and tile flooring (number 302). In Fig. 5 The living room is further subdivided by identifying the dining area (320) with table and chairs as a difficult-to-access area. Fig. 6 The free area 310 was further subdivided into smaller, more regularly spaced sub-areas 311, 312, and 313. The choice and sequence of methods used for this subdivision can be combined as desired. If the user deploys the robot on different floors of a building, these floors can be logically integrated into a hierarchical subdivision of the robot's operating area and displayed accordingly. For example, the HMI can schematically display a house with its various floors. If the user selects a floor, for instance by tapping it, a map associated with that floor is displayed in its simplest form (similar to...). Fig. 3 (shown). In this view, the user can zoom in further as described above and / or give instructions to the robot. For example, a zoom gesture to zoom out will display the house view with the different floors again.
Claims
1. A method for automatically subdividing a map of a robot deployment area of an autonomous mobile robot (1); the method comprising: detecting obstacles and determining their size and position on the map by means of sensors arranged on the robot (1), analyzing the map with a processor to identify an area with a cluster of obstacles, wherein a cluster has at least two obstacles; and defining a first sub-area (320) by means of a processor, such that the first sub-area (320) contains an identified cluster, wherein at least one attribute that can influence the behavior of the mobile robot (1) can be assigned to the first sub-area (320), wherein the method is characterized in that the obstacles in a cluster are so close together that it is not possible to drive through the cluster in a straight line while maintaining a safety distance.
2. The method according to claim 1, wherein, in a cluster of obstacles, each obstacle has a neighboring obstacle that is no more than a specifiable maximum distance away from said obstacle.
3. The method of claim 1, in which analyzing the map with a processor to identify an area having a cluster of obstacles comprises: checking, for each of the detected obstacles, whether there is a neighboring obstacle that is no further away than a specifiable maximum distance; assigning the obstacle and the neighboring obstacle to the cluster if they are not already assigned to the cluster.
4. The method according to any one of claims 1 to 3, in which, for the detection of a cluster, only obstacles are taken into account which, individually, are each smaller than a specifiable maximum value.
5. The method according to any one of claims 1 to 4, in which a cluster is only identified and processed as such if it contains more than a specifiable minimum number of obstacles.
6. The method of claim 1, in which analyzing the map comprises: detecting that a straight-line passage of the robot (1) through the area is blocked by the obstacles based on the distances between the obstacles.
7. The method according to any one of claims 1 to 6, further comprising: associating the first sub-area (320) with a first attribute indicative of the property "difficult to pass"; storing the first sub-area (320) in the map along with the first attribute.
8. The method according to any one of claims 1 to 7, wherein the defining of a first sub-area (320) comprises: delimiting the first sub-area (320) by means of a rectangular polygon enclosing the cluster of obstacles, wherein the rectangular polygon has a first minimum distance from the obstacles.
9. The method according to claim 8, further comprising: checking whether at least one area exists which lies between the first sub-area (320) and another sub-area or between the first sub-area (320) and another obstacle, and whether the dimension of this area along a spatial direction falls below a minimum value; enlarging the first sub-area (320), such that that area is enclosed by the first sub-area.
10. The method according to any one of claims 1 to 9, further comprising: saving size and position of detected obstacles, wherein the analyzing of the map further comprises: calculating parameters of a probabilistic model based on the stored data on the size and position of detected obstacles, wherein the probabilistic model determines the probability of encountering an obstacle at a specific position; adjusting, based on the probability model, the sub-area with a cluster of obstacles in such a way that obstacles are located within this sub-area with a definable probability.
11. The method according to claim 10, wherein the parameters of the probabilistic model are based on data about the size and the position of obstacles, which were determined within a certain period of time and / or a certain number of robot deployments.
12. The method according to any one of claims 1 to 11, wherein the at least one attribute is selected from the group comprising: a priority, an expected processing time of the first sub-area, an expected contamination of the first sub-area, a soil type, a cleaning mode, an accessibility of the first sub-area, and a name of the first sub-area.
13. An autonomous robot (1) connected to an internal and / or external data processing system which is designed to execute a software program which, when executed by the data processing system, causes the robot (1) to carry out a method according to any one of claims 1 to 12.