探索新世界-RobotSim
在RobtSim中能做什麼
- 加入夾爪,讓機器手臂取放物件
- 把機器手臂放在滑軌上,讓運作空間更大
- 規劃一條生產線
- 設計一套自動化流程,產生各種機器手臂的程式
- 你還想做什麼? 加入討論區一起討論吧
RobotSim 模擬軟體
RobotSim可以視為unity的套件,並透過unitypackage安裝到unity環境中
RobotSim 下載、安裝、試用
要準備的東西
※ RobotSim目前已不支援試用版,若有相關需求請來信至 卓智機器人
安裝RobotSim
一.啟動unity
二.建立新專案
1.輸入專案名稱
2.選擇存檔路徑
三.匯入RobotSim安裝包
1.在Project欄位的Assets區塊點擊右鍵
2.選擇Import Package/Custom package...
3.選擇RobotSim的unitypackage檔案
- 建立unity專案
- 匯入RobotSim
註冊
一.開啟Unity選單列的RobotSim/License視窗
二.輸入試用帳號(ID)
三.啟動授權(Active)
- 參考影片
建立場景
一.匯入機器手臂模型包
1.在Project欄位的Assets區塊點擊右鍵
2.選擇Import Package/Custom package...
3.選擇機器手臂的unitypackage檔案
二.建立RobotSim場景
1.點選Unity選單列的RobotSim
2.選擇Create/Empty RobotSim Scene
三.加入機器手臂
1.開啟Unity選單列的RobotSim/Window/SimModel Window
2.點選要加入場景的機器手臂
- 匯入手臂、建立場景
其他資源
-
機器手臂模型們 SimModel
線上模擬環境
我們已經把模擬環境放在網站上了
連結在這裡
在模擬環境中可以學到
一.座標系
1.WORLD
2.BASE
3.TOOL
二.操作方式
1.XYZ、ABC
2.Axis
三.運動指令
1.PTP
2.LIN
3.CIRC
RobotSim環境與操作
在RobotSim中,共有5大功能分別設置在不同的視窗中,這些視窗可由Unity的選單列中的RobotSim/Window開啟
分別是:
-
Robot Windows:可以查看、調整機器手臂的參數或狀態
-
Program Window:可以在RobotSim環境中插入KRL語法讓控制器執行
-
Controller Window:主要設置哪部機器手臂執行哪支程式,或是查看程式執行狀態
-
Export Window:可以調整程式輸出的相關設定
-
SimModel Window:可以在此視窗中挑選不同型號的機器手臂加入場景中
建立新場景
在Unity選單列RobotSim/Create中選擇「Empty RobotSim Scene」即可建立空白的RobotSim場景
機器手臂的TOOL
關於TOOL的介紹,在隔壁頁有詳細說明 傳送門
RobotSim本質用於機器手臂的動作模擬,因此夾爪也是機器手臂的一環
移動機器手臂
從”Hierarchy”清單或是”Scene”視窗中點選要移動的機器手臂, 在”Scene”視窗上方便會顯示「Tool」、「Base」、「AXIS」、「Mouse」、「Points」與「Home」的按鈕,做為移動機器手臂的參考
- Tool:
- Base:
- AXIS:單獨移動機器手臂的各軸
- Mouse:讓機器手臂移動到滑鼠點擊的位置(物件必須設有Collider)
- Points:讓機器手臂移動到已教好的點位
- Home:讓機器手臂立即回到Home點
- Tool移動
- Base移動
- AXIS移動
- Mouse移動
- Points移動
教點
選擇手臂,透過TOOL、BASE、WORLD、MOUSE將手臂移動到要存點的位置後,按下Robot Windows的「+Point」,便可新增新的點位
RobotSim程式設計
開啟RobotSim的Program視窗,並在Unity視窗裡的Hierarchy中選擇RobotSim產生的Programs物件,此時在RobotSim的Program視窗會出現「+Program」按鈕,點選後RobotSim會自動在Programs物件底下新增一個ProgramBehaviour物件(物件名稱ProgramN,N為序列數字),所有關於RobotSim的機器手臂程式操作皆需透過ProgramBehaviour的物件來操作
當場景內有ProgramBehaviour時,在Program視窗中的Program List便會顯示該物件名稱,在清單中點選該物件便會出現程式編輯的選單(RobotProgram Command Menu)
選單分為四大類:
- 變數(Value)
- 動作(Motion)
- 流程(Flow)
- 外部控制(Extends)
選單如下圖紅框所示:
變數
RobotSim中的變數由RobotCommandValue控制,包含4種資料型態,使用時需透過Type調整儲存的資料型態
變數可直接用在RobotSim的程式設計中,或是透過C#腳本來使用
RobotCommandValue支援的變數型態只有
- Bool:
- Int:
- Float:
- String:
RobotCommandValue value;
// 取得Bool資料
bool boolOfValue = value.BoolData;
// 取得Int資料
int intOfValue = value.IntData;
// 取得Float資料
float floatOfValue = value.FloatData;
// 取得String資料
string stringOfValue = value.StringData;
操作
在Program視窗中的Value選單最下方有Operator選項,共有5種操作
- Set:將RobotCommandValue設定為指定的值
- Add:將2個RobotCommandValue的值相加
- Subtract:將2個RobotCommandValue的值相減
- Multiply:將2個RobotCommandValue的值相乘
- Divde:將2個RobotCommandValue的值相除
動作
在Program視窗中RobotProgram Command Menu按下Motion按鈕,可切換至編輯動作的頁面。可操作的選項分為系統(System)與動作(Motion)
關於系統的選項:
- Base:設定RobotSim Program中機器手臂使用的Base
- Tool:設定RobotSim Program中機器手臂使用的Tool
- Speed:設定RobotSim Program中機器手臂的運動速度
關於動作的選項:
- PTP:增加一組PTP動作
- LIN:增加一組LIN動作
- CIRC:增加一組CIRC動作
流程控制
在Program視窗中RobotProgram Command Menu按下Flow按鈕,可切換至編輯動作的頁面。可操作的選項分別為流程(Flow)與狀態(Condition)
關於流程的選項:
- Loop:新增一組Loop迴圈,放在這個階層下的RobotSim程式碼會一直重複執行
-
For-Loop:新增一組For迴圈,需搭配一個Int型態的RobotSim變數一起使用(當作Counter)。在Counter達成指定條件前會一直重複執行此階層內的RobotSim程式碼
- Wait Time:當RobotSim程式執行到此程式碼時會依據設定的時間進行等待(預設是等待1秒)
關於狀態的選項:
- If-Else
- While
- Switch-Case
外部控制
這個不重要 讓我們54它
自訂的RobotSim程式
在RobotSim Program中,允許使用者自行加入額外的功能。
將新增的Script中原本繼承的MonoBehaviour改為繼承RobotCommand後,RobotSim的Controller會將該Script視為RobotSim程序的一個步驟。
繼承RobotCommand後,需要覆寫三個方法:
-
Check:用來確認該Script需要參考的物件是否都有輸入。回傳True代表該Script檢查沒有異常
-
Execute:RobotSim Program主要執行的內容,該區域描述的程式碼會被RobotSim Controller所執行。執行結束後可以回傳line + 1,讓RobotSim Controller繼續執行下一行
-
UpdateName:更新使用該Script的物件的名字
RobotSim範例-夾娃娃機
設定TCP
在Unity中匯入夾爪後,將模型放入Tools/Tool1/Flange的階層底下