Method, system, robot and computer readable medium for mowing a plurality of areas

文档序号:1061287 发布日期:2020-10-16 浏览:8次 中文

阅读说明:本技术 对多个区块割刈的方法、系统、机器人及计算机可读介质 (Method, system, robot and computer readable medium for mowing a plurality of areas ) 是由 P.C.巴卢蒂斯 A.比利 B.雅莫奇 于 2015-09-16 设计创作,主要内容包括:本公开提供对多个区块割刈的方法、系统、机器人及计算机可读介质。所述对多个区块进行割刈的方法可以包括:通过生成指示第一区块的第一边界和第二区块的第二边界的数据,训练自主草坪割刈机器人割刈多个区块;通过生成指示用户选择的穿过第一区块的路线的数据,训练机器人横穿第一区块;将指示路线的数据以及指示第一边界和第二边界的数据传送到移动计算设备,以在移动计算设备的显示器上呈现第一边界、第二边界和路线的表示;以及发起割刈操作,机器人在割刈操作中自主地:禁用割刈功能,在禁用割刈功能后,通过遵循路线行进到第二区块,而不对第一区块进行割刈,以及在行进到第二区块后,激活割刈功能以对第二区块进行割刈。(The present disclosure provides methods, systems, robots, and computer readable media for mowing multiple areas. The method of mowing a plurality of areas may comprise: training the autonomous lawn-mowing robot to mow the plurality of areas by generating data indicative of a first boundary of the first area and a second boundary of the second area; training the robot to traverse the first tile by generating data indicative of a user-selected route through the first tile; transmitting data indicative of the route and data indicative of the first boundary and the second boundary to the mobile computing device to present representations of the first boundary, the second boundary, and the route on a display of the mobile computing device; and initiating a mowing operation, wherein the robot autonomously: disabling the mowing function, after disabling the mowing function, traveling to the second area by following the route without mowing the first area, and after traveling to the second area, activating the mowing function to mow the second area.)

1. A method of mowing a plurality of areas, the method comprising:

training the autonomous lawn-mowing robot to mow the plurality of areas by generating data indicative of a first boundary of a first area of the plurality of areas and a second boundary of a second area of the plurality of areas;

training the robot to traverse a first tile of the plurality of tiles by generating data indicative of a user selected route through the first tile of the plurality of tiles;

transmitting data indicative of the route and data indicative of the first boundary and the second boundary to a mobile computing device to present representations of the first boundary, the second boundary, and the route on a display of the mobile computing device; and

initiating a mowing operation in which the robot autonomously:

the function of cutting the mow is forbidden,

after disabling the mowing function, by following the route to a second block of the plurality of blocks without mowing the first block of the plurality of blocks, and

after traveling to a second block of the plurality of blocks, a mowing function is activated to mow the second block of the plurality of blocks.

2. The method of claim 1, further comprising training the robot to traverse a space by generating data indicative of a user-selected traversal route through the space, the space separating a first tile of a plurality of tiles from a second tile of a plurality of tiles,

wherein, during a mowing operation, the robot does not mow the space by following an across route through the space to a second block of the plurality of blocks.

3. The method of claim 2, further comprising training the robot to traverse the space by generating data indicative of one or more user-selected points of a traverse route through the space.

4. The method of claim 1, wherein:

generating data indicative of the first boundary and the second boundary comprises:

while manually navigating the robot along the first boundary, generating data indicative of the first boundary, an

While manually navigating the robot along the second boundary, generating data indicative of the second boundary; and

training the robot to traverse a first block of a plurality of blocks comprises:

generating data indicative of the route as the robot is manually navigated along the route.

5. The method of claim 1, wherein:

generating data indicative of the first boundary and the second boundary comprises:

generating data indicative of the first boundary based on a user selection of the first boundary, an

Generating data indicative of the second boundary based on a user selection of the second boundary.

6. The method of claim 5, further comprising wirelessly receiving, from a mobile computing device, a user selection of the first boundary and a user selection of the second boundary.

7. The method of claim 1, wherein training the robot to mow a plurality of areas comprises: a user selection of a movement pattern covering a first block of the plurality of blocks and a user selection of a movement pattern covering a second block of the plurality of blocks is received.

8. The method of claim 1, wherein training the robot to traverse a first tile of a plurality of tiles comprises: receiving data representing an automatically selected route through a first tile of the plurality of tiles prior to generating the data indicative of the route.

9. The method of claim 1, further comprising wirelessly receiving a user selection of the route from a mobile computing device, wherein the user selection of the route overrides an automatically selected route through a first tile of a plurality of tiles.

10. The method of claim 9, wherein:

wirelessly receiving a user selection of the route comprises: wirelessly receiving a plurality of user-selected points defining the route, the user-selected points including a starting point defining a start of the route and a landing point defining an end of the route, and

data indicative of the route is generated based on the received user-selected point.

11. The method of claim 10, wherein the activation point corresponds to a location of a charging dock operable to charge a power source of the robot.

12. The method of claim 9, wherein wirelessly receiving the user selection of the route comprises: receiving a user instruction to store a current position of the robot.

13. The method of claim 1, wherein training the robot to traverse a first tile of a plurality of tiles comprises: generating data indicative of a route through a first tile of a plurality of tiles while manually navigating the robot along the route.

14. A method of controlling an autonomous lawn mowing robot to mow a plurality of areas, the method comprising:

initiating a training mode in which a user navigates the robot along a first boundary of a first block of a plurality of blocks and along a second boundary of a second block of the plurality of blocks;

communicating data to the robot indicating a user-selected route through a first block of a plurality of blocks to train the robot to traverse the first block of the plurality of blocks such that during a mowing operation, the robot autonomously:

the function of cutting the mow is forbidden,

after disabling the mowing function, by following the route to a second block of the plurality of blocks without mowing the first block of the plurality of blocks, and

activating a mowing function to mow a second block of the plurality of blocks after traveling to the second block; and

presenting representations of the first boundary, the second boundary, and the route on a display of a mobile computing device.

15. The method of claim 14, further comprising wirelessly transmitting instructions to the robot to initiate a mowing operation.

16. The method of claim 14, further comprising transmitting data to the robot indicating a user-selected traversal route through a space separating a first tile of the plurality of tiles from a second tile of the plurality of tiles,

wherein, during a mowing operation, the robot travels to a second block of a plurality of blocks by following the traversal route through the space without mowing the space.

17. The method of claim 14, wherein transmitting data indicative of the route comprises: transmitting a plurality of user-selected points defining the route, wherein the user-selected points include a launch point defining a beginning of the route and a landing point defining an end of the route.

18. A method of controlling an autonomous lawn mowing robot to mow a plurality of areas, the method comprising:

navigating the robot along a first boundary of a first block of a plurality of blocks;

navigating the robot along a second boundary of a second block of the plurality of blocks to train the robot to mow the plurality of blocks;

selecting a route through a first block of a plurality of blocks to train the robot to traverse the first block of the plurality of blocks;

initiating presentation of the first boundary, the second boundary, and the representation of the route on a display of a mobile computing device; and

initiating a mowing operation in which the robot autonomously:

the function of cutting the mow is forbidden,

after disabling the mowing function, by following the route to a second block of the plurality of blocks without mowing the first block of the plurality of blocks, and

after traveling to a second block of the plurality of blocks, a mowing function is activated to mow the second block of the plurality of blocks.

19. The method of claim 18, further comprising selecting a traversal route through a space separating a first block of the plurality of blocks from a second block of the plurality of blocks,

wherein, during a mowing operation, the robot travels to a second block of a plurality of blocks by following the traversal route through the space without mowing the space.

20. The method of claim 18, wherein selecting the route comprises:

operating a mobile computing device to select a plurality of user-selected points defining the route, wherein the user-selected points include a launch point defining a start of the route and a landing point defining an end of the route, and

initiate a transfer of the user-selected point to the robot to train the robot to traverse a first tile of a plurality of tiles.

21. The method of claim 1, further comprising, after transmitting the data indicative of the route and the data indicative of the first boundary and the second boundary to a mobile computing device:

receiving a user selection indicating a modification to the route, an

In response to receiving a user selection indicating the modification, modifying data indicating the route.

22. The method of claim 14, further comprising, after presenting the first boundary, the second boundary, and the representation of the route:

transmitting a user selection indicating a modification to the route to the robot to modify the route through a first tile of a plurality of tiles.

23. The method of claim 18, further comprising, after initiating presentation of the first boundary, the second boundary, and the representation of the route, initiating a transfer of a user selection indicating a modification to the route to modify the route through a first tile of a plurality of tiles.

24. A method, comprising:

initiating a training mode of the autonomous lawn mowing robot; and

presented on a user interface of a user computing device,

indicating the first and second cutable mowing areas and the first and second cutable mowing areas

A map of the space between the swaths can be cut,

a representation of a route through the space along which the robot navigates without mowing during a mowing operation that mows at least one of the first or second mowable areas,

a representation of a boundary of a first mowable zone for which the robot is navigating in a training mode, an

A representation of a boundary of a second mowable area that the robot navigates in training mode.

25. The method of claim 24, wherein presenting the representation of the route comprises: a representation of a starting point defining the beginning of the route along the boundary of the first mowable area and a representation of a landing point defining the end of the route along the boundary of the second mowable area are presented.

26. The method of claim 24, further comprising communicating, by the user computing device, the user-selected schedule to the robot, such that the robot mows at least one of the first or second mowable areas according to the user-selected schedule.

27. The method of claim 26, wherein transmitting the schedule comprises: instructions are communicated to cause the robot to mow a first mowable area at a first time and mow a second mowable area at a second time.

28. The method of claim 24, wherein the map comprises an image representing a first and second mowable area.

29. The method of claim 28, further comprising identifying, by the user computing device from the image, data indicative of a boundary of the first mowable area and indicative of a boundary of the second mowable area.

30. The method of claim 24, wherein the route is a first route, and the method further comprises presenting, on a user interface of a user computing device, a representation of a second route through a first mowable area through which the robot navigates in training mode.

31. The method of claim 24, further comprising presenting, on a user interface of a user computing device, an indicator of a current location of the robot on the map.

32. The method of claim 24, further comprising presenting, on a user interface of a user computing device, an indicator of a location of a charging dock on the map that is configured to charge a battery of the robot.

33. The method of claim 24, further comprising wirelessly transmitting instructions from a user computing device to a robot to cause the robot to initiate a mowing operation in which the robot:

the function of cutting the mow is forbidden,

after disabling the mowing function, sailing through the space and to a second mowable area by following the route, an

After navigating to the second mowable area, activating the mowable function to mow the second mowable area.

34. The method of claim 33, wherein the robot autonomously mows the first mowable area before disabling the mowable function.

