Site Management - directedmachines/customer-support GitHub Wiki
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.
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
- Site ID
- KML link to site, used in all plans
- Links to robot albums
- A site specific section with guidance on hazards and parameters
- Example README: https://github.com/orgs/dCentralizedSystems/projects/26/settings
Please clone one of the existing projects and rename, for example: https://github.com/orgs/dCentralizedSystems/projects/26
When work first starts on a site, after project has been created, the following GitHub issues should be created and set to In Progress:
- Inverter Pad cleanup, with a check list for all inverters
- Overview plan creation with domains covering each inverter generation area
- Robot plan synchronization (onboarding to site plans), with checklist for each robot assigned to site
Note
- Log into fleet management dashboard
- Find an existing site from the same organization (if possible) and click Clone.
- Edit the name (alias) and commit changes
- Refresh Fleet page, search for new site by alias and click on its marker.
- Drag the marker to the proper site location on the map.
- 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.
- Repeat siteId update for all robots, remembering to Commit Changes each time.
- Update the NTRIP caster information as well in
sensors-ntrip-corrections-default.json
- Update the NTRIP caster information as well in
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
Verify robot details are correct in fleet management before associating a robot with a site:
- Stage is set to DEPLOYED
- Model is set to LCR24Z
- Site ID is set to desired site
- If any changes are made, please commit them
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
- Connect remotely to a robot associated with a site
- Create a plan (or clone an existing site plan) using this naming scheme:
<org>-<site>-overview
- Associate plan with siteId if it was not cloned
- Create a parameter domain for each section of the site that needs to be tracked, or one large domain covering the entire site
1.
- Enter a name for each domain and Commit Changes
- Set the Work Unit to a distance or area unit, for each domain (towing vs mowing tasks)
- In Plan Settings set the implement width (for mowing applications)
- Wherever the Charging Docks are located, mark a WP and select WP type "Charge Dock"
- Name the charge dock something unique and relevant, i.e. "South Charging Dock", "GCDN" (Ground Charge Dock North), etc.
- In the "average daily generation in KWH" field, use the equation [Avg Sun producing hours * number of panels * min(SCC_watts, panel_watts)] to return the input. For example, a 12 panel ground dock that produces 300W per panel, use 4 hours * 12 * 300W -> 14kWh/Day.
- Use a conservative estimate to account for cloudy days.
Overview plan with named domains


