工業(yè)機器人坐標變換計算與編程是工業(yè)機器人控制的關(guān)鍵技術(shù),本書通過5種典型結(jié)構(gòu)的工業(yè)機器人介紹坐標正變換和逆變換計算方法和程序示例。所選機器人包括6自由度和7自由度的關(guān)節(jié)式工業(yè)機器人,以及6自由度并聯(lián)工業(yè)機器人。每個程序示例都提供了詳細的坐標變換公式推導(dǎo)過程和完整的源程序,內(nèi)容涉及機構(gòu)學(xué)、解析幾何、線性代數(shù)、數(shù)值計算和計算機編程等多方面內(nèi)容。程序示例使用Java語言編寫,可以在安卓操作系統(tǒng)平板計算機或手機上運行。本書介紹的坐標變換計算方法和程序示例也可以應(yīng)用于實際的工業(yè)機器人控制系統(tǒng)。
本書可作為機器人工程、智能制造工程、工業(yè)自動化專業(yè)“機器人控制技術(shù)”及相近課程的本科和研究生教材,也可作為工業(yè)機器人控制系統(tǒng)開發(fā)人員的參考書。
工業(yè)機器人坐標變換計算與編程是工業(yè)機器人控制的關(guān)鍵技術(shù),本書通過5種典型結(jié)構(gòu)的工業(yè)機器人介紹坐標正變換和逆變換計算方法和程序示例。所選機器人包括6自由度和7自由度的關(guān)節(jié)式工業(yè)機器人,以及6自由度并聯(lián)工業(yè)機器人。每個程序示例都提供了詳細的坐標變換公式推導(dǎo)過程和完整的源程序,內(nèi)容涉及機構(gòu)學(xué)、解析幾何、線性代數(shù)、數(shù)值計算和計算機編程等多方面內(nèi)容。
工業(yè)機器人的運動由控制系統(tǒng)控制產(chǎn)生,控制系統(tǒng)的計算機控制程序?qū)崿F(xiàn)機器人操作工具的位置和姿態(tài)的運動控制。應(yīng)用最廣泛的關(guān)節(jié)式工業(yè)機器人或并聯(lián)機器人通常具有6個或7個自由度,它的運動控制需要完成復(fù)雜的坐標逆變換計算,由機器人工具在直角坐標系的位置和姿態(tài)計算關(guān)節(jié)轉(zhuǎn)角。它涉及機構(gòu)學(xué)、解析幾何、線性代數(shù)、數(shù)值計算和計算機編程等多方面內(nèi)容,是機器人控制的核心關(guān)鍵技術(shù)。
作者于2016年開始在北京航空航天大學(xué)的數(shù)控和伺服技術(shù)實驗室網(wǎng)站上(www.nc-servo.com)發(fā)布自己開發(fā)的系列虛擬工業(yè)機器人控制程序(PAD ROBOT),這些控制程序可在安卓操作系統(tǒng)手機和平板計算機上運行。目前已發(fā)布15種關(guān)節(jié)式機器人、3種雙臂機器人和3種并聯(lián)機器人的控制程序,以便于進行工業(yè)機器人教學(xué)和編程練習(xí)。其中一種7自由度機器人坐標變換方法和程序被國內(nèi)著名工業(yè)機器人控制器生產(chǎn)廠商采用,應(yīng)用于實際的工業(yè)機器人產(chǎn)品之上。本書選取了其中5種結(jié)構(gòu)工業(yè)機器人的坐標逆變換程序作為編程示例,向讀者介紹工業(yè)機器人控制技術(shù)中的坐標逆變換計算方法和編程技術(shù)。所選機器人包括6自由度和7自由度的關(guān)節(jié)式工業(yè)機器人,以及6自由度并聯(lián)工業(yè)機器人,通過程序示例,讀者可以更容易理解和掌握各種復(fù)雜的坐標逆變換計算方法和編程方法。
本書向讀者介紹了3種關(guān)節(jié)式工業(yè)機器人坐標逆變換計算方法:
1)幾何法:該方法利用機器人結(jié)構(gòu)的幾何關(guān)系,通過分解位置和姿態(tài)變量,完成關(guān)節(jié)式工業(yè)機器人的坐標逆變換計算。
2)牛頓拉普森迭代法 :該方法是一種數(shù)值計算方法,本書采用牛頓拉普森迭代法完成6自由度或7自由度關(guān)節(jié)式機器人坐標逆變換計算方法,包括工業(yè)機器人坐標逆變換非線性方程組和雅可比矩陣的構(gòu)建方法。
3)復(fù)合迭代法:該方法是作者研究獨創(chuàng)的一種數(shù)值計算方法。利用機器人結(jié)構(gòu)的幾何關(guān)系,分解機器人的位置和姿態(tài)變量,通過代數(shù)迭代和3元牛頓拉普森方程的復(fù)合迭代組合,可以完成所有復(fù)雜結(jié)構(gòu)工業(yè)機器人的坐標逆變換計算。這種計算方法比直接牛頓拉普森迭代法更加簡便。
此外,本書還結(jié)合兩種方法完成了一種6自由度六桿并聯(lián)機器人的坐標變換方法和編程:首先用牛頓拉普森迭代法完成坐標正變換計算,然后用幾何法完成坐標逆變換計算。
本書的主要內(nèi)容如下:
1)第1章為概述,介紹了本書的內(nèi)容概要和特點。
2)第2章介紹工業(yè)機器人控制系統(tǒng)軟硬件結(jié)構(gòu)和控制系統(tǒng)的控制原理。
3)第3章介紹使用幾何法完成一種典型6自由度關(guān)節(jié)式機器人坐標變換的計算方法和程序示例1。
4)第4章介紹使用幾何法完成一種6自由度手腕關(guān)節(jié)偏移結(jié)構(gòu)機器人坐標變換的計算方法和程序示例2。
5)第5章在第4章的基礎(chǔ)上,改變關(guān)節(jié)J4和J5的旋轉(zhuǎn)軸初始布置方向,介紹使用幾何法完成一種6自由度手腕關(guān)節(jié)偏移結(jié)構(gòu)機器人坐標變換的計算方法和程序示例3。
6)第6章介紹使用牛頓拉普森迭代法完成一種7自由度關(guān)節(jié)式機器人坐標變換的計算方法和程序示例4。
7)第7章介紹一種六桿并聯(lián)機器人坐標逆變換計算方法和牛頓拉普森數(shù)值迭代坐標正變換計算方法,以及程序示例5。
8)第8章介紹一種6自由度關(guān)節(jié)式機器人的復(fù)合迭代坐標逆變換方法和程序示例6。
9)附錄列出了全部程序示例的完整源程序,便于讀者學(xué)習(xí)和進行編程應(yīng)用。結(jié)合本書的理論講解,讀者可以利用本書提供的編程示例,編寫自己的坐標變換計算程序并進行驗證。本書程序示例是使用Java語言編寫的,使用了與C語言相同的指令集,可以直接轉(zhuǎn)換成C語言程序。
書中難免有疏漏和不足之處,敬請各位讀者批評指正。
作者前言
高等院校教師
第1章概述/1
11工業(yè)機器人控制與坐標變換計算方法/1
12本書內(nèi)容與特點/2
13編程環(huán)境和程序示例/2
第2章關(guān)節(jié)式工業(yè)機器人結(jié)構(gòu)和控制
系統(tǒng)/3216自由度關(guān)節(jié)式工業(yè)機器人結(jié)構(gòu)和
控制系統(tǒng)/3
22工業(yè)機器人控制系統(tǒng)基本原理及控制
過程/3
221工業(yè)機器人控制系統(tǒng)基本原理/3
222工業(yè)機器人控制具體過程/5
第3章基于幾何法的坐標逆變換計算
方法和程序示例1/731坐標正變換計算方法/7
32坐標正變換程序示例1/12
321創(chuàng)建安卓應(yīng)用程序/12
322創(chuàng)建程序參數(shù)/13
323創(chuàng)建_coord_trans_k類/14
324示例程序axis_to_space()/15
325示例程序axis_to_space_op()/18
326測試計算程序示例/20
33坐標逆變換計算方法/23
34坐標逆變換程序示例1/26
341示例程序tool_uvw()/26
342示例程序 space_to_axis()/28
343示例程序uvwx_to_a5()/29
344示例程序space_tool_to_axis()/30
345測試計算程序示例/31
第4章基于幾何法的坐標逆變換計算
方法和程序示例2/3441坐標正變換矩陣/34
42坐標正變換程序示例2/36
421坐標正變換程序/36
422測試計算程序示例/37
43坐標逆變換計算方法/39
44坐標逆變換程序示例2/43
441示例程序 tool_uvw()/43
442示例程序space_to_p3p()/45
443示例程序get_a012()/47
444示例程序get_a34p()/48
445示例程序space_to_axis()/49
446示例程序uvw_to_a5()/49
447示例程序space_tool_to_axis
(float[]pos)/50
448測試計算程序示例/51
第5章基于幾何法的坐標逆變換計算
方法和程序示例3/5451坐標正變換矩陣/54
52坐標正變換程序示例3/56
521坐標正變換程序/56
522測試計算程序示例/57
53坐標逆變換計算方法/59
531計算關(guān)節(jié)位置P3/59
532計算關(guān)節(jié)轉(zhuǎn)角α1和α2/61
533計算關(guān)節(jié)轉(zhuǎn)角α3和α4/62
534計算關(guān)節(jié)轉(zhuǎn)角α5/62
54坐標逆變換程序示例3/63
541示例程序tool_uvw()/63
542示例程序space_to_p3()/64
543示例程序get_a012()/65
544示例程序get_a34()/65
545示例程序space_to_axis()/66
546示例程序uvwx_to_a5()/66
547示例程序space_tool_to_axis()/67
548測試計算程序示例/68
第6章數(shù)字迭代坐標逆變換計算方法和
程序示例4/7161坐標正變換矩陣/71
62坐標正變換程序示例4/74
621坐標正變換程序/74
622測試計算程序示例/74
63坐標逆變換計算方法/76
631牛頓拉普森迭代法/76
632建立非線性方程組/77
633計算雅可比矩陣和逆矩陣/78
634迭代計算求解sinα0,sinα1,sinα3,
sinα4,sinα5/84
635求解關(guān)節(jié)轉(zhuǎn)角α6/85
636多重解的選擇/85
64坐標逆變換程序示例4/86
641示例程序tool_uvw()/86
642示例程序space_to_axis_sub()/87
643示例程序set_t012345()/90
644示例程序newton_func3()/91
645示例程序set_df_ds()/92
646示例程序set_df3_ds()/93
647示例程序set_jacob()/95
648示例程序uvwx_to_a6/95
649示例程序space_to_axis()/96
6410示例程序space_tool_to_axis()/97
6411測試計算程序示例/98
第7章六桿并聯(lián)工業(yè)機器人坐標變換
計算方法和程序示例5/10271六桿并聯(lián)機器人結(jié)構(gòu)參數(shù) /103
72坐標逆變換計算方法/103
721計算下平臺球鉸的位置/103
722計算關(guān)節(jié)轉(zhuǎn)角/104
73坐標逆變換程序示例5/106
731機器人結(jié)構(gòu)參數(shù)/106
732示例程序set_trans101112()/107
733示例程序pos_pt_to_6p4()/108
734示例程序p4xy_to_a1()/109
735示例程序pos_p4_to_a1()/110
736示例程序pos_pt_to_6a1()/112
737測試計算程序示例/113
74坐標正變換計算方法/115
741構(gòu)建非線性方程組/115
742建立雅可比矩陣/116
743迭代計算/117
744計算工具位置和姿態(tài)/117
75坐標正變換程序示例6/118
751示例程序axis_6a1_to_p5()/118
752示例程序axis_6a1_to_pt()/123
753測試計算程序示例/123
第8章復(fù)合迭代坐標逆變換計算方法和
程序示例6/12581坐標正變換矩陣和坐標正變換程序
示例6/125
82坐標逆變換計算方法/126
821計算工具方向矢量/126
822復(fù)合迭代計算初始參數(shù)/126
823復(fù)合迭代計算/127
824用牛頓拉普森迭代法求解關(guān)節(jié)
轉(zhuǎn)角α0,α1,α3/128
83坐標逆變換程序示例6/130
831示例程序tool_uvw()/131
832示例程序set_t012345()/131
833示例程序set_df_ds()/132
834示例程序space_a45_to_a013()/134
835示例程序space_to_axis()/136
836示例程序uvwx_to_a6()/138
837示例程序space_tool_to_axis()/138
84測試計算程序示例/138
附錄/142
附錄A主程序MainActivity/142
附錄B程序參數(shù)源程序/174
B1常數(shù)CONST/174
B2參數(shù)ROB_PAR/174
B3靜態(tài)變量ROB_MOVE/176
附錄C程序示例1的_coord_trans_k類源