Service: Data Source

This API is officially released and maintained.

The data source service allows getting, configuring and receiving updates of the data source used for processing pipelines. The data source configuration specifies where to retrieve the point cloud data for further processing.

Table 1. Available methods
Method Request Response

Get

google.protobuf.Empty

DataSourceGetResponse

Set

DataSourceSetRequest

google.protobuf.Empty

Reset

google.protobuf.Empty

google.protobuf.Empty

Watch

google.protobuf.Empty

DataSourceWatchResponseStream

Register

DataSourceRegisterRequest

DataSourceRegisterResponse

Align

DataSourceAlignRequest

DataSourceAlignResponse

Get

Get current data_source Configuration

Response

Response containing the current data source

Table 2. Available fields in blickfeld.percept_pipeline.services.DataSourceGetResponse
Field Type Default Unit

data_source

config.DataSource

-

-

The currently set data source

Set

Set configuration for data_source

Request

Request for setting the data source

Table 3. Available fields in blickfeld.percept_pipeline.services.DataSourceSetRequest
Field Type Default Unit

data_source

config.DataSource

-

-

The data source to be set

Reset

Resets the data_source configuration to factory values

Watch

Watch configuration for data_source

Response Stream

Continuous response on data source changes

Table 4. Available fields in blickfeld.percept_pipeline.services.DataSourceWatchResponse
Field Type Default Unit

data_source

config.DataSource

-

-

The currently set data source

Register

Refines the poses of a set of lidars against each other and levels the fused ground plane on z = 0.

The point clouds are fetched from the lidars themselves, so only their definitions travel with the request. The refined poses are returned and not stored: applying them is a separate decision, because anything already placed in the map frame moves with it.

Request

Request for refining a set of lidar poses

Table 5. Available fields in blickfeld.percept_pipeline.services.DataSourceRegisterRequest
Field Type Default Unit

lidars

repeated config.DataSource.Qb2

-

-

The lidars to register against each other, with the poses to start from. They do not have to be the configured ones, so a setup can be registered while it is being put together.

Response

The refined lidar poses and how well they came out

Table 6. Available fields in blickfeld.percept_pipeline.services.DataSourceRegisterResponse
Field Type Default Unit

lidars

repeated Lidar

-

-

One entry per requested lidar, in the order they were given

tilt_deg

float

-

deg

Angle between the fused ground plane and the map z-axis once the poses above are applied

floor_height_spread

float

-

m

Spread between the individual lidars' estimates of the floor height. It measures how far a residual tilt lifts each lidar’s own patch of floor, not how well the lidars agree with each other.

map_correction

base.geometry.Transform

-

-

The rigid correction the levelling applied to the map frame. Everything persisted in that frame, zones in particular, is expressed in the old one and has to be corrected with it to stay where it was.

Lidar

Result for a single lidar of the configuration

Table 7. Available fields in blickfeld.percept_pipeline.services.DataSourceRegisterResponse.Lidar
Field Type Default Unit

serial_number

string

-

-

Identifies which of the requested lidars this is

map_from_lidar

base.geometry.Transform

-

-

The refined pose, to be stored on the lidar it belongs to

agreement

float

-

-

Fraction of this lidar’s points that find a counterpart in the fused cloud of the others. It measures the extrinsic calibration between the sensors, which levelling cannot improve.

Align

Estimates the pose that puts a single lidar’s point cloud on the ground plane.

The frame and the accelerometer reading are fetched from the lidar, so a lidar that is not part of the configuration yet can be aligned while it is being added.

Request

Request for estimating the ground alignment of a single lidar

Table 8. Available fields in blickfeld.percept_pipeline.services.DataSourceAlignRequest
Field Type Default Unit

lidar

config.DataSource.Qb2

-

-

The lidar to align. It does not have to be a configured one, so a lidar can be aligned while it is being added.

strategy

optional Strategy

-

-

How to estimate the ground plane

Strategy

How to estimate the ground plane

Table 9. Available values for blickfeld.percept_pipeline.services.DataSourceAlignRequest.Strategy enum
Name Value Description

STRATEGY_UNSPECIFIED

0

Unspecified. Behaves like STRATEGY_AUTO.

STRATEGY_AUTO

1

Uses the plane segmentation when it agrees with the measured gravity, and the accelerometer otherwise.

STRATEGY_PLANE_SEGMENTATION

2

Uses the orientation and translation computed from the plane segmentation.

STRATEGY_ACCELEROMETER

3

Uses the orientation from the accelerometer.

Response

The estimated pose of the lidar

Table 10. Available fields in blickfeld.percept_pipeline.services.DataSourceAlignResponse
Field Type Default Unit

map_from_lidar

base.geometry.Transform

-

-

Transforms the lidar’s points onto the ground plane