Site Management - directedmachines/customer-support GitHub Wiki

Overview

Commercial deployments of multiple LCRs are often associated with a geographic location, a work site. Fleet management uses the Site construct to group robots, their navigation plans and their telemetry, simplifying operations.

Planning

Use github to create a project for the site using the proper naming template. Each site project must have the following settings

  • A In Progress column for all work planned in the current week
  • A Blocked column for repairs/upgrades blocked due to various factors (waiting on parts)
  • A ToDo column for items scheduled further out
  • A Landscaping column for manual landscaping work
  • The Project Settings README must contain

Please clone one of the existing projects and rename, for example: https://github.com/orgs/dCentralizedSystems/projects/26

Note

Site creation

  1. Log into fleet management dashboard
  2. Find an existing site from the same organization (if possible) and click Clone.
  3. Edit the name (alias) and commit changes
  4. Refresh Fleet page, search for new site by alias and click on its marker.
  5. Drag the marker to the proper site location on the map.
  6. In fleet view, search for a robot meant for this site, click Inspect and enter the site ID in the robot siteId field. Click Commit Changes.
  7. Repeat siteId update for all robots, remembering to Commit Changes each time.
    1. Update the NTRIP caster information as well in sensors-ntrip-corrections-default.json

Media

The operator should create media albums in Google Photos for both the site activity (using site ID and alias) and for each robot. The album name template is

  • (Site ID) (Alias) Activity
  • (Robot ID) (Alias) Activity

Plan aggregation

Site-Associated Plans

  • AGT plans can either be:
    1. Robot-specific - editable on robots, not shared
    2. Site-associated - editable on the site's page in the fleet management dashboard, shared between robots.
  • If a robot is associated with a site, its plans should, in general, also be associated with that site so they can be shared with other LCRs
  • To synchronize site plans, a user must click Synchronize on the robot AGT UI.
  • How to create site associated plans:
    • Associate an existing plan with a siteID (see Initial Synchronization)
    • Create a new plan on the LCR from a plan already associated with a site (siteID is automatically applied)
    • Create a new plan from within an existing plan in the fleet management dashboard

Initial synchronization

Once you have at least one plan associated with the same site, across all robots, you can synchronize with that plan selected, and all site plans will be brought down to a robot.

To associate a robot with site plans (assuming the robot does not have any plans associated with the site ID)

  1. Connect to one of the robots that will operate on the site
  2. Using a web browser, navigate to the AGT UI
  3. Load the default plan on the robot AGT UI
  4. Verify default plan does not have a site ID
  5. Create a new plan using the following naming scheme: <robot-alias>-<site alias>-<onboarding>
  6. Edit the plan and associate the site ID with the plan
  7. Click anywhere on the map
  8. Copy and paste the site ID into the input box of the dialog, then close the dialog
  9. In Task Settings, click Synchronize
  10. the Plan Selector will now show all plans associated with the site. A page refresh might be required
  11. Repeat with all the remaining robots for the site
  12. Avoid making changes to site plans, directly on the robot. Use Fleet Management instead, then synchronize on the robots.
  13. Any change made to a site associated plan affects all robots

Work Reports

The plan view in fleet management should be used to generate activity reports. First, a special "overview" plan needs to be associated with the site

Overview plan

  1. Connect remotely to a robot associated with a site
  2. Create a plan (or clone an existing site plan) using this naming scheme: <org>-<site>-overview
  3. Associate plan with siteId if it was not cloned
  4. Create a parameter domain for each section of the site that needs to be tracked, or one large domain covering the entire site
  5. Enter a name for each domain and Commit Changes
  6. Set the Work Unit to a distance or area unit, for each domain (towing vs mowing tasks)
  7. In Plan Settings set the implement width (for mowing applications)

Overview plan with named domains

Charging

When setting up a charging station in a plan, you should first place a waypoint that is approximately 3 meters away from the charging dock location. If the dock is pointing North, place the waypoint 3 meters North of that. This will allow autonomy to get near the dock without fear of crashing into it. See image below.

image

The CNXX waypoints are the lead up to the dock. If there are more robots than charging stations, it is good practice to include a staging area as well for docking. This will allow robots to congregate in the charging area, and avoid risk of crashing robots into each other when moving around the charging area. If there is not enough space directly near the charging stations, then the staging area can be offset. See the 3 different examples of charging areas below: image image image

