在機器人的科研與工業(yè)應(yīng)用中,機器人仿真與編程技術(shù)發(fā)揮著無可替代的作用,因為它一方面能夠?qū)C器人控制算法進行檢驗測試,另一方面給機器人的研發(fā)與測試提供一個無風險且穩(wěn)定的平臺。
本書主要內(nèi)容分為三部分,分別介紹了基于MATLAB機器人工具箱的機器人仿真、3款常用的機器人仿真軟件、機器人操作系統(tǒng)(Robot Operating System,ROS)的基礎(chǔ)和應(yīng)用。本書所使用的工具包括MATLAB、Simulink、3款常用的機器人仿真軟件和機器人操作系統(tǒng)。
本書配套資源豐富,適合作為教材或教輔,也適合各階層的機器人開發(fā)人員和機器人愛好者閱讀。
《機器人仿真與編程技術(shù)》主要分為三篇,*篇介紹了基于MATLAB機器人工具箱的機器人仿真,第二篇介紹了三款常用的機器人仿真軟件,第三篇介紹了機器人操作系統(tǒng)(Robot Operating System,簡稱ROS)的基礎(chǔ)和應(yīng)用!稒C器人仿真與編程技術(shù)》中所使用的工具包括了MATLAB/SIMULINK、幾款常用的機器人仿真軟件、機器人操作系統(tǒng)(ROS)。這些工具一方面可以用于機器人學的理論知識進行實際驗證與研究,另一方面用于對機器人的設(shè)計、仿真與測試。同時,這些工具大多具有開源的特點,而且它們相互之間有方便快捷的接口,能夠發(fā)揮各自的優(yōu)勢,實現(xiàn)更強大的仿真、編程功能。如今,這些仿真工具都已廣泛應(yīng)用于機器人設(shè)計、研發(fā)和科學研究等方面,尤其是機器人操作系統(tǒng)越來越成為機器人領(lǐng)域中重要的應(yīng)用系統(tǒng)。
前言
機器人技術(shù)是衡量一個國家科技創(chuàng)新和高端制造業(yè)水平的重要標志。隨著機器人技術(shù)的快速發(fā)展,它的應(yīng)用領(lǐng)域涉及工業(yè)、服務(wù)、航空航天、軍事等方面,因此需要一批熟練掌握機器人技術(shù)的創(chuàng)新型人才。
傳統(tǒng)的機器人教材大多側(cè)重于對機器人學理論知識的探討,往往涉及比較多的矩陣理論、控制理論的知識,對于讀者來說比較抽象。另一方面,這些知識面難以培養(yǎng)讀者的動手能力,難以取得良好的實踐效果。因此需要將理論與實踐相結(jié)合。本書將機器人學的理論和應(yīng)用相結(jié)合,一方面概要地介紹了機器人學的理論,另一方面著力于介紹機器人的仿真和編程技術(shù)。
在機器人的科研與工業(yè)應(yīng)用中,機器人仿真與編程技術(shù)發(fā)揮著無可替代的作用,這是因為它一方面能夠?qū)C器人控制算法進行檢驗測試,另一方面給機器人的研發(fā)與測試提供一個無風險且穩(wěn)定的平臺。本書所使用的工具包括MATLAB/Simulink、3款常用的機器人仿真軟件和機器人操作系統(tǒng)(Robot Operating System,ROS)。這些工具一方面可以用于將機器人學的理論知識進行實際驗證與研究,另一方面用于對機器人進行設(shè)計、仿真與測試。同時,這些工具大多具有開源的特點,而且它們相互之間有方便快捷的接口,能夠發(fā)揮各自的優(yōu)勢,實現(xiàn)更強大的仿真、編程功能。如今,這些仿真工具都已廣泛應(yīng)用于機器人設(shè)計、研發(fā)和科學研究等方面,尤其是機器人操作系統(tǒng),成為機器人領(lǐng)域越來越重要的應(yīng)用系統(tǒng)。
本書的內(nèi)容主要分為三篇,第一篇介紹了基于MATLAB機器人工具箱的機器人仿真,第二篇介紹了3款常用的機器人仿真軟件,第三篇介紹了機器人操作系統(tǒng)的基礎(chǔ)和應(yīng)用。
在第一篇中,從機器人學的理論入手,講述了機器人學中的數(shù)學基礎(chǔ)、機器人運動學、機器人動力學、機器人控制和軌跡。然后針對每一部分理論內(nèi)容,介紹了如何使用MATLAB機器人工具箱去解決相關(guān)的問題。最后,以作者的一些科研成果作為實例,介紹了MATLAB機器人工具箱在科研中的應(yīng)用。
在第二篇中,介紹了3款機器人仿真軟件: VREP、Gazebo和OpenRAVE。它們作為機器人的仿真工具,能夠?qū)C器人及其工作平臺進行3D建模和3D渲染,搭建與現(xiàn)實類似的機器人模型,并具備豐富的物理引擎,能夠?qū)C器人在虛擬的物理條件下的運動進行仿真。
在第三篇中,主要介紹了機器人操作系統(tǒng)。ROS是一個適用于機器人的開源的操作系統(tǒng)。它提供了操作系統(tǒng)應(yīng)有的服務(wù),包括硬件抽象、底層設(shè)備控制、常用函數(shù)的實現(xiàn)、進程間消息傳遞,以及包管理。它也提供用于獲取、編譯、編寫和跨計算機運行代碼所需的工具和庫函數(shù)。這部分主要講述了ROS的概念、應(yīng)用和相關(guān)的基礎(chǔ),然后以Baxter機器人為應(yīng)用對象,介紹了ROS在機器人中的相關(guān)編程技術(shù)。
本書適用于高校的教師作為教材或教輔,同時適合各層次的機器人開發(fā)人員和機器人愛好者閱讀。教師在以本書作為教材時,可以利用本書提供的工具,布置一些能夠鍛煉學生動手能力、激勵學生創(chuàng)新思維的課程作業(yè)。初學機器人學的學生在閱讀本書時,可以參考一些對于機器人學理論介紹更全面的書籍,同時要利用好本書介紹的工具,去動手搭建機器人模型或編寫相關(guān)代碼。
在本書的編寫過程中得到了編者所在實驗室曾超、羅晶、王行健、彭光柱、吳懷煒、陳垂?jié)、陳雄君、葉宇航、王尊冉、黃典業(yè)、梁聰垣等的支持和幫助,編者在此表示謝意。
由于編者水平有限,對于書中存在的欠缺之處,敬請讀者批評指正。
作者
2017年11月
目錄
第一篇基于MATLAB工具箱的機器人仿真
第1章機器人學與MATLAB機器人工具箱
1.1MATLAB機器人工具箱的下載與安裝
1.2機器人學的數(shù)學基礎(chǔ)
1.2.1三維空間中的位置與姿態(tài)
1.2.2坐標變換
1.2.3姿態(tài)的其他表示方法
1.2.4具體例子的應(yīng)用
1.3機器人運動學
1.3.1機械臂及運動學
1.3.2DH參數(shù)法
1.3.3機器人正運動學
1.3.4機器人逆運動學
1.3.5機器人的瞬態(tài)運動學
1.3.6具體例子的應(yīng)用
1.3.7機器人工具箱的Link類
1.3.8機器人工具箱的SerialLink類1
1.4機器人動力學
1.4.1機器人動力學概述
1.4.2機器人動力學方程的建立方法
1.4.3狀態(tài)空間方程
1.4.4正向動力學
1.4.5機器人工具箱的SerialLink類2
1.5機器人的運動軌跡
1.5.1運動軌跡問題
1.5.2關(guān)節(jié)空間的規(guī)劃方法
1.6機械臂關(guān)節(jié)控制
1.6.1機器人控制系統(tǒng)的構(gòu)成
1.6.2Simulink機器人模塊
1.6.3機器人的單關(guān)節(jié)控制
1.6.4機器人的多關(guān)節(jié)控制
1.7其他基于MATLAB的機器人工具箱
1.7.1Kuka控制工具箱(KCT)的介紹與測試
1.7.2其他機器人工具箱
本章小結(jié)
參考文獻
第2章MATLAB機器人工具箱的應(yīng)用
2.1基于學習算法的機器人觸覺識別算法研究
2.1.1引言
2.1.2背景
2.1.3算法設(shè)計
2.1.4實驗設(shè)計
2.1.5實驗與結(jié)果
2.2基于波動變量和神經(jīng)網(wǎng)絡(luò)的遠程控制系統(tǒng)
2.2.1引言
2.2.2遠程操作系統(tǒng)的數(shù)學模型
2.2.3基于波動變量的神經(jīng)控制設(shè)計
2.2.4實驗設(shè)計
2.2.5仿真實驗
2.3開發(fā)混合運動捕捉方法使用MYO手環(huán)應(yīng)用于遠程操作
2.3.1引言
2.3.2設(shè)計方法
2.3.3仿真系統(tǒng)設(shè)計
2.3.4仿真實驗
2.4基于自適應(yīng)參數(shù)識別的Geomagic
Touch X觸覺裝置運動學建模
2.4.1引言
2.4.2建模步驟
2.4.3仿真設(shè)計
2.4.4實驗和仿真
2.4.5可視化運動學模型與工作空間識別
2.5復雜擾動環(huán)境中的新型機械臂混合自適應(yīng)控制器
2.5.1引言
2.5.2控制問題
2.5.3自適應(yīng)控制
2.5.4仿真
2.5.5實驗設(shè)計
2.5.6實驗與結(jié)果
本章小結(jié)
參考文獻
第二篇機器人仿真軟件的基礎(chǔ)與應(yīng)用
第3章VREP在機器人仿真中的應(yīng)用
3.1VREP簡介及安裝
3.1.1VREP的簡介
3.1.2VREP的特性
3.1.3VREP的安裝
3.2VREP的用戶界面及位姿操作
3.2.1控制臺窗口
3.2.2對話框
3.2.3應(yīng)用程序窗口
3.2.4自定義用戶界面
3.2.5頁面與視圖
3.2.6對象/項目位置和方向操作
3.3VREP的場景與模型
3.3.1場景與模型的關(guān)系
3.3.2VREP的場景
3.3.3VREP的模型
3.3.4VREP的環(huán)境
3.4實體
3.4.1VREP的場景對象
3.4.2場景對象的性質(zhì)
3.4.3常用的場景對象形狀
3.4.4常用的場景對象關(guān)節(jié)
3.4.5VREP的集合
3.5VREP的六種計算模塊
3.5.1碰撞檢測模塊
3.5.2最小距離計算模塊
3.5.3逆向運動學模塊
3.5.4幾何約束求解模塊
3.5.5動力學模塊
3.5.6路徑規(guī)劃模塊
3.6VREP中控制機器人仿真的方法
3.6.1嵌入式子腳本
3.6.2插件
3.6.3附加組件
3.6.4遠程客戶端應(yīng)用程序接口
3.6.5通過ROS的節(jié)點
3.6.6自定義解決方案
3.7VREP的API框架
3.7.1常規(guī)API
3.7.2遠程API
3.7.3ROS接口
3.7.4輔助API
3.7.5其他接口
3.8仿真模型的搭建
3.8.1從模型瀏覽器中加載現(xiàn)有模型
3.8.2從菜單欄中添加場景對象
3.8.3從Import命令中導入/導出其他軟件的CAD模型
3.9機器人的仿真
3.9.1物理引擎的選擇
3.9.2仿真參數(shù)的設(shè)置
3.9.3仿真的控制
3.10VREP的具體例子
3.10.1機械臂模型的構(gòu)建
3.10.2逆運動學建模
3.10.3VREP與MATLAB連接的例子
3.11VREP在人機交互中的應(yīng)用(一)
3.11.1觸覺學與Touch X
3.11.2Touch X的相關(guān)軟件在人機交互中的作用
3.11.3CHAI3D在人機交互中的作用
3.11.4VREP模塊
3.11.5Touch X控制VREP中KUKA機器人的實現(xiàn)
3.12VREP在人機交互中的應(yīng)用(二)
3.12.1體感技術(shù)與Kinect
3.12.2交互相關(guān)軟件的作用
3.12.3交互相關(guān)軟件的安裝與測試
3.12.4OpenNI/NITE中的人體骨架分析
3.12.5VREP與Kinect接口的安裝與測試
3.12.6Kinect與VREP交互的設(shè)計與實現(xiàn)
本章小結(jié)
參考文獻
第4章Gazebo在機器人仿真中的應(yīng)用
4.1Gazebo的介紹與安裝
4.1.1Gazebo的初步介紹
4.1.2Gazebo的安裝
4.1.3Gazebo與VREP的比較
4.2Gazebo的結(jié)構(gòu)
4.2.1Gazebo的運行方法
4.2.2Gazebo的組成部分
4.2.3Gazebo的結(jié)構(gòu)
4.3創(chuàng)建機器人
4.3.1模型結(jié)構(gòu)和要求
4.3.2模型的上傳
4.3.3制作一個模型
4.3.4制作移動機器人模型
4.3.5導入網(wǎng)格
4.3.6附加網(wǎng)格物體
4.3.7給機器人添加傳感器
4.3.8做一個簡單的夾持器
4.3.9在機器人上構(gòu)建夾持器
4.3.10嵌套模型
4.3.11模型編輯器
4.3.12盒子的動畫
4.3.13三角網(wǎng)格的慣性參數(shù)
4.3.14圖層可見性
4.4Gazebo中的模型編輯器
4.4.1模型編輯器
4.4.2SVG文件
4.5場景文件的創(chuàng)建
4.5.1創(chuàng)建一個場景
4.5.2修改場景
4.5.3如何在Gazebo中使用DEM
4.5.4模型群
4.5.5建筑編輯器
4.6插件的編寫
4.6.1一個簡單的插件: Hello WorldPlugin!
4.6.2插件的使用
4.6.3模型插件
4.6.4世界插件
4.6.5程序化場景控制
4.6.6系統(tǒng)插件
4.7傳感器
4.7.1傳感器噪聲模型
4.7.2接觸式傳感器
4.7.3攝像頭失真
4.8Gazebo的其他功能
4.8.1數(shù)學庫的使用
4.8.2用戶輸入
4.8.3連接到Player
本章小結(jié)
參考文獻
第5章OpenRAVE在機器人仿真中的應(yīng)用
5.1OpenRAVE簡介
5.1.1OpenRAVE的應(yīng)用
5.1.2OpenRAVE的特性
5.1.3OpenRAVE的下載與安裝
5.2OpenRAVE概觀
5.2.1OpenRAVE基本架構(gòu)
5.2.2關(guān)于OpenRAVE中的一些說明
5.2.3OpenRAVE公約與準則
5.2.4OpenRAVE中機器人概述
5.2.5插件與接口說明
5.2.6網(wǎng)絡(luò)協(xié)議和腳本
5.3OpenRAVE的基礎(chǔ)
5.3.1開始使用OpenRAVE
5.3.2OpenRAVE的命令行工具
5.3.3寫OpenRAVE文檔
5.3.4環(huán)境變量
5.4OpenRAVE運用與展望
5.4.1OpenRAVE的運用項目舉例
5.4.2OpenRAVE的展望
本章小結(jié)
參考文獻
第三篇機器人操作系統(tǒng)基礎(chǔ)與應(yīng)用
第6章機器人操作系統(tǒng)的基礎(chǔ)
6.1ROS的安裝與測試
6.1.1虛擬機與Ubuntu的安裝
6.1.2ROS的安裝
6.1.3turtlesim例子的測試
6.2ROS的基本概念與命令
6.2.1程序包(packages)
6.2.2節(jié)點(Nodes)和節(jié)點管理器(Master)
6.2.3消息(Messages)和主題(Topics)
6.2.4其他ROS的相關(guān)概念
6.2.5ROS的一些常用工具
6.3ROS的程序包的創(chuàng)建與編譯
6.3.1創(chuàng)建工作區(qū)和功能包
6.3.2ROS程序的編譯過程
6.4ROS與MATLAB集成
6.4.1RST的ROS功能介紹
6.4.2MATLAB與ROS通信的介紹
6.5ROS與VREP之間的集成
6.5.1VREP中的ROS程序包
6.5.2在ROS中安裝VREP
6.5.3在ROS中創(chuàng)建相關(guān)的VREP程序包
6.5.4使用ROS節(jié)點控制VREP模型的例子
6.5.5VREP ROS Bridge的簡介及安裝
6.6ROS與Gazebo
6.6.1ROS集成概述
6.6.2安裝Gazebo_ros_pkgs
6.6.3ROS/Gazebo版本組合的選擇
6.6.4使用roslaunch
6.6.5ROS通信
6.6.6Gazebo中的URDF
6.7實時系統(tǒng)ROS 2.0的介紹
本章小結(jié)
參考文獻
第7章機器人操作系統(tǒng)的應(yīng)用
7.1Baxter機器人與ROS
7.1.1Baxter機器人
7.1.2Baxter機器人的控制系統(tǒng)總體框架
7.1.3相關(guān)的ROS代碼
7.2基于神經(jīng)網(wǎng)絡(luò)實現(xiàn)對搖操作機器人進行高性能控制
7.2.1控制系統(tǒng)的架構(gòu)
7.2.2實驗設(shè)計與實現(xiàn)
7.2.3實驗及結(jié)果
7.3規(guī)定全局穩(wěn)定性和運動精度的雙臂機器人的神經(jīng)網(wǎng)絡(luò)控制
7.3.1實驗設(shè)計與實現(xiàn)
7.3.2實驗結(jié)果
7.4基于人體運動捕獲對Baxter機器人的遠程操作控制
7.4.1遠程操作控制系統(tǒng)
7.4.2實驗的設(shè)計與實現(xiàn)
7.4.3實驗及結(jié)果
本章小結(jié)
參考文獻