35. The method of claim 33, wherein the route also extends through the first mowable area, and the robot autonomously navigates along the route through the first mowable area and through the space by following the route.

36. The method of claim 24, further comprising transmitting, from the user computing device to the robot, data indicative of the user selection of a route through the space.

37. The method of claim 36, wherein the user selection of the route overrides an automatically selected route through the space.

38. The method of claim 24, further comprising transmitting, from the user computing device to the robot, data indicative of a plurality of user selected points defining at least a beginning of the route and an end of the route.

39. The method of claim 24, further comprising, during the training mode, wirelessly transmitting, from the user computing device to the robot, instructions to store a current location of the robot, the current location defining a point along the route, along a boundary of the first mowable area, or along a boundary of the second mowable area.

40. The method of claim 24, further comprising communicating, from the user computing device to the robot, a selection of a movement pattern that covers the first mowable area or a selection of a movement pattern that covers the second mowable area.

41. The method of claim 24, further comprising receiving, by the user computing device from the robot, data indicative of a boundary of the first mowable area, data indicative of a boundary of the second mowable area, and data indicative of the route,

wherein representations of the route, the boundary of the first mowable area, and the boundary of the second mowable area are presented based on data indicative of the boundary of the first mowable area, data indicative of the boundary of the second mowable area, and data indicative of the route.

42. The method of claim 41, further comprising, during the training mode, sending instructions to cause the robot to store, in the training mode, data indicative of the boundary of the first mowable area, data indicative of the boundary of the second mowable area, and data indicative of the route.

43. A system, comprising:

a computing device, comprising:

a user interface;

a memory configured to store instructions; and

a processor to execute the instructions to perform operations comprising:

initiating a training mode of the autonomous lawn mowing robot; and

is presented on the user interface in the form of a graphical representation,

a map indicating the first mowable area, the second mowable area, and a space between the first mowable area and the second mowable area,

a representation of a route through the space along which the robot navigates without mowing during a mowing operation that mows at least one of the first or second mowable areas,

a representation of a boundary of a first mowable zone for which the robot is navigating in a training mode, an

A representation of a boundary of a second mowable area that the robot navigates in training mode.

44. The system of claim 43, wherein the computing device is a smartphone, a pair of smart glasses, or a smart watch.

45. One or more non-transitory computer-readable media storing instructions executable by a processing device and that, when executed, cause the processing device to perform operations comprising:

initiating a training mode of the autonomous lawn mowing robot; and

presented on a user interface of a user computing device,

a map indicating the first mowable area, the second mowable area, and a space between the first mowable area and the second mowable area,

a representation of a route through the space along which the robot navigates without mowing during a mowing operation that mows at least one of the first or second mowable areas,

a representation of a boundary of a first mowable zone for which the robot is navigating in a training mode, an

A representation of a boundary of a second mowable area that the robot navigates in training mode.

46. The system of claim 43, wherein presenting the representation of the route comprises: a representation of a starting point defining the beginning of the route along the boundary of the first mowable area and a representation of a landing point defining the end of the route along the boundary of the second mowable area are presented.

47. The system of claim 43, wherein the route is a first route, and the operations further comprise presenting, on the user interface, a representation of a second route of the robot navigating through a first mowable area in a training mode.

48. The system of claim 43, wherein the operations further comprise presenting, on the user interface, an indicator of a current location of the robot on the map.

49. The system of claim 43, wherein the operations further comprise presenting, on the user interface, an indicator of a location of a charging dock on the map that is configured to charge a battery of the robot.

50. The system of claim 43, wherein the operations further comprise transmitting, from the computing device to the robot, data indicative of the user selection of a route through the space.

51. The system of claim 43, wherein the operations further comprise communicating, from the computing device to the robot, a selection of a movement pattern that covers the first mowable area or a selection of a movement pattern that covers the second mowable area.

52. The one or more non-transitory computer-readable media of claim 45, wherein presenting the representation of the route comprises: a representation of a starting point defining the beginning of the route along the boundary of the first mowable area and a representation of a landing point defining the end of the route along the boundary of the second mowable area are presented.

53. The one or more non-transitory computer-readable media of claim 45, wherein the route is a first route, and the operations further comprise presenting, on a user interface of the user computing device, a representation of a second route through a first mowable area that the robot navigates in a training mode.

54. The one or more non-transitory computer-readable media of claim 45, wherein the operations further comprise presenting, on a user interface of the user computing device, an indicator of a current location of the robot on the map.

55. The one or more non-transitory computer-readable media of claim 45, wherein the operations further comprise presenting, on a user interface of the user computing device, an indicator of a location on the map of a charging dock configured to charge a battery of the robot.

56. The one or more non-transitory computer-readable media of claim 45, wherein the operations further comprise transmitting, from the user computing device to the robot, data indicative of the user selection of a route through the space.

57. The one or more non-transitory computer-readable media of claim 45, wherein the operations further comprise communicating, from the user computing device to the robot, a selection of a movement pattern that covers the first mowable area or a selection of a movement pattern that covers the second mowable area.

58. An autonomous lawn mowing robot comprising:

a drive system for moving the robot around a mowable area;

a cutting system for mowing the mowable area as the robot moves around the mowable area; and

a controller to:

initiating a first mowing operation according to the schedule to mow a first cutable one of the cutable zones, an

And initiating a second mowing operation according to the scheduling to mow a second mowable area in the mowable areas.

59. The robot of claim 58, wherein:

the configuration of the controller initiating a first mowing operation according to the schedule to mow the first mowable area comprises a configuration of initiating a first mowing operation at a first scheduled time and a first scheduled date according to the schedule, and

the configuration of the controller initiating a second mowing operation according to the schedule to mow the second mowable area comprises configuration to initiate a second mowing operation at a second scheduled time and a second scheduled date to initiate a second mowing operation.

60. The robot of claim 58, wherein the controller is further configured to transmit data indicative of a map of the first and second mowable areas to cause a remote user computing device to present a graphical representation of the map.

61. The robot of claim 58, wherein the controller is configured to initiate a third mowing operation to mow a first and second of the mowable areas according to the schedule.

62. The robot of claim 61, wherein the configuration to initiate a third mowing operation to mow the first and second mowable areas according to the schedule comprises:

the following configuration of initiating a third mowing operation according to the schedule:

mowing the first mowable area,

moving through a space separating the first and second cutable swaths without mowing the space, and

and mowing the second mowable area.

63. The robot of claim 58, wherein the configuration of the controller to initiate a second mowing operation to mow a second one of the mowable areas according to the schedule comprises:

the following configuration of initiating a second mowing operation according to the schedule:

moving from the first cutable mowing area to the second cutable mowing area without mowing the first cutable mowing area, and

and mowing the second mowable area.

64. The robot of claim 63, wherein the configuration of the controller to initiate a second mowing operation according to the schedule to move from the first mowable area to the second mowable area without mowing the first mowable area further comprises:

the following configuration of initiating a second mowing operation according to the schedule: the first and second mowable areas are moved across the first mowable area and then across a space separating the first and second mowable areas without mowing the first mowable area and the space to reach the second mowable area.

65. The robot of claim 58, wherein the controller is further configured to store data indicative of a schedule for initiating the first mowing operation and the second mowing operation.

66. The robot of claim 58, wherein the controller is further configured to receive, using a wireless receiver of the robot, data indicative of a schedule for initiating the first mowing operation and the second mowing operation.

67. The robot of claim 66, wherein the controller receiving a configuration of data indicative of a schedule includes receiving a configuration of data from a user computing device.

68. The robot of claim 58, wherein the controller is further configured to initiate a docking operation after the second mowing operation to move the robot across the first mowable swath toward the docking station without mowing the first mowable swath area.

69. The robot of claim 58, wherein the controller is configured to generate the data indicative of the schedule for initiating the first mowing operation and the second mowing operation based on at least one estimate of power consumption for mowing the first mowable area or the estimate of power consumption for mowing the second mowable area.

70. A method, comprising:

presenting, by a user computing device, a graphical representation of a map of a mowable area; and

transmitting, by a user computing device, data indicative of a schedule selected by a user to initiate a mowing operation of an autonomous lawnmower robot, wherein the data indicative of the schedule comprises:

first data that causes the robot to initiate a first of the mowing operations according to a schedule to mow a first of the mowing areas, and

and second data, enabling the robot to initiate a second mowing operation according to the scheduling so as to mow a second mowing area in the mowing-available area.

71. The method of claim 70, wherein the data indicative of the schedule comprises data indicative of a first time and a first date at which a first mowing operation is initiated and a second time and a second date at which a second mowing operation is initiated.

72. The method of claim 70, wherein the data indicative of the schedule includes third data that causes the robot to initiate a third mowing operation according to the schedule to mow a first and second of the mowable areas.

73. The method of claim 72, wherein the third data is configured to cause the robot to initiate a third mowing operation according to a schedule to:

mowing the first mowable area,

moving through a space separating the first and second cutable swaths without mowing the space, and

and mowing the second mowable area.

74. The method of claim 70, wherein communicating first data to cause the robot to initiate a first mowing operation according to a schedule to mow a first and second mowable area comprises:

transmitting second data to cause the robot to initiate a second mowing operation according to a schedule so as to:

moving from the first cutable mowing area to the second cutable mowing area without mowing the first cutable mowing area, and

and mowing the second mowable area.

75. The method of claim 74, wherein communicating second data to cause the robot to initiate a second mowing operation according to the schedule to move from the first mowable area to the second mowable area without mowing the first mowable area comprises:

second data is transmitted to cause the robot to initiate a second mowing operation according to the schedule to move through the first mowable area and then through a space separating the first mowable area from the second mowable area without mowing the first mowable area and the space to reach the second mowable area.

76. A system, comprising:

a computing device, comprising:

a user interface;

a memory configured to store instructions; and

a processor to execute the instructions to perform operations comprising:

presenting a graphical representation of a map of the mowable area using a user interface; and

transmitting data indicative of the schedule selected by the user to initiate a mowing operation of the autonomous lawnmower robot, wherein transmitting the data indicative of the schedule comprises transmitting:

first data that causes the robot to initiate a first of the mowing operations according to a schedule to mow a first of the mowing areas, and

second data that causes the robot to initiate a second one of the mowing operations according to the schedule to mow a second one of the mowing areas.

77. The system of claim 76, wherein the data indicative of the schedule includes data indicative of a first time and a first date to initiate a first mowing operation and a second time and a second date to initiate a second mowing operation.

78. The system of claim 76, wherein communicating data indicative of the schedule comprises communicating third data to cause the robot to initiate a third mowing operation according to the schedule to mow a first and second of the mowable areas.

79. The system of claim 78, configured to cause the robot to initiate a third mowing operation according to a schedule, to:

mowing the first mowable area,

