當(dāng)前位置:首頁 > 百科知識 > 機(jī)器人 > 正文

機(jī)器人語言

       通過符號來描述機(jī)器人動作的方法。通過使用機(jī)器人語言,操作者對動作進(jìn)行描述,進(jìn)而完成各種操作意圖。按照語言智能程度的高低,計算機(jī)語言可分為三類:執(zhí)行級、協(xié)調(diào)級和決策級語言。其中執(zhí)行級是指用命令來描述機(jī)器人的動作,又稱為動作級語言;協(xié)調(diào)級是指著眼于對象物的狀態(tài)變化的程序,稱之為結(jié)構(gòu)化編程語言;決策級又稱為目標(biāo)級語言,只給出工作的目的,自動生成可實現(xiàn)的程序,與自然語言非常相近,而且使用方便,但決策級語言未進(jìn)入實用階段?! ?/p>

概述

  機(jī)器人語言(robotlanguage):通過符號來描述機(jī)器人動作的方法。通過使用機(jī)器人語言,操作者對動作進(jìn)行描述,進(jìn)而完成各種操作意圖。按照語言智能程度的高低,計算機(jī)語言可分為三類:執(zhí)行級、協(xié)調(diào)級和決策級語言。其中執(zhí)行級是指用命令來描述機(jī)器人的動作,又稱為動作級語言;協(xié)調(diào)級是指著眼于對象物的狀態(tài)變化的程序,稱之為結(jié)構(gòu)化編程語言;決策級又稱為目標(biāo)級語言,只給出工作的目的,自動生成可實現(xiàn)的程序,與自然語言非常相近,而且使用方便,但決策級語言未進(jìn)入實用階段。

