Robot operation tool system and method for defining an operation area
By receiving sensors and event data in the robot operation tool system and determining the operation area characteristics and maps, the problem that robot operation tools in the prior art cannot effectively utilize area information, and the operation efficiency and accuracy are improved.
Patent Information
- Application Number
- CN202180028425.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-04-14
- Filing Date
- 2021-04-06
- Publication Date
- 2025-07-08
- Estimated Expiration
- 2041-04-06
AI Technical Summary
Existing robotic work tools cannot effectively utilize the design and size information of the work area, resulting in inefficient operation within the work area.
By introducing a communication device into the robot operation tool system, receiving sensor data and event data, and determining the characteristics and map of the operation area with the controller, it realizes accurate definition of the operation area.
Improves the operational efficiency and accuracy of robotic job tools in the work area, provides a more accurate map reflection, allowing better decision-making and path planning.
Smart Images

Figure CN115398370B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a robotic work tool system and a method for defining a working area in which a robotic work tool is subsequently intended to operate. Background Art
[0002] A robotic work tool is an autonomous robotic device for performing certain tasks, such as cutting lawn grass, demolishing an area, or cleaning a floor. A robotic work tool is typically controlled by defining an area, hereinafter referred to as the working area, in which the robotic work tool is intended to operate. The working area is defined by a perimeter enclosing the working area. The perimeter includes boundaries or limits that the robotic work tool is not intended to cross. A robotic work tool is typically configured to operate in a random pattern within the working area.
[0003] A robotic work tool typically does not know the design or dimensions of the working area in which it is intended to operate. A robotic work tool is typically configured to move within the working area until the robotic work tool encounters a boundary, perimeter, or obstacle of the working area. The robotic work tool is then configured to turn and continue moving in another direction until it encounters a new boundary, perimeter, or obstacle. Even though this typically provides a robotic work tool that operates within the working area in a sufficiently efficient manner, the inventors have recognized that a robotic work tool can operate within the working area in an even more efficient manner if knowledge of the design and dimensions of the area can be utilized. Summary of the Invention
[0004] With the introduction of communication devices within a robotic work tool system, the possibilities of what the robotic work tool system can perform have expanded. By utilizing different devices to perform different tasks within the robotic work tool system, the devices can be specialized for different things. For example, not all devices included in a robotic work tool system need to have heavy processing capabilities. A first device can be designed to collect data and transmit the collected data to a second device. The second device can process the received data and thereafter transmit the processing result back to the first device. The first device can thereafter use the received result for its continued operation. Thus, different devices can be combined into a system where each device can be specialized for different things, such that an improved system with greater capabilities is created.
[0005] After creative and insightful reasoning, the inventors of the various embodiments have recognized that communicatively coupled devices can be used within a robotic work tool system to achieve an understanding of the design and dimensions of a work area. By achieving such an understanding, the work area can be more precisely defined, and the robotic work tool can operate within the work area in a more efficient manner. Since the robotic work tool system has more knowledge of the work area, the robotic work tool system can more accurately reflect the work area in an improved map. Using the improved map, better decisions can be made regarding subsequent actions to be performed within the work area.
[0006] In view of the foregoing, therefore, an overall object of the aspects and embodiments described in the present disclosure is to provide a robotic work tool system that reflects a work area in an improved manner, in which a robotic work tool is subsequently intended to operate.
[0007] This overall object has been solved by the appended independent claims. Advantageous embodiments are defined in the appended dependent claims.
[0008] According to a first aspect, there is provided a robotic work tool system for defining a work area in which at least one robotic work tool is intended to operate.
[0009] In an exemplary embodiment, the robotic work tool system includes at least a controller. The at least one controller is configured to receive sensor data for pose estimation and event data associated with a plurality of events of at least one robotic work tool moving within the work area. The received sensor data and event data are temporally correlated with each other. The at least one controller is further configured to determine the locations of the plurality of events based on the received sensor data associated with the respective event data. Thereafter, the at least one controller is configured to determine features reflecting the work area by correlating the locations associated with the respective events with each other, and based on the determined features, to adjust the determined locations by comparing the respective determined locations for each determined feature. The at least one controller is configured to determine a map defining the work area based on the adjusted locations of the determined features.
[0010] In one embodiment, the sensor data and event data are received from the at least one robotic work tool moving within the work area.
[0011] In one embodiment, the at least one controller is further configured to control the operation of the at least one robotic work tool when operating in the work area based on the determined map. The at least one controller may be configured to control the operation of the at least one robotic work tool by determining a travel path within the work area based on the determined map related to the work area, and the at least one robotic work tool is intended to follow the travel path when operating in the work area.
[0012] In one embodiment, the at least one controller is further configured to transmit the determined map and / or the travel path to at least one of the robotic work tool and the visualization unit.
[0013] In one embodiment, the at least one controller is configured to adjust the position of the determined feature by finding outliers of the determined positions and removing the found outliers from the determined positions of the determined features.
[0014] In one embodiment, the at least one controller is configured to adjust the determined position of the determined feature by deviation estimation.
[0015] In one embodiment, the received sensor data for pose estimation includes at least one of position data, IMU data, and odometer data.
[0016] In one embodiment, the event data related to the events of the robotic work tool includes loop events, timer events, and status events.
[0017] In one embodiment, the at least one controller is configured to determine the features reflecting the work area by classifying the determined positions into different categories based on the received event data; and for each category, add the determined positions to a feature map, where the feature map corresponds to the corresponding feature.
[0018] In one embodiment, before determining the map related to the work area, the at least one controller is further configured to determine the features reflecting the work area by correlating the adjusted positions with each other based on the associated event data; and based on the determined features, adjust the determined positions by comparing the corresponding determined positions with each other for each determined feature.
[0019] In one embodiment, the robotic work tool system includes a robotic work tool. The robotic work tool may be a robotic lawn mower.
[0020] In one embodiment, the robotic work tool system includes a visualization unit, and the visualization unit is configured to display a determined map related to the work area. The visualization unit may be configured to receive user input from a user during the operation and interaction with the visualization unit, wherein the at least one controller may be configured to adjust the map related to the work area based on the received user input.
[0021] According to a second aspect, there is provided a method implemented by the robotic work tool system according to the first aspect.
[0022] In an exemplary embodiment, the method is performed by a robotic work tool system for defining a work area in which at least one robotic work tool is subsequently intended to operate. The method includes receiving sensor data for pose estimation and event data related to a plurality of events of at least one robotic work tool moving within the work area. The received sensor data and event data are temporally correlated with each other. The method further includes determining the locations of the plurality of events based on the received sensor data associated with the respective event data, and determining features reflective of the work area by correlating the locations associated with the respective events with each other. Thereafter, the method includes adjusting the locations of the determined features by comparing the respective determined locations with each other for each determined feature, and determining a map defining the work area based on the adjusted locations of the determined features.
[0023] In some embodiments, the method further includes controlling the operation of the at least one robotic work tool when operating within the work area based on the determined map. The step of controlling the operation of the at least one robotic work tool may further include determining a travel path within the work area based on the determined map defining the work area, which the at least one robotic work tool is intended to follow when operating within the work area.
[0024] In some embodiments, the method further includes transmitting the determined map and / or the travel path to at least one of the robotic work tool and the visualization unit.
[0025] In some embodiments, the step of adjusting the locations of the determined features includes finding outliers of the determined locations; and removing the found outliers from the determined locations of the determined features.
[0026] In some embodiments, the step of adjusting the locations of the determined features includes performing deviation estimation.
[0027] In some embodiments, the received sensor data for pose estimation includes at least position data, IMU data, and / or odometry data.
[0028] In some embodiments, the event data related to the events of the robotic work tool includes loop events, timer events, and status events.
[0029] In some embodiments, the step of determining the characteristics reflecting the work area further includes classifying the determined positions into different categories based on the received event data; and for each category, adding the determined positions to a feature map, where the feature map corresponds to the corresponding feature.
[0030] In some embodiments, before determining the map related to the work area, the method further includes determining updated characteristics reflecting the work area by correlating the adjusted positions with each other based on the associated event data; and adjusting the positions of the determined characteristics by comparing the corresponding determined positions with each other for each determined feature.
[0031] Some of the above embodiments eliminate or at least reduce the problems discussed above. By processing data related to the posture and events of the robotic work tool, the characteristics reflecting the work area can be determined. Based on the determined characteristics, the positions of the events can be adjusted so that they can be determined more accurately. When determining the map defining the work area, the adjusted positions can be used. Therefore, a robotic work tool system and method for improving the map defining the work area in which the robotic work tool subsequently intends to operate are provided. BRIEF DESCRIPTION OF THE DRAWINGS
[0032] With reference to the accompanying drawings, these and other aspects, features, and advantages will be apparent and elucidated from the following description of various embodiments, in which:
[0033] Figure 1 A schematic overview of a robotic work tool in a work area is shown;
[0034] Figure 2 A schematic diagram of a robotic work tool system is shown;
[0035] Figure 3 An example of the processed data is shown;
[0036] Figure 4 Examples of original loop values and filtered loop values are shown;
[0037] Figure 5 An example embodiment of the determined map is shown;
[0038] Figure 6 A schematic overview of a robotic work tool is shown;
[0039] Figure 7A flowchart showing an example method performed by a robotic work tool system; and
[0040] Figure 8 A schematic diagram of a computer-readable medium is shown. DETAILED DESCRIPTION
[0041] The disclosed embodiments will now be described more fully hereinafter with reference to the accompanying drawings, in which certain embodiments of a robotic work tool system are shown. However, this robotic work tool system may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete and will fully convey the scope of the robotic work tool system to those skilled in the art. Like numbers always indicate like elements.
[0042] In one aspect thereof, the present disclosure relates to a robotic work tool system for defining a work area in which at least one robotic work tool is subsequently intended to operate. Figure 1 A schematic diagram of a robotic work tool 100 in such a work area 105 is shown. As will be appreciated, the schematic diagram is not drawn to scale. If the work area 105 is a lawn and the robotic work tool 100 is a robotic lawn mower, the work area 105 is the area to be mowed by the robotic work tool 100. As Figure 1 shown, the work area 105 is surrounded by a work area perimeter 150 that sets the boundary of the work area 105, i.e., defines the boundary of the work area 105. The robotic work tool 100 is intended to operate within the work area 105 and is kept within this area due to the defined work area perimeter 150. By defining the work area perimeter 150, the robotic work tool 100 will not cross the perimeter and will only operate within the enclosed area (i.e., the work area 105). By defining the work area 105, the robotic work tool system will have knowledge of the work area perimeter 150 and the area within the work area perimeter 150.
[0043] As Figure 1 shown, trees and flower beds may be located within the work area 105. These objects cover portions of the work area 105 that the robotic work tool 100 cannot or should not operate on. Even Figure 1The objects shown therein are bushes and flower beds, and other obstacles and objects may also be located within the operation area 105. Examples of such objects can be paths, bushes, tool sheds, ponds, etc. These objects, or rather, the areas covered by these objects, can be referred to as stay-out areas 120. The stay-out area 120 is an area excluded from the operation area 105 where the robotic operation tool 100 should operate. The stay-out area 120 can be used to protect, for example, flower beds and bushes, or to prevent the robotic operation tool 100 from traveling into restricted areas such as ponds and areas that may damage the robotic operation tool 100. Therefore, the stay-out area 120 is an area within the operation area 105 that should not be entered by the robotic operation tool 100 for different reasons. Therefore, when defining the operation area 105, it is important that, in order to precisely define the operation area 105, all obstacles or stay-out areas are also covered.
[0044] Reference will now be made to Figure 2 describe the present disclosure. Figure 2 A robotic operation tool system 200 is shown. The robotic operation tool system 200 includes at least one controller 210. As can be understood, the robotic operation tool system 200 may include a plurality of controllers 210 communicatively coupled to each other. By combining multiple controllers 210, even higher processing power can be achieved.
[0045] The robotic operation tool system 200 will be mainly described in general terms of the robotic operation tool system 200 that defines the operation area 105, in which at least one robotic operation tool 100 is subsequently intended to operate, such as a lawn. However, it should be understood that the robotic operation tool system 200 described herein can be implemented with any type of autonomous machine that can perform desired activities within a desired operation area. Examples of such types of autonomous machines include, but are not limited to, cleaning robotic operation tools, polishing operation tools, repair operation tools, surface treatment operation tools (for indoor and / or outdoor), and / or demolition operation tools, etc.
[0046] As Figure 2 shown, the at least one controller 210 can be communicatively coupled to the robotic operation tool 100 through a wireless communication interface. Additionally or alternatively, the wireless communication interface can be used to communicate with other devices including a wireless communication interface and a controller, such as a server, a personal computer or a smart phone, a charging station, a remote control, other robotic operation tools or any remote device. Just to name a few examples, instances of such wireless communication are Global System for Mobile Communications (GSM), Long-Term Evolution (LTE), and 5G or New Radio (5G NR). In some embodiments, the robotic work tool system 200 may include a robotic work tool 100. In an advantageous embodiment, the robotic work tool 100 may be a robotic lawn mower.
[0047] In one embodiment, the at least one controller 210 is implemented as software, for example remotely implemented as software in a cloud-based solution. In another embodiment, the at least one controller 210 may be implemented as a hardware controller. The at least one controller 210 may be implemented using any suitable, publicly available processor, computing device, virtual computer, cloud computer, or programmable logic circuit (PLC). The at least one controller 210 may be implemented using instructions that implement hardware functions, for example, by using executable computer program instructions in a general or special purpose processor, the executable computer program instructions may be stored on a computer-readable storage medium (disk, memory, etc.) for execution by such a processor. The controller 210 may be configured to read instructions from the memory 220 and execute these instructions to define a work area in which at least one robotic work tool is subsequently intended to operate. The memory may be implemented using any known technology for computer-readable memory, such as ROM, RAM, SRAM, DRAM, FLASH, DDR, SDRAM, or some other memory technology.
[0048] A first embodiment according to a first aspect will now be described. The at least one controller 210 is configured to receive sensor data for pose estimation and event data related to a plurality of events of at least one robotic work tool 100 moving within the work area 105. The received sensor data and event data are temporally correlated with each other. The sensor data and event data may be received from at least one robotic work tool 100 moving within the work area 105. In the case where the work area 105 is a very large area, it may be advantageous to receive sensor data and event data from a plurality of robotic work tools 100. This may reduce the time required to define the work area 105.
[0049] Sensor data for pose estimation can be any data that can be used to estimate the pose of the at least one robotic work tool 100. Pose relates to the position and / or orientation of the at least one robotic work tool 100, and thus, sensor data can be any data that can be used to estimate the pose of the at least one robotic work tool 100. External orientation and translation can be used interchangeably to refer to the pose of the robotic work tool 100. Sensor data can include at least one of position data, inertial measurement unit (IMU) data, and odometry data. Thus, by receiving sensor data for pose estimation, the position of the at least one robotic work tool 100 can be determined.
[0050] Event data related to an event of the robotic work tool 100 is data that can be associated with a certain action related to the robotic work tool 100. Event data is derived from at least one sensor of the at least one robotic work tool 100. Event data can include, for example, loop events, timer events, lift events, collision events, GNSS events, real-time kinematic (RTK) events, and status events. Loop events, interchangeably referred to as boundary events, refer to events when the robotic work tool 100 passes over a loop wire (i.e., a boundary wire). Status events, interchangeably referred to as state events, refer to events when the state of the robotic work tool 100 changes. Examples of such events can be a change from charging to non-charging, stop, and error. Collision events refer to events when a collision occurs, i.e., if the robotic work tool 100 collides with an object such as a tree, a rock, etc. Thus, a collision event may occur when the at least one robotic work tool 100 enters a stop area 120. Lift events refer to events when the robotic work tool 100 is lifted from the ground. Timer events can be based on global navigation satellite system (GNSS) events and can be sent, for example, every three GNSS events, which can be every three seconds. When the at least one robotic work tool 100 is charging, timer events can be sent less frequently, for example, only once every five minutes. RTK events refer to events when an RTK GNSS event occurs.
[0051] After the at least one controller 210 has received the sensor data and the event data, the at least one controller 210 is configured to determine the locations of the plurality of events based on the received sensor data associated with the respective event data. The at least one controller 210 is configured to determine features reflecting the work area 105 by correlating the locations associated with the respective events with each other. Thereafter, the at least one controller 210 is configured to adjust the determined locations by comparing the respective determined locations with each other for each determined feature based on the determined features. Thereafter, the at least one controller 210 is configured to determine a map defining the work area 105 based on the adjusted locations of the determined features.
[0052] Accordingly, the above-described robotic work tool system 200 receives sensor data from at least one robotic work tool 100 that moves within an area where a map is to be determined. Since the map is determined based on data received from the actual area, the reliability of the map can be ensured. The at least one controller 210 processes the received data and, based on the result of the processing, determines a map with high precision. By processing data related to the posture and events of the robotic work tool 100, the characteristics of the work area 105 can be determined. Based on the determined characteristics, the position of the event can be adjusted so that the position can be determined more accurately. When determining the map that defines the work area 105, the adjusted position can be used. Accordingly, the provided robotic work tool system 200 can provide a reliable map that defines the work area 105 with high accuracy in a cost-effective manner. By introducing the above-described proposed robotic work tool system 200, the previously described drawbacks are eliminated or at least reduced. With the provided robotic work tool system 200, the received data is processed in a manner that can achieve a higher-precision map of the work area 105 based on relatively simple data.
[0053] In one embodiment, the received sensor data for posture estimation may include at least one of position data, IMU data, and odometer data. The at least one controller 210 may be configured to determine the position of the plurality of events by first determining the forward direction of the at least one robotic work tool 100. The forward direction of the robotic work tool 100 may be determined based on at least one of the received position data, IMU data, and odometer data received from the corresponding at least one robotic work tool 100. Thereafter, based on the received odometer data and the determined forward direction of the at least one robotic work tool 100, the position of the at least one robotic work tool 100 may be determined. The determined position of the at least one robotic work tool 100 may be associated with the corresponding event data. In this way, the optimized position of the plurality of events can be determined as an uncertainty, and the error associated with the sensor data can be reduced.
[0054] According to an example implementation among the previously described implementations, the forward direction of movement and its associated accuracy can be received by the at least one controller 210. This data can be sourced from the GNSS module of the at least one robotic work tool 100. This received data does not have to be the same as the forward direction of the robotic work tool 100, but it should be the same when the robotic work tool 100 moves forward. Additionally, the received IMU data of the same at least one robotic work tool 100 can report a yaw value that may have drift and the absolute forward direction is not known. The IMU of the at least one robotic work tool 100 can have runtime calibration that will offset most of the drift. Calibration can be performed when the received data indicates that the IMU is not moving. The offset of the IMU can be estimated by modeling the offset as a piecewise linear (PWL) function.
[0055] In a first step, the received data can be partitioned into smaller data sets. When a large time gap in the received data can be detected, a new data set will be created. This time gap can be, for example, approximately 30 seconds. Thereafter, it can be detected when the robotic work tool 100 is stationary. Since it can be assumed that the forward direction will not change during those periods, this data can be processed separately. In a second step, the gyro drift of the IMU can be compared with the wheel odometer forward direction. If there is a large deviation between the two, it can be assumed that the IMU is not calibrated and a baseline drift can be calculated. Thereafter, a Kalman filter can be used to perform a pre-estimation. Then the output from the Kalman filter can be fed into a least squares minimizer, giving the final drift of the gyroscope. Finally, the forward direction of the robotic work tool 100 can be calculated by adding this drift to the gyroscope. Figure 3 An example of the output of the forward direction optimizer and the input data is shown.
[0056] Thereafter, the position of the at least one robotic work tool 100 can be determined by fusing the determined forward direction of the at least one robotic work tool 100 with the received odometry data. For each data point, odometry x data, y data, and forward direction can be received. In a first step, an incremental movement can be determined based on this data. The incremental movement reference frame can be transformed to the robotic work tool 100 rather than the global reference frame. The Δx movement is the movement in the direction of the robotic work tool 100, and the Δy movement is the lateral movement of the robotic work tool 100. As previously mentioned, by looking for larger time steps in the data, the received data can be divided into smaller data sets. Thereafter, the incremental odometry data can be recalculated for the global reference frame by using the previously determined forward direction. The incremental odometry data can be fused with the weighted GNSS values. The result is the best position, which can remove GNSS noise. The determined optimized position can thereafter be associated with the corresponding event data.
[0057] As previously mentioned, the at least one controller 210 is also configured to determine the characteristics of the work area 105 by correlating the positions associated with the respective events with each other. Thus, all positions or at least a major part of the positions associated with a certain event can be correlated with each other. The characteristics can be described as the properties of the work area 105. Examples of the so-called characteristics are map features, loop features, charging station features, collision cluster features, and gradient features. For example, map features can reflect the boundaries of the work area 105 and the contours of obstacles within the work area 105, such as the stop area 120 and Figure 1 the flower beds in it. The boundaries and obstacles within the work area 105 can be converted into a map by using the collisions and wire channels formed by the at least one robotic work tool 100 moving within the work area 105. Map features can also find the guide lines.
[0058] In one exemplary embodiment, the at least one controller 210 can be configured to determine the characteristics of the work area 105 by classifying the determined positions into different categories based on the received event data. For example, the determined positions can be classified into collisions, loop channels, and timer points. Points where the at least one robotic work tool 100 does not move can be filtered out. Points with low accuracy can also be filtered out. Thereafter, the at least one controller 210 can be configured to add the determined positions to the feature map for each category. Thus, a feature map can be created for each category. The feature map corresponds to the respective feature and compiles the information of a certain feature in an appropriate format. According to one embodiment, the feature map can be described as a matrix of x positions, y positions, and z positions. The feature map can be, for example, a bitmap. Alternatively, the feature map can be a vector map, or a vectorized information image.
[0059] The at least one controller 210 may be configured to add the determined locations to the feature map in different ways. According to one example implementation, the at least one controller 210 may be configured to add the determined locations to the feature map by adding 2D Gaussian functions at each of the determined locations. This may be performed at a determined resolution. The number of feature maps may depend on the available event data, but according to one example implementation, four feature maps may be created. The four feature maps may be a timer map, a collision map, a loop map, and a boundary map, where the boundary map is the sum of the collision map and the loop map. The created feature maps may relate to one type of sensor data, but may also be a combination of multiple sensor data. For some classes of sensor data, a 2D feature map or image may be created as the sum of 2D radial basis functions related to locations. Alternatively, a 2D feature map or image may be created as the sum of any 2D functions that may be summed to the feature map or image. For some classes of sensor data, or combinations of sensor data, where the fusion value is a real-valued sensor value, a feature map may be created that reflects the value or fusion value at each location in the feature map or image. Alternatively, for some classes of sensor data or combinations of sensor data, where the fusion value is a complex value or vector, a bit may be created that reflects the complex value or vector at each location in the bitmap / image.
[0060] Thereafter, regardless of how the determined locations are added to the feature map, the at least one controller 210 may be configured to use filters or algorithms to refine the feature map to determine the corresponding features of the work area 105. This may be done in several different ways and different combinations, and the examples described below are not limiting in any way. The examples described herein merely illustrate examples of filters and combinations.
[0061] According to one example implementation, a Gaussian filter may be run on the determined timer map, which may be used as a normalization filter on other maps. The normalization filter may amplify areas where the at least one robotic work tool 100 does not frequently occur. A Sobel filter on the timer map may be used to create a Sobel map. As is well known in the art, a Sobel filter may be used to create an image that emphasizes edges. The collision map, loop map, and boundary map may alternatively or additionally be created based on complex Gaussians. The magnitude of the Gaussian may be e^(1jθ), where θ is the forward direction of the at least one robotic work tool 100. By using this method, narrow passages may be better detected in the map.
[0062] When generating a map, each map corresponds to a corresponding feature of the work area 105, and boundaries and obstacles can be found. A timer map may be beneficial for robust internal and external detection of the work area 105. By looking at this amplitude, a rough estimate of the inside and outside can be performed. As described above, the Sobel map may be good at finding edges, which is robust but has low precision. The boundary map can give better precision than the Sobel map, but may be less robust. A complex boundary map may be better than the boundary map on narrow passages. The collision and loop event maps can be used to find obstacles within the work area 105.
[0063] According to an example implementation, a Watershed filter can be used on the boundary map and the Sobel map to find the inside of the work area 105. Watershed is a classical algorithm for segmentation, i.e., for separating different objects in an image. Before the Watershed filter can be applied, markers defining the inner and outer regions are found. First, the minimum peaks can be found in the Sobel map. The minimum peaks in the Sobel map usually exist at points far from the boundary, either inside or outside the work area 105. Peaks where the timer map is below 5% of its maximum value can be retained and marked as external, and peaks above 20% of the maximum value can be retained and marked as internal. The edges of the map, i.e., the edges of the work area 105, can also be marked as external. The markers and the Sobel map can be fed into the Watershed algorithm, and a first estimate of the boundary can be found. Then, this estimate can be filtered in a skeletonization algorithm. As is known in the art, the skeletonization algorithm can be used to emphasize the geometric and topological properties of a shape, such as its connectivity, topology, length, direction, and width. The skeletonization algorithm can be used for both the inner region and the outer region of the work area 105. For smaller objects, such as loop obstacles, collision obstacles, and boundary obstacles, all the maximum peaks can be found in different maps. The maximum peaks can be used as the input to the Watershed algorithm and then used together with the Sobel filter. This can give a good estimate of the shape and size of the obstacles in the work area 105. By using the Sobel filter, the edges of the obstacle 120 can be set where the Sobel filter gives the maximum value. Feature maps can also be used to find guide lines within the work area 105.
[0064] According to one embodiment, the step of using a filter to refine the feature map to determine the corresponding features of the work area 105 may include four steps. The first step includes finding the robustness of the inside and outside through a level filter on the timer map. The second step includes running a watershed algorithm on the Sobel map and using the result from the first step as input. The third step includes running a skeletonization algorithm on the result from the second step. This can be used as the input for the next step, i.e., the fourth step. The fourth step includes running a watershed algorithm on the complex event map.
[0065] The goal of the loop feature map is to create a map of loop values over the work area 105. The loop values can generally be rather flat over the work area 105 except at the edges of the boundary lines. At the edges, the loop values may change rapidly from the highest value down to negative values. Thus, the first step can be to identify the loop wire channels and remove the portions close to the wire channels with high derivatives. The portions with high derivatives can be replaced with values from a peak follower. Figure 4 Examples of the original loop values and the filtered loop values are shown. A loop filter can be applied and a Gaussian map can be created. For this map, the levels can be linearly scaled between 0 and pi and used as the complex levels for each Gaussian. After creating the map, an inverse process of mapping the values from 0 back to pi to the loop values can be performed. Thereafter, the map includes the estimated loop values over the entire work area 105 except at the edges where the loop filter was applied.
[0066] Regardless of how the features have been determined, the at least one controller 210 can thereafter be configured to adjust the determined positions based on the determined features by comparing the corresponding determined positions with each other for each determined feature. Thus, the determined positions of the at least one robotic work tool 100 can be adjusted according to the positions of the determined features. The positions of the individual features can be compared with each other, and for example, a statistical analysis can be performed to determine which positions can be adjusted. Two embodiments for adjusting the determined positions will be described below.
[0067] In one embodiment, the at least one controller 210 may be configured to adjust the determined location of the determined feature by finding outliers of the determined location and removing the found outliers from the determined location of the determined feature. An outlier is a data point that is significantly different from other observations, and outliers can be found in different ways. An example of a method that can be used to find outliers may be the RANSAC (Random Sample Consensus) method. As is well known in the art, when outliers are to be given without affecting the estimated value, RANSAC is an iterative method for estimating the parameters of a mathematical model from a set of observed data containing outliers. Therefore, RANSAC can also be interpreted as an outlier detection method. Other examples of methods for finding outliers may be MSAC (M-estimator Sample And Consensus), MLESAC (Maximum Likelihood Estimation Sample And Consensus), MAPSAC (Maximum A Posteriori Sample Consensus), and KALMANSAC.
[0068] In another embodiment, the at least one controller 210 may be configured to adjust the determined location of the determined feature by bias estimation. According to this embodiment, after all features have been determined, a bias estimator may be run. An estimator is a rule for calculating an estimate of a given quantity based on observed data, and the bias or bias function of an estimator is the difference between the expected value of the estimator and the true value of the parameter being estimated. Therefore, according to this embodiment, the bias estimator can find data points that are related to each other and pull them together, thereby reducing the error in the data. The goal of the bias estimator is to move or adjust the data points, i.e., the determined locations, and remove GNSS errors. This can be performed by determining a cost map for all features and then attempting to minimize the cost by adding a piecewise linear bias to all the data. As previously mentioned, the estimated location of the at least one robotic work tool 100 can be adjusted according to the location of the determined features. Since the location of the robotic work tool 100 is continuous in time, points that are close to each other in time can be connected to the wheel odometer. When the bias estimator corrects one data point outside the boundary map, all other points close to that point will also move.
[0069] Figure 5 An example is shown when bias estimation has been used. Figure 5 The squares in show the boundaries of the work area 105. The points scattered around the boundaries represent uncorrected points, i.e., the points before the bias estimation is performed. Since many points are outside the boundary map, the bias estimator will attempt to move them to be included in the work area 105, i.e., inside. Then, all other points that are close in time will also be adjusted. Based on the adjusted locations of the determined features, a map defining the work area 105 can be determined. The crosses show the data points after the bias estimator has been performed. Therefore, Figure 5The data points shown as crosses in the figure indicate the adjusted points. All of the previously described feature maps can be used as inputs to the deviation estimator, not just the boundary map.
[0070] In some embodiments, the at least one controller 210 may be configured to repeat the steps of determining the characteristics of the work area 105 and adjusting the determined position, but based on the previously adjusted position. Thus, the at least one controller 210 may be configured to determine the characteristics of the work area 105 by correlating the adjusted positions with each other based on the associated event data; and then adjust the determined position based on the determined characteristics by comparing the corresponding determined positions with each other for each determined characteristic. These steps may be repeated several times. However, it is generally preferred to repeat the deviation estimation twice, as further repetitions generally only give minor improvements. If the robotic work tool system 200 proposed herein is to be described in a simplified manner according to these embodiments, the at least one controller 210 may be described as being configured to receive data. Based on the received data, a position may be determined. The position may be determined based on, for example, wheel odometer data, position data, and IMU data. Based on the events and the received sensor data, the characteristics of the work area 105 may be determined. The determined position may be adjusted based on the previously determined characteristics, for example, by deviation estimation. Thereafter, the steps of determining the characteristics may be repeated, but based on the adjusted position. Then, the determined position may be adjusted again based on the newly determined characteristics. Finally, a map may be determined.
[0071] In some embodiments, the at least one controller 210 may also be configured to control the operation of at least one robotic work tool 100 within the work area 105 based on the determined map. It will be appreciated that the robotic work tool 100 whose operation can be controlled based on the determined map does not have to be the same robotic work tool 100 associated with the received sensor data and event data. The at least one controller 210 may be configured to receive sensor data and event data related to at least one robotic work tool 100, and may be configured to control the operation of other robotic work tools 100. However, it will be appreciated that the at least one robotic work tool 100 related to the sensor data and event data may be the same robotic work tool 100 as the at least one robotic work tool 100 controlled by the at least one controller 210.
[0072] The at least one controller 210 may be configured to control the operation of the at least one robotic work tool 100 in a number of different ways. According to one example embodiment, the at least one controller 210 may be configured to determine a travel path within the work area 105 that the at least one robotic work tool 100 is intended to follow when operating within the work area 105 based on a determined map associated with the work area 105. According to another example embodiment, the at least one controller 210 may be configured to determine a travel pattern for a plurality of robotic work tools 100 that are intended to operate in the work area 105 simultaneously. This can be used, for example, to ensure that the entire work area 105 is operated, or if the plurality of robotic work tools 100 are to operate different portions of the work area 105.
[0073] In some embodiments, the at least one controller 210 may also be configured to transmit the determined map to at least one of the robotic work tool 100 and the visualization unit. Alternatively or additionally, the at least one controller 210 may also be configured to transmit the travel path to at least one of the robotic work tool 100 and the visualization unit.
[0074] In some embodiments, the robotic work tool system 200 may include a visualization unit. The visualization unit may be configured to display the determined map associated with the work area 105. Figure 2 An example of a robotic work tool system 200 including a visualization unit 230 is shown. In Figure 2 the visualization unit 230 is shown as being located in the same device as the at least one controller 210. However, it can be understood that the visualization unit 230 may be located in another device separate from the at least one controller 210. In one embodiment, the visualization unit 230 may be configured to receive user input from a user during the operation and interaction with the visualization unit 230, wherein the at least one controller 210 may be configured to adjust the map associated with the work area 105 based on the received user input.
[0075] As previously mentioned, the robotic work tool system 200 may include the robotic work tool 100. Figure 6 An example of the robotic work tool 100 is illustrated. The robotic work tool 100 may be, for example, a robotic lawn mower. Figure 6A robotic work tool 100 is shown having a body and a plurality of wheels 130. The wheels 130 of the robotic work tool 100 are used to show that the robotic work tool 100 is movable. In other embodiments, the wheels 130 may be implemented as, for example, tracks. The robotic work tool 100 may include a controller 110, such as a processor, which is configured to control the operation of the robotic work tool 100. The robotic work tool 100 may also include a memory 120, or a computer-readable medium, which is configured to carry instructions that, when loaded into the controller 110, control the operation of the robotic work tool 100.
[0076] Also as Figure 6 shown, the robotic work tool 100 includes at least one sensor unit 140. The sensor unit 140 may be configured to receive data for attitude estimation of the robotic work tool 100. The sensor unit 140 may include a positioning unit configured to receive position data or a positioning signal. The positioning unit may include a satellite signal receiver, which may be a Global Navigation Satellite System (GNSS) satellite signal receiver. An example of such a system is the Global Positioning System (GPS). The positioning unit may be configured to use, for example, Real-Time Kinematic (RTK) positioning. In advantageous embodiments, the at least one positioning unit may use RTK-GNSS positioning. The RTK-GNSS system is based on satellite communication. The at least one sensor unit 140 may be connected to the at least one controller 210 of the robotic work tool system 200 such that the controller 210 can estimate and determine the attitude of the robotic work tool 100.
[0077] In some embodiments, the at least one sensor unit 140 may further include a deduced reckoning navigation sensor for providing signals for deduced reckoning navigation, also known as dead reckoning. Examples of such deduced reckoning navigation sensors are odometers, IMUs, and compasses. These may include, for example, wheel tick counters, accelerometers, and gyroscopes. Additionally, visual odometry may be used to further enhance the accuracy of dead reckoning.
[0078] The robotic work tool 100 may also include at least one event unit 160. The at least one event unit 160 may be configured to collect the sensed event data. The collected sensed input data may represent an event of the robotic work tool 100. The at least one event unit 160 may be configured to collect the sensed input data while the robotic work tool 100 moves within the work area 105. The collected sensed event data may be obtained continuously by the at least one event 160 or when something happens to the robotic work tool 100. The collected event data may be, for example but not limited to, circuit data, timer data, load data, position data, collision data, etc.
[0079] For example, the at least one event unit 160 may include a collision sensor. The collision sensor may be configured to detect a collision when causing the robotic work tool 100 to move within the work area 105. Information about the detected collision may be transmitted to the at least one controller 120. The collision sensor 160 may be configured to detect the direction of movement of the chassis relative to the body of the robotic work tool 100. The movement indicates a collision. The movement may also indicate a lift of the robotic work tool 100. Thus, the collision sensor may detect the direction of movement in any direction.
[0080] The robotic work tool system 200 presented herein provides a way to determine a map that accurately delimits the work area 105 in a reliable and cost-effective manner. The robotic work tool system 200 makes it possible to determine a map delimiting the work area 105 based only on sensor data and event data related to at least one robotic work tool 100 moving within the work area 105 to be delimited. Thus, the provided robotic work tool system 200 can determine an accurate map of the work area 105 based on relatively simple data.
[0081] According to a second aspect, there is provided a method implemented in the robotic work tool system 200 according to the first aspect. The method will be described with reference to Figure 7 be described.
[0082] In one embodiment, the method 700 may be executed by the robotic work tool system 200 to delimit a work area 105 in which at least one robotic work tool 100 subsequently intends to operate. As Figure 7As shown, method 700 begins at step 710: receiving sensor data for pose estimation and event data related to multiple events of at least one robotic work tool 100 moving within work area 105. The received sensor data and event data are temporally correlated with each other. The received sensor data may include at least one of position data, IMU data, and odometry data. The event data related to the events of the at least one robotic work tool 100 may include loop events, timer events, and status events.
[0083] Method 700 continues to step 720: determining the locations of the multiple events based on the received sensor data associated with the respective event data. Thereafter, method 700 continues to step 730: determining features reflective of work area 105 by correlating the locations associated with the corresponding events with each other. This step 730 may also include step 735: classifying the determined locations into different categories based on the received event data, and step 740: adding the determined locations to a feature map for each category. The feature map may correspond to the respective features.
[0084] After features reflective of work area 105 have been determined, method 700 continues to step 750: adjusting the locations of the determined features by comparing the respective determined locations with each other for each determined feature. The step 750 of adjusting the locations of the determined features may also include step 755 and step 760. Step 755 includes finding outliers of the determined locations, and step 760 includes removing the found outliers from the determined locations of the determined features. Additionally or alternatively, method 700 may also include step 765 of performing a deviation estimation. According to some embodiments, the method further includes steps 770 and 775. Step 770 includes determining updated features reflective of work area 105 by correlating the adjusted locations with each other based on the associated event data. Step 775 includes adjusting the locations of the determined features by comparing the respective determined locations with each other for each determined feature. According to some embodiments, these two steps (steps 770 and 775) may be repeated multiple times.
[0085] When the locations of the determined features have been adjusted, method 700 continues to step 780: determining a map defining work area 105 based on the adjusted locations of the determined features.
[0086] According to some embodiments, method 700 may further include step 785: operating at least one robotic work tool 100 within work area 105 based on the determined map control. The step 785 of operating at least one robotic work tool 100 may include, for example, step 790: determining a travel path within work area 105 based on the determined map defining work area 105, which at least one robotic work tool 100 is intended to follow when operating within work area 105.
[0087] In some embodiments, method 700 may further include step 795: transmitting the determined map and / or the travel path to at least one of robotic work tool 100 and the visualization unit.
[0088] With the proposed method 700, a map accurately defining work area 105 can be determined in a reliable and cost-effective manner. Method 700 enables the determination of a map defining work area 105 based only on sensor data and event data associated with at least one robotic work tool 100 moving within work area 105 to be defined. Thus, the provided method 700 can determine an accurate map of work area 105 based on relatively simple data.
[0089] Figure 8 A schematic diagram of a computer-readable medium is shown, which is configured to carry instructions 810 that, when loaded into a controller such as a processor, execute the method or process according to the embodiments disclosed above. In this embodiment, computer-readable medium 800 is data disk 800. In one embodiment, data disk 800 is a magnetic data storage disk. Data disk 800 is arranged to be connected to or within a reading device and read by the reading device for loading the instructions into the controller. One such example of a reading device in combination with one (or several) data disks 800 is a hard disk drive. It should be noted that the computer-readable medium may also be other media, such as optical disks, digital video disks, flash memory, or other commonly used memory technologies. In this embodiment, data disk 800 is a type of tangible computer-readable medium 800.
[0090] The instructions 810 can also be downloaded to a computer data reading device, such as controller 210 or other devices capable of reading computer-encoded data on a computer-readable medium, by including the instructions 810 in a computer-readable signal transmitted via a wireless (or wired) interface (such as via the Internet) to the computer data reading device for loading the instructions 810 into the controller. In this embodiment, the computer-readable signal is a type of non-tangible computer-readable medium 800.
[0091] References to computer programs, instructions, code, etc. should be understood to cover software or firmware for programmable processors, such as the programmable content of a hardware device, whether instructions for a processor or configuration settings for a fixed function device, gate array, programmable logic device, etc. Those skilled in the art who benefit from the teachings presented in the above description and the associated drawings will envision modifications and other variations of the described embodiments. Accordingly, it should be understood that the embodiments are not limited to the specific example embodiments described in this disclosure, and that modifications and other variations are intended to be included within the scope of this disclosure. Further, although specific terms may be used herein, they are used only in a general and descriptive sense and not for purposes of limitation. Thus, those skilled in the art will recognize many variations to the described embodiments that will still fall within the scope of the appended claims. As used herein, the term "comprising" or "including" does not exclude the presence of other elements or steps. Additionally, although the individual features may be included in different claims, these features may be advantageously combined, and including the different claims does not imply that the combination of features is not feasible and / or disadvantageous. Further, a singular reference does not exclude a plural reference.
Claims
1. A robotic work tool system (200) for defining a work area (105) in which at least one robotic work tool (100) is subsequently intended to operate, wherein, The robot operation tool system (200) includes at least one controller (210), and the at least one controller is configured to: - Receive sensor data for pose estimation and event data related to a plurality of events of the at least one robot operation tool (100) moving within the operation area (105), wherein the received sensor data and event data are temporally correlated with each other; - Determine the positions of the plurality of events based on the received sensor data associated with the corresponding event data; - Determine the characteristics reflecting the operation area (105) by correlating the positions associated with the corresponding events with each other; - Adjust the determined positions based on the determined characteristics by comparing the corresponding determined positions with each other for each determined characteristic; - Determine a map defining the operation area (105) based on the adjusted positions of the determined characteristics; - Adjust the determined positions by deviation estimation, wherein the deviation estimation is performed by determining a cost map for all characteristics and then attempting to minimize the cost by adding piecewise linear deviations to all data.
2. The robotic work tool system (200) according to claim 1, wherein, Receive the event data and the sensor data for pose estimation from the at least one robot operation tool (100) moving within the operation area (105).
3. The robot operation tool system (200) according to claim 1, wherein, The at least one controller (210) is further configured to control the operation of the at least one robot operation tool (100) operating within the operation area (105) based on the determined map.
4. The robot operation tool system (200) according to claim 3, wherein, The at least one controller (210) is configured to control the operation of the at least one robot operation tool (100) by: - Determine a travel path within the operation area (105) based on the determined map related to the operation area (105), and the at least one robot operation tool (100) intends to follow the travel path when operating within the operation area (105).
5. The robotic work tool system (200) according to any one of claims 1 to 4, wherein, The at least one controller (210) is further configured to: - Transmit the determined map and / or the travel path to at least one of the robot operation tool (100) and the visualization unit (230).
6. The robotic work tool system (200) according to any one of claims 1 to 4, wherein, The at least one controller (210) is configured to adjust the position of the determined characteristic by finding outliers of the determined positions and removing the found outliers from the determined positions of the determined characteristics.
7. The robotic work tool system (200) according to any one of claims 1 to 4, wherein, The received sensor data for the pose estimation includes at least one of position data, IMU data, and odometer data.
8. The robotic work tool system (200) according to any one of claims 1 to 4, wherein, The event data related to the events of the robot operation tool (100) includes loop events, timer events, and status events.
9. The robotic work tool system (200) according to any one of claims 1 to 4, wherein, The at least one controller (210) is configured to determine the characteristics reflecting the operation area (105) by: - Classify the determined positions into different categories based on the received event data; And - For each category, add the determined positions to a feature map, wherein the feature map corresponds to the corresponding feature.
10. The robotic work tool system (200) according to any one of claims 1 to 4, wherein, Before determining the map associated with the operation area (105), the at least one controller (210) is further configured to: - Determine the characteristics reflecting the operation area (105) by correlating the adjusted positions with each other based on the associated event data; and - Adjust the determined positions based on the determined characteristics by comparing the corresponding determined positions with each other for each determined characteristic.
11. The robotic work tool system (200) according to any one of claims 1 to 4, wherein, The robotic work tool system (200) includes the robotic work tool (100).
12. The robotic work tool system (200) according to any one of claims 1 to 4, wherein, The robotic work tool (100) is a robotic lawn mower.
13. The robotic work tool system (200) according to any one of claims 1 to 4, wherein, The robotic work tool system (200) includes a visualization unit (230), and wherein the visualization unit (230) is configured to display the determined map associated with the operation area (105).
14. The robotic work tool system (200) according to claim 13, wherein, The visualization unit (230) is configured to receive user input from the user during the operation and interaction with the visualization unit (230), wherein the at least one controller (210) is configured to adjust the map associated with the operation area (105) based on the received user input.
15. A method (700) for defining an operating area (105) to be performed by a robotic work tool system (200), at least one robotic work tool (100) subsequently intended to operate in the operating area, wherein, The method (700) includes: - Receiving sensor data for pose estimation and event data related to a plurality of events of the at least one robotic work tool (100) moving within the operation area (105), wherein the received sensor data and event data are temporally correlated with each other; - Determining the positions of the plurality of events based on the received sensor data associated with the respective event data; - Determining the characteristics reflecting the operation area (105) by correlating the positions associated with the respective events with each other; - Adjusting the positions of the determined characteristics by comparing the corresponding determined positions with each other for each determined characteristic; - Determining a map defining the operation area (105) based on the adjusted positions of the determined characteristics, wherein the step of adjusting the positions of the determined characteristics includes: - Performing deviation estimation, wherein the deviation estimation is performed by determining the cost map of all characteristics and then attempting to minimize the cost by adding piecewise linear deviations to all data.
16. The method (700) according to claim 15, wherein, The method (700) further includes: - Controlling the operation of the at least one robotic work tool (100) operating within the operation area (105) based on the determined map.
17. The method (700) according to claim 16, wherein, The step of controlling the operation of the at least one robotic work tool (100) further includes: - Determining a travel path within the operation area (105) based on the determined map defining the operation area (105), and the at least one robotic work tool (100) is intended to follow the travel path when operating within the operation area (105).
18. The method (700) according to any one of claims 15 to 17, wherein, The method (700) further includes: - Transmitting the determined map and / or the travel path to at least one of the robotic work tool (100) and the visualization unit (230).
19. The method (700) according to any one of claims 15 to 17, wherein, The step of adjusting the positions of the determined characteristics includes: - Find outliers at the determined locations; and - Remove the found outliers from the determined locations of the determined features.
20. The method (700) according to any one of claims 15 to 17, wherein, The received sensor data for the pose estimation includes at least one of position data, IMU data, and odometer data.
21. The method (700) according to any one of claims 15 to 17, wherein, The event data related to the event of the at least one robotic work tool (100) includes loop events, timer events, and status events.
22. The method (700) according to any one of claims 15 to 17, wherein, The step of determining the features reflecting the work area (105) further includes: - Classify the determined locations into different categories based on the received event data; and - For each category, add the determined locations to a feature map, where the feature map corresponds to the corresponding feature.
23. The method (700) according to any one of claims 15 to 17, wherein, Before determining the map related to the work area (105), the method (700) further includes: - Determine updated features reflecting the work area (105) by correlating the adjusted locations with each other based on the associated event data; and - Adjust the locations of the determined features by comparing the corresponding determined locations with each other for each determined feature.
Citation Information
Patent Citations
Exploration of a robot deployment area by an autonomous mobile robot
WO2020041817A1