moving through a space separating the first and second cutable swaths without mowing the space, and

and mowing the second mowable area.

80. The system of claim 76, wherein communicating first data to cause the robot to initiate a first mowing operation to mow the first and second mowable areas according to a schedule comprises:

transmitting second data to cause the robot to initiate a second mowing operation according to a schedule, so as to:

moving from the first cutable mowing area to the second cutable mowing area without mowing the first cutable mowing area, and

and mowing the second mowable area.

81. The system of claim 80, wherein communicating second data to cause the robot to initiate a second mowing operation according to the schedule to move from the first mowable area to the second mowable area without mowing the first mowable area comprises:

second data is transmitted to cause the robot to initiate a second mowing operation according to the schedule to move through the first mowable area and then through a space separating the first mowable area from the second mowable area without mowing the first mowable area and the space to reach the second mowable area.

Technical Field

The present invention relates to mowing lawn areas and other areas by autonomous robots, and more particularly to mowing a plurality of non-contiguous areas.

Background

The autonomous robot may be programmed to mow (mow) the lawn area. Care must be taken to keep these robots from mowing outside the intended area. The embedded electrical leads generally define a lawn boundary that the robot is programmed to not cross. Other forms of navigation have also been considered.

Disclosure of Invention

One aspect of the invention features a method of mowing a plurality of spatially separated areas. The method comprises the following steps: training a robot mower (mower) to mow the area, comprising: moving the robotic mower around each area while storing data indicating the position of the boundary of the area relative to a boundary marker; the method further comprises the following steps: training the robotic mower to move through the space separating the areas, comprising: moving the robotic mower to the traverse start point of the first one of the tiles; storing data indicative of the location of the traversal initiation point; moving the robotic mower to a traversal landing point of a second one of the areas; and storing data indicative of the location of the intersecting landing sites. Initiating a mowing operation that causes the robotic mower to autonomously and sequentially: mowing the first one of the areas; moving to the traverse initiation point; moving through the space from the traverse initiation point to the traverse landing point; and then mow the second one of the areas.

In some examples, the method further comprises: training the robotic mower to move through a second space that separates the second area from a third area to be mowed. The method may further comprise: generating a 2D grid of cells representing one or more of the blocks and the space, and assigning values to each of the cells. The value indicates whether a particular bin is mowable. The value may also indicate whether the cell is on one or more of the boundaries. The value may indicate whether the cell is along a path between the traversal start point and the traversal landing point.

In some examples, training the robotic mower to move through the space separating the areas is performed after training the robotic mower to mow a first one of the areas and before training the robotic mower to mow a second one of the areas. Each of the mower and boundary marker may comprise a respective broadband transceiver operating at a frequency of from 5925MHz to 7250 MHz. Training the robotic mower to move through the space may further comprise: storing data indicative of at least one intermediate position along a path between the traversal initiation point and the traversal landing point; and initiating the mowing operation may cause the robotic mower to move along the path through the intermediate position.

In some cases, initiating the mowing operation may cause the robotic mower to mow the first area according to a mowing pattern determined in part by a shape of the first area. For example, the mowing mode may be a grain line mode. Initiating the mowing operation may cause the robotic mower to automatically infer the mowing operation after mowing the second one of the areas without again mowing within the first one of the areas.

In some embodiments, the traversal launch point is on the boundary of the first block. The cross landing site may be on the boundary of the second block.

In some implementations, during the mowing operation, the mower moves in a straight line from the traverse start point through the space to the traverse landing point. During the mowing operation, the robotic mower can automatically disable a mowing function while moving through the space, and can then reactivate the mowing function in the second area.

Another aspect of the invention features a robotic mower having: a wheeled chassis; a motorized weed cutter carried by the wheeled chassis; and a controller. The controller is configured to: storing data indicative of a location of a boundary of each of at least two areas to be mowed, wherein the at least two areas are separated by a space that is not to be mowed; storing data indicative of a traversal path through the space of the pending swath, wherein a traversal start point of a first one of the areas and a traversal landing point of a second one of the areas are located along the traversal path, and controlling the robotic mower to perform a swath operation. In a mowing operation, the robotic mower autonomously and sequentially: mowing the first one of the areas; moving to the traverse initiation point; traversing the space from the traverse initiation point and moving along the traverse path to the traverse landing point; and mowing the second one of the areas.

In some examples, the controller is further configured to: moving the robotic mower in a straight line from the traverse start point to the traverse landing point. The controller may be further configured to: training the robotic mower to move through a second space that separates the second area from a third area to be mowed. The controller may also be configured to: automatically disabling the weed cutter while the robotic mower is moving along the traversal path; and reactivating the weed cutter once the robotic mower is in the second zone. The controller may store data indicative of at least one intermediate position along the traversal path, and wherein the mowing operation causes the robotic mower to move along the traversal path through the intermediate position.

The controller may be configured to: generating a 2D grid of cells representing one or more of the blocks and the space, and assigning values to each of the cells. For example, the value may indicate whether the grid is mowable. The value may further indicate whether the cell is on one or more of the boundaries. The value may also indicate whether the cell is along a path between the traversal start point and the traversal landing point.

In some implementations of the robotic mower, the controller trains the robotic mower to move through the space separating the areas after the robotic mower is trained to mow the first one of the areas and before the robotic mower is trained to mow the second one of the areas. For example, each of the robotic mowers and boundary markers may include a respective broadband transceiver operating at a frequency from 5925MHz to 7250 MHz. The controller may store data indicative of at least one intermediate position along the traversal path, and the mowing operation may include: the robotic mower moves along the path through the intermediate position.

Many lawns are not regularly shaped or formed in a continuous weed field. For example, a lawn may include a plurality of different mowable areas separated by non-mowable areas (e.g., paths or lanes). To mow non-contiguous sections or areas of the lawn, the robot lawnmower described herein navigates between separate lawn areas to mow the areas.

In some examples, the robot includes a controller and a subsystem configured to: the robot is directed to traverse a non-mowable area separating a first lawn area from a second lawn area. In some cases, the robot controls its subsystems so that the cutting system is operable during mowing operations and is inoperable during traversal of non-mowable areas between lawn areas and bypassing lawn areas to travel to another lawn area. Thus, a single robot may be used to attend to two or more physically separated lawn areas.

The system may further allow for automated methods, manual methods, or a selectable combination of automated and manual methods to be employed by the training robot to complete mowing operations, bypass operations, and traverse routes that operate and move between lawn areas. The automated method may include optimization techniques for increasing the efficiency of the mowing operation. Users may also have flexibility for adoptive methods through manual training methods.

Another aspect of the invention features a method of mowing a plurality of areas, the method comprising: training the autonomous lawn-mowing robot to mow the plurality of areas by generating data indicative of a first boundary of a first area of the plurality of areas and a second boundary of a second area of the plurality of areas; training the robot to traverse a first tile of the plurality of tiles by generating data indicative of a user selected route through the first tile; transmitting data indicative of the route and data indicative of the first boundary and the second boundary to a mobile computing device to present representations of the first boundary, the second boundary, and the route on a display of the mobile computing device; and initiating a mowing operation in which the robot autonomously: disabling the mowing function, after disabling the mowing function, not mowing the first block of the plurality of blocks by following the route to a second block of the plurality of blocks, and after travelling to the second block of the plurality of blocks, activating the mowing function to mow the second block of the plurality of blocks.

Another aspect of the invention features a method of controlling an autonomous lawn mowing robot to mow a plurality of areas, the method comprising: initiating a training mode in which a user navigates the robot along a first boundary of a first block of a plurality of blocks and along a second boundary of a second block of the plurality of blocks; communicating data to the robot indicating a user-selected route through a first block of a plurality of blocks to train the robot to traverse the first block of the plurality of blocks such that during a mowing operation, the robot autonomously: the cutting function is forbidden; after disabling the mowing function, by following the route to a second block of the plurality of blocks without mowing a first block of the plurality of blocks, and after travelling to the second block of the plurality of blocks, activating the mowing function to mow the second block of the plurality of blocks; and presenting representations of the first boundary, the second boundary, and the route on a display of a mobile computing device.

Another aspect of the invention features a method of controlling an autonomous lawn mowing robot to mow a plurality of areas, the method comprising: navigating the robot along a first boundary of a first block of a plurality of blocks; navigating the robot along a second boundary of a second tile of the plurality of tiles to train the robot to mow the plurality of tiles; selecting a route through a first block of a plurality of blocks to train the robot to traverse the first block of the plurality of blocks; initiating presentation of the first boundary, the second boundary, and the representation of the route on a display of a mobile computing device; and initiating a mowing operation in which the robot autonomously: disabling the mowing function, after disabling the mowing function, by following the route to travel to a second block of the plurality of blocks without mowing the first block of the plurality of blocks, and after traveling to the second block of the plurality of blocks, activating the mowing function to mow the second block of the plurality of blocks.

Another aspect of the invention features a method that includes: initiating a training mode of the autonomous lawn mowing robot; and presenting, on a user interface of a user computing device, a map indicating the first mowable area, the second mowable area, and a space between the first mowable area and the second mowable area, a representation of a route through the space, a representation of a route along which the robot navigates without mow during a mowable operation that mows at least one of the first mowable area or the second mowable area, a representation of a boundary of the first mowable area that the robot navigates in a training mode, and a representation of a boundary of the second mowable area that the robot navigates in the training mode.

Another aspect of the invention features a system, including a computing device, including: a user interface; a memory configured to store instructions; and a processor to execute the instructions to perform operations comprising: initiating a training mode of the autonomous lawn mowing robot; and rendering on a user interface, a map indicating the first mowable area, the second mowable area, and a space between the first mowable area and the second mowable area, a representation of a route through the space, a representation of a route along which the robot navigates without mow during a mow operation that mows at least one of the first mowable area or the second mowable area, a representation of a boundary of the first mowable area that the robot navigates in a training mode, and a representation of a boundary of the second mowable area that the robot navigates in a training mode.

Another aspect of the invention features one or more non-transitory computer-readable media storing instructions executable by a processing device and that, when executed, cause the processing device to perform operations comprising: initiating a training mode of the autonomous lawn mowing robot; and presenting, on a user interface of a user computing device, a map indicating the first mowable area, the second mowable area, and a space between the first mowable area and the second mowable area, a representation of a route through the space, a representation of a boundary of the first mowable area along which the robot navigates without moking during a mow operation that mows at least one of the first mowable area or the second mowable area, a representation of a boundary of the first mowable area that the robot navigates in a training mode, and a representation of a boundary of the second mowable area that the robot navigates in the training mode.

Another aspect of the invention features an autonomous lawn mowing robot including a drive system for moving the robot around a mowable area; a cutting system for mowing the mowable area as the robot moves around the mowable area; and a controller for: initiating a first mowing operation according to the schedule to mow a first cutable zone of the cutable zones, and initiating a second mowing operation according to the schedule to mow a second cutable zone of the cutable zones.

