咨詢郵箱 咨詢郵箱:admin@shgeek.cn 咨詢熱線 咨詢熱線:021-34788138 極可(kě)自動化微博 極可(kě)自動化微信
您的位置:首頁 > 新聞資訊 >
扒一扒工業機器(qì)人(rén)編程語言和(hé)種類
發表日期:2015-09-20 18:12   文章編輯:admin    浏覽次數(shù):
 

機器(qì)人(rén)的開(kāi)發語言一般為(wèi)C、C++、C++ Builder、VB、VC等語言,主要取決于執行(xíng)機構(伺服系統)的開(kāi)發語言;而機器(qì)人(rén)編程分為(wèi)示教、動作(zuò)級機器(qì)人(rén)編程語言、任務級編程語言三個(gè)級别;機器(qì)人(rén)編程語言分為(wèi)專用操作(zuò)語言(如VAL語言、AL語言、SLIM語言等)、應用已有(yǒu)計(jì)算(suàn)機語言的機器(qì)人(rén)程序庫(如Pascal語言、JARS語言、AR-BASIC語言等)、應用新型通(tōng)用語言的機器(qì)人(rén)程序庫(如RAPID語言、AML語言KAREL語言等)三種類型。目前主要應用的是SLIM語言。


機器(qì)人(rén)編程語言(一)

  伴随着機器(qì)人(rén)的發展,機器(qì)人(rén)語言也得(de)到發展和(hé)完善。機器(qì)人(rén)語言已成為(wèi)機器(qì)人(rén)技(jì)術(shù)的一個(gè)重要部分。機器(qì)人(rén)的功能除了依靠機器(qì)人(rén)硬件的支持外,相當一部分依賴機器(qì)人(rén)語言來(lái)完成。早期的機器(qì)人(rén)由于功能單一,動作(zuò)簡單,可(kě)采用固定程序或示教方式來(lái)控制(zhì)機器(qì)人(rén)的運動。随着機器(qì)人(rén)作(zuò)業動作(zuò)的多(duō)樣化和(hé)作(zuò)業環境的複雜化,依靠固定的程序或示教方式已滿足不了要求,必須依靠能适應作(zuò)業和(hé)環境随時(shí)變化的機器(qì)人(rén)語言編程來(lái)完成機器(qì)人(rén)的工作(zuò)。

 

自機器(qì)人(rén)出現以來(lái),美國、日本等機器(qì)人(rén)的原創國也同時(shí)開(kāi)始進行(xíng)機器(qì)人(rén)語言的研究。美國斯坦福大(dà)學于1973年研制(zhì)出世界上(shàng)第一種機器(qì)人(rén)語言——WAVE語言。WAVE是一種機器(qì)人(rén)動作(zuò)語言,即語言功能以描述機器(qì)人(rén)的動作(zuò)為(wèi)主,兼以力和(hé)接觸的控制(zhì),還(hái)能配合視(shì)覺傳感器(qì)進行(xíng)機器(qì)人(rén)的手、眼協調控制(zhì)。

 

在WAVE語言的基礎上(shàng),1974年斯坦福大(dà)學人(rén)工智能實驗室又開(kāi)發出一種新的語言,稱為(wèi)AL語言。這種語言與高(gāo)級計(jì)算(suàn)機語言ALGOL結構相似,是一種編譯形式的語言,帶有(yǒu)一個(gè)指令編譯器(qì),能在實時(shí)機上(shàng)控制(zhì),用戶編寫好的機器(qì)人(rén)語言源程序經編譯器(qì)編譯後對機器(qì)人(rén)進行(xíng)任務分配和(hé)作(zuò)業命令控制(zhì)。AL語言不僅能描述手爪的動作(zuò),而且可(kě)以記憶作(zuò)業環境和(hé)該環境內(nèi)物體(tǐ)和(hé)物體(tǐ)之間(jiān)的相對位置,實現多(duō)台機器(qì)人(rén)的協調控制(zhì)。

 

美國IBM公司也一直緻力于機器(qì)人(rén)語言的研究,取得(de)了不少(shǎo)成果。1975年,IBM公司研制(zhì)出ML語言,主要用于機器(qì)人(rén)的裝配作(zuò)業。随後該公司又研制(zhì)出另一種語言——AUTOPASS語言,這是一種用于裝配的更高(gāo)級語言,它可(kě)以對幾何模型類任務進行(xíng)半自動編程。

 

