3Dセンサーの入力形式が同じでも、地図と計画が必要とする情報は大きく異なります。
先に結論
ロボットの3D空間表現は、方式の優劣ではなく、下流処理が何を問い合わせるかで選びます。未知・自由・占有を区別する地図や保守的な障害物判定には占有ボクセルが基本候補です。疎な環境や可変解像度を重視する大域地図では、占有確率をオクトツリーで管理するOctoMapを検討します。
表面の融合やメッシュ生成にはTSDF、障害物までの距離や勾配を局所計画で使うならESDF、センサ直結の登録・セグメンテーション・局所認識には点群が適します。ニューラル表現は、視点合成や連続的な形状クエリなど、手法固有の機能が必要な場合の候補です。ただし、安全性が重要なオンライン衝突回避では、占有表現または保守的な距離場との併用と検証が必要です。
なぜ選択が難しいのか
同じ深度カメラやLiDARの入力でも、地図、認識、計画が必要とする情報は異なります。「このセルは占有か」「表面までの距離はいくらか」「観測点の属性は何か」「任意の座標で形状を問い合わせられるか」は別のクエリです。したがって、表現を選ぶ際は、必要なクエリ、未知領域の規則、解像度、更新頻度、メモリ、計画への接続方法を先に決めます。
なお、各方式を同一センサ、同一解像度、同一ハードウェアで横断比較した一次ベンチマークは確認できません。常に最速、最小メモリといった一般化は避けるべきです。
前提となる用語
ボクセルは3D空間をセルに分ける離散化単位です。セルには占有状態、占有確率、距離などを格納できます。占有グリッドは、セルをoccupied、free、unknown、または占有確率で管理する表現です。センサ光線に沿った自由空間の更新や、未知を残した衝突判定に向きます。
OctoMapは、占有確率をオクトツリーで管理する具体的な方式です。均質な領域を上位ノードにまとめるため、固定解像度の密な3D配列に比べ、疎な環境や可変解像度に対応しやすい構成です。ボクセルという一般的な単位と、OctoMapという管理方式は同じ抽象レベルではありません。
TSDFは、各ボクセルに最寄りの表面までの符号付き距離を格納し、一定の帯域で切り詰める表面中心の表現です。深度観測を重み付きで融合できます。ESDFは障害物または表面までのユークリッド距離を空間中に持つ距離場で、クリアランス評価、距離制約、距離勾配を使う軌道最適化に適します。
仕組みと使いどころ
占有ボクセルは、観測をセル単位の状態へ変換します。未知空間を自由空間と区別できるため、探索、ナビゲーション、障害物回避に使いやすい表現です。ただし、未知セルを占有扱いにするなどの判定規則を実装して初めて、保守的な衝突判定を構成できます。解像度を粗くすると細い障害物や狭い通路を識別しにくくなり、細かくするとメモリや更新量とのトレードオフが生じます。
TSDFは「未知かどうか」より「観測された表面がどこにあるか」を扱います。深度センサからの密な表面再構成、メッシュ生成、カメラトラッキングに向く一方、占有確率や未知空間を直接表しません。TSDFだけを安全側の占有地図として使うには、表面抽出や追加の判定規則が必要です。
ESDFは計画器が必要とする距離情報を直接提供します。VoxbloxはTSDFを増分更新し、そこからESDFを構築して計画に利用する構成を示しています。つまり、TSDFとESDFは競合する選択肢ではなく、観測融合と計画で連結できます。符号規約、障害物の定義、未知領域の扱いは実装ごとに確認してください。
点群は点の座標に加え、法線、色、強度などの属性を保持できます。登録、特徴抽出、認識、セグメンテーションなどに直接使いやすい反面、未観測空間が自由か未知か、空間全体の占有確率は点群単体から直接は分かりません。長距離計画や保守的な衝突判定では、占有グリッドや距離場への変換が必要になることが多くなります。
NeRFは位置と視線方向から放射輝度や体積密度を返す連続関数を最適化し、主用途は新規視点画像の合成です。原型のNeRFを、そのまま衝突判定用の幾何表現とはみなせません。一方、ニューラルSDF系はニューラルネットワークで連続的な符号付き距離関数を表し、ロボット向けのオンライン3D再構成や知覚に利用できます。
flowchart LR
subgraph O["占有表現"]
O1["セル"] --> O2["occupied / free / unknown"]
O2 --> O3["占有確率や保守的な判定"]
end
subgraph T["TSDF"]
T1["ボクセル"] --> T2["表面までの符号付き距離"]
T2 --> T3["切り詰め・重み付き融合"]
T3 --> T4["表面再構成・メッシュ生成"]
end
subgraph E["ESDF"]
E1["空間上の位置"] --> E2["障害物または表面までの距離"]
E2 --> E3["距離勾配・クリアランス"]
E3 --> E4["距離制約・軌道最適化"]
end
O -.-> N["未知領域の扱いは安全判定で確認"]
T -.-> N
E -.-> N2["符号規約と未知領域の定義は実装ごとに確認"]比較表
| 表現 | 保持する情報 | 向く問い合わせ・用途 | 主な制約 |
|---|---|---|---|
| 占有ボクセル | occupied/free/unknown、占有確率 | 探索、大域地図、障害物判定 | 解像度とメモリ・更新量のトレードオフ |
| OctoMap | オクトツリー上の占有確率 | 疎な環境、可変解像度、大域ナビゲーション | 細い障害物は解像度に依存 |
| TSDF | 表面までの切り詰め符号付き距離 | 深度融合、表面再構成、メッシュ生成 | 未知空間や占有確率を直接表さない |
| ESDF | 障害物・表面までの距離 | クリアランス、距離制約、軌道最適化 | 符号規約と未知領域の確認が必要 |
| 点群 | 点の座標と付随属性 | 登録、認識、セグメンテーション | 空間全体の占有を直接表さない |
| ニューラル表現 | 放射輝度・密度、または連続SDF | 視点合成、連続形状クエリ | 近似誤差、更新コスト、未知領域の検証 |
実装での構成
一つの表現ですべてを賄う必要はありません。深度カメラやLiDARから点群を生成し、点群を占有ボクセルまたはTSDFへ融合します。計画時にはTSDFからESDFを構築し、距離制約や勾配を局所計画へ渡します。認識系では元の点群を登録やセグメンテーションに使い、必要に応じてニューラル特徴やニューラルSDFを並行利用できます。
flowchart LR S["深度カメラ・LiDAR"] --> P["点群の生成"] P --> O["占有ボクセル/OctoMap"] P --> T["TSDFへ融合"] O --> G["大域地図・障害物判定"] O --> E["ESDFの構築"] T --> M["表面・メッシュ生成"] T --> E E --> L["局所計画・距離制約・軌道最適化"] P --> R["登録・認識・セグメンテーション"] P --> N["ニューラル特徴/ニューラルSDFの並行利用"] N --> R
この構成では、入力、地図、計画、認識がそれぞれ得意な問い合わせを使えます。表現間の変換コスト、更新遅延、未知領域の扱い、障害時の代替表現も設計対象です。
制約と判断基準
選定は次の順序で行うと整理しやすくなります。
- 未知・自由・占有の区別が必要か。必要なら占有ボクセル、疎性や可変解像度を重視する大域地図ならOctoMapを検討する。
- 深度観測の融合や表面・メッシュが必要か。必要ならTSDFを選ぶ。
- クリアランス、距離制約、距離勾配が必要か。必要ならESDFを派生させる。
- 登録、特徴抽出、セグメンテーションなど観測点中心の処理か。そうなら点群を直接使う。
- 視点合成や連続SDFなど、ニューラル手法固有の機能が主要要件か。その場合にニューラル表現を検討する。
ニューラル表現では、近似誤差、更新遅延、未観測領域の扱いを検証可能にする必要があります。未知領域をニューラル放射輝度場やニューラルSDFから安全に判定する標準的な方法は確認できません。安全性が重要なリアルタイム衝突回避では、占有表現または保守的な距離場を併用し、フォールバックと実機検証を含めて採否を判断します。
まとめ
占有ボクセルとOctoMapは、未知空間を含む地図に向きます。TSDFは表面融合、ESDFは距離と勾配を使う計画、点群はセンサ直結の認識と登録に適します。ニューラル表現は、視点合成や連続形状クエリが必要な場合に候補になります。最終的には、必要なクエリ、未知領域の規則、解像度、更新遅延、検証可能性を基準に、複数表現を役割分担させるのが現実的です。
参考情報
- OctoMap: An Efficient Probabilistic 3D Mapping Framework Based on Octrees
- OctoMap公式プロジェクトサイト
- A Volumetric Method for Building Complex Models from Range Images
- KinectFusion: Real-time Dense Surface Mapping and Tracking
- Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MAV Planning
- PCL公式ドキュメント:PCD - Point Cloud Data file format
- NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
- iSDF: Real-Time Neural Signed Distance Fields for Robot Perception
要求される問い合わせから3D空間表現を選ぶ判断フロー
flowchart TD
Q["下流処理が必要とする問い合わせは何か?"] --> U{"未知・自由・占有を区別するか"}
U -->|"はい"| O["占有ボクセル/OctoMap"]
U -->|"いいえ"| S{"観測された表面の融合・再構成が必要か"}
S -->|"はい"| T["TSDF"]
S -->|"いいえ"| D{"障害物までの距離や距離勾配を使うか"}
D -->|"はい"| E["ESDF"]
D -->|"いいえ"| P{"登録・特徴抽出・セグメンテーションなど点群中心の処理か"}
P -->|"はい"| C["点群"]
P -->|"いいえ"| N{"連続形状・視点合成・学習特徴・意味情報が主要要件か"}
N -->|"はい"| NR["ニューラル表現"]
N -->|"いいえ"| V["必要なクエリ、未知領域、更新遅延、検証可能性を再整理"]
O -.-> F["安全性が重要な計画では保守的な距離場などを併用"]
NR -.-> F表現を一つに決め打ちせず、問い合わせ内容と安全要件から構成を組み立てることが選定の出発点になります。
AI利用に関する注記
本サイトの記事は、複数のAIエージェントによる調査・執筆・レビューを経て公開しています。正確性と品質の向上に努めていますが、内容については必ず一次情報をご確認ください。