Another aspect of the invention features a method that includes: presenting, by a user computing device, a graphical representation of a map of a mowable area; and transmitting, by the user computing device, data indicative of a schedule selected by the user to initiate a mowing operation of the autonomous lawnmower robot, wherein the data indicative of the schedule comprises: first data for causing the robot to initiate a first of the mowing operations according to the schedule to mow a first of the mowing areas, and second data for causing the robot to initiate a second mowing operation according to the schedule to mow a second of the mowing areas.

Another aspect of the invention features a system, including a computing device, including: a user interface; a memory configured to store instructions; and a processor to execute the instructions to perform operations comprising: presenting a graphical representation of a map of the mowable area using a user interface; and transmitting data indicative of the schedule selected by the user to initiate a mowing operation of the autonomous lawnmower robot, wherein transmitting the data indicative of the schedule comprises transmitting: first data for causing the robot to initiate a first of the mowing operations according to the schedule to mow a first of the mowing areas, and second data for causing the robot to initiate a second of the mowing operations according to the schedule to mow a second of the mowing areas.

The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.

Drawings

Fig. 1A is a schematic bottom view of an autonomous lawn mower robot.

Fig. 1B is a schematic side view of the robot of fig. 1A.

Fig. 1C is a block diagram of a control system of the robot of fig. 1A.

Fig. 2 is a schematic diagram of an example set of non-adjacent lawn areas with a traversal region separating the non-adjacent lawn areas.

Fig. 3 is a block diagram of a memory structure of the robot of fig. 2.

Fig. 4A-4B are schematic diagrams illustrating a method of teaching a robot not to border a lawn area.

Fig. 5A-5B are schematic diagrams illustrating a method of teaching a robot a traversal route of a traversal area.

Fig. 6 is a schematic diagram illustrating a method of teaching a robot a bypass route that does not adjoin a lawn area.

Fig. 7A-7B are schematic diagrams of fig. 2 each with a different coverage route for the robot.

Fig. 8 is a screen shot of a computing device installed with an application to control a robot.

FIG. 9 is a flow diagram of an example method of training a robot.

Fig. 10A-10B are flow diagrams of examples for operating a robot.

Like reference symbols in the various drawings indicate like elements.

Detailed Description

The robotic lawnmower described below can mow non-adjacent lawn areas as it autonomously moves around the lawn area, and traverse an intersection area or space that separates the lawn areas. The robot includes a cutting system having cutting blades for cutting weeds on the lawn area as it moves along the lawn path via a drive system having wheels that cause the robot to move ("path" is also referred to herein as "path"). The cutting system is decoupled from the drive system so that the robot can disable the cutting system while the drive system is running. For example, the robot may disable the cutting system while the robot follows a traversal route that traverses a traversal region between lawn areas.

The controller is coupled to a memory storage element that stores the behavior of the robot during various operations and a schedule for mowing non-adjacent lawn areas. In some schedules, the robot may be programmed to mow a target lawn area that is separate from the current position of the robot. The robot may be programmed to move along a bypass route through the lawn area with the cutting system disabled so that the robot can reach the target lawn area without mowing the lawn area between the robot's location and the target lawn area. The memory storage element also stores data corresponding to points or segments along the lawn route, the traversal route, and the bypass route, for example. A combination of manual training by a user or automated path planning by a subroutine programmed on the robot determines the route, and a memory storage element may store data pertaining to the route.

Fig. 1A-1B are a general schematic overview of an example of an autonomous lawn mower robot 10, with fig. 1C showing a block diagram of a control system that operates the autonomous lawn mower robot 10. Fig. 1A shows a schematic bottom view of robot 10 in forward direction F, which includes body 20, body 20 containing wheel modules 610a-b of drive system 600 (shown in fig. 1C) and cutter 410 of cutting system 400 (shown in fig. 1C).

The wheel modules 610a-b include wheels, motors, and gearboxes for driving the robot 10 in forward and backward directions. The wheel modules 610a-b may be operated differently so that the robot may steer based on the level of drive provided to each wheel. The drive system 600 also includes foot (caster) wheels 620a-b that partially support the weight of the robot 10.

The cutter 410 is, for example, a rotatable reciprocating blade that can cut weeds as the cutter drive subsystem 420 (shown in fig. 1C) drives the cutter 410 to rotate. Cutter 410 has a swath width WMWhich defines the width of the weeds that the robot 10 cuts as the robot 10 moves over the uncut weeds. The cutter drive subsystem 420 includes a high power motor and a high torque gearbox that operate the cutter 410 so that the motor, gearbox, and cutter 410 can cut thick swaths of weed at maximum power.

The bottom portion of the robot 10 may further include a sensor portion of a sensor system 650 (shown in fig. 1C). These sensors may include: cutting edge sensors 510a-b that distinguish between cut weeds and uncut weeds; a weed height sensor that measures the height of weeds under the robot 10; and a cliff sensor that detects the collapse of the terrain beneath the robot 10.

Fig. 1B is a schematic side view of an exemplary robot 10. The robot 10 includes a power system 800 having a power source 810, a controller 1000, a communication system 1100, and a memory storage element 900. The controller 1000 controls the system of the robot 10, which will be described in more detail later with reference to fig. 1C. Power system 800 provides power to other robotic systems via power source 810. The communications system 1100 allows the controller 1000 to communicate wirelessly with a computing device (e.g., a mobile device or web-based device). The communication system 1100 may include, for example, a bluetooth transceiver and/or a WiFi transceiver.

A power system 800 including a power source 810 provides power to a system operable by the robot. Power source 810 is adjustable so that power system 800 can provide some percentage of the total power. A charging system 820 within power system 800 may be connected to an external charging dock to charge power source 810.

Sensor system 650 (shown in fig. 1C) of robot 10 also includes position estimation system 655 (shown in fig. 1C). In some examples, the position estimation system 655 is a time-of-flight based system that uses the time-of-flight between a boundary marker (also referred to herein as a "beacon" or "marker") and the robot to determine the pose of the robot. For example, a boundary marker may be placed along the boundary of the lawn. While the time-of-flight system uses markers that have been described as boundary markers, markers may also be placed within or near the lawn to assist in the positioning of the robotic lawn mower. In some cases, the boundary marker signals the robotic lawnmower interpretation to determine its orientation relative to the boundary marker. In other examples, the boundary marker is passive and the radiation source of the robot lawnmower emits radiation that reflects off a surface located in the lawn area and is detected by a radiation detector on the robot. Positioning may use triangulation to determine robot positions within the boundary. The signals sent between the boundary markers and the robot located on the property allow the robot to estimate angles and distances by calculating the time of flight to each of the boundary markers and using triangulation to calculate the current position of the robot. In another example, rather than using time-of-flight measurements, the system may use a fixed angle laser indicator and a CMOS imager to triangulate the distance to the object with a known baseline between the two. In these examples, the pixel position of the received signal at the imager indicates the distance from the object. In some particular examples, the boundary marker is a wideband transceiver or an ultra wideband transceiver in the 5,925MHz to 7,250MHz range. However, other time-of-flight transceivers may be used.

Furthermore, the sensor system 650 includes an obstacle sensing system 657, which also includes proximity sensors 680 disposed on lateral sides of the robot 10 so that the robot 10 can detect when it has come into contact with a physical barrier or when it is in close proximity to a physical barrier. The proximity sensor 680 may take the form of a contact sensor (e.g., a sensor that detects impact of a bumper on the robot against a physical barrier) and/or a LIDAR (light detection and ranging, which may require optical remote sensing that measures properties of scattered light to look for range of distant targets and/or other information) sensor that detects when the robot is in close proximity to a nearby object.

The sensor system 650 also includes a handle sensing system 670 (shown in fig. 1C) that detects when the detachable handle 675 is attached to the robot 10. The detachable handle 675 is usable in a training mode as well as a mowing mode. Other sensors of the sensor system 650 include: a Global Positioning System (GPS) as an additional component for determining the position of the robot 10; an inclination sensor for detecting a level of a terrain under the robot; a rain sensor for detecting water from, for example, rain, which may damage the electromechanical components of the robot 10; as well as sensors and encoders operable by other systems to assist in controlling the robot 10. Additionally or alternatively, the sensor system 650 may include, but is not limited to, a wheel drop sensor, sonar, radar, or the like, an infrared cliff sensor, a camera (e.g., volumetric point cloud imaging, three-dimensional (3D) imaging or depth mapping sensor, visible light camera, and/or infrared camera), or the like.

Referring to fig. 1C, to achieve reliable and robust autonomous movement and cutting, the robot 10 includes a controller 1000 that operates a memory storage element 900, a communication system 1100, a cutting system 400, a sensor system 650, a drive system 600, a navigation system 700, and a power system 800. The cutting system 400 includes a cutter drive subsystem 420, which may include a motor and gearbox to drive the cutters. The sensor system 650 also includes a handle sensing system 670 and a position estimation system 655, as well as the other sensors described above. The controller 1000 operates a navigation system 700 configured to: the robot 10 is maneuvered through the lawn area and/or traversal area in a path or route stored in the memory storage element 900. Navigation system 700 is a behavior-based system executed on controller 1000. Navigation system 700 communicates with sensor system 650 to determine and issue drive commands to drive system 600. In particular, the controller includes obstacle detection and avoidance methods and actions that are implemented in response to sensor signals from the obstacle sensing system 657. The robot may use its proximity sensor to detect the general geometry of an obstacle in the general vicinity in front of the robot 10 so that the robot 10 can determine which direction to turn. For example, using proximity sensors 680 disposed on the front of robot 10, controller 1000 may determine when the robot is about to collide with an obstacle and communicate instructions to navigation system 700 and drive system 600 to avoid the obstacle.

The memory storage element 900 stores data pertaining to operations (e.g., mowing or traversing operations) as well as subroutines of the robot that may be implemented with respect to, for example, training or mowing operations. The data also includes lawn route data, traversal route data, bypass route data, path behavior data, and scheduling data, all of which will be described in more detail later. The controller 1000 communicates with the memory storage element 900 to determine which systems to activate or deactivate during operation. The systems (e.g., cutting system 400, drive system 600, power system 800) may be activated at a level from 0% (e.g., off) to 100%. The memory storage element 900 includes data associated with an activation level for an operation. For example, in some operations (e.g., traversal operations), the controller 1000 activates the power system 800 at a 50% activation level due to the lower power requirements for traversal operations. The controller 1000 may have a high power mode (e.g., 75% -100% activation level of the power system 800) to accommodate large mechanical stresses in the cutting system 400 when mowing large and thick swaths of weeds.

