Planet#

The application parrot-ue4-planet brings to Parrot Sphinx a 3D geospatial representation of the entire Earth. It makes possible to spawn the simulated drone anywhere on the Earth’s surface.

This application utilizes the Unreal Engine plugin Cesium for Unreal, which streams data from remote servers.

_images/planet.jpg

Requirements#

Here are the requirements to fulfill before running the application:

  • A stable Internet connection with good bandwidth.

  • A valid Google API key that enables the following services:

    • ‘Map Elevation API’ (mandatory)

    • ‘Map Tiles API’ (required only if the source ‘Google’ is selected)

  • Optionally, a Cesium Ion account to enable the source ‘CesiumIon’.

Configure data access#

You need to fill some essential information in the YAML configuration file provided via the command line.

The configuration file must contain a Cesium section, which looks like the one below.

Cesium:
  - GoogleKey: 'MyAwesomeApiKey'
    CesiumToken: 'MyAwesomeCesiumToken'
    TilesetSource: 'CesiumIon'
    IonAssetId: 2

Here are the description of the available fields.

  • TilesetSource - The source from which tiles are streamed. It takes one value from these two: Google or CesiumIon. Default is Google.

  • GoogleKey - Google API key to get terrain elevations, and 3D tiles in case the source is set to Google.

  • CesiumToken - The Cesium Ion token used in case the source is set to ‘CesiumIon’.

  • IonAssetId - The ID of the asset from a Cesium Ion account. Default value is 2, which gives a 2D satellite imagery tiles streamed from Bing Maps.

    Note

    When using assets from your Cesium Ion account, only assets with type imagery are supported.

How to launch the application#

It is highly recommended to specify the drone spawning point in the command line, using GPS coordinates in decimal degrees. These coordinates must indicate a flat surface. Using non-flat surface could result in the drone falling during the spawning process.

$ parrot-ue4-planet -config-file=</path/to/file.yaml> -gps-json='{"lat_deg":<lat>, "lng_deg":<long>}'

Current limitations#

  • Actors are currently not supported. Spawning actors causes them to fall.

  • Adding external objects to the environment is supported, but the snap to ground parameter won’t work correctly due to the adjustments that need to be made on the Cesium terrain asset. External objects should be placed manually at the desired location.