編程語言

  常用的機(jī)器人編程語言

  一、VAL語言及特點

  VAL語言是美國Unimation公司于1979年推出的一種機(jī)器人編程語言,主要配置在PUMA和UNIMATION等型機(jī)器人上,是一種專用的動作類描述語言。VAL語言是在BASIC語言的基礎(chǔ)上發(fā)展起來的,所以與BASIC語言的結(jié)構(gòu)很相似。在VAL的基礎(chǔ)上Unimation公司推出了VALⅡ語言。

  VAL語言可應(yīng)用于上下兩級計算機(jī)控制的機(jī)器人系統(tǒng)。上位機(jī)為LSI-11/23,編程在上位機(jī)中進(jìn)行,上位機(jī)進(jìn)行系統(tǒng)的管理;下位機(jī)為6503微處理器,主要控制各關(guān)節(jié)的實時運動。編程時可以VAL語言和6503匯編語言混合編程。

  VAL語言命令簡單、清晰易懂,描述機(jī)器人作業(yè)動作及與上位機(jī)的 通信 均較方便,實時功能強(qiáng);可以在在線和離線兩種狀態(tài)下編程,適用于多種計算機(jī)控制的機(jī)器人;能夠迅速地計算出不同坐標(biāo)系下復(fù)雜運動的連續(xù)軌跡,能連續(xù)生成機(jī)器人的控制信號,可以與操作者交互地在線修改程序和生成程序;VAL語言包含有一些子程序庫,通過調(diào)用各種不同的子程序可很快組合成復(fù)雜操作控制;能與外部存儲器進(jìn)行快速數(shù)據(jù)傳輸以保存程序和數(shù)據(jù)。

  VAL語言系統(tǒng)包括文本編輯、系統(tǒng)命令和編程語言三個部分。

  在文本編輯狀態(tài)下可以通過鍵盤輸入文本程序,也可通過示教盒在示教方式下輸入程序。在輸入過程中可修改、編輯、生成程序,最后保存到存儲器中。在此狀態(tài)下也可以調(diào)用已存在的程序。

  系統(tǒng)命令包括位置定義、程序和數(shù)據(jù)列表、程序和數(shù)據(jù)存儲、系統(tǒng)狀態(tài)設(shè)置和控制、系統(tǒng)開關(guān)控制、系統(tǒng)診斷和修改。

  編程語言把一條條程序語句轉(zhuǎn)換執(zhí)行。

  二、VAL語言的指令

  VAL語言包括監(jiān)控指令和程序指令兩種。其中監(jiān)控指令有六類,分別為位置及姿態(tài)定義指令、程序編輯指令、列表指令、存儲指令、控制程序執(zhí)行指令和系統(tǒng)狀態(tài)控制指令。各類指令的具體形式及功能如下:

  1.監(jiān)控指令

  1)位置及姿態(tài)定義指令

  POINT指令:執(zhí)行終端位置、姿態(tài)的齊次變換或以關(guān)節(jié)位置表示的精確點位賦值。

  其格式有兩種:

  POINT<變量>[=<變量2>…<變量n>]

  或POINT<精確點>[=<精確點2>]

  例如:

  POINTPICK1=PICK2

  指令的功能是置變量PICK1的值等于PICK2的值。

  又如:

  POINT#PARK

  是準(zhǔn)備定義或修改精確點PARK。

  DPOINT指令:刪除包括精確點或變量在內(nèi)的任意數(shù)量的位置變量。

  HERE指令:此指令使變量或精確點的值等于當(dāng)前機(jī)器人的位置。

  例如:

  HEREPLACK

  是定義變量PLACK等于當(dāng)前機(jī)器人的位置。

  WHERE指令:該指令用來顯示機(jī)器人在直角坐標(biāo)空間中的當(dāng)前位置和關(guān)節(jié)變量值。

  BASE指令:用來設(shè)置參考坐標(biāo)系,系統(tǒng)規(guī)定參考系原點在關(guān)節(jié)1和2軸線的交點處,方向沿固定軸的方向。

  格式:

  BASE[<dX>],[<dY>],[<dZ>],[<Z向旋轉(zhuǎn)方向>]

  例如:

  BASE300,–50,30

  是重新定義基準(zhǔn)坐標(biāo)系的位置,它從初始位置向X方向移300,沿Z的負(fù)方向移50,再繞Z軸旋轉(zhuǎn)了30°。

  TOOLI指令:此指令的功能是對工具終端相對工具支承面的位置和姿態(tài)賦值。

  2)程序編輯指令

  EDIT指令:此指令允許用戶建立或修改一個指定名字的程序,可以指定被編輯程序的起始行號。其格式為

  EDIT[<程序名>],[<行號>]

  如果沒有指定行號,則從程序的第一行開始編輯;如果沒有指定程序名,則上次最后編輯的程序被響應(yīng)。

  用EDIT指令進(jìn)入編輯狀態(tài)后,可以用C、D、E、I、L、P、R、S、T等命令來進(jìn)一步編輯。如:

  C命令:改變編輯的程序,用一個新的程序代替。

  D命令:刪除從當(dāng)前行算起的n行程序,n缺省時為刪除當(dāng)前行。

  E命令:退出編輯返回監(jiān)控模式。

  I命令:將當(dāng)前指令下移一行,以便插入一條指令。

  P命令:顯示從當(dāng)前行往下n行的程序文本內(nèi)容。

  T命令:初始化關(guān)節(jié)插值程序示教模式,在該模式下,按一次示教盒上的“RECODE”按鈕就將MOVE指令插到程序中。

  3)列表指令

  DIRECTORY指令:此指令的功能是顯示存儲器中的全部用戶程序名。

  LISTL指令:功能是顯示任意個位置變量值。

  LISTP指令:功能是顯示任意個用戶的全部程序。

  4)存儲指令

  FORMAT指令:執(zhí)行磁盤格式化。

  STOREP指令:功能是在指定的磁盤文件內(nèi)存儲指定的程序。

  STOREL指令:此指令存儲用戶程序中注明的全部位置變量名和變量值。

  LISTF指令:指令的功能是顯示軟盤中當(dāng)前輸入的文件目錄。

  LOADP指令:功能是將文件中的程序送入內(nèi)存。

  LOADL指令:功能是將文件中指定的位置變量送入系統(tǒng)內(nèi)存。

  DELETE指令:此指令撤銷磁盤中指定的文件。

  COMPRESS指令:只用來壓縮磁盤空間。

  ERASE指令:擦除磁內(nèi)容并初始化。

  5)控制程序執(zhí)行指令

  ABORT指令:執(zhí)行此指令后緊急停止(緊停)。

  DO指令:執(zhí)行單步指令。

  EXECUTE指令:此指令執(zhí)行用戶指定的程序n次,n可以從–32768到32767,當(dāng)n被省略時,程序執(zhí)行一次。

  NEXT指令:此命令控制程序在單步方式下執(zhí)行。

  PROCEED指令:此指令實現(xiàn)在某一步暫停、急?;蜻\行錯誤后,自下一步起繼續(xù)執(zhí)行程序。

  RETRY指令:指令的功能是在某一步出現(xiàn)運行錯誤后,仍自那一步重新運行程序。

  SPEED指令:指令的功能是指定程序控制下機(jī)器人的運動速度,其值從0.01到327.67,一般正常速度為100。

  6)系統(tǒng)狀態(tài)控制指令

  CALIB指令:此指令校準(zhǔn)關(guān)節(jié)位置傳感器

  STATUS指令:用來顯示用戶程序的狀態(tài)。

  FREE指令:用來顯示當(dāng)前未使用的存儲容量。

  ENABL指令:用于開、關(guān)系統(tǒng)硬件。

  ZERO指令:此指令的功能是清除全部用戶程序和定義的位置,重新初始化。

  DONE:此指令停止監(jiān)控程序,進(jìn)入硬件調(diào)試狀態(tài)。

  2.程序指令

  1)運動指令

  指令包括GO、MOVE、MOVEI、MOVES、DRAW、APPRO、APPROS、DEPART、DRIVE、READY、OPEN、OPENI、CLOSE、CLOSEI、RELAX、GRASP及DELAY等。

  這些指令大部分具有使機(jī)器人按照特定的方式從一個位姿運動到另一個位姿的功能,部分指令表示機(jī)器人手爪的開合。例如:

  MOVE#PICK!

  表示機(jī)器人由關(guān)節(jié)插值運動到精確PICK所定義的位置?!?!”表示位置變量已有自己的值。

  MOVET<位置>,<手開度>

  功能是生成關(guān)節(jié)插值運動使機(jī)器人到達(dá)位置變量所給定的位姿,運動中若手為伺服控制,則手由閉合改變到手開度變量給定的值。

  又例如:

  OPEN[<手開度>]

  表示使機(jī)器人手爪打開到指定的開度。

  2)機(jī)器人位姿控制指令

  這些指令包括RIGHTY、LEFTY、ABOVE、BELOW、FLIP及NOFLIP等。

  3)賦值指令

  賦值指令有SETI、TYPEI、HERE、SET、SHIFT、TOOL、INVERSE及FRAME。

  4)控制指令

  控制指令有GOTO、GOSUB、RETURN、IF、IFSIG、REACT、REACTI、IGNORE、SIGNAL、WAIT、PAUSE及STOP。

  其中GOTO、GOSUB實現(xiàn)程序的無條件轉(zhuǎn)移,而IF指令執(zhí)行有條件轉(zhuǎn)移。IF指令的格式為

  IF<整型變量1><關(guān)系式><整型變量2><關(guān)系式>THEN<標(biāo)識符>

  該指令比較兩個整型變量的值,如果關(guān)系狀態(tài)為真,程序轉(zhuǎn)到標(biāo)識符指定的行去執(zhí)行,否則接著下一行執(zhí)行。關(guān)系表達(dá)式有EQ(等于)、NE(不等于)、LT(小于)、GT(大于)、LE(小于或等于)及GE(大于或等于)。

  5)開關(guān)量賦值指令

  指令包括SPEED、COARSE、FINE、NONULL、NULL、INTOFF及INTON。

  6)其他指令

  其他指令包括REMARK及TYPE。

  SIGLA語言

  SIGLA是一種僅用于直角坐標(biāo)式SIGMA裝配型機(jī)器人運動控制時的一種編程語言,是20世紀(jì)70年代后期由意大利Olivetti公司研制的一種簡單的非文本語言。

  這種語言主要用于裝配任務(wù)的控制,它可以把裝配任務(wù)劃分為一些裝配子任務(wù),如取旋具,在螺釘上料器上取螺釘A,搬運螺釘A,定位螺釘A,裝入螺釘A,緊固螺釘?shù)取>幊虝r預(yù)先編制子程序,然后用子程序調(diào)用的方式來完成。

  IML語言

  IML也是一種著眼于末端執(zhí)行器的動作級語言,由日本九州大學(xué)開發(fā)而成。IML語言的特點是編程簡單,能人機(jī)對話,適合于現(xiàn)場操作,許多復(fù)雜動作可由簡單的指令來實現(xiàn),易被操作者掌握。

  IML用直角坐標(biāo)系描述機(jī)器人和目標(biāo)物的位置和姿態(tài)。坐標(biāo)系分兩種,一種是機(jī)座坐標(biāo)系,一種是固連在機(jī)器人作業(yè)空間上的工作坐標(biāo)系。語言以指令形式編程,可以表示機(jī)器人的工作點、運動軌跡、目標(biāo)物的位置及姿態(tài)等信息,從而可以直接編程。往返作業(yè)可不用循環(huán)語句描述,示教的軌跡能定義成指令插到語句中,還能完成某些力的施加。

  IML語言的主要指令有:運動指令MOVE、速度指令SPEED、停止指令STOP、手指開合指令OPEN及CLOSE、坐標(biāo)系定義指令COORD、軌跡定義命令TRAJ、位置定義命令HERE、程序控制指令I(lǐng)F…THEN、FOREACH語句、CASE語句及DEFINE等。

  AL語言

  一、AL語言概述

  AL語言是20世紀(jì)70年代中期美國斯坦福大學(xué)人工智能研究所開發(fā)研制的一種機(jī)器人語言,它是在WAVE的基礎(chǔ)上開發(fā)出來的,也是一種動作級編程語言,但兼有對象級編程語言的某些特征,使用于裝配作業(yè)。它的結(jié)構(gòu)及特點類似于PASCAL語言,可以編譯成機(jī)器語言在實時控制機(jī)上運行,具有實時編譯語言的結(jié)構(gòu)和特征,如可以同步操作、條件操作等。AL語言設(shè)計的原始目的是用于具有傳感器信息反饋的多臺機(jī)器人或機(jī)械手的并行或協(xié)調(diào)控制編程。

  運行VA語言的系統(tǒng)硬件環(huán)境包括主、從兩級計算機(jī)控制,如圖所示。主機(jī)為PDP-10,主機(jī)內(nèi)的管理器負(fù)責(zé)管理協(xié)調(diào)各部分的工作,編譯器負(fù)責(zé)對AL語言的指令進(jìn)行編譯并檢查程序,實時接口負(fù)責(zé)主、從機(jī)之間的接口連接,裝載器負(fù)責(zé)分配程序。從機(jī)為PDP-11/45。

  主機(jī)的功能是對AL語言進(jìn)行編譯,對機(jī)器人的動作進(jìn)行規(guī)劃;從機(jī)接受主機(jī)發(fā)出的動作規(guī)劃命令,進(jìn)行軌跡及關(guān)節(jié)參數(shù)的實時計算,最后對機(jī)器人發(fā)出具體的動作指令。

  二、AL語言的編程格式

  (1)程序BEGIN開始,由END結(jié)束。

  (2)語句與語句之間用分號隔開。

  (3)變量先定義說明其類型,后使用。變量名以英文字母開頭,由字母、數(shù)字和下畫線組成,字母大、小寫不分。

  圖AL語言運行的硬件環(huán)境

  (4)程序的注釋用大括號括起來。

  (5)變量賦值語句中如所賦的內(nèi)容為表達(dá)式,則先計算表達(dá)式的值,再把該值賦給等式左邊的變量。

  三、AL語言中數(shù)據(jù)的類型

  (1)標(biāo)量(scalar)——可以是時間、距離、角度及力等,可以進(jìn)行加、減、乘、除和指數(shù)運算,也可以進(jìn)行三角函數(shù)、自然對數(shù)和指數(shù)換算。

  (2)向量(vector)——與數(shù)學(xué)中的向量類似,可以由若干個量綱相同的標(biāo)量來構(gòu)造一個向量。

  (3)旋轉(zhuǎn)(rot)——用來描述一個軸的旋轉(zhuǎn)或繞某個軸的旋轉(zhuǎn)以表示姿態(tài)。用ROT變量表示旋轉(zhuǎn)變量時帶有兩個參數(shù),一個代表旋轉(zhuǎn)軸的簡單矢量,另一個表示旋轉(zhuǎn)角度。

  (4)坐標(biāo)系(frame)——用來建立坐標(biāo)系,變量的值表示物體固連坐標(biāo)系與空間作業(yè)的參考坐標(biāo)系之間的相對位置與姿態(tài)。

  (5)變換(trans)——用來進(jìn)行坐標(biāo)變換,具有旋轉(zhuǎn)和向量兩個參數(shù),執(zhí)行時先旋轉(zhuǎn)再平移。

  四、AL語言的語句介紹

  1.MOVE語句

  用來描述機(jī)器人手爪的運動,如手爪從一個位置運動到另一個位置。MOVE語句的格式為

  MOVE<HAND>TO<目的地>

  2.手爪控制語句

  OPEN:手爪打開語句。

  CLOSE:手爪閉合語句。

  語句的格式為

  OPEN<HAND>TO<SVAL>

  CLOSE<HAND>TO<SVAL>

  其中SVAL為開度距離值,在程序中已預(yù)先指定。

  3.控制語句

  與PASCAL語言類似,控制語句有下面幾種:

  IF<條件>THEN<語句>ELSE<語句>

  WHILE<條件>DO<語句>

  CASE<語句>

  DO<語句>UNTIL<條件>

  FOR…STEP…UNTIL…

  4.AFFIX和UNFIX語句

  在裝配過程中經(jīng)常出現(xiàn)將一個物體粘到另一個物體上或一個物體從另一個物體上剝離的操作。語句AFFIX為兩物體結(jié)合的操作,語句AFFIX為兩物體分離的操作。

  例如:BEAM_BORE和BEAM分別為兩個坐標(biāo)系,執(zhí)行語句

  AFFIXBEAM_BORETOBEAM

  后兩個坐標(biāo)系就附著在一起了,即一個坐標(biāo)系的運動也將引起另一個坐標(biāo)系的同樣運動。然后執(zhí)行下面的語句

  UNFIXBEAM_BOREFROMBEAM

  兩坐標(biāo)系的附著關(guān)系被解除。

  5.力覺的處理

  在MOVE語句中使用條件監(jiān)控子語句可實現(xiàn)使用傳感器信息來完成一定的動作。

  監(jiān)控子語句如:

  ON<條件>DO<動作>

  例如:

  MOVEBARMTO⊕-0.1*INCHESONFORCE(Z)>10*OUNCESDOSTOP

  表示在當(dāng)前位置沿Z軸向下移動0.1英寸,如果感覺Z軸方向的力超過10盎司,則立即命令機(jī)械手停止運動。

