機器人的開發(fā)語言一般為C、C++、C++ Builder、VB、VC等語言,主要取決于執(zhí)行機構(伺服系統(tǒng))的開發(fā)語言;而機器人編程分為示教、動作級機器人編程語言、任務級編程語言三個級別;機器人編程語言分為專用操作語言(如VAL語言、AL語言、SLIM語言等)、應用已有計算機語言的機器人程序庫(如Pascal語言、JARS語言、AR-BASIC語言等)、應用新型通用語言的機器人程序庫(如RAPID語言、AML語言KAREL語言等)三種類型。目前主要應用的是SLIM語言。
機器人語言可以按照其作業(yè)描述水平的程度分為動作級編程語言、對象級編程語言和任務級編程語言三類。
機器人編程語言(一)動作級編程語言
動作級編程語言是最低一級的機器人語言。它以機器人的運動描述為主,通常一條指令對應機器人的一個動作,表示從機器人的一個位姿運動到另一個位姿。動作級編程語言的優(yōu)點是比較簡單,編程容易。其缺點是功能有限,無法進行繁復的數學運算,不接受浮點數和字符串,子程序不含有自變量;不能接受復雜的傳感器信息,只能接受傳感器開關信息;與計算機的通信能力很差。典型的動作級編程語言為VAL語言,如AVL語言語句“MOVE TO (destination)”的含義為機器人從當前位姿運動到目的位姿。
動作級編程語言編程時分為關節(jié)級編程和末端執(zhí)行器級編程兩種。
關節(jié)級編程
關節(jié)級編程是以機器人的關節(jié)為對象,編程時給出機器人一系列各關節(jié)位置的時間序列,在關節(jié)坐標系中進行的一種編程方法。對于直角坐標型機器人和圓柱坐標型機器人,由于直角關節(jié)和圓柱關節(jié)的表示比較簡單,這種方法編程較為適用;而對具有回轉關節(jié)的關節(jié)型機器人,由于關節(jié)位置的時間序列表示困難,即使一個簡單的動作也要經過許多復雜的運算,故這一方法并不適用。
關節(jié)級編程可以通過簡單的編程指令來實現,也可以通過示教盒示教和鍵入示教實現。
末端執(zhí)行器級編程
末端執(zhí)行器級編程在機器人作業(yè)空間的直角坐標系中進行。在此直角坐標系中給出機器人末端執(zhí)行器一系列位姿組成位姿的時間序列,連同其他一些輔助功能如力覺、觸覺、視覺等的時間序列,同時確定作業(yè)量、作業(yè)工具等,協(xié)調地進行機器人動作的控制。
這種編程方法允許有簡單的條件分支,有感知功能,可以選擇和設定工具,有時還有并行功能,數據實時處理能力強。
機器人編程語言(二)對象級編程語言
所謂對象即作業(yè)及作業(yè)物體本身。對象級編程語言是比動作級編程語言高一級的編程語言,它不需要描述機器人手爪的運動,只要由編程人員用程序的形式給出作業(yè)本身順序過程的描述和環(huán)境模型的描述,即描述操作物與操作物之間的關系。通過編譯程序機器人即能知道如何動作。
這類語言典型的例子有AML及AUTOPASS等語言,其特點為:(1) 具有動作級編程語言的全部動作功能。(2) 有較強的感知能力,能處理復雜的傳感器信息,可以利用傳感器信息來修改、更新環(huán)境的描述和模型,也可以利用傳感器信息進行控制、測試和監(jiān)督。(3) 具有良好的開放性,語言系統(tǒng)提供了開發(fā)平臺,用戶可以根據需要增加指令,擴展語言功能。(4) 數字計算和數據處理能力強,可以處理浮點數,能與計算機進行即時通信。對象級編程語言用接近自然語言的方法描述對象的變化。對象級編程語言的運算功能、作業(yè)對象的位姿時序、作業(yè)量、作業(yè)對象承受的力和力矩等都可以以表達式的形式出現。系統(tǒng)中機器人尺寸參數、作業(yè)對象及工具等參數一般以知識庫和數據庫的形式存在,系統(tǒng)編譯程序時獲取這些信息后對機器人動作過程進行仿真,再進行實現作業(yè)對象合適的位姿,獲取傳感器信息并處理,回避障礙以及與其他設備通信等工作。
機器人編程語言(三)任務級編程語言
任務級編程語言是比前兩類更高級的一種語言,也是最理想的機器人高級語言。這類語言不需要用機器人的動作來描述作業(yè)任務,也不需要描述機器人對象物的中間狀態(tài)過程,只需要按照某種規(guī)則描述機器人對象物的初始狀態(tài)和最終目標狀態(tài),機器人語言系統(tǒng)即可利用已有的環(huán)境信息和知識庫、數據庫自動進行推理、計算,從而自動生成機器人詳細的動作、順序和數據。
例如,一裝配機器人欲完成某一螺釘的裝配,螺釘的初始位置和裝配后的目標位置已知,當發(fā)出抓取螺釘的命令時,語言系統(tǒng)從初始位置到目標位置之間尋找路徑,在復雜的作業(yè)環(huán)境中找出一條不會與周圍障礙物產生碰撞的合適路徑,在初始位置處選擇恰當的姿態(tài)抓取螺釘,沿此路徑運動到目標位置。在此過程中,作業(yè)中間狀態(tài)作業(yè)方案的設計、工序的選擇、動作的前后安排等一系列問題都由計算機自動完成。任務級編程語言的結構十分復雜,需要人工智能的理論基礎和大型知識庫、數據庫的支持,目前還不是十分完善,是一種理想狀態(tài)下的語言,有待于進一步的研究。但可以相信,隨著人工智能技術及數據庫技術的不斷發(fā)展,任務級編程語言必將取代其他語言而成為機器人語言的主流,使得機器人的編程應用變得十分簡單。
一般用戶接觸到的語言都是機器人公司自己開發(fā)的針對用戶的語言平臺,通俗易懂,在這一層次,每一個機器人公司都有自己語法規(guī)則和語言形式,這些都不重要,因為這層是給用戶示教編程使用的。在這個語言平臺之后是一種基于硬件相關的高級語言平臺,如C語言、C++語言、基于IEC61131標準語言等,這些語言是機器人公司做機器人系統(tǒng)開發(fā)時所使用的語言平臺,這一層次的語言平臺可以編寫翻譯解釋程序,針對用戶示教的語言平臺編寫的程序進行翻譯解釋成該層語言所能理解的指令,該層語言平臺主要進行運動學和控制方面的編程,再底層就是硬件語言,如基于Intel硬件的匯編指令等。
商用機器人公司提供給用戶的編程接口一般都是自己開發(fā)的簡單的示教編程語言系統(tǒng),如KUKA、ABB等,機器人控制系統(tǒng)提供商提供給用戶的一般是第二層語言平臺,在這一平臺層次,控制系統(tǒng)供應商可能提供了機器人運動學算法和核心的多軸聯動插補算法,用戶可以針對自己設計的產品應用自由的進行二次開發(fā),該層語言平臺具有較好的開放性,但是用戶的工作量也相應增加,這一層次的平臺主要是針對機器人開發(fā)廠商的平臺,如歐系一些機器人控制系統(tǒng)供應商就是基于IEC61131標準的編程語言平臺。最底層的匯編語言級別的編程環(huán)境我們一般不用太關注,這些是控制系統(tǒng)芯片硬件廠商的事。各家工業(yè)機器人公司的機器人編程語言都不相同,各家有各家自己的編程語言。
但是,不論變化多大,其關鍵特性都很相似。比如Staubli機器人的編程語言叫VAL3,風格和Basic相似;ABB的叫做RAPID,風格和C相似;還有Adept Robotics的V+,Fanuc,KUKA,MOTOMAN都有專用的編程語言,但是大都是相似.而由于機器人的發(fā)明公司Unimation公司最開始的語言就是VAL,所以這些語言結構都有所相似。VAL語言是美國Unimation公司于1979年推出的一種機器人編程語言,主要配置在PUMA和UNIMATION等型機器人上,是一種專用的動作類描述語言。VAL語言是在BASIC語言的基礎上發(fā)展起來的,所以與BASIC語言的結構很相似。在VAL的基礎上Unimation公司推出了VALⅡ語言;而后來staubli收購了Unimation公司后,又發(fā)展起來了VAL3的機器人編程語言。學習的話,一般來說各家機器人的官方網站都會有這些介紹資料,但是詳細的資料就會比較欠缺。
-
編程語言
+關注
關注
10文章
1945瀏覽量
34746 -
工業(yè)機器人
+關注
關注
91文章
3364瀏覽量
92660
原文標題:【Robot 學院】工業(yè)機器人的編程語言和種類大盤點!
文章出處:【微信號:robotn,微信公眾號:產業(yè)大視野】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論