Pattern Plug-ins

There is an infinite number of ways an automated robot mower can be sent around a lawn in order to cut the grass. This is the purpose of the pattern plug-in. Each file in the patterns folder is a python module with a calculate_route() function. When the server is started, this folder is scanned to assemble a list of mowing patterns. That list will appear in the settings form for Pairings - so you can configure which mowing pattern (and navigation strategy) you want to associate with the selected profile/mower pairing.

You can drop a new pattern file into the folder at any time, but a restart or a profile change will be required for it to be registered.

There are a number of patterns provided which may suit your needs, or serve as the blueprint for a new pattern.

Spiral Patterns

The idea here is that we start around the outer edge of the lawn, i.e. the path formed by the fence points, and follow the edge of smaller and smaller polygons until we reach the centre. The following are examples of spiral patterns:

  • Fence
  • Ever Decreasing Polygons
  • Dense EDP

Fence just visits the outer polygon of fence points, and Dense EDP uses the densify() helper function from pattern_utils to ensure the route has no big gaps.

Dense EDP

Radial Patterns

If we want to mow up to or over the lawn edge then we need a radial pattern. The following are examples of radial patterns:

  • Star
  • Diamond Star

Diamond Star

Stripes

Stripes are often the most sought after mowing pattern. The following are examples of striped patterns:

  • Lane Stripes
  • Push Me Pull You

Lane Stripes employs a rolling window approach. The idea is that the mower will mow a consecutive set of paths in one direction, and a similar set in the opposite direction.

Lane Stripes

The problem with Lane Stripes is the high occurrence of rotations. Push Me Pull You is suitable for mowers that have cutters at each end, and are stable in both directions. It avoids excessive rotation by shuttling back and forth. Whilst this does not achieve the striped lanes of the previous pattern, it is recommended for its efficiency.

Push Me Pull You

Bear in mind that patterns need to be partnered with a suitable navigation strategy. For example the Diamond Star pattern needs reverse navigation as implemented in the Star Reverse Backoff Pure Pursuit strategy, and the Push Me Pull You pattern needs to skip nodes as implemented in the Push Me Pull You strategy.

Miscellaneous

As mentioned at the outset, the range of mowing patterns is only limited by imagination. Text is perfectly possible...

  • Hello

Hello

Finally there is an example template.py that is a good starting point for new patterns.