本書以ABB工業(yè)機器人為例,從工業(yè)機器人與視覺應用,工業(yè)機器人與上位機聯(lián)合開發(fā)(c#),工業(yè)機器人與工廠級平臺聯(lián)合開發(fā)(WebService)等方面,將工業(yè)機器人的二次開發(fā)方法與過程深入淺出地呈現給讀者,也滿足工廠對于工業(yè)機器人更好接入工廠智能系統(tǒng)的需求。其中主要內容有機器人與PLC數據傳輸,包括機器人與PLC傳輸浮點數,機器人實時發(fā)送位置、扭矩、速度、錯誤號等信息,以及Modbus/TCP通信;基于Socket通信的視覺引導抓取,包括相機先拍機器人后抓和機器人先抓相機后拍不同模式。最后以康耐視In-Sight為例進行實例講解;基于PC SDK的二次開發(fā),包括上位機對于機器人數據和I/O信號的讀寫與訂閱,對于機器人的啟動、停止、備份和重啟等控制,上位機與機器人系統(tǒng)文件的傳輸與加載等。還舉例講解了ABB工業(yè)機器人最新支持的OPC UA等功能;基于RobotStudio SDK的二次開發(fā),包括利用SDK在C#開發(fā)Smart組件,以及在RobotStudio中添加自定義功能等;基于Robot Web Services技術的二次開發(fā),利用ABB工業(yè)機器人的Web Service接口對機器人數據進行讀寫,以及手動模式下的遠程Jog機器人;Externally Guide Motion。外部傳感器可以最快以250Hz的頻率(每4ms)獲取機器人的位置數據及實時控制機器人的運動。
陳瞭,浙江大學控制理論與控制工程(或智能機器人)碩士研究生,現在就職于ABB工業(yè)機器人,具有多年的工業(yè)機器人現場項目經驗和工業(yè)機器人培訓經驗。
目 錄
第1章 機器人與PLC傳輸數據 1
1.1 通過總線發(fā)送實數 6
1.2 機器人控制器變身交換機 11
1.3 實時發(fā)送機器人的位置 16
1.4 實時發(fā)送機器人速度 21
1.4.1 速度輸出 21
1.4.2 在RobotStudio中監(jiān)控速度 22
1.5 PLC讀取機器人的各軸扭矩 25
1.6 發(fā)送機器人錯誤號 26
1.7 ModBus/TCP 31
1.7.1 讀取數據 32
1.7.2 寫入數據 34
第2章 基于Socket通信的視覺引導抓取 37
2.1 Socket通信 37
2.1.1 Socket通信簡介 37
2.1.2 網絡設置 37
2.2 創(chuàng)建TCP/IP通信 40
2.2.1 創(chuàng)建Client端的實例 41
2.2.2 創(chuàng)建Server端的實例 43
2.3 傳輸400個Float型數據 44
2.3.1 接收400個Float型數據 44
2.3.2 發(fā)送400個num型數據 46
2.4 字符串的解析 47
2.5 四元數與歐拉角 49
2.5.1 空間位姿的表示 50
2.5.2 四元數與歐拉角的轉換 52
2.6 先拍照后抓取 55
2.6.1 修正單個點位位置 55
2.6.2 修正工件坐標系 62
2.7 先抓取后拍照 67
2.8 飛拍 70
2.9 康耐視視覺產品介紹 73
2.10 In-Sight軟件介紹與安裝 73
2.11 相機的校準與配置 76
2.12 機器人與康耐視通信 82
2.13 UDP通信 85
第3章 基于PC SDK的二次開發(fā) 88
3.1 PC SDK簡介 88
3.2 機器人權限問題 90
3.3 連接機器人控制器 91
3.4 讀寫數據 94
3.4.1 讀取RAPID數據 94
3.4.2 寫入RAPID數據 98
3.5 讀寫數組 101
3.5.1 讀取數組 101
3.5.2 寫入數組 102
3.6 讀寫I/O 104
3.6.1 讀取I/O 104
3.6.2 寫入I/O 106
3.7 獲取機器人當前位置 108
3.8 調節(jié)機器人運行速度 111
3.8.1 獲取與設置機器人運行速度的百分比 111
3.8.2 獲取與設置機器人運行速度的絕對值 112
3.9 啟動與停止 116
3.9.1 上電與下電 116
3.9.2 指針復位 119
3.9.3 啟動與停止 120
3.9.4 設置程序指針 121
3.10 訂閱 123
3.10.1 機器人控制器狀態(tài) 123
3.10.2 I/O 126
3.10.3 數據 128
3.10.4 UImessage 128
3.11 顯示任務內所有數據 132
3.12 事件日志 134
3.13 傳輸文件與加載 137
3.13.1 從機器人控制器傳輸文件到PC 138
3.13.2 從PC傳輸文件到機器人控制器 138
3.13.3 程序模塊的加載 139
3.13.4 程序模塊的保存 140
3.13.5 完整程序的加載 140
3.14 備份與重啟 141
3.15 獲取機器人選項信息 143
3.16 獲取機器人運行信息 143
3.17 OPC DA Server的配置 145
3.17.1 IRC5 OPC DA Server配置 145
3.17.2 IRC5 OPC UA Server配置 149
第4章 基于RobotStudio SDK的二次開發(fā) 157
4.1 RobotStudio SDK簡介 157
4.1.1 RobotStudio SDK概述 157
4.1.2 RobotStudio SDK安裝 157
4.2 第一個RobotStudio Add-In 159
4.2.1 Logger輸出“Hello World” 159
4.2.2 創(chuàng)建Button輸出Logger信息 163
4.3 我的機器人查看器Add-In 165
4.3.1 創(chuàng)建新視圖函數 166
4.3.2 獲取機械裝置函數 172
4.4 自定義Smart組件 173
4.4.1 信號與Logger輸出 173
4.4.2 修改Properties制作一個加法器 177
第5章 基于Robot Web Services的二次開發(fā) 181
5.1 Robot Web Services簡介 181
5.2 讀取機器人系統(tǒng)的信息 185
5.2.1 API接口查找 185
5.2.2 URL讀取 185
5.2.3 網頁交互式讀取 187
5.2.4 基于C#的客戶端讀取 191
5.3 讀取機器人關節(jié)數據 195
5.3.1 API接口查找 195
5.3.2 網頁交互式讀取 196
5.4 讀取機器人狀態(tài)信息 198
5.4.1 API接口查找 198
5.4.2 網頁交互式讀取 200
5.5 設置機器人輸出信號 201
5.5.1 API接口查找 201
5.5.2 通過網頁的按鈕設置 202
5.6 控制機器人電機開啟或關閉 204
5.6.1 API接口查找 204
5.6.2 通過網頁的按鈕控制 205
5.7 實現對機器人的Jog控制 206
5.7.1 API接口查找 206
5.7.2 在WinForm窗體軟件中實現控制 209
第6章 Externally Guided Motion 216
6.1 EGM簡介 216
6.2 EGM相關指令介紹 217
6.2.1 EGM的狀態(tài) 217
6.2.2 位置流實時輸出 218
6.2.3 Position Guidance實時閉環(huán)控制 219
6.2.4 基于已有軌跡的矯正 223
6.3 基于EGM Stream的實時數據流輸出 223
6.3.1 創(chuàng)建機器人RAPID代碼 223
6.3.2 創(chuàng)建C#可用的ProtoBuffer文件 225
6.3.3 機器人對C#端的實時數據輸出 229
6.4 C#端WinForm實時移動機器人(4毫秒周期) 232
6.4.1 創(chuàng)建機器人RAPID代碼 232
6.4.2 創(chuàng)建WinForm程序 233
6.4.3 完整上位機實時移動測試 235
6.5 基于LeapMotion的手勢操控機器人運動 237
6.5.1 LeapMotion簡介 237
6.5.2 LeapMotion數據的讀取 238
6.5.3 基于LeapMotion的上位機程序 241