美國的Unimation公司于1979年推出了VAL語言。它是在BASIC語言基礎上(shàng)擴展的一種機器(qì)人(rén)語言,因此具有(yǒu)BASIC的內(nèi)核與結構,編程簡單,語句簡練。VAL語言成功地用于PUMA和(hé)UNIMATE型機器(qì)人(rén)。1984年,Unimation公司又推出了在VAL基礎上(shàng)改進的機器(qì)人(rén)語言——VAL Ⅱ語言。VALⅡ語言除了含有(yǒu)VAL語言的全部功能外,還(hái)增加了對傳感器(qì)信息的讀取,使得(de)可(kě)以利用傳感器(qì)信息進行(xíng)運動控制(zhì)。

 

20世紀80年代初,美國Automatix公司開(kāi)發了RAIL語言,該語言可(kě)以利用傳感器(qì)的信息進行(xíng)零件作(zuò)業的檢測。同時(shí),麥道(dào)公司研制(zhì)了MCL語言,這是一種在數(shù)控自動編程語言——APT語言的基礎上(shàng)發展起來(lái)的一種機器(qì)人(rén)語言。MCL特别适用于由數(shù)控機床、機器(qì)人(rén)等組成的柔性加工單元的編程。

 

機器(qì)人(rén)語言品種繁多(duō),而且新的語言層出不窮。這是因為(wèi)機器(qì)人(rén)的功能不斷拓展,需要新的語言來(lái)配合其工作(zuò)。另一方面,機器(qì)人(rén)語言多(duō)是針對某種類型的具體(tǐ)機器(qì)人(rén)而開(kāi)發的,所以機器(qì)人(rén)語言的通(tōng)用性很(hěn)差,幾乎一種新的機器(qì)人(rén)問世,就有(yǒu)一種新的機器(qì)人(rén)語言與之配套。

 

  機器(qì)人(rén)語言可(kě)以按照其作(zuò)業描述水(shuǐ)平的程度分為(wèi)動作(zuò)級編程語言、對象級編程語言和(hé)任務級編程語言三類。

 

動作(zuò)級編程語言

  動作(zuò)級編程語言是最低(dī)一級的機器(qì)人(rén)語言。它以機器(qì)人(rén)的運動描述為(wèi)主,通(tōng)常一條指令對應機器(qì)人(rén)的一個(gè)動作(zuò),表示從機器(qì)人(rén)的一個(gè)位姿運動到另一個(gè)位姿。動作(zuò)級編程語言的優點是比較簡單,編程容易。其缺點是功能有(yǒu)限,無法進行(xíng)繁複的數(shù)學運算(suàn),不接受浮點數(shù)和(hé)字符串,子程序不含有(yǒu)自變量;不能接受複雜的傳感器(qì)信息,隻能接受傳感器(qì)開(kāi)關信息;與計(jì)算(suàn)機的通(tōng)信能力很(hěn)差。典型的動作(zuò)級編程語言為(wèi)VAL語言,如AVL語言語句“MOVE TO (destination)”的含義為(wèi)機器(qì)人(rén)從當前位姿運動到目的位姿。

 

  動作(zuò)級編程語言編程時(shí)分為(wèi)關節級編程和(hé)末端執行(xíng)器(qì)級編程兩種。

 

關節級編程

  關節級編程是以機器(qì)人(rén)的關節為(wèi)對象,編程時(shí)給出機器(qì)人(rén)一系列各關節位置的時(shí)間(jiān)序列,在關節坐(zuò)标系中進行(xíng)的一種編程方法。對于直角坐(zuò)标型機器(qì)人(rén)和(hé)圓柱坐(zuò)标型機器(qì)人(rén),由于直角關節和(hé)圓柱關節的表示比較簡單,這種方法編程較為(wèi)适用;而對具有(yǒu)回轉關節的關節型機器(qì)人(rén),由于關節位置的時(shí)間(jiān)序列表示困難,即使一個(gè)簡單的動作(zuò)也要經過許多(duō)複雜的運算(suàn),故這一方法并不适用。

 

  關節級編程可(kě)以通(tōng)過簡單的編程指令來(lái)實現,也可(kě)以通(tōng)過示教盒示教和(hé)鍵入示教實現。

 

末端執行(xíng)器(qì)級編程

  末端執行(xíng)器(qì)級編程在機器(qì)人(rén)作(zuò)業空(kōng)間(jiān)的直角坐(zuò)标系中進行(xíng)。在此直角坐(zuò)标系中給出機器(qì)人(rén)末端執行(xíng)器(qì)一系列位姿組成位姿的時(shí)間(jiān)序列,連同其他一些(xiē)輔助功能如力覺、觸覺、視(shì)覺等的時(shí)間(jiān)序列,同時(shí)确定作(zuò)業量、作(zuò)業工具等,協調地進行(xíng)機器(qì)人(rén)動作(zuò)的控制(zhì)。

 