Access road plans are used to navigate the sites. When navigating a site mowing will be disabled until you are at the appropriate section. Access road plans will contain the following:
- Waypoints along physical access roads to navigate the site
- Waypoints around the outside of inverter blocks to allow navigation to the staging areas of mowing plans
- Exclusion areas around all solar panel blocks
- Exclusion areas around obstacles such as charging docks, containers, or other physical obstacles
- One parameter domain that encompasses the entire site with the following settings in the any orientation
- 20 degree error threshold
- Aux motor disabled
- 4000 mm x and z object detection range
- 1000mm to 2000mm object height
- 150mm object width
See example of access road plan below
Generation areas concern all areas within solar panel rows. There are multiple variations of generation areas to be concerned about:
- Fixed Panels with Collector Posts
- Fixed Panels with CAB
- Tracker Panels with CAB
- Tracker Panels with Collector Posts Each of the different areas will require different parameters. Please review plan design for general parameter values.
When dealing with CAB sites, if growth is minimal, return back to the beginning of the row using caster forward. If growth is dense, carefully turn around at the end of the row and maintain axle forwards. This will prevent the deck from catching on tall growth and being pulled upwards.
Areas surrounding generation areas. These are completed using work areas with a spiral pattern. Open areas should minimally be 50ft of area outside generation areas up to extending to fence lines.
When designing open area plans ensure to do the following:
- Place exclusion areas around all generation areas concerned in the specific plan
- Place exclusion areas on any known obstacles (i.e. inverters)
- Set a large parameter domain that will encompass all open areas for the specific plan. Set parameters under the any orientation as follows
- ensure aux motor is enabled (~65% use higher for denser growth)
- set object detection to 4000mm for x and z values
- set object height from 1000mm to 2000mm
- set object width to 150mm
- Review AGT Guide 2 for work area design. The following parameters for a work area are generalized:
- For 48 inch deck with 2x 24 inch extensions, set grid size to ~1850mm
- Set completion percentage to 100%
These areas will be along access roads within generation areas or the entry side of generation areas. These can be done autonomously using GPS or bias settings, whichever is safer to maintain a line away from obstacles. Ensure there are exclusion areas over the physical obstacles to prevent the robot from going into that area. These can generally be completed in one pass per side of the access road or the row entry side of generation areas.
Borders of generation sites. Some fences are large enough to use bias settings within a parameter domain along a path to cut along the fence. If the fence is too small for the object detection to use bias, use gps to cut along the fence line. Ensure there is an exclusion area placed along the fence line to ensure the robot does not swing into the fence or attempt to mow the fence as this will damage both the mowing deck and the fence.
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.
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:
With the overview plan loaded,
- click on the Telemetry button and specify a time range
- 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
- 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.
- For a daily report use the "UTC 24H" button to auto set the start and end times for a 24 hour period. This uses GMT as the time zone. (See image below)
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.
KML files contain civil engineering data used for site construction. Our UI code renders them in addition to our navigation graph primitives.
- Download Google Earth Pro. Or use online Google Earth. A few tips to make using Google Earth a little bit better:
- Disable the tilt while zooming (Tools -> Options -> Navigation -> "Do not automatically tilt while zooming")
- Reset tilt + compass (View -> reset -> tilt + compass)
- 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.
- Open the KML file in Google Earth Pro and remove any unnecessary layers. Try to keep the file as small as possible.
- Save as a KML
- Save the file with a filename created using
uuidgen
:4bfe2580-dd85-472c-ba18-39d6579e016e-<customer>-<site-name>.kml
- Upload the image to the AWS image folder
s3://retail-ui-media/maps/
, ensure you make the file public. - To visualize the KML, edit a plan either directly on the robot or on fleet management for a site plan
- Click anywhere on the map and add the KML file URL under the second green box labeled
Type site KML reference...
- Click "Close Dialog" then "Freeze Plan" and refresh the page and the KML should now be visualized
See examples of google maps image overlays here: Custom Overlays Image overlays are positioned on a map using a boundary defined by four numbers:
- The latitude + longitude of the south-west corner of the image
- The latitude + longitude of the north-east corner of the image
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.
The image can be stored locally on robots, or on public URLs.
- Ensure the PDF image is to scale
- Open the PDF with an image editing program (the following instructions assume you are using GNU Image Manipulation Program (GIMP)
- An "Import from PDF" screen should pop up, leave the Width/Height as default, set the Resolution to 300 dpi
- 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) - If you want a transparent image, navigate to Select -> By Color (
Shift+O
), select the background color you wish to remove, and press delete. - 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 likeabb9498f-2b67-4fbc-bba8-4f88be6d8b8f.png
) - Upload the image to the AWS image folder
s3://retail-ui-media/images/
- 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.
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
- Save copy of DWG and open in AutoCAD Map 3D
- Click the "Autocad Map 3D Coordinate System" button at the bottom of the window (Marked FLHP-EF in the image below)
- If no coordinate system is defined, look for coordinate system information in the drawing. If none given, assume the State Plane Coordinate System (SPCS) in feet for the US, and find the system that matches the site (e.g., Florida East Zone, US)
- Open layers view (LAYER PROPERTIES MANAGER)
- Right click "All" and create a New Group Filter + drag to copy all layers from "All" into that filter
- Set active layer to 0, and freeze all layers besides 0.
- Unfreeze/freeze layers and freeze then delete from the group filter if we don't want to include them in the export
- Can update Name or Description to be more descriptive and/or update colors/line styles. These descriptions won't be exported to KML
- Layer may be constructed from blocks and these must be "exploded" before they can be exported
- Go to "Express tools" at the top of the page
- Hide all layers we don't want to export, and select all objects by clicking then dragging a box over the map
- Click "Explode" to explode the block references
- Continue until no block references are shown when you select all the objects (shown under properties in top left corner of the screen when objects are selected)
- Go to the Output tab at the top and click "Plot"
- Set "What to plot:" to "Extents"
- Click "Fit to paper" under Plot Scale
- Set the Drawing orientation to match the shape of the drawing
- Click "Preview" and ensure everything looks good
- Click "Ok" and save the PDF with the name of the site
- Click the AutoCAD button in the top-left corner, then Export -> Other GIS Formats
- Enter a File name and select OGC / Google KML (*.kml, *.kmz)
- Keep all settings default except set a coordinate conversion to
LL84
in the "Options"
- The export does not preserve layers, so it's better to hide layers and export each layer to an individual KML/KMZ file then combine later.
- Open the output in google earth and ensure that the coordinate conversion was completed successfully and delete any erroneous outputs (e.g. lines that span across multiple continents)
- Follow steps in KML Overlay section to prepare the KML for upload to AWS