The electromechanical systems, including the sensing systems, cutting systems, drive systems, navigation systems, power systems, communication systems disclosed and illustrated herein, may include additional elements and features disclosed in U.S. patent application serial No.11/688,213, filed 3/19/2007, entitled "Robot definitions," the disclosure of which is incorporated herein by reference in its entirety.

Typically, many lawns are irregularly shaped or include discrete weed areas. For example, a lawn may include a plurality of different mowable areas separated by non-mowable areas (e.g., paths or lanes). In order to mow multiple non-contiguous sections or areas of lawn, the robotic lawnmower described herein navigates between separate lawn areas to mow multiple areas.

Fig. 2 depicts a schematic view of an example of a property 100 having three non-adjacent lawn areas 102 a-c. The lawn areas 102a-c have boundaries 106a-c, respectively. The traversal region 104a separates the lawn area 102a and the lawn area 102b, and the traversal region 104b separates the lawn area 102b and the lawn area 102 c. The lawn area 102a has a rose garden 125, which is a feature of the non-mowable (e.g., a reserved or non-mowable space within the boundary of the area 102 a). The traversal region 104a includes a concrete walkway 115 separating the lawn area 102a from the lawn area 102b and a floral divider 116 within the concrete walkway 115. Thus, if the robot lawnmower were to mow both lawn area 102a and area 102b, it would have to traverse the concrete walkway 115 in an area without the floral divider 116. The lawn area 102c has an amorphous shape with trees 127 located at segments of the border 106 c. Traversing region 104b is a rock zone 117, which includes a circular crater 131. Therefore, in order to navigate between the lawn area 102b and the lawn area 102c, the robot must traverse the area 104b while avoiding the fire pit 131.

The robot 10, docked at the charging dock 50, is shown cutting swath areas 102a-c according to a schedule predetermined by the user. The charging dock 50 restores the power source (previously described) of the robot 10 and also serves as a starting point 1001 for the robot's stored route data (described in more detail later). The robot 10 may move from one lawn area to another via the traversal regions 104 a-b.

Fig. 3 shows an example of training data 303 stored in a memory storage element 900 (depicted in fig. 1C) that the robot may perform to mow a set of non-adjacent lawn areas. To train the robot 10, the training data 303 may be generated by an automated method, a manual method, or a combination of both methods, as will be discussed later. Training data 303 includes boundary data 305, internal boundary data 310, traversal route data 315, bypass route data 320, lawn route data 325, path behavior data 330, and scheduling data 335. Controller 1000 (depicted in fig. 1C) may process and execute at least some of training data 303 to move around the lawn area and traversal area and mow the target lawn area.

The boundary data 305 is a set of points that define a lawn area. Referring briefly back to FIG. 2, the boundaries 106a-c of the lawn areas 102a-c may be represented as a set of discrete points stored as boundary data 305a-c or a set of labeled cells in a Cartesian grid, respectively, as will be described in more detail later. From the boundary data 305, the controller may determine geometric characteristics of the lawn area, including length, width, area, and shape.

The internal boundary data 310 is a set of points that define an obstacle that cannot be traversed. The internal boundary data 310 defines a retention zone within the mowable zone within which the robot lawnmower should not mow. For example, referring back briefly to fig. 2 again, the rose garden 125 and crater 131 can be represented as a discrete set of points stored as internal boundary data 310.

The cross-route data 315, the bypass-route data 320, and the lawn-route data 325 each comprise a set of points. Each point stored in the cross-route data 315, the bypass-route data 320, and the lawn-route data 325 includes one or more locations (e.g., X-coordinates, Y-coordinates measured from one or more data points). As will be described in more detail later, one or more data points may correspond to a position relative to a boundary marker placed along the boundary. The location of the boundary marker serves as a reference point with respect to other points stored in the boundary data 305, the traversal route data 315, the bypass route data 320, and the lawn route data 325. The position of the point at this point is typically measured relative to an established coordinate system relative to the boundary markers.

The controller may use the route data 315, 320, 325 to generate one or more paths of movement that the robot 10 follows as it performs the mowing, traversing, or bypassing operations. The points and orientation angles may be measured in relation to a cartesian coordinate system defined for example by a main direction and a reference point on the lawn. The point corresponds to the orientation of the robot, the orientation corresponding to the direction the front of the robot is facing. The controller may control the drive system and the navigation system such that the robot is placed into the position of the point and the orientation associated with the point. The controller uses the points of the route data 315, 320, 325 to generate a route for moving around the lawn area and the traversal region.

Referring also to fig. 2, the traverse route data 315 includes traverse route data 315a and traverse route data 315b for the traverse area 104a and the traverse area 104b, respectively. Typically, during the traversal operation, the robot starts on the boundary of the first lawn area, follows a route across the traversal area, and ends on the second lawn area. In the example of fig. 2, the controller uses the points stored in the traversal route data 315a to generate a traversal route for the robot to move from the lawn area 102a through the traversal region 104a to reach the lawn area 102 b. The controller uses the points stored in the traversal route data 315b to generate a traversal route for the robot to move from the lawn area 102b through the traversal region 104b to reach the lawn area 102 c. The traverse route data includes at least a traverse start point and a traverse landing point. The traversal initiation point and the traversal landing point may be geographic locations or positions (e.g., X-position, Y-position in a coordinate system) relative to the boundary markers. The traversal route data may further include intermediate traversal points.

The traversal start point generally corresponds to an end point of the first lawn route; the intermediate traversal points generally correspond to points in the traversal region (e.g., path or route) traveled by the robot; the traversal landing site generally corresponds to a starting point of the second lawn route. The first lawn route terminates at a first interface between the first lawn area and the traversal region. The first interface is defined by a subset of points of boundary data for the first lawn area.

The middle traversal point within the traversal route corresponds to the point the robot follows while traversing the tile. The intermediate traversal point may further correspond to other changes in the behavior of the system (e.g., drive system, power system, navigation system, etc.) of the robot. For example, the controller may increase the power level at the intermediate traversal point to compensate for changes in the terrain at the intermediate traversal point. The terrain may be more difficult for the robot to traverse after traversing the intermediate traverse point, and increasing the power level of the power system would therefore be beneficial. The intermediate traversal route may include one or more additional intermediate points, which with the intermediate traversal point may define a straight-line geometry that may be represented by two or more points. For example, two intermediate traversal points and one intermediate point may define an arc.

The traversal landing point corresponds to the end of the traversal region and may additionally correspond to the starting point of the second lawn route. The second lawn route may begin at a second interface between the second lawn area and the traversal region. The second interface is defined by a subset of points of boundary data for the second lawn area. The traverse route data 305a includes a traverse start point, a middle traverse point, and a traverse landing point. The traverse route data 305b includes a traverse start point, an intermediate traverse route, and a traverse landing point. The points described above with respect to the traversal route data 305a-b will be explained in more detail herein.

In some cases, it may be desirable to move to a different lawn area without first mowing the lawn area closest to the robot docking station 50. In other cases, it may be beneficial to traverse a block of lawn without mowing the block (e.g., to return to docking station 50 from a separate lawn area). The bypass route data 320a-b provides a path for the robot lawn mower to follow to traverse the lawn area without mowing the area.

The bypass route data includes bypass route data 320a for lawn area 102a and bypass route data 320b for lawn area 102 b. Referring also briefly to fig. 2, the points stored in the bypass route data 320a allow the controller to generate a bypass route from the launch point 1001 through the lawn area 102a to the beginning of the traverse route for the traverse area 104 a. The bypass route data 320b allows the controller to generate a bypass route from the start of the traverse route for the traverse area 104a through the lawn area 102b to the start of the traverse route for the traverse area 104 b.

During mowing of a particular lawn area, the robotic lawnmower may follow a predetermined path or pattern to complete cutting of weeds in the lawn area. The information about the path is stored as lawn route data. Robot grassThe lawn mower may store separate route data for each of the different lawn areas that allow each to be mowed according to the appropriate pattern for the lawn area. The lawn routing data 325 includes lawn routing data 325a for the lawn area 102a, lawn routing data 325b for the lawn area 102b, and lawn routing data 325c for the lawn area 102 c. The controller uses the lawn route data 325a-c to guide the robot through movement patterns of the tiles (described in more detail below in connection with fig. 7) that cover the lawn tiles 102 a-c. The coverage area of the robot is cut by the width W of the mowingMAnd the length of the distance traveled by the robot while executing the lawn path. The lawn route data 325a-c each include a start point and an end point and a movement pattern for each lawn area 102a-c, respectively. The controller may further calculate an area of each lawn to determine the movement pattern. During the mowing operation, the calculated area allows the controller to compare the calculated lawn area to the area covered by the lawn to determine whether the robot has achieved adequate coverage of the lawn. In some implementations, sufficient coverage is defined by a ratio of a coverage area greater than 1 to the calculated area.

The path behavior data 330 indicates the operation of the robotic system (e.g., drive system, cutting system, navigation system) along the segments of the route defined by the route data 315, 320, 325. For example, some or all of the routes corresponding to lawn route data 325 may be associated with path behavior data 330 instructing the controller to set the power system so that both the drive system and the cutting system are on and weeds are cut while the robot traverses the routes. The portion or all of the routes corresponding to the traversal route data 315 and the bypass data 320 can be associated with path behavior data 330 that sets the drive system to a predetermined drive speed (e.g., slower than mowing when the robot is likely to handle different turns, or faster than during mowing if the robot traverses a long distance) and sets the cutting system to an activation level of 0% (e.g., disabling mowing). The path behavior data 330 may also include instructions for the navigation and/or drive system to navigate the robot by steering and forward driving.

The user may set the scheduling data 335 via a user interface on the mobile application or robot. The user can set a schedule that automates the robot to mow each lawn at different times. For example, the robot may be set to mow the lawn areas 102a-b at a user-selected time of one day of the week, and may be set to mow the lawn areas 102c at another user-selected time of another day of the week. The scheduling data 335 determines which routes 315, 320, 325 are to be combined to generate a path for the mowing operation at a given time.

To generate the route data 315, 320, 325, the robot may be trained manually by a user or automatically. Fig. 4-8 describe aspects of both an automated method and a manual method of training a robot. Specifically, fig. 4A-4B illustrate different examples of generating boundary data 305 that may be used by a controller or a user to generate route data 315, 320, 325. Fig. 5A-5B illustrate different examples of generating the traversal route data 315. FIG. 6 depicts an example of generating bypass route data 320. Fig. 7 shows an example of route data (e.g., lawn route data, traversal route data, and bypass route data) that may be generated based on the results from fig. 4-6. As the route data 315, 320, 325 is generated, the path behavior data 330 may be associated with each of the route data 315, 320, 325, either automatically (described in association with fig. 7) or manually (described in association with fig. 8), such that the appropriate systems of the robot 10 are activated and deactivated. While the examples shown in each of fig. 6-8 are for lawn areas and traversal regions of the illustrated geometry, it should be understood that each training mode may be implemented to train the robot 10 with respect to various lawn geometries and configurations.

