本書介紹使用JAVA語言和OpenGL圖形編程工具編寫安卓操作系統工業機器人仿真軟件的編程方法和程序實例。按照書中的內容順序和示例程序,讀者可以自己編寫出一個簡單的工業機器人運動仿真程序,在安卓操作系統手機和平板電腦上運行。
本書內容簡潔、結構清楚,用完整的例子講解如何用Java語言、OpenGL、Android實現工業機器人運動仿真的編程。
本書介紹使用Java語言和OpenGL圖形編程工具開發Android操作系統下工業機器人仿真軟件的編程方法和程序實例,可以幫助讀者學習Android操作系統下工業機器人仿真軟件開發技術以及OpenGL編程技術。
平板電腦(Tablet Personal Computer)是目前廣泛使用的移動多媒體設備。由于其具有豐富的顯示、操作、計算和互聯網功能,因此逐漸開始被應用于工業化自動控制領域。平板電腦既可以作為具有控制、操作和顯示功能的全功能控制器,也可以作為主控制裝置的操作和顯示單元使用。控制過程的運動圖形仿真能為控制系統操作和調試提供很大的方便,目前已經成為許多控制裝置的必要功能和基本要求。
作者于2016年在北京航空航天大學的數控和伺服技術實驗室網站上(www.nc-servo.com)發布了用于工業機器人教學和編程練習的虛擬工業機器人控制系統程序(PAD ROBOT)。它是運行在Android操作系統平板電腦或手機上的虛擬工業機器人控制系統程序,能夠為使用者提供一個便捷、安全的工業機器人運動控制編程練習。使用者可以在平板電腦或手機上編寫自己的機器人運動控制程序,然后在該系統上運行,從而學習工業機器人編程技術。該系統具有工業機器人控制系統的基本功能,包括運動控制程序創建、程序譯碼、關節坐標系運動控制、直角坐標系運動控制、工具姿態控制、直線和圓弧插補、工具補償、工具更換、運行操作。
虛擬工業機器人控制系統程序(PAD ROBOT)是作者使用Java語言和OpenGL圖形編程工具編寫的工業機器人運動仿真應用程序。本書將作者開發控制系統PAD ROBOT時所編寫的典型圖形和動畫編程程序介紹給讀者,幫助讀者學習工業機器人仿真軟件開發技術及Android操作系統下的OpenGL編程技術。
本書的主要內容如下:
第1章為概述,介紹了用平板電腦進行工業機器人仿真編程的意義和本書特色。
第2章介紹了作者開發的兩個機器人運動仿真樣機,讀者可以把它們安裝在平板電腦和手機上,完成操作演示。
第3章概要介紹了Java編程語言,給出了與本書后續內容相關的典型編程示例。
第4章概要介紹了基于Android操作系統的開發環境,給出了與本書后續內容相關的典型編程示例。
第5章以機器人運動仿真樣機的基座部件為例,介紹應用Android操作系統和OpenGL編程的基本方法,完成一個在平板電腦或手機上運行的機器人運動仿真樣機基座部件的3D顯示示例。
第6章以機器人運動仿真樣機程序為例,完成機器人全部部件的3D建模和顯示。
第7章介紹機器人運動仿真操作界面的編程方法和編程示例。
第8章介紹機器人運動控制的編程方法和編程示例,最終完成機器人的運動演示。
附錄1~7為本書示例程序的源程序文檔。
按照本書的內容順序和示例程序,讀者可以自己編寫出一個簡單的工業機器人運動仿真程序,在Android操作系統下的手機和平板電腦上運行。本書內容對使用OpenGL編程工具編寫Android操作系統下的其他圖形顯示軟件也具有參考作用。
本書配備的電子資源有:PAD ROBOT 安裝程序、GL ROBOT安裝程序、_surfaced類的Java源程序、GL_CONST類的Java源程序、ROB_PAR類的Java源程序、JOINT類的Java源程序。讀者可在www.cmpedu.com上下載。
書中的疏漏和不足之處敬請指導。
作 者
郇極,男,北京航空航天大學教授,博士生導師,1982年在德國斯圖加特大學獲工學博士學位;主要從事面向機械制造及自動化領域的數字控制和伺服技術研究,以及博士、碩士研究生培養工作。 目前主要研究內容包括:開放式控制系統的軟硬件平臺技術,以多通道控制技術為核心的數控機床組網技術和柔性生產線控制技術,用于數字伺服傳動技術的現場總線(CAN、SERCOS、PROFIBUS)。曾完成國家65、75、85攻關和863計劃多項研究項目,多次開發出代表國家數控技術水平的數控系統;在國內外雜志發表論文30篇,由德國Springer出版社出版專著一部。曾獲國家科技進步三等獎、機械工業部科技進步一等獎和航空工業部科技進步二等獎各一項。與德國Stuttgart大學和Braunschweig大學保持長期穩定的合作研究關系,聯合培養博士研究生。
作者已經出版的書如下:
1.工業機器人運動仿真編程實踐 —— 基于Android和OpenGL
2.基于平板電腦的數控系統和軟件設計
3.基于工業控制編程語言IEC 61131 —3的數控系統軟件設計
4.工業以太網現場總線EtherCAT驅動程序設計及應用
5.數字伺服通訊協議SERCOS驅動程序設計及應用
前言
第1章 概述1
1.1 開發和編程環境1
1.2 OpenGL圖形編程工具2
1.3 本書特點2
第2章 工業機器人運動仿真樣機介紹3
2.1 機器人運動仿真應用程序PAD ROBOT3
2.2 機器人運動仿真樣機GL ROBOT4
第3章 Java編程語言6
3.1 Java程序設計6
3.1.1 Java語言特點6
3.1.2 開發環境7
3.2 Java語言基礎7
3.2.1 Java程序的符號集7
3.2.2 Java程序的基本組成8
3.2.3 常量與變量9
3.2.4 數據類型9
3.2.5 運算符和表達式10
3.2.6 控制語句11
3.3 示例程序設計的Java語法要點12
3.3.1 類和對象12
3.3.2 枚舉類型13
3.3.3 數組14
3.3.4 String類14
3.3.5 異常處理15
3.3.6 包的應用16
3.3.7 數學運算16
第4章 Android應用程序開發環境18
4.1 Android開發概述18
4.1.1 Android系統框架18
4.1.2 Android應用程序開發環境的搭建19
4.1.3 Android工程的結構和運行21
4.2 基于Android開發機器人運動仿真軟件23
4.2.1 Activity和視圖布局23
4.2.2 定時器26
第5章 OpenGL編程示例28
5.1 安裝Android應用程序開發工具Eclipse28
5.2 物體表面定義28
5.3 GL ROBOT基座part0的數據結構29
5.4 創建GL ROBOT基座的頂點和法向量數組30
5.5 創建顯示界面35
5.6 創建渲染器接口類36
5.6.1 onSurfaceCreated( )方法37
5.6.2 onSurfaceChanged( )方法38
5.6.3 onDrawFrame( )方法39
5.7 創建視圖類41
5.8 編寫主程序42
5.9 運行示例程序42
第6章 GL ROBOT部件編程44
6.1 部件part144
6.1.1 結構44
6.1.2 構建轉臺的頂點和法向量數組45
6.1.3 構建立柱的頂點和法向量數組51
6.1.4 顯示53
6.2 部件part254
6.2.1 結構54
6.2.2 構建關節的頂點和法向量數組54
6.2.3 構建擺桿的頂點和法向量數組55
6.2.4 顯示57
6.3 部件part358
6.3.1 結構58
6.3.2 構建圓柱的頂點和法向量數組58
6.3.3 顯示59
6.4 部件part460
6.4.1 結構60
6.4.2 構建圓柱體側面頂點和法向量數組60
6.4.3 顯示61
6.5 部件part562
6.5.1 結構62
6.5.2 構建擺桿和關節的頂點和法向量數組62
6.5.3 顯示63
6.6 部件part664
6.6.1 結構64
6.6.2 構建轉盤和卡爪的頂點和法向量數組64
6.6.3 顯示66
第7章 GL ROBOT操作界面編程68
7.1 操作界面布局68
7.2 操作按鈕編程71
7.2.1 按鈕A0~A5編程71
7.2.2 按鈕move和stop編程73
7.2.3 按鈕F%編程75
7.3 位置、速度和定時器計數顯示編程76
7.4 運行操作界面77
第8章 GL ROBOT運動仿真編程78
8.1 定時器編程78
8.2 運動控制編程79
8.2.1 添加全局靜態變量79
8.2.2 關節位置計算79
8.2.3 JOINT變量賦值80
8.3 運動和顯示編程81
附錄83
附錄1 _surfaced類的源程序83
附錄2 GL_CONST類和ROB_PAR類的源程序92
附錄3 _part 0~_part 6類的源程序93
附錄4 activity_main.xml的源程序110
附錄5 渲染器接口viewRenderer 及其onDrawFrame( )方法的源程序112
附錄6 視圖類MyGLView的源程序119
附錄7 MainActivity的源程序120
參考文獻130