The API requires the client to upload the configuration for Global Optimisation in a zip file (.zip extension) in the format defined below. The contents of the zip file are called a dataset.
The client makes a loop_optimisation API call, which runs the loop optimisation algorithm on the calibrations for the given configuration.
The calibration process is completed without errors if the Loop optimisation API call response contains each calibration-id with updated extrinsics and the before and after residual error of the loop
Folder Structure
config.json contains configuration details of the loop_optimisation (dataset_ids_for_loop_optimisation, lambda_val, renamed_sensor_names and optimisation_name)
Note
The name of the JSON file should be config.json (case sensitive)
name of the optimisation
default value: "Untitled_default_name"
renamed_sensor_names (Optional)
Object
In case the sensor names don't form a loop or there is not sensor name for the calibration this can be used to to define the names of the 1st and 2nd sensor. These names are used for loop optimisation.
each key in the object refers to the dataset id for which the loop optimisation will be run.
each value for the key is a list of exactly two string values which refers to the new name of the sensor to be used for loop finding in order.
lamda_val ( Optional)
float
This the approximate co-relation between the the angle and distance . Default value is 1 i.e 1 degree ~ 1 meter
Quick start
Before invoking the APIs, the client must obtain the clientId and auth token from Deepen AI. If you are a calibration admin, you can create different Access Tokens using the UI and use those instead. clientId is part of the path parameters in most API calls, and the auth token should be prefixed with “Bearer” and passed to the ‘Authorization’ header in all API requests.
How to get Access Tokens can be found on the following link: Access token for APIs
Loop Optimisation
This POST API call sends a zip file to the server and runs the loop optimisation algorithm. As the response, it returns the updated extrinsics and the residual error before the optimisation and after the optimisation to the user.