LCR Autonomous Ground Task Guide Level 4 - directedmachines/customer-support GitHub Wiki

Table of Contents

Overview

This is the fourth tutorial on autonomous tasks. It covers:

  • general guidance for plan creation in structured rows
  • best practices on path parameters
  • routes in rows
  • examples

Safety

Please follow the recommendations below, it is critical you do so to reduce the chance of harm to living things and structures

  • Design work areas so they do not include known obstacles.
  • Add exclusion areas around known obstacles, with a 10ft margin between work area and paths, from the obstacles
  • This general rule has to be relaxed when operating in rows. Since the rows are narrow and the LCR will have to rely on its sensors, exclusion areas should be used based on the guidance in the following sections
  • Always observe the robot the first time you design a work area/path and be ready to stop it and adjust the work area/path if it's getting too close to obstacles
  • Do not rely on the robot dynamic obstacle avoidance: The robot cannot always see things, especially things close to ground or skinny posts.
  • Do not enable autonomy in areas where there are people and animals

Prerequisites

Troubleshooting

The AGT User Interface will display various warnings to aid the operator in resolving potentially unsafe plans, diagnosing issues with obstacles and robot health. Please review the AGT Troubleshooting Guide and search that page for any warnings you encounter, before contacting support.

Media

Example video of editing an existing plan, adding paths, exclusion areas and parameter domains

https://photos.app.goo.gl/SyjFmoQgB8JLVGe6A

Best practices

Updating Plans

When updating plans, it is recommended to update on the fleet manager rather than on the robot itself. When updating from the fleet manager, it will always update the plan appropriately since you are directly working with the files in the cloud. If updating from the robot, the robot will send any changes from the plan it currently has to the cloud. If the plan the robot has is mismatched it will overwrite what is up on the cloud to the robots current plan. This can lead to erasing any changes that were made by another operator, or by yourself when operating multiple robots.

Whenever working with a robot, it is always good to synchronize the plan once you select it, as the robots will not automatically update plans. By synchronizing every time you get the robot, this will help prevent overwriting what is currently on the cloud, or other work someone else has done.

If you have to make changes on the robot instead of on the fleet manager, ensure to synchronize before making any adjustments. This will help prevent overwriting what is in the cloud too.

General guidance

When operating in structured rows, waypoint navigation plans require waypoints at the entry and exit of each row, with advanced parameters set in the paths insides the rows. A different set of parameters is needed for paths connecting rows. It is strongly recommended to manually drive the LCR in at least a few rows, once, and analyze the reported telemetry and path in the fleet management UI.

The following general rules should be used as a starting point:

  • Set a waypoint (WP) on the entry of each row, within the row. Repeat for the row "exit". Since the robot can enter from either end of a row an entry is also an exit
  • Set another WP about a robot + implement length past the row exit WP, or twice that if possible and connect to the row exit/entry WP.
  • Connect WPs outside the rows to each other, creating a fully connected graph if there is a safe path to do so.
  • Limit the number of WPs per plan to no more than 50, to limit computational load on the robot CPU.
  • Create additional plans, to cover different areas, or "blocks" of the rows
  • Set the max distance Z MM to at least 4500mm (in the parameter domain covering the rows, see below)
  • Set the max distance X MM to at least 3000mm or the safe opening width of the row (between plant branch tips on each side for example)
  • in narrow rows (less than 3 meters opening) set filterAngleOfViewMillidegrees to 2000, so we do not make obstacles larger than they are causing false positives on row exit / entry
  • in "COnfigure Task" settings, set the implement width correctly. This is a critical parameter. Implement width should be at least 1200mm for 48" mower, or 2200mm for 84" mower with extensions
  • Disable Zero Turn, so robot never attempts a mid row rotation when it is mis configured or route is wrong (asking it to go to a WP behind it).

Zero Turn Disabled in Task Settings

Setting the route

It is recommended that the operator initially does unsupervised autonomy a single row at a time. To do so, follow these steps

  1. Select the entry WP of the row you want to operate in. This will become the destination
  2. Enable task and observe robot while it arrives at row entry
  3. Click on the row path, which will bring the route selection dialog for the row exit WP (its implicit, we assume you want to head to the end of the path you clicked). See video: * On large installations where the rows do not fit on the screen at high zoom level, select the row entry WP as the destination, then click on the row path to easily set / add the rows destination WP to the route. See: https://photos.app.goo.gl/XtxWBR1EVDppikf78
  4. Start task if cameras indicate row is free of obstructions, people, animals.
  5. When the robot reaches the end of the row, it will self stop and send a notification

Parameter domains

