>100 Views
December 17, 25
スライド概要
概要
本資料は、ドローンシミュレーションにおいて重要となる
風・温度・気圧・GPS強度といった自然環境要素を、
地理情報(緯度・経度)に基づいて設定・管理し、シミュレーション可能なデータへ変換する方法を解説したものです
hakoniwalab-envsim-wind
箱庭の環境シミュレーションでは、単一の一様な環境ではなく、
地図上の領域(ゾーン)ごとに異なる自然環境条件を与えることを前提としています。
本資料では、
- ブラウザベースのGUIを用いた自然環境の設定方法
- 風(定常風・乱流)、温度、気圧、GPS強度といったパラメータの意味と扱い
- ゾーン設定データをJSONとして入出力・再編集する仕組み
- Pythonツールによる、シミュレーションで直接利用可能な環境データ生成
- 生成結果を可視化し、設定内容とシミュレーション用データを比較・確認する方法
を、実例と画面イメージを交えて説明しています。
特に、
「地図上で直感的に設定 → JSON化 → シミュレーション用データへ変換」
という一連の流れを明確に示しており、
都市環境を前提としたドローン評価・検証・訓練シミュレーションにおいて、
自然環境条件をどのように設計・運用するかの具体像を提供します。
本資料は、箱庭ドローンシミュレータをはじめとした
地理情報と物理シミュレーションを統合する環境設計の基礎資料として位置づけられています。
TOPPERS/箱庭WG活動でUnityやらAthrillやらmROSやら触ってます。 最近は仕事の関係でWeb系の技術に注力しつつ、箱庭への転用を模索しています。 2023年8月1日:合同会社箱庭ラボに移動しました
環境シミュレーション 自然環境設定編 合同会社箱庭ラボ CTO 森崇
本資料の目的 シミュレーション環境に 「風・温度・気圧」などの自然環境を設定し、 ドローンが影響を受ける条件を再現する。 そのために、 ・地図データ(緯度経度)をベースにして、 ・自然環境パラメータをGUI上で設定し、 ・シミュレーション可能なデータに変換する 方法を示す。 なお、本資料で前提とするリポジトリは、以下です。 ・https://github.com/hakoniwalab/hakoniwa-envsim ※事前にクローンしておいてください。 2
アジェンダ • 仕様:設定できる自然環境データの種類 • 設計:全体フロー • 設定:ブラウザベースでの設定と出力データ • 出力:シミュレーション可能な環境データの生成(Pythonベース) 3
仕様:設定できる自然環境データの種類 • 地図上で領域(2D)ごとに、以下の自然環境データを設定可能 •風 • 風速ベクトル [x, y, z] (m/s) • ※ROS座標系、定常風を想定(時間変化は将来拡張) • 温度 • 気温 (℃) • 気圧 • 海面気圧 (atm)※現状は、1atm前提です。 • GPS強度 • 抽象化された値:0–1 の浮動小数点 • (遮蔽・マルチパス等の影響を統合的に表現) 4
全体フロー ブラウザ上で、ドローン起動ポイントを指定し、風・電波環境を設定します。 その後、Pythonツールを利用して、シミュレーションデータ可能に変換します。 ドローン 起動ポイント (緯度・経度) 風・電波環境 データ設定 (ブラウザ) ブラウザ上で見える 環境情報 環境データ比較 最終チェック (目視) 箱庭環境 モデル情報 (jsonファイル) 環境データ Creator (Python) 実際にSimで使用 される環境情報 細かな パラメータ調整 (手作業) 箱庭シミュレーション 環境情報 (jsonファイル) 環境データ Visualizer (Python) 5
設定:ブラウザベースでの設定と出力データ • 設定項目一覧 • 全体設定 (Grid & Base) • 原点(起動点) • ゾーン設定 • 機能一覧 • JSONデータ生成/インポート • 設定データのエクスポート • 既存データのインポート 6
全体設定 (Grid & Base) • Grid設定:空間の切り方 • 全体の領域をAABB方式で設定 • Cell Sizeは、最小の設定単位(キューブ) • シミュレーションの空間解像度と計算負荷を決定 • Base環境:デフォルトの物理状態 • 全領域に対するフォールバック設定 • ゾーン毎の設定がない領域では、この設定値が適用される • ゾーン設定: • ゾーン毎に風、温度、GPS強度を指定可能 7
原点(起動点) • 原点: • 「環境シミュレーション都市データ(PLATEAU)編」 で指定した中心点を、 シミュレーション座標系の原点(基準点) として指定する • 初期ズーム • 地図上で表示する初期ズーム設定 8
ゾーンの設定 ゾーンとは: 特定の地理領域に対して、 Base環境を上書きする自然環境パラメータの集合です。 一定風の場合:風速・風向を設定 矩形を指定し、地図上で範囲をゾーンとして 指定して、自然環境データを設定します。 ゾーン名を設定 ゾーン 優先度を設定 GPS強度を設定 乱流の場合: 中心点から、ランダムに風速を設定します。 ランダムの風速範囲は、Base環境で指定した風速に対して、標準 偏差、乱数シードで決まります。 ※乱流モードでは、Cell Size単位で風速がランダムに分布します (時間変化なし) 9
ゾーンデータの入出力 JSONデータを出力領 JSONデータを出力 領域に表示 域に表示 JSONデータの値を直 接編集し、ゾーン設定 として再反映できます JSONデータを ダウンロード 既存のJSONファイ ルをインポート 10
出力:シミュレーション可能な環境データの生成 • シミュレーション可能な環境データは、pythonプログラム(※)で、 以下のように出力します。 • --infileで、ダウンロードしたゾーンファイル(json)を指定します。 • --outdirで、出力ディレクトリを指定します。 (※) hakoniwa-envsim の src /hakoniwa_envsim/creator/creatore.py $ python -m hakoniwa_envsim.creator.creator ¥ --infile env_zones.json ¥ --outdir ../examples/datasets/shibuya/generated 11
比較(ビジュアライズ) 生成したシミュレーション可能データは、pythonプログラム(※)でビジュアライズできます $ python -m hakoniwa_envsim.visualizer2d.cli --config shibuya.plot2d.json (※) hakoniwa-envsim の src/hakoniwa_envsim/visualizer2d/cli.py ゾーン設定データ シミュレーション可能なデータ 12
参考:コンフィグファイルの情報 生成したファイルを指定します 原点を指定します ランドマーク指定できます 13