URDF と SDFormat のロボットモデルおよびシミュレーションの比較

URDF とSDFormatは、要素が重なり合うもののスコープが異なるXMLロボット記述形式です。 URDF は、多くのROSツールでロボットのリンクや関節の中心的な役割を果たしています。SDFormatはモデル、照明、センサー、プラグイン、物理演算、そして完全なシミュレーション世界を記述できます。

どちらのフォーマットも物理的な忠実さを保証するわけではありません。視覚、衝突、慣性幾何学は意見が分かれることがあります。フレームの意味は変換によって変化します。センサーのレートやノイズは現実的でないこともあります。ソース・オブ・トゥルース戦略を選択し、各ツールが消費した生成モデルを検証します。

このガイドは、TF2座標系ガイドおよびバーチャルコミッショニングガイドと一緒にご利用ください。構造、フレーム、物理、センサーを別々に検証してください。

消費者および検証範囲ごとに選択

すべての消費者をリストアップ:robot_state_publisher、キネマティクス、計画、可視化、制御、シミュレーター、ワールドエディター、アセットパイプライン。どのフォーマットとバージョンを受け入れているかを記録してください。1つのユニバーサルファイルがツール固有の拡張子を蓄積し、単一の消費者が一貫して解釈しないことがあります。

どの行動が物理的なロボットに一致すべきかを定義します。運動学的計画にはジョイントや衝突幾何学が必要になることがあります。コントローラのテストには伝送とインターフェースが必要です。シミュレーションには慣性、摩擦、接触、センサーノイズ、世界条件が必要になる場合があります。

TurtleBot3 Burgerがライダー、ホイール、センサー、電子機器、構造リンクを表示
ロボットモデルは、運動学、センシング、シミュレーションに関わる物理的関係を保持すべきです。この写真はモデルファイル自体ではありません。出典: Kuscu0(Wikimedia Commons)。ライセンス: CC BY-SA 4.0

URDF 1つの運動学的木を中心に据えています

URDF はジョイントで接続されたリンクを記述し、視覚的、衝突的、慣性的特性を一般的に保存します。ツリー構造はrobot_state_publisherや多くのROSツールと一致しています。Xacroは再利用可能な生成言語を追加しますが、前処理言語でありランタイムロボットモデルではありません。

ROS 2 URDFチュートリアルはエコシステムについて説明しています。アーカイブは、マクロ、引数、パッケージパスによって実際に消費されたファイルを決定するため、URDFレンダリングされます。

必要性強URDFSDFormatの強度検証
ROS運動学ツリー幅広いツールサポート変換が必要かもしれませんジョイントおよびフレーム試験
シミュレーションの世界必要な拡張ネイティブワールド構造スポーンと環境テスト
複数モデル外部発射ロジックワールドモデルとネストモデル恒等式および姿勢試験
センサーと物理ツール固有のタグ在来の豊富な要素レート、ノイズ、接触試験
単一ソース生成Xacro またはテンプレートテンプレートまたは生成diff生成成果物

SDFormatにはワールドと物理コンテキストが含まれています

SDFormatはモデルを記述し、重力、物理エンジン設定、ライト、道路、地形、プラグイン、複数の配置エンティティを含むワールドも記述できます。これにより、1台のロボットを超えた再現可能なシミュレーションシナリオに適しています。

SDFormat仕様にはバージョンが割り当てられています。仕様書とシミュレーターのリリースを記録してください。有効なファイルであっても、移植性のないシミュレーター固有のプラグインの動作に依存している場合もあります。

監査の視覚的特性、衝突特性、慣性特性は別々に

視覚幾何学は外見に影響を与えます。衝突形状は接触や計画に影響を与えます。慣性特性は動力学に影響を与えます。3つすべてに1つの詳細なメッシュを再利用するのは遅く、物理的にも精度が低いことがあります。視覚的に正しいモデルは、慣性がゼロまたはありえないものを含むことがあります。

質量、重心、慣性テンソルの対称性や正の物理値を確認してください。実際のロボットと衝突範囲を比較し、単純化された形状が不可能な隙間や接触を生じないか確認してください。

5段階のSDFormatモデル変換テスト URDF
視覚的に正しいスポーンでも、フレームや慣性、センサーのエラーを隠すことができます。出典:Physical AI Lab。

フレームやポーズの意味は変換によって変化することがあります

URDF 結合原点とリンクフレームが木を定義します。SDFormatはより豊かなポーズ関係とフレームセマンティクスをサポートします。変換により、標準リンクや入れ子状のモデルフレーム、または元のポーズとは異なる形状が生まれることがあります。

既知の点と軸を両方の表現で変換します。センサーの光学フレーム、ベースフレーム、ツールフレーム、ジョイントゼロを確認してください。予想される場所にスポーンしたモデルでも、1つのセンサーを回転させたり、衝突ジオメトリをずらしたりできます。

テスト層比較一般的な隠れ誤差受理証拠
構成リンクグラフとジョイントグラフドロップ固定継手名称と位相の違い
フレーム既知のポーズと軸逆ポーズまたは解決ポーズトランスフォームプローブ
物理的質量、慣性と衝突デフォルト値または無効な値ダイナミックレスポンス
センサーレート、ノイズ、レイテンシ、フレームプラグインのデフォルト録音作品
世界重力、摩擦、そして配置バージョン依存の設定シナリオ回帰

SDFormatワールドは再現可能なシナリオに使う