Fig. 4A illustrates an example lawn area 102c in which the robot 10 determines its pose within the lawn area 102c by detecting the boundary markers 128 a-c. Each boundary marker is located at a known position and is positioned such that: as the robot navigates the lawn, the robot may detect each boundary marker. To determine its orientation on the lawn, the robot receives signals from individual boundary markers. The robot determines its pose based on signals that may represent the robot's position relative to the three boundary markers.

The pose (e.g., P) of the robot may be determined based on signals received from the boundary markers (e.g., signals sent from the robot and reflected by the boundary markers or signals generated by the boundary markers and received by the robot)1、P2). The robot lawnmower determines the distance between the robot and the boundary marker based on the time of flight between the marker and the robot. Thus, based on information from the plurality of boundary markers, the pose of the robot may be determined by triangulation based on the range/orientation information received from each of the boundary markers. Generally, triangulation is the process of determining the absolute or relative position of a point by measuring distances using circular, spherical, or triangular geometries. In one example, triangulation may be based on a least squares algorithm using distance/time-of-flight measurements. In another example, time of flight may be measured indirectly by measuring the phase shift between the signal and receipt of the reflected signal. Alternatively, the distance may be determined by: the method includes the steps of sending a signal from the robot, measuring the time of arrival of the signal at each boundary marker, and using a time difference of arrival technique to estimate the position of the robot.

The boundary 106b is trained using teach-and-playback (teach-and-playback) routing, where the user pushes the robot around the boundary 106b, and the robot stores information about the location of the trained boundary. Additional details of an exemplary process for determining lawn boundaries may be found, for example, in US 14/512,098 entitled "Robotic townswing Boundary Determination," filed 10 months and 10 days 2014, the contents of which are incorporated herein by reference in their entirety.

Fig. 4B illustrates a manual process of generating lawn boundary data for the lawn area 102B. The user manually navigates the robot 10 around the boundary 106b of the lawn area 102b by guiding the robot 10 with the detachable handle 675, and the robot 10 generates the boundary data 305b as it moves around the lawn area 102 b. The user 70 manually maneuvers the robot 10 by pushing and pulling the handle 675. Robot 10 automatically stores the points or user 70 may manually trigger the points to be stored. As the user 70 moves the robot 10, the robot 10 may be programmed to store points corresponding to its current azimuth route under the boundary data 305b (described above with reference to fig. 3) for the boundary 106b of the lawn area 102 b. In some implementations, the robot 10 may be programmed to automatically store its current position every second. The user 70 may also manually instruct the robot 10 to store its current position via, for example, an application on a mobile device, as will be described in more detail later.

In some examples, the data processing unit generates a 2D grid of cells to represent the lawn area. As the robot lawnmower determines its orientation relative to the beacons, the data processing unit determines and saves the coordinates of each cell containing the robot lawnmower during its movement. For each lawn block, each cell in the grid may be assigned a mow patch value indicating whether the cell is understood to be NONMOWABLE (i.e., outside the BOUNDARY), MOWABLE (i.e., inside the BOUNDARY), or BOUNDARY (i.e., on the BOUNDARY). Each bin of the grid may be assigned an (X, Y) coordinate based on the chosen origin (0, 0) bin. Each cell may represent a square block, wherein each cell has a side length between 1cm and 100 cm. For example, the grid may be a grid of cells each 10cm x 10 cm. The robot lawnmower stores the (X, Y) coordinates of each cell traversed by the robot lawnmower along the actual teaching path travelled during the teaching mode. The robot lawnmower can mark the actual teach path as a simple straight line that tracks the path of the robot through a single grid. Alternatively, the robot may mark all cells under the footprint of the robot as bound cells. At the beginning of the teaching, the values of all the bins are initialized to NONMOWABLE (non-secable). The operator presses the start button to start the training process, and then drives around the boundary of the mowing area. As the robot drives, the values of all the cells along its actual taught path are set to bound, the location of the cells being determined by the distance from the beacon. After walking the border, the operator presses a button to end the teaching process. The operator then positions the robot lawnmower anywhere within the mowing block and presses a button, indicating to the robot lawnmower that it is inside the boundary. In response, the system performs flood filling to set the values of all cells inside the BOUNDARY defined by the BOUNDARY cells to mark them as MOWABLE cells to be mowed.

Referring back to fig. 3, the traversal route data 315 instructs the robot to route through traversal regions between separate lawn areas (e.g., the traversal regions 104a-b shown in fig. 2). By way of overview, to train traversal route data, the controller determines and stores at least a traversal start point and a traversal landing point. In some implementations, the controller further determines and stores the intermediate traversal points. Fig. 5A and 5B depict examples of points generated with respect to the traversal route data 315A and 315B (previously described in connection with fig. 3), respectively. The traversal route data 315a includes points defining a traversal route 1500 that the robot takes to move from the lawn area 102a into the traversal region 104a of the lawn area 102 b. The traversal route data 315b includes points defining a traversal route 1600 that the robot follows to move from the lawn area 102b into the traversal region 104b of the lawn area 102 c.

Fig. 5A-5B illustrate examples of traversal routes 1500, 1600, respectively, generated with respect to traversal regions 104a-B, respectively. During the traversal operation, the robot 10 navigates through the traversal zones 104a-b by sequentially passing through points defining the traversal routes 1500, 1600. The traversal route 1500 is defined by a first traversal start point 1540, intermediate traversal points 1550a-b, and a first traversal landing point 1560. Robot 10 moves in a straight segment in sequence from point 1540 to point 1550a, point 1550b, and point 1560. Referring to fig. 5B, the transverse route 1600 is defined by a second transverse launch point 1640, an intermediate transverse launch point 1650, and a second transverse landing point 1660. To move through the traversal region 104b, the robot 10 moves in a straight segment in sequence from point 1640 to point 1650, 1660. While the examples shown in fig. 5A-5B show traversal route data for a particular configuration of traversal regions, it should be understood that traversal route data can be generated with respect to other traversable configurations of traversal regions.

In some examples, a route between the traversal start point and the traversal landing site may be trained using a process similar to the process used to train the boundary of the lawn. For example, the user may place the robot into a traverse training mode, and the traverse initiation point may be the position of the robot relative to the beacon. The user then pushes the robot along the path, and the robot stores the path in memory. The end of the path is stored as traversing the landing site.

Although in the above examples, the traversal route is trained manually, in some examples, automated processing may be used to train the traversal route. In an automated implementation of training the traversal route 1500, the controller automatically generates the traversal route 1500. Referring to fig. 5A, the controller determines and stores the shortest traversable route between the source boundary (boundary 106a) and the destination boundary (boundary 106 b). The robot 10 may identify the shortest traversable route in a number of ways. For example, the robot may identify locations where the robot can drive between one tile and other tiles (e.g., determine an area without obstacles). Given the previously described mesh-based representation of the lawn, a path planning algorithm (e.g., a) that quickly explores random trees (RRTs) or probabilistic landmarks may then be used to find the shortest path from the current location of the robot to the destination.

In a manual implementation of the training traversal routes 1500, 1600, the robot 10 is manually driven via a detachable handle (previously described in connection with fig. 4A-4B but not shown in fig. 5). The controller initiates the training mode when the user attaches the detachable handle to the robot 10 and marks in the application that the user is performing cross-course training. With respect to traversing route 1500, the user navigates robot 10 through traversing route 1500, and the robotic system (e.g., controller and memory storage element) generates points corresponding to traversing route 1500. Manual navigation of the robotic system via robot 10 may generate points substantially similar to those described above (e.g., traversing start point 1540, traversing landing point 1560, and intermediate traverse points 1550a-b), but it should be understood that a user may cause robot 10 to navigate along different routes with fewer or more intermediate traverse points. When the user pushes the robot 10 out of the area of the lawn area 102a, the controller of the robot 10 confirms this disengagement and generates a traversal start point 1540 corresponding to the point at which the robot 10 exits the lawn area 102 a. The user of the robot 10 directs the robot through the traversal route 1500 that turns to avoid the floral compartment 116, and the robot 10 stores information about the path the robot 10 followed during the traversal route training. As the user pushes the robot 10 across the boundary 106b, the controller may detect the crossing based on the mapping data of the lawn 104b and automatically generate a crossing landing 1560.

With respect to traversing the route 1600, the user pushes the robot 10 in a diagonal direction across the boundary 106b and the controller generates the traverse initiation point 1640. The user manually navigates the robot 10 towards the boundary 106c, avoiding the fire pit 131, and the robot 10 stores the path followed by the robot 10. As the robot 10 crosses the boundary 106c, the controller generates a traversal landing 1660 and completes the traversal route training with respect to the traversal region 104 b.

In some examples, as described above, the data processing unit generates a 2D grid of cells to represent the lawn areas, and each cell is indicated as MOWABLE, NONMOWABLE, or BOUNDARY. In such a grid-based system, during the training traversal region, as the robot lawnmower determines its orientation relative to the beacons, the data processing unit determines and saves the coordinates of each grid containing the robot lawnmower during its operation (e.g., while traversing the boundary areas between lawn areas). Each bin of the grid may be assigned an (X, Y) coordinate based on the chosen origin (0, 0) bin. The robot lawnmower stores the (X, Y) coordinates of each cell traversed by the robot lawnmower along the actual teach path traveled during the teach traversal path. The robot lawnmower can mark the actual teach path as a simple straight line that tracks the path of the robot through a single grid of regions. Alternatively, the robot may mark all cells under the footprint of the robot as TRAVERSAL PATH (traversal path) cells.

At the start of the teaching, the values of all the bins between the multiple swath blocks are initialized to NONMOWABLE. The operator presses the start button to start the teaching process and then drives from one lawn area to another. As the robot drives, the values of all the bins along its actual taught path are set to TRAVERSAL PATH, the location of the bins being determined by the distance from the beacon. After walking across the path, the operator presses a button to end the teaching process. During operation, as the robot lawnmower traverses the grid labeled TRAVERSAL PATH, the robot lawnmower disables (turns off) its cutting system.

