FreeCADでURDFを組み立ててエスクポートする（前編）

![SS 192.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565043/a41cd967-f549-8677-1efa-2e99bf69518d.png) グッドラック自分！

## やること

**手持ちの3D素材**から**URDFファイルを出力する**のがゴールです。
URDFはロボットの形状や構造などを格納するためのファイル形式で、ROS環境などではこのよく使われます。
Fusion360からも出力できるようですが、今回は**FreeCAD**からの出力を試します。

そのために、以下の作業を行います。

① フリーのCADソフトであるFreeCADを使えるようにします。
② FreeCADの拡張機能であるfreecad.overcrossを導入します。
③ 制御できるロボットのファイル形式であるURDFを組み立てます。
④ URDFを出力します。

## 使用環境

- Mac M1 (たぶんウィンドウズでもLinuxでもOK！)
- Freecad v0.21.2

## ① FreeCADのインストール

[FreeCADの公式サイト](https://www.freecad.org/)から、FreeCAD v0.21.2をインストールします。なんとシリコンMacにも対応しています。
ただしFreeCADはバージョンによって動作が不安定な場合があるようです。レベルアップの際にスキルポイントを自由に割り振れるシステムを人生で採用している方は、なるべくLUCKにポイントを割り振っておくとよいかもしれません。

### FreeCADを使えるようにする

FreeCADを使うのがまったく初めてという方はここでざっと使い方を覚えましょう。
ありがたいことに入門動画がたくさんあります。


初見なれど超急いでいるという方におすすめ。5分以内の導入動画。シリーズあり！

https://www.youtube.com/watch?v=e_ipWqhHIFA

起動画面から始まるので、とてもわかりやすい！

https://www.youtube.com/watch?v=54F5Me-zEr4&t=2s

機能の全般をとてもわかりやすく解説！

https://www.youtube.com/watch?v=pnJq2Hp-Tso

動画を制作された方、ほんとうにありがとうございます。
FreeCADの超基本操作はこれらの動画で身につくと思います。

## ② freecad.overcrossのインストール

FreeCADにはいろいろな機能やモードがありますが、そのモード画面のようなもののことを「ワークベンチ」というようです。
画面の上のプルダウンメニューから、必要なワークベンチに切り替えながら作業を進めていくことになります。

さてそのワークベンチに、URDFを出力することができるROBOT開発用のワークベンチである**freecad.overcross**を追加していきます。

実は先ほど選んだバージョンの**FreeCADv0.21.2**は**アドオンマネージャーというものに対応**しているそうで、このバージョンをインストールできている場合は、freecad.overcrossも手軽に導入することができます。アドオンマネージャーを使って導入手順を進めていきます。
（何らかの事情でより古いバージョンを選んでいる方は、このステップについては自力で情報を集めてクリアしてください。）

### freecad.overcrossのgithubにアクセスする

一旦[こちらのサイト](https://github.com/drfenixion/freecad.overcross)にアクセスします。
https://github.com/drfenixion/freecad.overcross

今回導入するfreecad.overcrossの本家サイトになります。

### freecad.overcrossのアドオンを導入する

基本的にgithubに書かれている通りでではありすが、下記のように進めていきます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565043/9f421555-6d4a-c541-832c-83c14bd8c260.png" width=500>


- FreeCAD の上部メニュープルダウンから「設定」を見つける。
- アイコンで「アドオンマネージャー」を選択。
- 「+」記号をクリックして、「リポジトリ」を追加する。
リポジトリ名:https://github.com/drfenixion/freecad.overcross.git
ブランチ名:main
- 「OK」をクリックして「設定」ダイアログを閉じる。
- メニューから「ツール/AddonManager」を選択。ワークベンチで「RobotCAD」を検索。 
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565043/0f106148-fd6c-158a-8be4-347e9ddaa227.png" width=300>

- 「RobotCAD」を押して、インストールボタンを押す。(ReadMeが読めないという警告は無視。)
- FreeCADを再起動する。

#### トラブルシューティング
自分の場合、FreeCADの再起動後に「アイコンファイルが見つからない」というエラーが出ました。
> /Users/ユーザー名/Library/Application Support/FreeCAD/Mod/freecad.cross/resources/icons/robotcad_overcross_joint.svg

このまま起動すると、アイコンがうまく表示されません（x印になります）。

調べてみると、
/Users/ユーザー名/Library/Application Support/FreeCAD/Mod/freecad.overcross/
というディレクトリがありました。パスが微妙にアプリの要求と違うようです。
freecad.overcrossを同じ階層にコピーし、freecad.crossと名称変更したところ、正常に起動できるようになりました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565043/24128758-f6d5-06db-0bd9-0680541f431b.png" width="300">

### FreeCADを起動する

FreeCADを再起動しベンチーマークので「RobotCAD-ROS2-OVERCROSS」が選択できるようになっていることを確認します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565043/92e88f94-5bf2-ea54-4e52-599c018efc4b.png" width="400">

※「Robot」というベンチマークもありますが、こちらはKuka製のロボットアームと連携する別物で、FreeCADにデフォルトでインストールされもののようです。

**これでアドオンのインストールは完了**です。

### ROSなしで使う

ROSとの連携機能を使うにはROS自体を使えるようにする必要でありますが、今回はROS連携なしでURDFの出力だけができるようにがんばってみます。

# freecad.overcrossのマニュアル

基本的な使い方はこちらにあるはずです。

https://github.com/drfenixion/freecad.overcross/wiki

# 後編につづく

FreeCADの概要とfreecad.overcrossのインストールまでできましたので、ここでいったん記事をわけます。

[後編記事](https://qiita.com/Ninagawa123/items/29e6692eaa22bfb1c4de)

https://qiita.com/Ninagawa123/items/29e6692eaa22bfb1c4de