---
# System prepended metadata

title: 從Fusion匯出urdf檔
tags: [畢專]

---

# 安裝Fusion2URDf插件
https://github.com/syuntoku14/fusion2urdf?tab=readme-ov-file
![image](https://hackmd.io/_uploads/rkMUrsPI1x.png)
### 1.選擇Download ZIP
### 2.將插件放到Fusion
**方法1**:使用Windows PowerShell
```
cd <path to fusion2urdf>
```
#解壓縮後會有一個fusion2urdf資料夾包著一個fusion2urdf資料夾，把裡面那個拉出到要儲存的位置，並右鍵複製路徑，取代'<'path to fusion2urdf'>'
```
Copy-Item ".\URDF_Exporter\" -Destination "${env:APPDATA}\Autodesk\Autodesk Fusion 360\API\Scripts\" -Recurse
```
再輸入這行即將插件匯入了

**方法2**:找到fusion在電腦的位置
例如我的是"C:\Users\jeffr\AppData\Roaming\Autodesk\Autodesk Fusion 360"
#AppData是隱藏檔案
選擇API，選擇Scripts，將fusion2urdf資料夾裡的URDF_Exporter整包複製進去
#方法1跟方法2意思一樣，只是方法2比較保險
### 3.重新打開fusion
![image](https://hackmd.io/_uploads/r1enFovIyg.png)
選擇UTILITIES，選擇ADD-INS，在My Scripts即可看到
### 4.因為Python 版本問題，插件內部程式需做修改
打開utils資料夾，打開utils.py
replace line 12:
```
from distutils.dir_util import copy_tree
```
with:
```
from shutil import copytree
```
replace line 152:
```
copy_tree(package_dir, save_dir)
```
with:
```
copytree(package_dir, save_dir, dirs_exist_ok=True)
```
#在未修改前，直接按插件會沒有反應，Ctrl+Alt+C 可開啟TEXT COMMENDS 查看錯誤訊息
# 從Fusion匯出urdf檔
### 0.在inventor組好.iam檔，在fusion open
 open時，預設路徑會是hub裡的Admin Project，此為私人資料夾(應該只有我有而已，因為我是hub的管理員)，所以較保守的作法是，選擇左邊的projects，選擇Assets，選擇panda(我們的資料夾)，選擇檔案或upload檔案，若upload的檔案是.iam檔，會叫你選擇有用到的零件
 ![image](https://hackmd.io/_uploads/rJosLqv81x.png)

### 1.打開後各零件都不會有約束，確認需要的零件種類、數量都對
因為我沒有找到再將新零件引入的方法，若是數量不對可以Ctrl+C、Ctrl+V，若是缺零件的話建議在.iam檔用好再重新upload
### 2.設定各零件名字(英文、不能有空格，_代替)   (材質、顏色(先不設))
主零件必須命名為base_link(在此專案裡就是body)，不然轉檔的程式會無法執行
### 3.鍵盤按J，設定joint
![image](https://hackmd.io/_uploads/rJZLp5wIkg.png)

### 4.component 1 不能選base_link (機器主體，主坐標軸的定義)，component 1 選與 base_link 連接的 link，component 2 才選base_link，點運動軸向
component 1 is child link，component is parent link
選component時，注意選到的面或線，會影響組裝結果
{%youtube np6SM74eeJY%}
插件作者說不去移動關節位置，如影片30秒處，但我不太確定原因為何，後續放至gazebo模擬再說
![image](https://hackmd.io/_uploads/rkdRJ3DLJx.png)

### 5.joint 的視窗選 motion，選擇運動模式
注意此插件只支持Rigid(固定，無自由度), Slider(平移),Revolute(旋轉)
### 6.全部設定好，選擇其中一個零件去左右拖曳它，若 joint 都設定好的話，整隻機器應該一起移動，確認每個零件都有連接
### 7.打開ADD-INS，選擇URDF_Exporter，按儲存，大功告成!!
儲存後會出現一個資料夾，裡面都是需要用到的檔案~~
![image](https://hackmd.io/_uploads/rkprghPLkg.png)
![image](https://hackmd.io/_uploads/H1zve3wI1g.png)


# Fusion 使用注意事項
### 1.
各位都有權限去使用Assests裡的檔案，若選擇檔案最新版本進行修改，Ctrl+S後會儲存一個新的version，不會覆蓋舊version；若選擇舊版本進行修改，Ctrl+S會發現沒有事情發生，因為還有更新的version存在，需手動存檔，左上角file選Save as Latest，存成最新version。
例:你想要從v6修改，但前面還有v7、v8，這時候Save as Latest就會變成v9(系統會有警告訊息，按ok就好)
### 2.
Fusion 類似 Inventor，可以直接在裡面畫圖，但我不會，所以還是乖乖在Inventor畫完再丟進來。
### 3.
組合裡應只有body，不能有次組合(Bodies)，若有的話，對Bodies按右鍵選 Create Components from Bodies
### 4.
base_link 不能 link to ground，如有要解除
### 5.
<font color="red">joint 需重新命名，例:將revolution 1的空格改成_，當然更好的話是將名字命為parentlink_childlink
一定要改，不然我程式就要一行一行改，改到死