---
title: 座標系
slug: api-guide/ja/HiDwBENmmhd_m9Vqq7L8o
docTags: 
createdAt: 2024-12-06T12:58:30.659Z
---

`lidars_and_cameras_sequence`などのシーンでは、異なるセンサーからのデータや異なる時点のデータを組み合わせる必要があります。これは、センサー[キャリブレーション概要](docId:40uJEbw5cST4e4djxsgty)と自車両モーションデータを使用して記録データを変換することで実現されます。このセクションでは、3D空間でこの変換がどのように行われるかを説明し、さまざまな種類のデータが表現される座標系の概要を示します。カメラセンサーについては、3D点を2Dのピクセル座標にマッピングする必要もあります。これはカメラの内部パラメータを使用して行われ、カメラの種類によって異なります。詳細については[標準カメラキャリブレーション](docId\:WutszyygKeV3hAPRbh--8)を参照してください。

## 基準座標系とキャリブレーション

各センサーは、自車両上の位置と向きに応じた独自の3D空間座標系を持っています。これらのセンサー座標系間で測定値を変換できることが重要です。そのために、センサー座標系間の仲介として機能する*基準座標系*（reference coordinate system）を定義します。基準座標系は自車両に対して任意に選択できます。キャリブレーション関数

```tex
C_i
```

をセンサー

```tex
i
```

に対して定義することで、点

```tex
\vec{x_i}
```

を以下のように基準座標系にマッピングできます。

```tex
\vec{x_R} = C_i(\vec{x_i})
```

同様に、他のすべてのセンサーからの点も基準座標系にマッピングできます。さらに、座標系

```tex
i
```

から座標系

```tex
j
```

への点のマッピングも、キャリブレーションの逆変換

```tex
\vec{x_j} = C_j^{-1}(C_i(\vec{x_i}))
```

を適用することで可能です。

## ワールド座標系と自車両モーションデータ

これにより、自車両にローカルな座標系で点を表現できるようになります。これは便利ですが、異なる時点で記録された点を同じ座標系で表現することも有用な場合があります。この座標系は時間的に静的であるため、*ワールド座標系*（world coordinate system）と呼びます。自車両モーションデータを使用して、点をワールド座標系に変換できます。自車両モーションデータは、任意の時点における自車両の位置と向きを記述します。自車両モーションデータを使用すると、点

```tex
\vec{x_t}
```

を次の式でワールド座標系に変換できます。

```tex
\vec{x_w} = E_t(\vec{x_t})
```

さらに、時刻

```tex
t
```

に記録された点を、時刻

```tex
t'
```

の座標系に変換することも、自車両変換関数の逆変換

```tex
\vec{x_{t'}} = E_{t'}^{-1}(E_t(\vec{x_t}))
```

を適用することで可能です。

これは、各LiDAR点に対して自車両の動きを補償するために使用でき、このプロセスは[モーション補償](docId:-UnWSC-cucoYH-mU9JOsc)とも呼ばれます。LiDAR点は異なる時点で記録されるため、点群のモーション補償を行うことを強く推奨します。これは、シーン作成時に高頻度の自車両モーションデータ（IMUデータ）を提供することで実現できます。

## 単一LiDARの場合

下の画像は、単一LiDARの場合における3D空間での各センサー間の関係を示しています。自車両モーションデータはLiDAR座標系で表現する必要があることに注意してください。

![](https://api.archbee.com/api/optimize/wLEz_RbWP6nIMpY-prjlm/RzVSz8mdUL-wpGPOxgqHa_single-lidar-setup.png)

## 複数LiDARの場合

複数LiDARの場合（下の画像を参照）、それぞれ独自のLiDAR座標系にある複数の点群が存在します。アノテーション効率の向上のため、シーン作成時にこれらは基準座標系の1つの点群に統合されます。IMUデータが利用可能な場合は、自車両モーションの補償も行い、各点をフレームタイムスタンプ時の基準座標系に変換できます。これは以下を適用することで行われます。

```tex
\vec{x_w} = E_t(C_i(\vec{x_{i,t}})) 
```

```tex

\vec{x_{t'}} = E_{t'}^{-1}(\vec{x_{w}})
```

ここで

```tex
\vec{x_{i,t}}
```

はLiDAR

```tex
i
```

の座標系で表現された、時刻

```tex
t
```

における点であり、

```tex
\vec{x_{t'}}
```

はフレーム時刻

```tex
t'
```

における基準座標系で表現された点です。

モーション補償を利用できるように、IMUデータを提供することを推奨します。統合された点群は基準座標系で表現されるため、自車両モーションデータも基準座標系で表現してください。

![](https://api.archbee.com/api/optimize/wLEz_RbWP6nIMpY-prjlm/ytWyjqNLyBkBdqCbfTEiM_multi-lidar-setup.png)

## データの種類ごとに異なる座標系

データの種類によって、単一LiDARか複数LiDARかに応じて異なる座標系で表現されます。以下の表にまとめられており、例えば自車両モーションデータは、単一LiDARの場合はLiDAR座標系で、複数LiDARの場合は基準座標系で表現する必要があることがわかります。

| データの種類                       | 単一LiDAR | 複数LiDAR |
| ---------------------------- | ------- | ------- |
| LiDAR点群                      | LiDAR   | LiDAR   |
| 自車両ポーズ & IMUデータ              | LiDAR   | 基準      |
| OpenLABELエクスポート<br />3Dジオメトリ | LiDAR   | 基準      |
| OpenLABELエクスポート<br />2Dジオメトリ | ピクセル    | ピクセル    |
| プレアノテーション<br />3Dジオメトリ       | LiDAR   | 基準      |
| プレアノテーション<br />2Dジオメトリ       | ピクセル    | ピクセル    |
