Skip to main content

Location Based Missions

This tutorial steps you through location based (polygon) mission planning for automated 360 panorama capture (or whatever you might want to accomplish within specific areas).

locations-mission-example

1. Create Location Polygons in DroneDeploy

First, you need to create the location polygons in DroneDeploy. You can do this by selecting 'Explore', then selecting 'Locations' in the 'Layers' menu, then clicking 'Add'.

dd-locations-1.png dd-locations-2.png

Create a polygon or shape using the toolbar and drawing the polygons on the map.

dd-locations-3.png

2. Add the Locations object to Local Ops

Next, you need to add the Locations object to Local Ops. This can be done by selecting 'Add DroneDeploy Object' -> 'DroneDeploy Locations' in the Local Ops 'Scene' panel menu.

robotics-locations-add-to-scene.png

3. Configure the Scene

Now you need to configure the scene JSON with the required panel parameters. The location based mission functionality relies on a robot locations panel to be configured.

Modify the scene json to include the panels object if needed, then add the robot.locations panel with the following parameters:

  • flowId - This is the flow that the selected polygons are pushed to.
  • frame - The coordinate frame that the flow is expecting for the coordinates.
{
"panels": {
"robot": {
"locations": {
"flowId": "robotic-360-panos",
"frame": "seed"
}
}
}
}

robotics-locations-scene.png

4. Configure the Flow

The polygon will be passed to the configured flow as the global variable polygons in the coordinate frame specified in the frame parameter. See polygon types below for the expected format.

For information on how to handle global variables see the Global Values documentation.

5. Run the Mission

After selecting a robot in the list, you will be able to select multiple locations to pass to the flow.

Select the desired locations and click 'Start Capture'.

robotics-locations-capture.png

Types

Polygon

interface Waypoint {
pos: { x: number; y: number; z: number };
pickerMeta: { frame: string };
}

interface WaypointPolygon {
id: string;
name: string;
waypoints: Waypoint[];
}

// Example json
[
{
id: "LocationObject:67316115d5f1f8ae1ac1420c",
name: "Quarry",
waypoints: [
{
pos: {
y: -6.763452061854538,
z: -4.551914400963142e-15,
x: 9.64813165480291
},
pickerMeta: {
frame: "seed"
}
},
{
pos: {
x: -8.392905101140173,
y: -10.335935989054818,
z: -6.925016116099414e-15
},
pickerMeta: {
frame: "seed"
}
},
// ...
]
}
]