Skip to content

Commit

Permalink
First public release
Browse files Browse the repository at this point in the history
  • Loading branch information
Raphael Siryani committed Dec 14, 2022
0 parents commit d8bb9b8
Show file tree
Hide file tree
Showing 43 changed files with 643,502 additions and 0 deletions.
19 changes: 19 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
All Rights Reserved

Copyright (c) 2022 SBG Systems SAS

All files in this repository are the exclusive property of SBG Systems SAS.

This repository contains data and resources designed to evaluate Qinertia software.

You can ONLY use the provided data and information to evaluate Qinertia CLI.
You should NOT distribute or share the processed data to anyone.
You should NOT use the provided data with an other software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
44 changes: 44 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Qinertia Cloud API
Qinertia Cloud API is a professional GNSS/INS post processing SaaS solution.

This modern GNSS/INS Post Processing Software can be used with any RTK capable GNSS receivers to deliver centimeter-level Post Processed Kinematic solution (PPK).\
Qinertia can also accepts Inertial Measurement Unit (IMU) data to provide a highly accurate and robust tightly coupled GNSS/INS solution.

Please visit the following links to acess full Qinertia documentations:
- [Qinertia General Information](https://www.sbg-systems.com/products/qinertia-ins-gnss-post-processing-software/)
- [Qinertia User Manual](https://support.sbg-systems.com/sc/qd/latest)
- [Qinertia Cloud API](https://developer.sbg-systems.com/sbgQinertiaCloudApi/)

# GNSS modes
Qinertia has been designed from the ground up to support latest GNSS technologies and signals to deliver the most reliable, robust and accurate solution on the market.

It offers unique features such as Precise Point Positioning and Virtual Base Station (VBS) GNSS augmentation.\
Qinertia comes with a built in world-wide CORS (Continuously Operated Reference Stations) GNSS reference stations to offer centimeter-level accuracy.
A high accuracy and reliable PPP (Precise Point Position) positionning engine is also available when no nearby CORS base station is available.

# Photogrammetry & DJI
Qinertia includes a dedicated module for photogrammetry. Qinertia can post process GNSS and, if available, IMU data to output a highly accurate orientation and position of each picture.

Qinertia can also update pictures EXIF/XMP metadata with this highly accurate camera orientation (roll, pitch, yaw) and position to enable high quality and reliable 3D photogrammetry reconstructions.

Qinertia has a specific support for DJI UAV such as the Phantom 4 RTK, the Matrice 300 RTK with Zenmuse P1 payloads and latest DJI Mavic 3 Enterprise (M3E).\
Qinertia directly reads DJI acquisitions data to compute an accurate Post Processed Kinematic solution (PPK).\
The GNSS antenna to CMS lever arm offsets are taken into account to update each picture with an accurate position.

With Qinertia Cloud API, you get a turnkey solution to enable professional and reliable photogrammetry workflow for any platform and ideal for DJI solutions.

# Code Sample
Qinertia Cloud API is rather simple to use with standard JSON based REST API interface.
It is based on Qinertia Command Line Interface [(CLI)](https://support.sbg-systems.com/sc/qd/latest/reference-manual/command-line) JSON processing file format.

SBG Systems has designed three code samples to ease as much as possible evaluation:
- `js` is a node.js code sample written in TypeScript that is perfect for Cloud to Cloud integration.
- `postman` is a Postman collection that let you evaluate Qinertia Cloud API without any line of code.
- `python` is a simple Python code sample targeting computer to cloud workflows.

Each code sample execute the following steps:
- Create a new project
- Upload data to Amazon S3
- Start processing job
- Poll processing job status
- Get download link results
12 changes: 12 additions & 0 deletions js/.env.empty
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
ORGANIZATION_ID = CHANGE_ME
ACCESS_TOKEN_KEY = CHANGE_ME
ACCESS_TOKEN_SECRET = CHANGE_ME

ACCESS_TOKEN_URL = https://account.sbg-systems.com/realms/sbg/protocol/openid-connect/token
QINERTIA_CLOUD_API = https://qinertia-api.sbg-systems.com
REGION = eu-west-3

PROCESSING_JSON = data/demo.json
INPUT_FOLDER = data/input
RESOURCES_FOLDER = data/resources
OUTPUT_FOLDER = data/output
110 changes: 110 additions & 0 deletions js/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

.env
build/
39 changes: 39 additions & 0 deletions js/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Qinertia Cloud JS Sample

This is a sample app to run a processing on SBG Systems Qinertia Cloud using the API

## Requirements

To use this code sample, please meet the following requirements:
- Have node.js installed on your computer
- You need a MySBG account https://my.sbg-systems.com
- You must be admin of an organization on MySBG
- You need a valid Access Token on MySBG
- You need Qinertia Cloud INS prepaid credits

## Install dependencies

```bash
npm install
```

## Prepare variables

1. Copy `.env.empty` file to `.env`
2. Get your organization id from MySBG organization detail page. (example: f4f6a6c6-3614-490d-b830-838d87b1f4e6)
3. Create an access token to consume Qinertia Cloud API https://my.sbg-systems.com/apikeys and note the key and secret
4. Edit your `.env` file and change every `CHANGE_ME` variables

Please find below an example value for each Postman variable to set:

| Variable | Example value |
| -------------------- | ------------------------------------ |
| ORGANIZATION_ID | f4f6a6c6-3614-490d-b8d0-838d87b1f4e6 |
| ACCESS_TOKEN_KEY | api_kj67d3sj3du1 |
| ACCESS_TOKEN_SECRET | dqPC9hGq8aNLFSOloQYr |

## Run a processing

```bash
npm start
```
2 changes: 2 additions & 0 deletions js/data/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
output/*
!/output/.gitkeep
49 changes: 49 additions & 0 deletions js/data/demo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"version": "1.0",
"project": {
"name": "Qinertia CLI",
"author": "Chuck Berry",
"organization": "SBG Systems",
"description": "Simple Qinertia CLI project to showcase NAVSIGHT-S with an APOGEE-I tightly coupled post processing.",
"type": "sbgECom",
"path": "rover/"
},
"processing": {
"motionProfile": "automotive",
"type": "insSingle",
"bases": [
{
"positionMode": "published",
"antenna": {
"type": "TWIVP6050_CONE NONE"
},
"data": [
"base/sbgs167p.20d"
]
}
]
},
"exports": [
{
"name": "Export SBET",
"profile": "SBET: 200Hz",
"outputDir": "export"
},
{
"name": "Export ASCII",
"profile": "ASCII: INS at 200Hz",
"outputDir": "export"
}
],
"reports": [
{
"name": "JSON report",
"template": "Minimal JSON",
"outputDir": "reports/json"
},
{
"name": "PDF report",
"template": "Full PDF"
}
]
}
Loading

0 comments on commit d8bb9b8

Please sign in to comment.