There are various parameters that apply to waypoints, paths and work areas. You can set parameters on each construct, or, draw a polygon that encompasses the primitives and enforces the same path planning and navigation parameters when the robot is active and within the domain area. The domain areas also contain settings for the 4 cardinal directions, and you can set each direction to have different parameters. If outside the range of the direction, or there is nothing set for that specific direction, the parameter domain will default to the "any" parameters.

Enabling parameters

Most parameters in a domain are disabled (not set). To enable them, please read this section in AGT Guide 1

Creating a domain

  1. Edit plan
  2. Click in an empty area of the map (do not click on a work area or path)
  3. Select "Add parameter domain"
  4. A square shaped area will be positioned on the map. Click the area to select it then position it over the paths / work areas desired
  5. Adjust the area shape just like you would with work areas
  6. Click on the parameter domain area to modify parameters. Parameters are discussed in more detail in following sections
  7. Click on "Commit Changes" to save changes to domain and close the dialog

image

Obstacle Avoidance Bias

Bias is an obstacle avoidance feature used during autonomy that instructs the robot to hold a distance from an obstacle on either side of it.

If the distance is less than the minimum opening width, or width of the implement, then the implement will collide with the obstacle. If the intent is to go under an obstacle, then the overlap is OK and required (for example, to cut under the low side of branches or solar panels

A positive bias means to look for an obstacle on the right side of the robot, negative is on the left side.

The MM value is the distance, in X Axis (short axis, left, right) from the center of the robot, the GPS puck essentially, to the obstacle we detect The implement width is not used in bias behavior. But the operator must consider it when selecting a bias value ...

Examples

  • Orientation 0 bias of +1000mm - if robot is heading north, sees an obstacle to right, and its 1200mm away, turn towards it, so it eventually becomes 1000mm away
  • under panel mow, low side - assume a 2200mm deck, and we want to cut 100mm under low panel edge. Half the implement (mowing deck) width is 1100, but, we want to go under, overlap, with panel edge. So, we set bias to -1000mm, if panel edge is to our left.
  • If you try to select a bias less between -500 and 500mm, we will ignore you, set bias to 0mm

Example settings for an East bias while moving North(Orientation 0) by 1590mm (the robot will stay as close to 1590mm from objects to its East).

image

image

Visual / compass localization mode

When in a structured row the robot can use obstacle avoidance to center left to right (short axis of row) and only loosely rely on GPS to determine where it is along the row. To enable this mode, the min spatial accuracy setting must be set on the path. When the robot is navigating, the UI will show the robot arrow in blue, meaning GPS is not used for precise positioning. This ability to ignore GPS helps immensely in areas with poor GPS (heavy canopy, under solar panels) since the structure guides the robot path.

GPS can be wrong as much as a row width on the orthogonal to row axis.

GPS is still used to determine where we are along the axis. If GPS is not available at all, robot navigation will pause

On row exit / entry GPS accuracy of at least half the row width is required, for the robot to enter the correct row

To enable visual localization mode, draw a parameter domain over the paths you want it to include, then set its minSpatialAccuracyMM parameter to a value less than 400mm (its a dilution of precision value unlikely to be achieved by GPS).

When the visual + compass localization is used, the robot arrow icon will change color to blue with a "fuzzy" green border.

image

Another example here.

Examples

Media

Autonomous mowing in apple orchard

Autonomous mowing in filbert orchard, early spring

Autonomous mowing in blueberry rows, dusk, remote activation

Autonomous navigation in solar row, at night, remote operation

Blueberry rows

Video of autonomous navigation in blueberry row, at dusk, remote operation

Detail of north end of plan, block 4

General design

Row width is 9ft plant center to center.

As plants mature during the season parameters need to adjusted since they reduce the available open space.

In early spring, min required opening is set to the width of the robot, later in the season, we relax this requirement since the plants grow into the row leaving less than 4ft of open space. Since the branches are compliant we allow the robot frame and panel to touch them

A plan is created per block (about 20 rows, 600ft long)

A path per row terminates just past the physical row end, then a smaller path is created to a WP further out

To link rows without hitting plants while exiting and turning, the WPs further out from the row are at least a robot plus mower length away

Exclusion areas (red) are created to cover adjacent blocks, to act as virtual barriers.

Detailed settings

  • The robot uses obstacle avoidance sensors to stay centered in rows and poor GPS accuracy can affect performance. To mostly remove GPS influence set the min spatial accuracy (mm) parameter, on the edge settings dialog, to less than 500mm
  • The minimum required opening should match the robot implement if wider than robot. This parameter has to be relaxed in the summer so the robot can squeeze through perceived openings just 3ft wide, of compliant branches.

Solar rows

Detailed description of both fixed and tracking solar row plan design can be found in the remote operation guide

Next Steps

Remote Operation Guide