Fig. 6 is an example of training bypass route data 320a, 320b that respectively provide the controller with data for traversing through lawn areas 102a, 102 b. The controller generates a bypass initiation point 1740 corresponding to initiation point 1001. The controller further generates a bypass landing 1760 consistent with crossing the launch point 1540. The bypass initiation point and the bypass landing point are locations relative to the beacon. The controller determines and stores the shortest route between bypass initiation point 1740 and bypass landing point 1760 that avoids any holding zone within a lawn block. The controller selects an initial point for the shortest route. The controller commands the robot 10 to move from bypass initiation point 1740 to bypass landing point 1760 via the shortest route (e.g., a straight line). The controller learns the location of the rose garden 125 from training the reserved zone of the cutable space and uses internal boundary data (e.g., internal boundary data 310 depicted in fig. 3) for the rose garden 125 to determine a bypass route 1700 that avoids traversing the prohibited space. As a result of this route determination, the controller stores a bypass initiation point 1740, an intermediate bypass point 1750, and a bypass landing point 1760, as shown in FIG. 6.

Similarly, to train the bypass route data 320b representing the bypass route 1800, the controller generates a bypass initiation point 1840 that coincides with the traversal initiation point 1560 and a bypass landing point 1860 that coincides with the traversal initiation point 1640. The controller determines and stores the shortest route between the bypass initiation point 1840 and the bypass landing point 1860 that avoids the prohibited reserved area (e.g., determines a path that stays within the mowable space). In other examples, the user may train the bypass route in a similar manner to the process for training the boundary by pushing the mower along the desired path while the robot stores information about the path.

In some examples, as described above, the data processing unit generates a 2D grid of cells to represent the lawn areas, and each cell is indicated as MOWABLE, NONMOWABLE, or BOUNDARY. The area between the lawn areas may have a connection path labeled as the TRAVERSAL PATH cell. In such a grid-based system, during training of the bypass route, as the robot lawnmower determines its orientation relative to the beacons, the data processing unit determines and saves the coordinates of each cell containing the robot lawnmower during its movement (e.g., while traversing through the lawn area). Each cell of the grid may be assigned an (X, Y) coordinate based on the chosen origin (0, 0) cell. The robot lawnmower stores the (X, Y) coordinates of each cell traversed by the robot lawnmower along the actual teach path traveled during the teach bypass path. The robot lawnmower can mark the actual teach path as a simple straight line that tracks the path of the robot through a single grid. Alternatively, the robot may mark all cells under the footprint of the robot as BYPASS cells.

At the start of the teaching, the values of all the bins are MOWABLE, since the bypass route is within the block of lawn to be mowed. The operator presses the start button to start the teaching process and then drives from one orientation within the lawn block to another orientation within the lawn block. As the robot drives, the values of all cells along its actual taught path are set to BYPASS (or MOWABLE/BYPASS), the location of the cells being determined by the distance from the beacon. After walking the bypass route path, the operator presses a button to end the teaching process.

Fig. 7A-7B depict automated generation of lawn route data 325a-c associated with the above generated route data 315, 320 and different path behaviors 330. The lawn route data 325a-c includes a start point, an end point, and a movement pattern. The movement pattern may be, for example, a spiral pattern, a grain row pattern, a meandering pattern, or the like. The user may select a desired movement pattern for each of the lawn areas, and different patterns may be selected with respect to different areas of the same lawn.

In some examples, the yard may be too long to mow on a single charge of the robot lawn mower battery. In these cases, the robot may mow different blocks of the yard at different times, allowing the robot to return to the dock and charge its battery between mow different blocks.

Fig. 7A depicts performing a mowing operation of the lawn area 102a, 102b, after which the robot returns to the charging dock 50. Fig. 7B depicts the mowing operation being performed on the lawn area 102c, after which the robot returns to the charging dock 50. In the illustrated example, the lawn routes 1900a-b are automatically generated based on the start point, the end point, and the default movement pattern. For the lawn area 102a, the robot starts at start point 1001 and enters grain row movement mode until the robot has determined that it has covered the lawn area 102a (e.g., completes the covering mode, or determines that the covered area, defined by, for example, the distance covered by the robot multiplied by the width of the cutting element, is greater than 100% of the calculated area for the lawn area 102 a). The grain row movement pattern directs the robot back and forth across the lawn so that the robot moves slightly perpendicular to the longitudinal movement of the pattern during each traverse. Upon completing the mowing of the lawn area 102a, to move from the lawn area 102a to the lawn area 102b, the controller executes traversal route data 320a, which defines a traversal route 1500. The associated path behavior data 330 for traversing the route data 320 includes: the cutting system is disabled. For lawn route data 325b, the start point is defined as the traversal landing point 1560 and the end point is defined as the traversal launch point 1640. Upon entering the lawn area 102b, the robot activates the cutting system. After completion, the robot returns to the launch point 1001.

Referring to fig. 7B, at a subsequent time (e.g., after charging), the robot continues to mow the lawn by mowing the block of lawn 102 c. To move from the launch point 1001 to the lawn area 102c, the controller executes the bypass route data 320a, the traverse route data 315a, the bypass route data 320b, and the traverse route data 315 b. The data 320a-b, 315a-b together define a bypass route 2100 for moving the robot from the starting point 1001 to the lawn area 102 c. The associated path behavior data 330 for the bypass route 2100 for bypassing the lawn areas 102a-b includes: the cutting system is disabled. Upon entering the intended area for mowing, the robot activates the cutting system. The starting point of lawn route 1900c corresponds to the ending point of bypass route 2100. The robot continues the grain row movement pattern until the robot has determined that it has covered the lawn area 102 c. When the robot has determined that the robot has covered the lawn area 102c, the controller commands the robot 10 to return to the launch point 1001.

As shown throughout this disclosure, a user may monitor and control the robot and various aspects of the training of the robot through applications installed on the computing device, which allows the user to enable functionality such as scheduling, bypass, movement selection, lawn area selection, among other functions, for example. A user may interact with the computing device via an interface feature (e.g., a touch screen display, a keyboard, a voice command, a gesture, or another type of interaction). Although the computing device shown in fig. 8 is a smartphone, in other implementations, the device may be a portable device (e.g., smart glasses, smart watches, laptop computer) or a computing device (e.g., desktop computer).

Fig. 8 illustrates a screen shot of a user interface of the exemplary lawn area shown in fig. 2. The mobile device displays a menu portion 3000 and a map portion 3500. Menu portion 3000 displays options including: "show route", "schedule", and "default settings". Tapping "show route" on menu portion 3000 reveals points or cells that are stored as a result of training the traversal route, the bypass route, and the lawn route. The user may interact with these points, as will be discussed. Tapping the "schedule" allows the user to modify the schedule for the mowing operation of the robot. Tapping the "default settings" allows the user to modify the default settings for the training subroutine.

Map portion 3500 includes a satellite map of the lawn area that the user wants to mow. The satellite map may be selected by the user and may be downloaded from a map provider service. The processor of the mobile device may further identify boundaries and contours on the satellite map. Prior to any training, the user may interact with the satellite map to give a common area corresponding to the lawn area that the user wishes to mow. The user may use the touch screen to draw a geometric shape that is a virtual area that may assist the robot in training. The user may set the virtual area to be a lawn area, which may give the controller a common location for the border of the lawn area. The user may further set a virtual area for the traversal area and for the obstacle. Further, prior to training, the map includes launch points 1001 corresponding to the location of the charging dock and the current location of the robot 10. The user may also select default settings for the training methods described herein.

As the user continues through additional aspects of the training robot (e.g., boundary training, cross-route training, and bypass route training), additional options from the main menu become available. After the robot has completed the boundary training of the lawn area, the map may include the points of the boundary data 305 (described above). While the traversal start points and the traversal landing points for each traversal region have been described as being automatically set, the user may also be receptive to automatically selected points by selecting one of the points of the boundary shown on the map on the application. After the user selects the traversal start point and the traversal landing point for each traversal region, the controller may further implement an optimization algorithm (e.g., a quasi-newton method) that considers the locations of the traversal start point and the traversal landing point to calculate the shortest route between the traversal start point and the traversal landing point. In some implementations, a user can mark traversable and non-traversable boundaries on a mobile device.

After determining and storing the traversal start point and the traversal end point for the traversal region, the user may initiate automated or manual traversal route training as described in detail previously. Since the mowing pattern may be defined after the lawn route starting point and the lawn route ending point have been defined, the user may also select a mowing pattern for each lawn before the cross-route training is achieved.

The user may further create a schedule for the robot. Each section of the lawn may be dispatched separately. Thus, the robot stores scheduling data for each of the plurality of lawn areas. For example, if the user wants the robot to mow lawn area block 102c separately from lawn areas 102a-b, the user may select lawn area 102c via the user interface and set a schedule (e.g., time of week and day) for mowing lawn area 102 c. The robot may be scheduled to mow lawn areas 102a-b in one mowing operation and mow lawn area 102c in another mowing operation. When the robot is scheduled to mow the lawn area 102b, the robot will follow the route described in fig. 7A. When the robot is scheduled to mow lawn areas 102c, the robot will bypass lawn areas 102a-B to mow lawn areas 102c, as shown in fig. 7B.

Fig. 9 is a flow diagram for training a robot to mow first and second lawns having an intersection area separating the first lawn from the second lawn (e.g., lawn areas 102a-b of fig. 2). Generally, the processing includes: identifying a boundary of a first lawn, identifying a boundary of a second lawn, selecting a traversal start point, training a first lawn route, selecting an intermediate traversal point, selecting a traversal landing point, training a bypass route for the first lawn, selecting a movement pattern for the first lawn, and selecting a movement pattern for the second lawn area.

At step S900, the controller trains the robot to identify the boundary of the first lawn area. The controller implements one or more of the boundary training methods described with respect to fig. 4A-4B to generate points corresponding to the boundary of the first lawn area.

In step S905, the controller trains the robot to identify the boundary of the second lawn area. The controller implements one or more of the boundary training methods described with respect to fig. 4A-4B to generate points corresponding to the boundaries of the second lawn area.

In step S910, the controller trains the traversal starting point. The controller may train the traversal launch point via user selection on the application depicted in fig. 8, or the controller may implement route training (such as depicted in fig. 5) to automatically select the traversal launch point.

In step S915, the controller trains a first lawn route for the first lawn area. The first lawn block route uses a starting point that is typically predetermined by the location of the charging station and uses an ending point determined by the traversal starting point trained in step S910. The controller selects a mowing mode for the first lawn route, which may be a default mode for the geometry of the first lawn area (e.g., a grain row mode). The controller may further set an associated path behavior for the first lawn route.

At step S920, the controller trains the intermediate cross points and the cross landing points for the cross area by implementing the cross course training described with respect to fig. 5A-5B. The controller navigates the robot to the traversal start point selected in step S910 and commands the robot to pass through the traversal region as the controller implements the traversal route training. If an obstacle is present within the traversal region, the controller may generate a middle traversal point as the robot avoids the obstacle. As the robot traverses the traversal area and enters the second lawn, the controller generates a traversal landing spot, and thus completes the training traversal route. The controller may further set an associated path behavior for traversing the route, including: the cutting system of the robot lawnmower is turned off.

