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