Report generation

With the overview plan loaded,

  1. click on the Telemetry button and specify a time range
  2. click Refresh and wait until the telemetry processing status stops updating. A time span of over a week can take several minutes depending on activity
  3. click on Generate Report. A JSON human readable document will be downloaded with per robot, per work area aggregations and a site level summary. The heat map visualized on the map should also be included using a screenshot.

Creating a site overlay

Overlays provide additional context to remote operators and can replace outdated or low-resolution satellite images. Below are instructions on how to create these overlays.

Be cautious with overlays, especially with sites that do not have GPS data. Small distortions can lead to large differences between what is shown on the overlay and the actual GPS location.

Image overlay

See examples of google maps image overlays here: Custom Overlays Image overlays are positioned on a map using a boundary defined by four numbers:

  1. The latitude + longitude of the south-west corner of the image
  2. The latitude + longitude of the north-east corner of the image

The image can be stored locally on robots, or on public URLs.

Generating image from PDF

  1. Ensure the PDF image is to scale
  2. Open the PDF with an image editing program (the following instructions assume you are using GNU Image Manipulation Program (GIMP)
  3. An "Import from PDF" screen should pop up, leave the Width/Height as default, set the Resolution to 300 dpi
  4. Use the crop tool (shift + c) to crop the image to show only the overlay you want. Ensure the edges of the cropped image have distinct features that can be lined up with the satellite image or a survey point (we can use our robots in RTK mode to get gps coordinates if necessary)
  5. If you want a transparent image, navigate to Select -> By Color (Shift+O), select the background color you wish to remove, and press delete.
  6. Go to File -> Export As... (Shift+Ctrl+E) and save the image as a png (to preserve transparency) with a random name (on linux computers can use uuidgen to generate something like abb9498f-2b67-4fbc-bba8-4f88be6d8b8f.png)
  7. Upload the image to the AWS image folder s3://retail-ui-media/images/
  8. Go to Google Maps and right click on the map features that are correlated with the overlay image and copy the coordinates. Continue until you have properly defined the south-west and north-east corners of the image with lat/lon values.

Generating image from satellite source

Different satellite image providers can provide a large image with the 2x pairs of lat/long values that define the boundaries or tiled images with individual lat/long boundaries to allow visualization of the images. Ensure the image is compatible with the projection used by Google so it aligns with GPS

KML overlay

KML files can be visualized on a plan using Google's KmlLayer object. Steps below:

  1. Download Google Earth Pro https://www.google.com/earth/versions/#earth-pro. A few tips to make using Google Earth a little bit better:
    1. Disable the tilt while zooming (Tools -> Options -> Navigation -> "Do not automatically tilt while zooming")
    2. Reset tilt + compass (View -> reset -> tilt + compass)
    3. Google Earth may open in a 0x0 window. On windows machines, to fix this, left click Google Earth Pro on your taskbar, and press Alt+Space, release, and press M for Maximize (or select Maximize if able), this will maximize the window and display it properly.
  2. Open the KML file in Google Earth Pro and remove any unnecessary layers. Try to keep the file as small as possible.
    1. Set the line width of each folder to 0.1 to decrease clutter: Set line width screenshot.
    2. Remove any images from the KMZ. These will have a distinct name scheme vs the outlining that we want (FTD for images, 20070 for outline, for example)
    3. Save as a compressed KMZ. If larger than 2 MB speak with the engineering team (3MB max filesize set by google earth).
  3. Save the file with a filename created using uuidgen, e.g., 4bfe2580-dd85-472c-ba18-39d6579e016e.kml
  4. Upload the image to the AWS image folder s3://retail-ui-media/images/, ensure you make the file public.
  5. To visualize the KML, edit a plan either directly on the robot or on fleet management for a site plan
  6. Click anywhere on the map and add the KML file URL under the second green box labeled Type site KML reference...
  7. Click "Close Dialog" then "Freeze Plan" and refresh the page and the KML should now be visualized

In the future other KML parsers could be used that can use local KML files such as geocodezip

References: KmlLayer

GeoJSON overlay (NOT SUPPORTED)

This feature is not currently supported by the UI. An example of displaying GeoJSON data is here: Drag and Drop GeoJSON

⚠️ **GitHub.com Fallback** ⚠️