這種編程方法允許有(yǒu)簡單的條件分支,有(yǒu)感知功能,可(kě)以選擇和(hé)設定工具,有(yǒu)時(shí)還(hái)有(yǒu)并行(xíng)功能,數(shù)據實時(shí)處理(lǐ)能力強。

 

機器(qì)人(rén)編程語言(二)

 

對象級編程語言

  所謂對象即作(zuò)業及作(zuò)業物體(tǐ)本身。對象級編程語言是比動作(zuò)級編程語言高(gāo)一級的編程語言,它不需要描述機器(qì)人(rén)手爪的運動,隻要由編程人(rén)員用程序的形式給出作(zuò)業本身順序過程的描述和(hé)環境模型的描述,即描述操作(zuò)物與操作(zuò)物之間(jiān)的關系。通(tōng)過編譯程序機器(qì)人(rén)即能知道(dào)如何動作(zuò)。

 

這類語言典型的例子有(yǒu)AML及AUTOPASS等語言,其特點為(wèi):

(1) 具有(yǒu)動作(zuò)級編程語言的全部動作(zuò)功能。

 

(2) 有(yǒu)較強的感知能力,能處理(lǐ)複雜的傳感器(qì)信息,可(kě)以利用傳感器(qì)信息來(lái)修改、更新環境的描述和(hé)模型,也可(kě)以利用傳感器(qì)信息進行(xíng)控制(zhì)、測試和(hé)監督。

 

(3) 具有(yǒu)良好的開(kāi)放性,語言系統提供了開(kāi)發平台,用戶可(kě)以根據需要增加指令,擴展語言功能。

 

(4) 數(shù)字計(jì)算(suàn)和(hé)數(shù)據處理(lǐ)能力強,可(kě)以處理(lǐ)浮點數(shù),能與計(jì)算(suàn)機進行(xíng)即時(shí)通(tōng)信。

 

  對象級編程語言用接近自然語言的方法描述對象的變化。對象級編程語言的運算(suàn)功能、作(zuò)業對象的位姿時(shí)序、作(zuò)業量、作(zuò)業對象承受的力和(hé)力矩等都可(kě)以以表達式的形式出現。系統中機器(qì)人(rén)尺寸參數(shù)、作(zuò)業對象及工具等參數(shù)一般以知識庫和(hé)數(shù)據庫的形式存在,系統編譯程序時(shí)獲取這些(xiē)信息後對機器(qì)人(rén)動作(zuò)過程進行(xíng)仿真,再進行(xíng)實現作(zuò)業對象合适的位姿,獲取傳感器(qì)信息并處理(lǐ),回避障礙以及與其他設備通(tōng)信等工作(zuò)。

 

任務級編程語言

  任務級編程語言是比前兩類更高(gāo)級的一種語言,也是最理(lǐ)想的機器(qì)人(rén)高(gāo)級語言。這類語言不需要用機器(qì)人(rén)的動作(zuò)來(lái)描述作(zuò)業任務,也不需要描述機器(qì)人(rén)對象物的中間(jiān)狀态過程,隻需要按照某種規則描述機器(qì)人(rén)對象物的初始狀态和(hé)最終目标狀态,機器(qì)人(rén)語言系統即可(kě)利用已有(yǒu)的環境信息和(hé)知識庫、數(shù)據庫自動進行(xíng)推理(lǐ)、計(jì)算(suàn),從而自動生(shēng)成機器(qì)人(rén)詳細的動作(zuò)、順序和(hé)數(shù)據。例如,一裝配機器(qì)人(rén)欲完成某一螺釘的裝配,螺釘的初始位置和(hé)裝配後的目标位置已知,當發出抓取螺釘的命令時(shí),語言系統從初始位置到目标位置之間(jiān)尋找路徑,在複雜的作(zuò)業環境中找出一條不會(huì)與周圍障礙物産生(shēng)碰撞的合适路徑,在初始位置處選擇恰當的姿态抓取螺釘,沿此路徑運動到目标位置。在此過程中,作(zuò)業中間(jiān)狀态作(zuò)業方案的設計(jì)、工序的選擇、動作(zuò)的前後安排等一系列問題都由計(jì)算(suàn)機自動完成。

 

  任務級編程語言的結構十分複雜,需要人(rén)工智能的理(lǐ)論基礎和(hé)大(dà)型知識庫、數(shù)據庫的支持,目前還(hái)不是十分完善,是一種理(lǐ)想狀态下的語言,有(yǒu)待于進一步的研究。但(dàn)可(kě)以相信,随着人(rén)工智能技(jì)術(shù)及數(shù)據庫技(jì)術(shù)的不斷發展,任務級編程語言必将取代其他語言而成為(wèi)機器(qì)人(rén)語言的主流,使得(de)機器(qì)人(rén)的編程應用變得(de)十分簡單。

 

