一、背景介紹
本方案提供集成機器人集成教學單元系統 2 套,嚴格滿足實現《機器人基礎 課程實驗》、《機器人高級課程實驗》和機器人雙機對弈研究的實驗要求。 其中,機器人集成教學單元主要包括:六軸工業機器人、機器人教學控制系 統、機器人教學課程功能包、機器人實驗操作臺、六維力傳感器、手眼視覺系統、 遙操作手柄系統及固定視覺系統。
二、方案設計
機器人教學系統能夠向學生提供完整的機器人教學實驗環境,包括機器人系 統認識、正逆運動學、關節空間規劃、笛卡爾空間規劃、動力學辨識、機器人動 力學前饋控制、拖動示教、基于末端力傳感器的導納控制、機器人視覺相機標定、 機器人視覺手眼標定、機器人視覺引導抓取、遙操作等實驗課程。 同時支持棋盤位置和棋子的動態識別,為機器人雙機對弈提供棋子位置信息;
支持與開源棋類軟件進行配合,實現自動下棋;結合棋子偏好因子,對根節點所 產生局面的估值進行調整,分析棋子偏好因子對于博弈走法決策的影響;結合博 弈風格因子,對根節點所產生局面的估值進行調整,通過調整博弈風格因子大小 使得博弈程序具有激進、適中及穩健型風格。
三、平臺配置參數
3.1、六軸工業機器臂本體
1)自由度:6
2)負載:7kg
3)精度:0.02mm
4)工作半徑:650-750mm
5)工作環境溫度:0/+40°C
6)驅動方式:交流伺服驅動
7)防護等級:IP67
8)噪聲水平:≤70dB(A)
采用珞石XB7型號機器人,其技術參數指標如下:
一個完整的機器人系統包括機器人本體,控制器,示教器,連接線纜,軟件,末端執行器及其他附件,XB7如下圖所示。
圖中各部分表示:
①XB機器人; ②xPad示教器; ③控制柜; ④示教器電纜; ⑤柜間電纜
機器人本體主要結構材質為鑄造鋁合金,共6個自由度,每個關節電機都配有制動器。
提供機器人連桿慣量信息
XB7各軸電機參數如下表所示:
開放式機器人控制系統
1) 整體要求:包括通信模塊、運動控制模塊和安全模塊,實現多種構型機器人控制??梢钥焖俅罱C器人研究或應用平臺,支持機器人控制算法驗證及機器人應用的快速開發。
平臺基于Matlab/Simulink構建快速原型控制系統,可以通過模型化開發方式,快速搭建機器人應用。
2)功能要求:
支持Matlab/Simulink下建立的動態系統數學模型應用于實時仿真、算法測試,便于全流程控制和局部算法驗證。
機器人應用開發工具(CPS Builder)實現機器人控制系統的模型搭建,快速仿真測試。
開發流程
數字仿真。在Simulink中建立機器人控制模型,初步驗證模型及算法;
半實物模型準備。對數字仿真模型進行修改,建立半實物仿真模型;
目標代碼自動生成。將Simulink模型轉化為C代碼,并最終編譯為可執行程序;
仿真配置管理。配置仿真目標機屬性;
實時仿真。連接目標機成功后,啟動實時仿真??蓤绦形募詣舆\行,與實際機器人系統或HIL交互;開發工具支持在線調參,啟??刂?,實時數據存儲等功能;
仿真數據分析處理。
支持控制算法的純數字仿真和硬件在環仿真與機器人真機實時控制。支持Simulink環境下的自動代碼生成與部署、動態調參、參數回顯等調試功能。
以提供給的實驗課程為例,按照結構框圖在MATLAB Simulink中為搭建機器人閉環控制系統,Robot為仿真被控對象模型,對象輸入為各關節力矩(Nm),輸出為關節角度(rad)。
PID Control模塊使用實驗二的PID控制模塊。并完善動力學前饋模塊內容。仿真系統為離線系統,控制周期為0.001s。
調整控制器參數,保證控制系統的動態性能和穩態性能。PID Control模塊的期望輸入Expect 取為階躍信號,以二關節和六關節為例,完成下表(PID參數取值與實驗二內容一致)。
真機實驗部分,利用仿真實驗中的控制器完善PID+dynamics Control,由于仿真被控對象與真機不完全一致,因此控制器參數需要調整。本實驗僅對機器人六關節進行實驗,其他軸控制無效。
將該程序拷貝到真實機器人的上位機系統中,單擊編譯。
在應用程序中,打開快速開發工具
在run_model 面板中,依次進行以下操作。
回到simulink程序,依次進行如下操作
初始化開關狀態,開關1:move;開關2:off;開關3:off
單擊1連接目標機
單擊2運行目標機程序
將機器人運動到初始構型(可雙擊robot模塊進行設置,參數可在線修改,修改的目標在開關3由off變為on時才會生效)
將開關1置于move狀態;將開關2置于on,機器人上電;將開關3置于on,開始移動。完成移動完成后,依次將開關3置于off,開關2置于off。
具有機器人基礎運動庫和高級動力學庫、視覺庫、人工智能算法庫,集成多種總線通訊模塊,支持快速搭建機器人教學和科研的算法開發環境。
系統提供多類型功能庫,支持用戶封裝自定義庫文件?;贛ATLAB S-Function和MATLAB Function模塊,可以封裝不同功能,不同算法的功能組件。
技術參數:
機器人運動控制器與伺服驅動器通信方式:EtherCAT
機器人IO端口數:數字量16-in, 16-out
與伺服間通信頻率:1KHz
通信接口類型:位置接口,速度接口,力接口
控制模式:位置,速度,力
控制器支持EtherCAT總線,提供16路DI、DO接口,伺服通信周期頻率滿足402協議,通信頻率為1Khz,支持位置、速度、力三種控制模式,控制接口封裝在機器人庫中。
開發語言:MATLAB, C/C++
應用基于MATLAB/Simulink仿真,
同時可以基于支持C語言封裝。
項目提供多課時實驗內容,同時提供相關demo。
支持通信方式:EtherCAT,TCP/IP, UDP
控制器支持EtherCAT,TCP/IP, UDP,相關的功能組件封裝在MATLAB庫中。
1)機器人教學科研開發環境:
支持Simlink環境下的虛擬機器人仿真與真機實時控制;
2)機器人軟件開發工具:
在Simulink環境下,提供運動學、動力學、視覺功能庫;提供程序下載部署工具軟件;
2.1 軟件系統概述
本實驗臺控制系統以機器人應用開發工具(CPS Builder)為核心軟件單元。實現機器人控制系統的模型搭建,快速仿真測試。
2.2開發流程
1. 數字仿真。在Simulink中建立機器人控制模型,初步驗證模型及算法;
2. 半實物模型準備。對數字仿真模型進行修改,建立半實物仿真模型;
3. 目標代碼自動生成。將Simulink模型轉化為C代碼,并最終編譯為可執行程序;
4. 仿真配置管理。配置仿真目標機屬性;
5. 實時仿真。連接目標機成功后,啟動實時仿真??蓤绦形募詣舆\行,與實際機器人系統或HIL交互;開發工具支持在線調參,啟??刂?,實時數據存儲等功能;
6. 仿真數據分析處理。
2.3 機器人模型庫
機器人工具箱:
? 機器人單軸控制庫
? 機器人接口庫
? 機器人基礎控制庫
? 機器人3D顯示庫
? 傳感器接口庫
2.4 仿真軟件使用流程
2.4.1運行
1、Matlab -> APPS,中找到ExSim_DeT,單擊打開,顯示如下
2、點RPI_target,到運行時(包括本機+目標機)配置頁
3、Connect Test后執行ERT Configuration 配置ertcoder
4、Target Initialization 配置目標機編譯初始環境:
注:這個配置的目的是使目標機編譯的依賴庫,匹配開發主機的matlab版本;
如果不確定上下是否一致,請執行此操作
4*、更新自定義庫操作
步驟2中,已經配置了GKJ、Robot、和PCIE庫;界面中三個Update鍵的作用是,無需重新安裝app,來更新Libs只替換app路徑下包含lib 的壓縮包后,點擊對應按鍵,即可更新目標機的對應庫包;
PCIE鍵前的 ’當前路徑‘勾選,的作用是,用戶在調用了block塊之后,進行了修改,在模型路徑下生成了新的wrapper.c,勾選"當前路徑",并Update,可快速更新庫;主要是考慮用戶需要經常修改block的情況
但此操作并不修改app路徑下的庫包,可以不勾選,點Update,恢復安裝路徑下的庫包;
5、模型參數配置
a、Hardware Implementation
b、Optimization -> Signals and Parameters 選擇Tunable
c、Code Generation:Browser 選擇tlc
d、Code Generation -> Interface
6、仿真設置:外部模式
設置成External模式
7、點build生成代碼 (快捷鍵ctrl+B)
注意:生成代碼之前要保存所有設置,否則仿真時會報錯模型與目標中不匹配。
點擊模型下方View diagnositcs 可以查看生成進展;生成失敗會自動彈出。
8、可以確認,操作是否使用了正確的生成工具鏈
注意:當前路徑下有同名tmf文件,系統默認使用第一個工具鏈;
9、APP打開該模型
10、Deploy部署到目標機
編譯成功(勾選LIB_Robot)
11、RUN 鍵使能,目標程序運行
點RUN,彈出DOS窗口
如果不確定,可以點Get Run Info 獲取PID(進程號)
如圖,目標機程序的ID = 4815;
12、模型聯接目標機
點擊Connect to target,
右下角看連接操作進度.
連接成功狀態:Run鍵由灰變亮,右下角T=0,0%等待開始;
13、RUN開始仿真
由于目標機程序執行./ModelName -w,是等待模式,所以在模型連接目標機成功后再點擊RUN,模型才開是仿真。
點RUN,可以看到右下角的時間,和進度條 顯示仿真進度;
DOS窗口顯示目標機程序執行打印信息,默認為周期執行超出時間(給個周期超出才打印)
14、由于系統設置的時間15s,所以仿真自行結束;
點Get Run Info 可知目標機程序以結束;此時可點RUN,重復步驟4~6進行仿真;
注意:這里設的仿真時間,只是按所設solver情況下的時間;如果發生超時,仿真時間并不等于15s,即并不表示實際執行實際。執行過程中,或時間設置了inf,可點擊Stop停止仿真
基于實時Linux環境,支持各類機器人研發相關軟件包的便利集成,如ROS相關軟件包、OpenCV/Halcon等視覺軟件包及TensorFlow人工智能應用框架軟件包的移植;
機器人控制器基于實時Linux系統,可以安裝ROS相關軟件包、OpenCV/Halcon等視覺軟件包及TensorFlow人工智能應用框架軟件包的移植。
1)機器人教學課程實驗指導書:不少于16次課程,課程內容需涵蓋機器人系統認識、DH建模、正逆運動學、關節空間規劃、笛卡爾空間規劃、雅克比矩陣、動力學辨識、機器人動力學前饋控制、拖動示教、基于末端力傳感器的導納控制、機器人視覺相機標定、機器人圖像坐標系到世界坐標系的變換、機器人視覺手眼標定、機器人視覺引導抓取等實驗內容,指導書包括實驗目的、實驗設備、實驗原理、實驗步驟等內容。
提供88學時實驗內容,包括22次課程內容,設計機器人基礎和高級兩本實驗指導書
基礎課程如下:
高級課程如下:
2)實驗PPT:提供與機器人教學課程實驗指導書配套的課件內容;
3)實驗程序:提供與機器人教學課程實驗指導書相對應的實驗程序。實驗程序采用Matlab/Simulink,實驗包括虛擬仿真和機器人在線控制。前者提供機器人仿真模型,進行算法開發與驗證。后者支持代碼快速生成與一鍵部署,可以在線控制工業機械臂進行課程實驗。
提供相關指導書和對應實驗程序,包括基礎理論建模、離線仿真試驗,以及半實物仿真試驗。
總體功能:
支持用戶可參與的開放式及模塊式軟件,實現棋盤建模、棋子識別、機器人離線編程、棋類AI等功能的構建及升級。計算機對弈,簡單的講就是計算機模擬人類思維下棋,所以計算機對弈也是人工智能的一部分,是現代智能化研究水平的集中體現。
4.1、運行環境:
Linux操作系統由眾多微內核組成,其源代碼完全開源。Linux繼承了Unix的特性,具有非常強大的網絡功能,其支持所有的因特網協議,包括TCP/IPv4、 TCP/IPv6和鏈路層拓撲程序等,且可以利用Unix的網絡特性開發出新的協議棧。Linux系統工具鏈完整,簡單操作就可以配置出合適的開發環境,可以簡化開發過程,減少開發中仿真工具的障礙,使系統具有較強的移植性。支持各類機器人研發相關軟件包的便利集成,如ROS相關軟件包、OpenCV/Halcon等視覺軟件包及TensorFlow人工智能應用框架軟件包的移植。
Linux系統界面
4.2、軟件功能
1)視覺識別功能:支持棋盤位置和棋子的動態識別,為機器人棋子拾取提供位置信息;基于棋盤背景圖像實現棋盤角點粗定位;按序掃描棋盤角點,利用基于HSV空間的角點鄰域圖像判定角點處是否存在棋子及棋子的顏色類別。
2)棋類AI功能:支持與開源棋類軟件進行配合,實現自動下棋;結合棋子偏好因子,對根節點所產生局面的估值進行調整,分析棋子偏好因子對于博弈走法決策的影響;結合博弈風格因子,對根節點所產生局面的估值進行調整,通過調整博弈風格因子大小使得博弈程序具有激進、適中及穩健型風格。
3) 機器人接口功能: 支持與機器人控制系統間的通信,調度機器人執行拾取操作。支持通信方式: EtherCAT,TCP/IP, UDP。
1) 下棋決策
決策方式是受到 [sunfish]啟發,撰寫的純python的對弈引擎, 整個對弈引擎核心代碼簡潔高效,子力價值表直接的參考了 [象眼]mtd search部分的代碼。
由于其代碼簡潔高效,可以很方便的進行各種實驗,并且開放用戶對算法進行優化. 如果在優化后想要評估和目前版本的棋力差別,支持使用test.py中的self_arena來將用戶代碼和elephantfish進行對弈。
決策采用常見的幾種方式:
a.使用簡單而高效的 MTD 二分搜索算法
b.使用眾所周知的現代象棋引擎trick 比如空著裁剪.
c.通過簡單的子力價值表進行局面評估.
d.使用python標準數據結構.
2) 視覺處理
視覺處理部分支持棋子的分類識別、判斷棋子位置、生成棋局態勢,并將棋盤信息通過TCP/IP協議發送至決策端。
采用工業相機讀取棋盤信息,將拍攝到的圖片利用opencv進行圖像處理(調節亮度、對比度等)。利用霍夫變換檢測圓,將所有的棋子提取出來,并將每個棋子進行360度旋轉,每次旋轉間隔1度,從而生成深度學習所用的數據集。通過Efficientnet深度學習算法實現對棋子的分類識別,將棋盤按照棋盤格劃分為9*10的子圖片,將提取的子圖片進行分類識別,并返回識別結果,生成棋盤信息并存入緩存中。
棋盤識別過程
將本次采集的棋盤信息與上一次的棋盤信息做異或處理,并生成棋盤態勢。采用TCP/IP通信協議與決策系統通信,將棋盤信息發送給決策端。視覺處理流程如下所示。