coordinate_systems

A coordinate system refers to a numerical system utilized to designate the coordinates of points and other geometric elements within a particular space. Such systems must be declared with a designated name, employed as an index, and arranged as parent-child links in order to establish their hierarchy

In cases where sensor settings only involve cameras and exclude lidar or other sensor types, the inclusion of the “coordinate_systems” field is not mandatory.

Hint

When your data consists of only one sensor (e.g., camera), it is not necessary to provide calibration information.

Schema

In coordinate systems, if the parent is not specified, it means that the sensor is located at the center of the coordinate system.

It supports the vehicle-iso8855 coordinate system as the local (local_cs) too.

Example 1. ISO8855-1-centered coordinate system

{
    "visionai":{
        "coordinate_systems": {
            "iso8855-1": {
                "type": "local_cs",
                "parent": "",
                "children": ["lidar1", "lidar2"]
            },
            "lidar1": {
                "type": "sensor_cs",
                "parent": "iso8855-1",
                "children": ["camera1"],
                "pose_wrt_parent" : {
                    "matrix4x4" : [0.984807753012208, 0.0, 0.17364817766693033, 2.3, 0.0, 1.0, 0.0, 0.0, -0.17364817766693033, 0.0, 0.984807753012208, 1.3, 0.0, 0.0, 0.0, 1.0]
                }
            },
            "lidar2": {
                "type": "sensor_cs",
                "parent": "iso8855-1",
                "children": ["camera2"],
                "pose_wrt_parent" : {
                    "matrix4x4" : [0.984807753012208, 0.0, 0.17364817766693033, 2.3, 0.0, 1.0, 0.0, 0.0, -0.17364817766693033, 0.0, 0.984807753012208, 1.3, 0.0, 0.0, 0.0, 1.0]
                }
            },
            "camera1" : {
                "type" : "sensor_cs",
                "parent" : "lidar1",
                "children" : [],
                "pose_wrt_parent" : {
                    "matrix4x4" : [0.984807753012208, 0.0, 0.17364817766693033, 2.3, 0.0, 1.0, 0.0, 0.0, -0.17364817766693033, 0.0, 0.984807753012208, 1.3, 0.0, 0.0, 0.0, 1.0]
                }
            },
            "camera2" : {
                "type" : "sensor_cs",
                "parent" : "lidar2",
                "children" : [],
                "pose_wrt_parent" : {
                    "matrix4x4" : [0.984807753012208, 0.0, 0.17364817766693033, 2.3, 0.0, 1.0, 0.0, 0.0, -0.17364817766693033, 0.0, 0.984807753012208, 1.3, 0.0, 0.0, 0.0, 1.0]
                }
            }
        }
    }
}

Example 2. Lidar-centered and camera-centered around Lidar

{
    "visionai":{
        "coordinate_systems": {
            "lidar1": {
                "type": "sensor_cs",
                "parent": "",
                "children": ["camera1"],
            },
            "lidar2": {
                "type": "sensor_cs",
                "parent": "",
                "children": ["camera2"],
            },
            "camera1" : {
                "type" : "sensor_cs",
                "parent" : "lidar1",
                "children" : [],
                "pose_wrt_parent" : {
                    "matrix4x4" : [0.984807753012208, 0.0, 0.17364817766693033, 2.3, 0.0, 1.0, 0.0, 0.0, -0.17364817766693033, 0.0, 0.984807753012208, 1.3, 0.0, 0.0, 0.0, 1.0]
                }
            },
            "camera2" : {
                "type" : "sensor_cs",
                "parent" : "lidar2",
                "children" : [],
                "pose_wrt_parent" : {
                    "matrix4x4" : [0.984807753012208, 0.0, 0.17364817766693033, 2.3, 0.0, 1.0, 0.0, 0.0, -0.17364817766693033, 0.0, 0.984807753012208, 1.3, 0.0, 0.0, 0.0, 1.0]
                }
            }
        }
    }
}

coordinate_systems {}

namedescriptiontyperequired

${STREAM_NAME}

The name of the stream(coordinate system).

object

true

type

There are four enums of type:

➤ sensor_cs, a coordinate system attached to a sensor. ➤ local_cs, the local coordinate system for a rigid body carrying its own sensors, such as a vehicle.

string

true

parent

The parent coordinate system of the current coordinate system.

string

* true * the empty string "" (if the parent is not specified, it means that the sensor is located at the center of the coordinate system.)

children

The children coordinate system of the current coordinate system. If there is no child of the current coordinate system, this value will be [].

array of string

true available for empty array

pose_wrt_parent

The transform way from parent to the current coordinate system. It is a JSON object containing the transform data by using 4x4 homogeneous matrix.

object

* false (If not defined, the coordinate system is assumed to be exactly the same as its parent coordinate system.)

4x4 homogeneous matrix

namedescriptiontyperequired

matrix4x4

One of the represent ways for pose_wrt_parent. matrix 4*4 = [R*T]

16 elements array of float

true

#ISO 8855 Coordinate System


Use Case

bbox + cuboid (3d)

To describe a dataset with one camera sensor (bbox annotation) and one lidar sensor (cuboid annotation) in the coordinate system of iso8855-1:

  • sensor: camera (#camera1), lidar (#lidar1)

Example Code

pagebbox + cuboid (3d)

Last updated