一般用戶接觸到的語言都是機器(qì)人(rén)公司自己開(kāi)發的針對用戶的語言平台,通(tōng)俗易懂,在這一層次,每一個(gè)機器(qì)人(rén)公司都有(yǒu)自己語法規則和(hé)語言形式,這些(xiē)都不重要,因為(wèi)這層是給用戶示教編程使用的。在這個(gè)語言平台之後是一種基于硬件相關的高(gāo)級語言平台,如C語言、C++語言、基于IEC61131标準語言等,這些(xiē)語言是機器(qì)人(rén)公司做(zuò)機器(qì)人(rén)系統開(kāi)發時(shí)所使用的語言平台,這一層次的語言平台可(kě)以編寫翻譯解釋程序,針對用戶示教的語言平台編寫的程序進行(xíng)翻譯解釋成該層語言所能理(lǐ)解的指令,該層語言平台主要進行(xíng)運動學和(hé)控制(zhì)方面的編程,再底層就是硬件語言,如基于Intel硬件的彙編指令等。

 

  商用機器(qì)人(rén)公司提供給用戶的編程接口一般都是自己開(kāi)發的簡單的示教編程語言系統,如KUKA、ABB等,機器(qì)人(rén)控制(zhì)系統提供商提供給用戶的一般是第二層語言平台,在這一平台層次,控制(zhì)系統供應商可(kě)能提供了機器(qì)人(rén)運動學算(suàn)法和(hé)核心的多(duō)軸聯動插補算(suàn)法,用戶可(kě)以針對自己設計(jì)的産品應用自由的進行(xíng)二次開(kāi)發,該層語言平台具有(yǒu)較好的開(kāi)放性,但(dàn)是用戶的工作(zuò)量也相應增加,這一層次的平台主要是針對機器(qì)人(rén)開(kāi)發廠商的平台,如歐系一些(xiē)機器(qì)人(rén)控制(zhì)系統供應商就是基于IEC61131标準的編程語言平台。最底層的彙編語言級别的編程環境我們一般不用太關注,這些(xiē)是控制(zhì)系統芯片硬件廠商的事。

 

各家(jiā)工業機器(qì)人(rén)公司的機器(qì)人(rén)編程語言都不相同,各家(jiā)有(yǒu)各家(jiā)自己的編程語言。但(dàn)是,不論變化多(duō)大(dà),其關鍵特性都很(hěn)相似。比如Staubli 機器(qì)人(rén)的編程語言叫VAL3,風格和(hé)Basic相似;ABB的叫做(zuò)RAPID,風格和(hé)C相似;還(hái)有(yǒu)Adept Robotics 的V+,Fanuc,KUKA,MOTOMAN都有(yǒu)專用的編程語言,但(dàn)是大(dà)都是相似.而由于機器(qì)人(rén)的發明(míng)公司Unimation公司最開(kāi)始的語言就是VAL,所以這些(xiē)語言結構都有(yǒu)所相似。 VAL語言是美國Unimation公司于1979年推出的一種機器(qì)人(rén)編程語言,主要配置在PUMA和(hé)UNIMATION等型機器(qì)人(rén)上(shàng),是一種專用的動作(zuò)類描述語言。

 

VAL語言是在BASIC語言的基礎上(shàng)發展起來(lái)的,所以與BASIC語言的結構很(hěn)相似。在VAL的基礎上(shàng)Unimation公司推出了VALⅡ語言;而後來(lái)staubli 收購了Unimation公司後,又發展起來(lái)了VAL3的機器(qì)人(rén)編程語言。

 

學習的話(huà),一般來(lái)說各家(jiā)機器(qì)人(rén)的官方網站(zhàn)都會(huì)有(yǒu)這些(xiē)介紹資料,但(dàn)是詳細的資料就會(huì)比較欠缺。

标簽:工業機器(qì)人(rén)    
如沒特殊注明(míng),文章均為(wèi)極可(kě)原創,轉載請(qǐng)注明(míng)來(lái)自http://www.shgeek.cn