notes
Tools

Inventor から URDF を作る 4 ルート

joint 設定済み CAD (Autodesk Inventor) から URDF に変換する選択肢と選び方

要点#

Inventor で joint constraint を設定した assembly (.iam) を URDF に変換するには 4 つのルートがある。iLogic は必須ではない。何を優先するかで選ぶ。

ルート自動化環境更新頻度が高い時一発のとき
1. iLogic スクリプト✅Windows + Inventor◎△ (書く手間)
2. URDF exporter add-in✅Windows + Inventor + add-in○○
3. STEP + 手作業 URDF❌Linux OK× (毎回手作業)◎
4. Fusion 360 → fusion2urdf✅Fusion 360○○

1. iLogic スクリプト#

中身: Inventor 内蔵の VB.NET ライク言語。assembly の joint constraint (Revolute / Prismatic / Cylindrical / etc.) を walk して URDF <joint> に変換する自作スクリプト。

Pro: joint 情報 (type / axis / origin) が 1 対 1 で保存される。CAD 更新後は再走行するだけ。 Con: Windows + Inventor 必須。スクリプトを書くコスト。

参考: GitHub で inventor iLogic URDF 検索。fusion2urdf の iLogic 版が Autodesk フォーラムに転がっている。

2. Inventor URDF Exporter Add-in#

中身: サードパーティ製の add-in (Inventor2URDF 系)、iLogic を書かずに GUI から export できる。

Pro: 導入するだけ、書かない。 Con: 品質にバラつき、Inventor バージョン依存でメンテナンスされていないことも多い。試すコストは低いので選択肢としては残る。

3. STEP + 手作業 URDF#

中身: 各 part を STEP (or STL) に export → URDF を手で書き、joint 位置を Inventor 上の測定値から転記する。

Pro:

  • Inventor 不要 (Linux でも作業できる)
  • 部分更新が容易
  • Mesh を STL に軽量化しやすい (visual 用に低ポリ化、collision 用に凸包 生成)

Con: joint origin を CAD 上で 1 個ずつ測る手間。7 joints くらいなら 30 分〜1 時間。

手順:

  1. Inventor 側で各 part を 「joint 原点を part の origin にそろえた STEP」 として export (親 part の座標系で子 part の joint 位置を測って、それを子の原点にする)
  2. 各 STEP を FreeCAD or meshlab で STL に変換 (visual mesh 用)。collision 用に凸包 STL を別途生成すると軽い
  3. URDF を手で書く。joint <origin xyz="..." rpy="..."> は「親 link の座標系での子 link の位置」を入れる
  4. check_urdf / urdf_to_graphiz で構造確認、RViz で display

4. Fusion 360 → fusion2urdf 系#

中身: Inventor ipt/iam を Fusion 360 で開き直して、syuntoku14/fusion2urdf add-in で export。

Pro: fusion2urdf は OSS で成熟しており joint 対応良好。 Con: Autodesk アカウント + Fusion 360 の環境が要る。joint を再定義することがある (Fusion 側で set-up し直し)。

選び方#

  • iLogic を書ける環境と続けて使う予定がある → 1 (自動化の再現性が最強)
  • iLogic を書きたくない、Fusion に触れる → 4
  • Linux 側で手が空いてる、頻繁に更新しない → 3 (7 parts 程度なら 1h 以内)
  • どうしても Inventor 上で完結させたい、add-in を試す余地あり → 2

joint 情報が既に正しい場合#

Inventor で joint constraint が正しく設定してあるなら、その情報を「数値として書き写す」だけなので、CAD 側で joint を作り直す必要はない。手作業 URDF ルートでも Inventor 側の joint origin を測定値として使えばよい。

落とし穴#

  • 単位: Inventor は mm がデフォルト、URDF は m。全 origin を 0.001 倍する
  • 座標系: Inventor の Z-up と URDF の Z-up は通常同じだが、part export 時に origin を意識しないと ずれる
  • mimic joint: Inventor の gear / cam / belt constraint は URDF の <mimic> に落とせない場合が多い。多くの exporter は rigid 化する。4-bar link は特に注意
  • mesh のスケール: STL に export したときの単位を確認 (mm/m)。URDF <mesh scale=...> で吸収するか、export 側で m に合わせる

関連#

最終更新:

On this page