發(fā)展

  機(jī)器人語言提供了一種通用的人與機(jī)器人之間的通信手段。它是一種專用語言,用符號描述機(jī)器人的運動,與常用的計算機(jī)編程語言相似。其發(fā)展過程如下:

  1973年,Stanford人工智能實驗室開發(fā)了第一種機(jī)器人語言——wAVE語言。

  1974年,該實驗室開發(fā)了AL語言。

  1979年,unimation公司開發(fā)了VAL語言(類似于BASIC語言)。

  1984年,該公司推出了VALⅡ語言。

  其他的機(jī)器人語言還有IBM公司的AML及AUTOPASS語言、MIT的LAMA語言、Automatix公司的RAIL語言等。

特征

  機(jī)器人語言具有四方面的特征:

  (1)實時系統(tǒng);

  (2)三維空間的運動系統(tǒng);

  (3)良好的人機(jī)接口;

  (4)實際的運動系統(tǒng)。

  也就是說,必須在實時處理時間內(nèi)能使三維空間內(nèi)機(jī)器人的位置與姿態(tài)發(fā)生物理性的變化。通過幾何模型的運算能推算出機(jī)器人的運動。同時,機(jī)器人語言系統(tǒng)必須是容易掌握和使用的語言系統(tǒng)。

功能

  機(jī)器人語言的基本功能包括運算、決策、通信、機(jī)械手運動、工具指令以及傳感器數(shù)據(jù)處理等。許多正在運行的機(jī)器人系統(tǒng),只提供機(jī)械手運動和工具指令以及某些簡單的傳感器數(shù)據(jù)處理功能。機(jī)器人語言體現(xiàn)出來的基本功能都是機(jī)器人系統(tǒng)軟件支持形成的。

  1.運算

  在作業(yè)過程中執(zhí)行的規(guī)定運算能力是機(jī)器人控制系統(tǒng)最重要的能力之一。裝有傳感器的機(jī)器人所進(jìn)行的一些最有用的運算是解析幾何運算。

  用于解析幾何運算的計算工具可能包括下列內(nèi)容:

  (1)機(jī)械手正解和逆解。

  (2)坐標(biāo)運算和位置表示,例如,相對位置的構(gòu)成和坐標(biāo)的變化等。

  (3)矢量運算,例如,點積、交積、單位矢量、比例尺以及矢量的線性組合等。

  2.決策

  機(jī)器人系統(tǒng)能夠根據(jù)傳感器輸人信息做出決策,而不必執(zhí)行任何運算。按照傳感器數(shù)據(jù)計算得到的結(jié)果,是做出下一步該干什么這類決策的基礎(chǔ)。這種決策能力使機(jī)器人控制系統(tǒng)的功能更強(qiáng)有力。一條簡單的條件轉(zhuǎn)移指令就足以執(zhí)行任何決策算法??晒┎捎玫男问桨ǚ枡z驗(正、負(fù)或零)、關(guān)系檢驗(大于、不等于等)、布爾檢驗(開或關(guān)、真或假)、邏輯檢驗(對一個計算字進(jìn)行位組檢驗)以及集合檢驗(一個集合的數(shù)、空集等)等。

  3.通信

  人和機(jī)器能夠通過許多不同方式進(jìn)行通信。機(jī)器人向人提供信息的設(shè)備,按其復(fù)雜程度排列如下:

  (1)信號燈,通過發(fā)光二極管,機(jī)器人能夠給出顯示信號。

  (2)字符打印機(jī)、顯示器。

  (3)繪圖儀。

  (4)語言合成器或其他音響設(shè)備(鈴、揚聲器等)。

  輸入設(shè)備包括:

  (1)按鈕、乒乓開關(guān)、旋鈕和指壓開關(guān)。

  (2)數(shù)字或字母數(shù)字鍵盤。

  (3)光筆、光標(biāo)指示器和數(shù)字變換板等。

  (4)遠(yuǎn)距離操縱主控裝置,如懸掛式操縱臺等。

  (5)光學(xué)字符閱讀機(jī)。

  4.工具指令

  工具控制指令通常是由閉合某個開關(guān)或繼電器而開始觸發(fā)的,而繼電器又可能把電源接通或斷開。直接控制是最簡單的方法,而且對控制系統(tǒng)的要求也較少??梢杂脗鞲衅鱽砀惺芄ぞ哌\動及其功能的執(zhí)行情況。當(dāng)采用工具功能控制器(tool function controller)時,機(jī)器人控制器對機(jī)械手進(jìn)行定位,并與工具功能控制器實行通信。工具功能由傳感器觸發(fā)時,控制信號送至某個內(nèi)部子程序或外部控制器,工具功能就由工具功能控制系統(tǒng)來執(zhí)行。當(dāng)工具功能完成時,控制返回至機(jī)器人控制器。如果各個操作之問不發(fā)生沖突,而且控制交互沖突又被補(bǔ)償,那么,采用單獨控制系統(tǒng)能夠使工具功能控制與機(jī)器人控制協(xié)調(diào)一致地工作。這種控制方法已被成功地用于飛機(jī)機(jī)架的鉆孔和銑削加工。

  5.傳感器數(shù)據(jù)處理

  用于機(jī)械手控制的通用計算機(jī)只有與傳感器連接起來,才能發(fā)揮其全部效用。按照功能,把傳感器概括如下:

  傳感器數(shù)據(jù)處理是許多機(jī)器人程序編制的十分重要而又復(fù)雜的組成部分。當(dāng)采用觸覺、聽覺或視覺傳感器時,更是如此。例如,當(dāng)應(yīng)用視覺傳感器獲取視覺特征數(shù)據(jù)、辨識物體和進(jìn)行機(jī)器人定位時,對視覺數(shù)據(jù)的處理往往是極其大量和費時的。


內(nèi)容來自百科網(wǎng)