Fusion Module

Classes

class  CommunicationParameters
 Holds the communication parameter to configure the connection between senders and receiver. More...
 
class  CameraIdentifier
 Used to identify a specific camera in the Fusion API. More...
 
class  FusionConfiguration
 Useful struct to store the Fusion configuration, can be read from /write to a JSON file. More...
 
class  InitFusionParameters
 Holds the options used to initialize the Fusion object. More...
 
class  BodyTrackingFusionParameters
 Holds the options used to initialize the body tracking module of the Fusion. More...
 
class  BodyTrackingFusionRuntimeParameters
 Holds the options used to change the behavior of the body tracking module at runtime. More...
 
class  ObjectDetectionFusionParameters
 Holds the options used to initialize the object detection module of the Fusion. More...
 
class  GNSSCalibrationParameters
 Holds the options used for calibrating GNSS / VIO. More...
 
class  PositionalTrackingFusionParameters
 Holds the options used for initializing the positional tracking fusion module. More...
 
class  SpatialMappingFusionParameters
 Sets the spatial mapping parameters. More...
 
class  CameraMetrics
 Holds the metrics of a sender in the fusion process. More...
 
class  FusionMetrics
 Holds the metrics of the fusion process. More...
 
class  ECEF
 Represents a world position in ECEF format. More...
 
class  LatLng
 Represents a world position in LatLng format. More...
 
class  UTM
 Represents a world position in UTM format. More...
 
class  GeoConverter
 Purely static class for Geo functions. More...
 
class  GeoPose
 Holds geographic reference position information. More...
 
class  Fusion
 Holds Fusion process data and functions. More...
 

Enumerations

enum class  FUSION_ERROR_CODE
 Lists the types of error that can be raised by the Fusion. More...
 
enum class  SENDER_ERROR_CODE
 Lists the types of error that can be raised during the Fusion by senders. More...
 
enum class  POSITION_TYPE
 Lists the types of possible position outputs. More...
 

Functions

FusionConfiguration readFusionConfigurationFile (const std::string &json_config_filename, const int serial_number, const sl::COORDINATE_SYSTEM coord_sys, const sl::UNIT unit)
 Read a configuration JSON file to configure a fusion process. More...
 
std::vector< FusionConfigurationreadFusionConfigurationFile (const std::string &json_config_filename, const sl::COORDINATE_SYSTEM coord_sys, const sl::UNIT unit)
 Read a Configuration JSON file to configure a fusion process. More...
 
std::vector< FusionConfigurationreadFusionConfiguration (const std::string &fusion_configuration, const sl::COORDINATE_SYSTEM coord_sys, const sl::UNIT unit)
 Read a Configuration JSON string to configure a fusion process. More...
 
void writeConfigurationFile (const std::string &json_config_filename, std::vector< FusionConfiguration > &configuration, const sl::COORDINATE_SYSTEM coord_sys, const sl::UNIT unit)
 Write a Configuration JSON file to configure a fusion process. More...
 

Fusion

ERROR_CODE stopPublishing ()
 Set this camera as normal camera (without data providing).
Stop to send camera data to fusion. More...
 
CommunicationParameters getCommunicationParameters ()
 Returns the CommunicationParameters used.
It corresponds to the structure given as argument to the startPublishing() method. More...
 

Enumeration Type Documentation

◆ FUSION_ERROR_CODE

enum FUSION_ERROR_CODE
strong

Lists the types of error that can be raised by the Fusion.

Enumerator
FUSION_INCONSISTENT_FPS 

Significant differences observed between sender's FPS. Fusion quality will be affected.

FUSION_FPS_TOO_LOW 

Fusion FPS is too low because at least one sender has an FPS lower than 10 FPS. Fusion quality will be affected.

INVALID_TIMESTAMP 

You have attempted to ingest GNSSData into the Fusion system with an invalid timestamp. It is essential to ensure that the timestamp of your GNSSData is set correctly. This issue may arise from a unit error in the ingested timestamp, such as providing the timestamp in microseconds instead of nanoseconds.

INVALID_COVARIANCE 

This is a warning message notifying you about an issue encountered while ingesting GNSSData into the Fusion system. The problem lies in the very low covariance value provided. To ensure stability and prevent potential issues, the system will automatically clamp this covariance value.

NO_NEW_DATA_AVAILABLE 

All data from all sources has been consumed. No new data is available for processing.

SUCCESS 

Standard code indicating successful behavior.

GNSS_DATA_NEED_FIX 

This is a warning message indicating an issue with the ingestGNSSData function call. The problem lies in the gnss_status field of
the GNSSData parameter, which is currently set to UNKNOWN. To enhance the accuracy of the VPS (Visual Positioning System), it is essential to provide an appropriate value for this field. To rectify this issue, please consider setting the gnss_status field to a valid value that reflects the status of your GNSS sensor. If your GNSS sensor is unable to output a status, it is recommended to set the gnss_status field to sl::GNSS_STATUS::SINGLE.