In step S925, the controller trains a second lawn route for the second lawn area. The mowing pattern for the second lawn uses a starting point typically determined by the position of the intersecting landing spots trained in step S920. The mowing pattern for the second lawn uses the boundary points typically trained in step S905 and the end points determined by the crossing landing points. In some implementations, the end point is the boundary point furthest from the cross-landing point. The controller selects a second mowing mode for the second lawn route, which may be a default mode for the geometry of the first lawn area (e.g., grain row mode). The controller may further set an associated path behavior for the second lawn route.

At step S930, the controller trains the bypass route to move across the first lawn block from the start point corresponding to the location of the charging station to the beginning of the traverse route. The controller implements the bypass route training described in fig. 7 to generate the points of the bypass route. The controller may further set an associated path behavior for the bypass route.

Fig. 10A-10B are flow diagrams for the mowing operation after the robot has been trained by the method of fig. 9.

Fig. 10A is a flowchart of the mowing operation that mows both the first lawn area and the second lawn area. At step S1000A, the robot activates the cutting system of the robot and mows the first lawn area. The robot follows the first mowing pattern determined in step S915. After the robot has covered at least 100% of the area of the first lawn area, the mowing mode ends at the traversal start point determined in step S910.

At step S1005A, after the robot reaches the traverse start point of the traverse route, the robot disables the cutting system and begins traversing across the traverse area via the traverse route (including the traverse start point, the intermediate traverse point, and the traverse end point) determined in steps S910 and S920. The robot completes the traversal route at the traversal end point determined in step S920.

At step S1010A, after the robot traverses the traversal area, the robot activates the cutting system and begins mowing the second lawn via the second lawn route stored in step S925. The robot follows the second mowing pattern until the robot has covered at least 100% of the area of the second lawn area. The robot then terminates the second lawn route at the end point determined in step S925.

At step S1015A, after the robot reaches the end point of the second lawn route, the robot disables the cutting system and returns to the start point.

Fig. 10B is a flow diagram of a mowing operation that bypasses the first lawn and mows the second lawn area. At step S1000B, the robot disables the mowing function, bypasses the first lawn via the bypass route trained in step S935, traverses the first traversed area via the traversed route trained in steps S910 and S920 to reach the traversed landing spot on the second lawn area.

At step S1005B, after the robot reaches the traversal landing site of the traversal route, the robot activates the cutting system and begins mowing the second lawn via the second lawn route determined in step S925. The robot follows the second mowing pattern until the robot has covered an area of at least 100% of the area of the second lawn area. The robot then terminates the second lawn route at the end point determined in step S925.

At step S1010B, after the robot reaches the end point of the second lawn route, the robot disables the cutting system and returns to the start point.

Although the examples described in this disclosure describe three non-adjacent lawn areas 102a-c, in some implementations, the robot may be trained to mow more or fewer lawn areas. For example, in some implementations, the robot may be trained to mow a continuous lawn, and thus not need to traverse the route data to move through the traversal area. In other implementations, the robot may be trained to mow a number of non-adjacent lawn areas (e.g., four or more). The robot may be scheduled to perform several mowing operations at different times so that the power system of the robot may be maintained throughout the entire mowing operation. The robot may be trained to include several bypass routes that allow the robot to bypass lawn areas that are not to be mowed in a mowing operation.

While the combination of activation levels of the systems (e.g., 50% activation level of the drive system and 0% activation level of the cutting system during the traversing operation) has been briefly described with respect to various operations, in some implementations, setting the activation levels may be adaptive. For example, as the robot performs a training operation, the robot may have a swath sensor that may detect the stiffness of weeds that the robot passes over. As the robot detects the stiffness of the weeds, it can modify the level of activation of the cutting system during the mowing operation to accommodate this stiffness. If the weeds are rigid, the activation level of the cutting system may be increased. The robot may also include torque or force sensors in the drive system to determine the level of activation for the drive system to drive the wheel modules to traverse various terrain.

While the scheduling data 335 has been described as being set by a user via an application on a computing device, in some implementations, the controller may be configured to: the scheduling data is automatically set. The controller may, for example, calculate the area of each of the non-adjacent lawn areas and the distance of the potential route, and use these calculations to estimate the amount of power consumption associated with the particular route option. The controller may then set the schedule of routes so that the robot can perform each mowing operation with the full charge of power.

While path planning algorithms (e.g., a @, fast-exploring random trees (RRTs), or probabilistic signposts) have been described for training traversal and bypass routes, in other implementations, other algorithms (e.g., Floyd-Warshall algorithm, Johnson algorithm, and Dijkstra algorithm) may be used to reduce computational burden. For example, where the set of points includes only one point or the second set of points includes only one point, a single source or single destination shortest path algorithm (e.g., Dijkstra algorithm) may be used.

While the threshold mowing area coverage has been described as 100% of the area of the lawn, in some implementations, the threshold mowing area coverage may be greater. In other implementations, the threshold mowing area coverage may be greater than, for example, 150% of the area of the lawn area 102 a.

In the manual mode, while the robot has been described as detecting the handle via the sensor system, in some implementations, the user may manually instruct the robot that the handle has been attached. Furthermore, in manual mode with automatic point storage, the robot has been described as storing points per second. In other implementations, the duration of time between storing points may be modified by the user to be more or less. For example, for larger lawn areas, it may be beneficial to store fewer points to reduce the amount of storage space dedicated to lawn route data.

While the handle 675 has been described as being detachable, in other implementations the handle remains on the robot, but is foldable or stowable. For example, the handle may be telescoping so that the handle may be folded into a small number when not in use.

Although not shown for defining virtual characteristics of the lawn areas 102a-c, in some implementations, a user may use an application on a computing device to manually define the common boundaries. Manually defined boundaries on an application may generate virtual markers that the robot follows to map the boundaries.

While the cells of the 2D grid used to represent the cells of the lawn have been described as representing square blocks having a side length between 1cm and 100cm, in other implementations, the cells may be larger or smaller depending on the nature. For example, for larger properties (e.g. football pitch, golf course), the side length may be between 1m and 10 m. In some implementations, the user manually sets the side lengths. In other implementations, the controller selects the cell size based on input for a block of lawn or real estate. In other examples, the controller implements an adaptive algorithm that determines the size of the cells based on the geometry of the lawn. For example, for an amorphous lawn shape, a greater number of cells may be used to reflect an amorphous geometry.

In some implementations, the user may select an objective function for the path planning algorithm. For example, rather than requesting a route with a minimum distance between the traversal start point and the traversal landing point, the user may select an objective function that the controller minimizes to select a route with the fewest number of turns, starting and ending at a particular point (e.g., the user pre-defines the traversal start point and the traversal landing point). The user may also select more than one objective function to minimize. For example, the user may want to minimize the number of turns and the distance between the traversal start point and the traversal landing point.

While the training methods for traversing routes 1500, 1600 and bypass routes 1700, 1800 have been described as including one or fewer obstacles between various starting points and landing sites, in some implementations, additional obstacles are detected during training. After generating the intermediate point and attempting the cross-route or bypass route generated during training, the controller determines the presence of additional obstacles. The controller maps additional obstacles and generates additional intermediate points to find an optimized path to avoid the obstacles. The controller continues to iterate through the training method until the controller commands the robot to traverse the route without detecting additional obstacles.

While the traversal launch site and the traversal landing site have been described as being selected in an automated manner or via a user application installed on the mobile device, in some implementations, boundary markers placed along the boundary may also serve as the traversal launch site and the traversal landing site. In these implementations, the user can place physical markers (e.g., boundary markers) that represent traversal of the start point and traversal of the landing site, as opposed to relying on virtual markers for traversal of the start and landing sites.

While the examples of route segmentation shown in this disclosure focus on straight line segments between points, it should be understood that other curvilinear geometries (e.g., arcs) may be generated by points on the route. Associating a polynomial with two points on the route may, for example, generate a spline geometry connecting the two points. When the robot reaches one of the points of the spline geometry, the controller may correlate the navigation system with the polynomial function so that the robot moves along the spline geometry. For example, for obstacles having a geometry that is not easily defined by an arc, the controller may generate a spline geometry for approximating a path for avoiding the obstacle geometry.

While the first traversal launch points 1540, 1640 have been described as being selected during the process of training the traversal route, in other implementations, the default traversal launch point may be a charging dock.

While the lawn area 102c has been described as having no corresponding trained bypass route, in some implementations the last lawn may have a trained bypass route that may be used as part of the return route. For example, during the bypass route training, the bypass route may be trained with respect to a lawn area, so that the robot may take the reverse of the bypass route to return to the charging station. Rather than using the start of traversal point for the traversal region with respect to the end point of the bypass route that bypasses the lawn area, the bypass route may use the end point of the mowing mode for the lawn area.

While the mowing mode of the lawn line has been described as being completed after overlaying the lawn, in some implementations, the controller can be programmed so that the mowing mode of the lawn line ends at the traversal start point. For example, the end point of the lawn route may terminate at the traversal start point of the traversal route.

In some implementations, the return route that the robot takes when inferring the mowing operation can be a composite of a bypass route and a traversal route. For example, referring briefly to fig. 7A, to return to the charging station 50 from the end point of the lawn route 1900b, the robot 10 may follow the bypass route 1800, the traverse route 1500, and the bypass route 1700 in opposite directions.

While the path behavior data 330 has been described as being assigned to the traversal route data 315 and the bypass route data 320 with respect to fig. 7 after the lawn route data 325 has been generated, it should be understood that the path behavior data 330 may be generated as each route data is being generated. For example, as points for traversing route data and bypass route data are being generated, path behavior data associated with these routes may be set such that the drive system is set at a mid-range activation level and the cutting system is disabled. In some implementations, the controller may be programmed to train the bypass route data and the traverse route data to automatically associate those route data with disabling of the cutting system, and train the lawn route data to automatically associate the lawn route data with activation of the cutting system.

Although the lawn paths described herein apply to a continuous lawn, in some implementations, the lawn may be segmented into two separate lawn areas adjacent the lawn area. The robot may be scheduled to mow the lawn area at different times.

While the selection of the traverse start point and the traverse landing point has been described as an optimized automated selection based on the distance of the traverse start point from the traverse landing point, the modification of the traverse start point and the traverse landing point may be a manual operation. For example, a user may browse the boundary data stored for a lawn area on an application of the mobile device and manually select a location for traversing the launch point and traversing the landing point.

While the steps of the flow diagrams shown in fig. 9-10 have been described as occurring in sequence, it should be understood that some of the steps may be performed in a different order. For example, referring to fig. 9, training the traversal route between the first and second areas may result after training the mowing operation for the first and second areas. The training bypass route may be generated before training the second lawn route or training the traversal route.

A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention.

44页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种草坪机割草高度调节装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!