世界はテストに影響を与える環境要素、すなわち重力、地面、摩擦、照明、モデル、初期ポーズ、物理構成を指定すべきです。外部のローンチスクリプトは変動性を加えることができますが、そのパラメータやシードはシナリオレコードの一部として残らなければなりません。

再利用可能なロボットモデルと世界特有の配置を分けてください。ロボット資産内に倉庫の仮定を埋め込むのは避けましょう。バージョンモデルとワールドを独立して行い、回帰分析のためのピン互換の組み合わせも行います。

存在感だけでなく、センサーの挙動を検証すること

センサー要素はタイプ、更新速度、ポーズ、ノイズ、レンダリングや物理パラメータを定義できます。プラグインはシミュレーターデータをROSにつなぎます。トピックが現れるのは接続性を証明するものであり、サンプリング時間、視野、ノイズ、フレームが物理的なデバイスと一致しているわけではありません。

シミュレートされた出力とセンサー契約を比較してみてください。レート、タイムスタンプ、レイテンシ、frame_id、距離制限、ノイズ分布を測定します。宣言されたバージョンには SDFormatセンサー仕様 を使用してください。

Gazebo拡張を明示的な依存関係として扱う

URDF 材料、摩擦、センサー、プラグイン用のガゼボ拡張タグが含まれることが多いです。ROSツールが URDF を消費し、追加データが必要な場合 Gazebo 実用的です。また、ソースを特定の変換やシミュレーターの動作に結びつけます。

すべての延長を記録し、他の URDF 利用者が安全に無視しているかどうかをテストしましょう。可能な限りシミュレーター専用の設定をグループ化し、生成してください。アップグレード後に無視されたパラメータは、XMLを無効化せずにダイナミクスを変えることができます。

生成されたSDFormatを検査する

GazeboでURDFが生成されると、変換によってSDFormat表現が生成されます。固定継ぎ目は規則に従って縮小または保持され、延長部分はマッピングされます。生成された出力が、ソースURDFだけでなくシミュレーターの挙動を決定します。

デプロイされたバージョンには Gazebo URDF スポーンドキュメント および変換検査ツールを使用してください。アップグレード後にSDFormatを生成し、レビュー警告を出して、成功したスポーンが完全な忠実度を意味するとは限りません。

生成されたターゲットを一つの意味源に保つ

実用的なプロジェクトでは、ジオメトリ、ジョイント、センサー、識別子の標準パラメータを維持し、消費者向けに URDF およびSDFormatターゲットを生成することができます。これにより重複する手動値を減らしつつ、フォーマット固有の機能が可能になります。

ジェネレーターは信頼できるツールチェーンの一部となります。ピンバージョンを付け、出力をテストし、生成ファイルへの手編集を禁止します。あるフォーマットで特徴を表現できない場合は、未公開パッチに隠すのではなく、その分岐を明示的に記録してください。

構造、フレーム、物理、センサーの回帰を実施

生成されたすべてのモデルを解析し、名前やトポロジーを比較し、プローブ変換を行い、既知の自由落下や振り子の挙動をシミュレートし、接触点を確認し、センサーテストを再生します。モデルのスポーン、コントローラー接続、短いタスクシナリオを含めてください。

ゴールデンスクリーンショットは見た目には役立ちますが、不十分です。数値ベースラインと公差を保存し、すべてのコンバーター警告を調査してください。シミュレーターの変更は、物理的な根拠を伴う意図的なベースライン更新を必要とする場合があります。

コミッショニングの証拠からフォーマットを選択する

主な契約がROSロボット構造で、サポートする拡張が十分な場合には URDF を活用してください。ワールド、ネストモデル、センサー、シミュレーター物理演算が主な場合は、ネイティブのSDFormatを使いましょう。多くのシステムは制御生成を通じて両方を利用しています。

受理基準はファイル拡張ではなくテスト範囲に基づいています。

  • すべての消費者向けおよび対応フォーマットのバージョンをリストアップしてください。
  • 視覚、衝突、慣性証拠を別々に。
  • 変換ごとにプローブフレームを設置します。
  • 物理とセンサーを数値的にテストする。
  • バージョンジェネレーターと生成された成果物を組み合わせて使います。

よくある質問

プロジェクトは URDF だけを選ぶべきなのか、それともSDFormatだけを選ぶべきなのか?

いいえ。多くのプロジェクトはセマンティックソースを保持し、ツール固有の URDF やSDFormatの成果物を生成しています。

センサー URDF 説明できますか?

シミュレーター専用の拡張機能はセンサーを追加できますが、ネイティブのサポートや移植性は消費ツールによって異なります。

Gazeboスポーンが成功すれば、変換が正しいと証明されますか?

いいえ。フレーム、慣性、衝突、プラグイン、センサー設定が間違っていたり無視されたりすることもあります。

SDFormatを直接読み込めrobot_state_publisherですか?

通常の契約は URDFです;その消費者向けにサポートされているコンバージョンや生成された URDF を使いましょう。

モデル回帰分析でまず何を検証すべきでしょうか?

まずリンクとジョイントの同一性から始め、次にフレーム、慣性および衝突挙動、センサー、完全なシナリオを扱います。

ロボットモデル忠実度境界

ロボットモデルはツールチェーンとテスト目的に結びついた近似値です。生成された成果物を物理的測定値と照らして検証し、運用上の主張にシミュレーション結果を用いましょう。