GNSS_DATA_COVARIANCE_MUST_VARY 

It appears that you have made multiple calls to the ingestGNSSData function using the same GNSSData covariance. This warning is intended to prevent users from repeatedly ingesting a fixed or manually crafted covariance.

BODY_FORMAT_MISMATCH 

Senders are using different body formats. Please use the same body format.

MODULE_NOT_ENABLED 

The following module is not enabled. Please enable it to proceed.

SOURCE_MISMATCH 

Some sources are provided by SVO and others by LIVE stream.

CONNECTION_TIMED_OUT 

Connection timed out. Unable to reach the sender. Verify the sender's IP address and port.

MEMORY_ALREADY_USED 

Intra-process shared memory allocation issue. Multiple connections to the same data. Check memory usage.

INVALID_IP_ADDRESS 

The provided IP address format is incorrect. Please provide a valid IP address in the format 'a.b.c.d'.

FAILURE 

Standard code indicating unsuccessful behavior.

◆ SENDER_ERROR_CODE

enum SENDER_ERROR_CODE
strong

Lists the types of error that can be raised during the Fusion by senders.

Enumerator
GRAB_ERROR 
INCONSISTENT_FPS 
FPS_TOO_LOW 

The frame rate of the sender is lower than 10 FPS. Check sender's settings and performance.

SUCCESS 
DISCONNECTED 

◆ POSITION_TYPE

enum POSITION_TYPE
strong

Lists the types of possible position outputs.

Enumerator
RAW 

The output position will be the raw position data.

FUSION 

The output position will be the fused position projected into the requested camera repository.

Function Documentation

◆ stopPublishing()

ERROR_CODE stopPublishing ( )

Set this camera as normal camera (without data providing).
Stop to send camera data to fusion.

Returns
SUCCESS if everything went fine, ERROR_CODE::FAILURE otherwise

◆ getCommunicationParameters()

CommunicationParameters getCommunicationParameters ( )

Returns the CommunicationParameters used.
It corresponds to the structure given as argument to the startPublishing() method.

Returns
CommunicationParameters containing the parameters used to initialize communication with the Fusion Module.

◆ readFusionConfigurationFile() [1/2]

FusionConfiguration sl::readFusionConfigurationFile ( const std::string &  json_config_filename,
const int  serial_number,
const sl::COORDINATE_SYSTEM  coord_sys,
const sl::UNIT  unit 
)

Read a configuration JSON file to configure a fusion process.

Parameters
json_config_filename: The name of the JSON file containing the configuration.
serial_number: The serial number of the ZED Camera you want to retrieve.
coord_sys: The COORDINATE_SYSTEM in which you want the World Pose to be in.
unit: The UNIT in which you want the World Pose to be in.
Returns
A FusionConfiguration for the requested camera.
Note
Empty if no data were found for the requested camera.

◆ readFusionConfigurationFile() [2/2]

std::vector<FusionConfiguration> sl::readFusionConfigurationFile ( const std::string &  json_config_filename,
const sl::COORDINATE_SYSTEM  coord_sys,
const sl::UNIT  unit 
)

Read a Configuration JSON file to configure a fusion process.

Parameters
json_config_filename: The name of the JSON file containing the configuration.
coord_sys: The COORDINATE_SYSTEM in which you want the World Pose to be in.
unit: The UNIT in which you want the World Pose to be in.
Returns
A vector of FusionConfiguration for all the camera present in the file.
Note
Empty if no data were found for the requested camera.

◆ readFusionConfiguration()

std::vector<FusionConfiguration> sl::readFusionConfiguration ( const std::string &  fusion_configuration,
const sl::COORDINATE_SYSTEM  coord_sys,
const sl::UNIT  unit 
)

Read a Configuration JSON string to configure a fusion process.

Parameters
fusion_configuration: The string containing the configuration (it will be parsed as JSON).
coord_sys: Defines the COORDINATE_SYSTEM of the Fusion World Pose.
unit: Defines the UNIT of the Fusion World Pose.
Returns
A vector of FusionConfiguration for all the cameras present in the configuration file.
Note
Empty if no data were found for the requested camera.

◆ writeConfigurationFile()

void sl::writeConfigurationFile ( const std::string &  json_config_filename,
std::vector< FusionConfiguration > &  configuration,
const sl::COORDINATE_SYSTEM  coord_sys,
const sl::UNIT  unit 
)

Write a Configuration JSON file to configure a fusion process.

Parameters
json_config_filename: The name of the JSON that will contain the information.
confA vector of FusionConfiguration listing all the camera configurations.
coord_sys: The COORDINATE_SYSTEM in which the World Pose is.
unit: The UNIT in which the World Pose is.