1. 程式人生 > >(轉)工業機器人用什麼語言程式設計的?

(轉)工業機器人用什麼語言程式設計的?

機器人的開發語言一般為C、C++、C++ Builder、VB、VC等語言,主要取決於執行機構(伺服系統)的開發語言;而機器人程式設計分為示教、動作級機器人程式語言、任務級程式語言三個級別;機器人程式語言分為專用操作語言(如VAL語言、AL語言、SLIM語言等)、應用已有計算機語言的機器人程式庫(如Pascal語言、JARS語言、AR-BASIC語言等)、應用新型通用語言的機器人程式庫(如RAPID語言、AML語言KAREL語言等)三種類型。目前主要應用的是SLIM語言。

工業機器人用什麼語言程式設計的?

機器人程式語言(一)

伴隨著機器人的發展,機器人語言也得到發展和完善。機器人語言已成為機器人技術的一個重要部分。機器人的功能除了依靠機器人硬體的支援外,相當一部分依賴機器人語言來完成。早期的機器人由於功能單一,動作簡單,可採用固定程式或示教方式來控制機器人的運動。隨著機器人作業動作的多樣化和作業環境的複雜化,依靠固定的程式或示教方式已滿足不了要求,必須依靠能適應作業和環境隨時變化的機器人語言程式設計來完成機器人的工作。

自機器人出現以來,美國、日本等機器人的原創國也同時開始進行機器人語言的研究。美國斯坦福大學於1973年研製出世界上第一種機器人語言——WAVE語言。WAVE是一種機器人動作語言,即語言功能以描述機器人的動作為主,兼以力和接觸的控制,還能配合視覺感測器進行機器人的手、眼協調控制。

在WAVE語言的基礎上,1974年斯坦福大學人工智慧實驗室又開發出一種新的語言,稱為AL語言。這種語言與高階計算機語言ALGOL結構相似,是一種編譯形式的語言,帶有一個指令編譯器,能在實時機上控制,使用者編寫好的機器人語言源程式經編譯器編譯後對機器人進行任務分配和作業命令控制。AL語言不僅能描述手爪的動作,而且可以記憶作業環境和該環境內物體和物體之間的相對位置,實現多臺機器人的協調控制。

美國IBM公司也一直致力於機器人語言的研究,取得了不少成果。1975年,IBM公司研製出ML語言,主要用於機器人的裝配作業。隨後該公司又研製出另一種語言——AUTOPASS語言,這是一種用於裝配的更高階語言,它可以對幾何模型類任務進行半自動程式設計。

美國的Unimation公司於1979年推出了VAL語言。它是在BASIC語言基礎上擴充套件的一種機器人語言,因此具有BASIC的核心與結構,程式設計簡單,語句簡練。VAL語言成功地用於PUMA和UNIMATE型機器人。1984年,Unimation公司又推出了在VAL基礎上改進的機器人語言——VAL 語言。VAL語言除了含有VAL語言的全部功能外,還增加了對感測器資訊的讀取,使得可以利用感測器資訊進行運動控制。

工業機器人用什麼語言程式設計的?

20世紀80年代初,美國Automatix公司開發了RAIL語言,該語言可以利用感測器的資訊進行零件作業的檢測。同時,麥道公司研製了MCL語言,這是一種在數控自動程式語言——APT語言的基礎上發展起來的一種機器人語言。MCL特別適用於由數控機床、機器人等組成的柔性加工單元的程式設計。

機器人語言品種繁多,而且新的語言層出不窮。這是因為機器人的功能不斷拓展,需要新的語言來配合其工作。另一方面,機器人語言多是針對某種型別的具體機器人而開發的,所以機器人語言的通用性很差,幾乎一種新的機器人問世,就有一種新的機器人語言與之配套。

機器人語言可以按照其作業描述水平的程度分為動作級程式語言、物件級程式語言和任務級程式語言三類。

動作級程式語言

動作級程式語言是最低一級的機器人語言。它以機器人的運動描述為主,通常一條指令對應機器人的一個動作,表示從機器人的一個位姿運動到另一個位姿。動作級程式語言的優點是比較簡單,程式設計容易。其缺點是功能有限,無法進行繁複的數學運算,不接受浮點數和字串,子程式不含有自變數;不能接受複雜的感測器資訊,只能接受感測器開關資訊;與計算機的通訊能力很差。典型的動作級程式語言為VAL語言,如AVL語言語句“MOVE TO (destination)”的含義為機器人從當前位姿運動到目的位姿。

動作級程式語言程式設計時分為關節級程式設計和末端執行器級程式設計兩種。

關節級程式設計

關節級程式設計是以機器人的關節為物件,程式設計時給出機器人一系列各關節位置的時間序列,在關節座標系中進行的一種程式設計方法。對於直角座標型機器人和圓柱座標型機器人,由於直角關節和圓柱關節的表示比較簡單,這種方法程式設計較為適用;而對具有迴轉關節的關節型機器人,由於關節位置的時間序列表示困難,即使一個簡單的動作也要經過許多複雜的運算,故這一方法並不適用。

關節級程式設計可以通過簡單的程式設計指令來實現,也可以通過示教盒示教和鍵入示教實現。

末端執行器級程式設計

末端執行器級程式設計在機器人作業空間的直角座標系中進行。在此直角座標系中給出機器人末端執行器一系列位姿組成位姿的時間序列,連同其他一些輔助功能如力覺、觸覺、視覺等的時間序列,同時確定作業量、作業工具等,協調地進行機器人動作的控制。

這種程式設計方法允許有簡單的條件分支,有感知功能,可以選擇和設定工具,有時還有並行功能,資料實時處理能力強。

工業機器人用什麼語言程式設計的?

機器人程式語言(二)

物件級程式語言

所謂物件即作業及作業物體本身。物件級程式語言是比動作級程式語言高一級的程式語言,它不需要描述機器人手爪的運動,只要由程式設計人員用程式的形式給出作業本身順序過程的描述和環境模型的描述,即描述操作物與操作物之間的關係。通過編譯程式機器人即能知道如何動作。

這類語言典型的例子有AML及AUTOPASS等語言,其特點為:

(1) 具有動作級程式語言的全部動作功能。

(2) 有較強的感知能力,能處理複雜的感測器資訊,可以利用感測器資訊來修改、更新環境的描述和模型,也可以利用感測器資訊進行控制、測試和監督。

(3) 具有良好的開放性,語言系統提供了開發平臺,使用者可以根據需要增加指令,擴充套件語言功能。

(4) 數字計算和資料處理能力強,可以處理浮點數,能與計算機進行即時通訊。

物件級程式語言用接近自然語言的方法描述物件的變化。物件級程式語言的運算功能、作業物件的位姿時序、作業量、作業物件承受的力和力矩等都可以以表示式的形式出現。系統中機器人尺寸引數、作業物件及工具等引數一般以知識庫和資料庫的形式存在,系統編譯程式時獲取這些資訊後對機器人動作過程進行模擬,再進行實現作業物件合適的位姿,獲取感測器資訊並處理,迴避障礙以及與其他裝置通訊等工作。

任務級程式語言

任務級程式語言是比前兩類更高階的一種語言,也是最理想的機器人高階語言。這類語言不需要用機器人的動作來描述作業任務,也不需要描述機器人物件物的中間狀態過程,只需要按照某種規則描述機器人物件物的初始狀態和最終目標狀態,機器人語言系統即可利用已有的環境資訊和知識庫、資料庫自動進行推理、計算,從而自動生成機器人詳細的動作、順序和資料。例如,一裝配機器人慾完成某一螺釘的裝配,螺釘的初始位置和裝配後的目標位置已知,當發出抓取螺釘的命令時,語言系統從初始位置到目標位置之間尋找路徑,在複雜的作業環境中找出一條不會與周圍障礙物產生碰撞的合適路徑,在初始位置處選擇恰當的姿態抓取螺釘,沿此路徑運動到目標位置。在此過程中,作業中間狀態作業方案的設計、工序的選擇、動作的前後安排等一系列問題都由計算機自動完成。

任務級程式語言的結構十分複雜,需要人工智慧的理論基礎和大型知識庫、資料庫的支援,目前還不是十分完善,是一種理想狀態下的語言,有待於進一步的研究。但可以相信,隨著人工智慧技術及資料庫技術的不斷髮展,任務級程式語言必將取代其他語言而成為機器人語言的主流,使得機器人的程式設計應用變得十分簡單。

一般使用者接觸到的語言都是機器人公司自己開發的針對使用者的語言平臺,通俗易懂,在這一層次,每一個機器人公司都有自己語法規則和語言形式,這些都不重要,因為這層是給使用者示教程式設計使用的。在這個語言平臺之後是一種基於硬體相關的高階語言平臺,如C語言、C++語言、基於IEC61131標準語言等,這些語言是機器人公司做機器人系統開發時所使用的語言平臺,這一層次的語言平臺可以編寫翻譯解釋程式,針對使用者示教的語言平臺編寫的程式進行翻譯解釋成該層語言所能理解的指令,該層語言平臺主要進行運動學和控制方面的程式設計,再底層就是硬體語言,如基於Intel硬體的彙編指令等。

商用機器人公司提供給使用者的程式設計介面一般都是自己開發的簡單的示教程式語言系統,如KUKA、ABB等,機器人控制系統提供商提供給使用者的一般是第二層語言平臺,在這一平臺層次,控制系統供應商可能提供了機器人運動學演算法和核心的多軸聯動插補演算法,使用者可以針對自己設計的產品應用自由的進行二次開發,該層語言平臺具有較好的開放性,但是使用者的工作量也相應增加,這一層次的平臺主要是針對機器人開發廠商的平臺,如歐系一些機器人控制系統供應商就是基於IEC61131標準的程式語言平臺。最底層的組合語言級別的程式設計環境我們一般不用太關注,這些是控制系統晶片硬體廠商的事。

工業機器人用什麼語言程式設計的?

各家工業機器人公司的機器人程式語言都不相同,各家有各家自己的程式語言。但是,不論變化多大,其關鍵特性都很相似。比如Staubli 機器人的程式語言叫VAL3,風格和Basic相似;ABB的叫做RAPID,風格和C相似;還有Adept Robotics 的V+,Fanuc,KUKA,MOTOMAN都有專用的程式語言,但是大都是相似.而由於機器人的發明公司Unimation公司最開始的語言就是VAL,所以這些語言結構都有所相似。 VAL語言是美國Unimation公司於1979年推出的一種機器人程式語言,主要配置在PUMA和UNIMATION等型機器人上,是一種專用的動作類描述語言。

VAL語言是在BASIC語言的基礎上發展起來的,所以與BASIC語言的結構很相似。在VAL的基礎上Unimation公司推出了VAL語言;而後來staubli 收購了Unimation公司後,又發展起來了VAL3的機器人程式語言。

學習的話,一般來說各家機器人的官方網站都會有這些介紹資料,但是詳細的資料就會比較欠缺。

如果您問“機器人的最佳程式語言是什麼?

計算機視覺程式設計師會給出不同於認知機器人的答案。每個人都不同意什麼是“最好的程式語言”,語言首先學習,即使這是最現實的答案,因為它取決於您要開發的應用程式型別以及您正在使用的系統。

工業機器人用什麼語言程式設計的?

機器人十大流行程式語言

世界上有超過1500種程式語言,這是目前機器人技術中十種最流行的程式語言。每種語言對機器人有不同的優勢:

10. BASIC / 帕斯卡

BASIC和Pascal,它們是幾種工業機器人語言的基礎,如下所述。BASIC是為初學者設計的(它代表初學者通用符號指令程式碼),這使它成為一個非常簡單的語言開始。帕斯卡爾旨在鼓勵良好的程式設計習慣小號,並介紹構造,如指標,它一個很好的“敲門磚”,從普通版使一個更復雜的語言。這幾天,這兩種語言都有點過時,有利於“日常使用”。但是,如果要進行大量的低階編碼,或者想要熟悉其他工業機器人語言,可以學習它們。

9.工業機器人語言

幾乎每個機器人制造商都開發了自己的專有機器人程式語言。您可以通過學習Pascal熟悉其中的幾個。但是,您每次開始使用新的機器人時,仍然需要學習新的語言。

ABB擁有RAPID程式語言。Kuka有KRL(Kuka Robot Language)。Comau使用PDL2,安川使用INFORM和川崎使用AS。然後,Fanuc機器人使用Karel,Stäubli機器人使用VAL3和Universal Robots使用URScript。

近年來,像ROS Industrial這樣的程式設計選項開始為程式設計師提供更多的標準化選項。但是,如果您是技術人員,則您更有可能使用製造商的語言。

8. LISP

LISP是世界上第二大最古老的程式語言(FORTRAN年齡較大,但只有一年)。它不像這個列表上許多其他程式語言那麼廣泛使用; 然而,在人工智慧程式設計中仍然非常重要。ROS的一部分是用LISP編寫的,儘管你不需要知道使用ROS。

7. 硬體描述語言(HDL)

硬體描述語言基本上是描述電子裝置的程式設計方式。這些語言對於一些機器人專家來說是相當熟悉的,因為它們用於程式設計現場可程式設計門陣列(FPGA)。FPGA允許您開發電子硬體,而無需實際生產矽晶片,這使得它們成為更快更容易的一些開發選擇。

如果你不是電子原型,你可能永遠不會使用HDL。即使如此,重要的是知道它們存在,因為它們與其他程式語言完全不同。一方面,所有操作都是並行執行的,而不是依照基於處理器的語言進行。

6. 裝配

大會允許您以“一級和零級”進行程式設計,這是最低級別(或多或少)的程式設計,最近大多數低級別的電子裝置都需要程式設計,隨著Arduino等的興起微控制器,您現在可以使用C / C ++輕鬆地在這個級別進行程式設計,這意味著大部分機器人可能不那麼必要。

5. MATLAB

MATLAB及其開放原始碼的親戚,如Octave,是非常受歡迎的一些機器人工程師分析資料和開發控制系統。還有一個非常受歡迎的機器人工具箱用於MATLAB。我知道使用MATLAB開發整個機器人系統的人。如果要分析資料,生成高階圖形或實現控制系統,您可能需要學習MATLAB。

4. C# / .NET

C#是Microsoft提供的專有程式語言。我在這裡包括C#/ .NET,主要是因為使用它作為主要語言的Microsoft Robotics Developer Studio。如果你要使用這個系統,你可能要使用C#。但是,首先學習C / C ++可能是長期發展編碼技巧的好選擇。

3. Java

一些電腦科學學位將Java教學作為他們的第一種程式語言。Java從程式設計師“隱藏”底層的記憶體功能,這使得它比C更容易程式設計,但這也意味著你對程式碼實際做的不太瞭解。如果您從電腦科學的背景(許多人,特別是在研究中)來到機器人,你可能已經學會了Java。像C#和MATLAB一樣,Java是一種解釋語言,這意味著它不會被編譯成機器程式碼。相反,Java虛擬機器在執行時解釋指令。使用Java的理論是,由於Java虛擬機器,您可以在許多不同的機器上使用相同的程式碼。在實踐中,這並不總是奏效,有時會導致程式碼執行緩慢。然而,Java在機器人的某些部分非常受歡迎,因此你可能需要它。

2. Python

Python近年來尤其在機器人技術方面出現了巨大的復甦。其中一個原因可能是Python(和C ++)是ROS中發現的兩種主要的程式語言。像Java一樣,它是一種解釋語言。與Java不同,語言的主要重點是易用性。許多人都認為這樣做非常好。

Python節省了許多常規的事情,這些事情在程式設計中花費時間,例如定義和轉換變數型別。此外,還有大量免費的圖書館,這意味著當您需要實現一些基本功能時,您不必“重新發明”。並且由於它允許使用C / C ++程式碼進行簡單的繫結,這意味著程式碼的效能很重的部分可以用這些語言來實現,以避免效能下降。

1. C / C ++

最後,我們達到機器人技術的第一程式語言!許多人都同意C和C ++是新機器人的好起點。為什麼?因為很多硬體庫都使用這些語言。它們允許與低階硬體進行互動,允許實時效能和非常成熟的程式語言。這些天,您可能會使用C ++多於C,因為該語言具有更多的功能。C ++基本上是C的擴充套件。首先學習至少一點C可能是有用的,以便您可以在找到以C編寫的硬體庫時識別它。C / C ++並不像以前那樣簡單,比如Python或者MATLAB。使用C實現相同的功能可能需要相當長的時間,並且需要更多的程式碼行。然而,由於機器人非常依賴於實時效能,

工業機器人用什麼語言程式設計的?

機器人的主要特點之一是其通用性,是機器人具有可程式設計能力是實現這一特點的重要手段。機器人程式設計必然涉及機器人語言。機器人語言是使用符號來描述機器人動作的方法,它通過對機器人的描述,使機器人按照程式設計者的意圖進行各種操作。

工業機器人用什麼語言程式設計的?

器人語言的產生和發展是與機器人技術的發展以及計算機程式語言的發展緊密相關的。程式設計系統的核心問題是操作運動控制問題

機器人程式設計系統以及方法

機器人程式設計是機器人運動和控制問題的結合點,也是機器人系統最關鍵的問題之一。當前實用的工業機器人常為離線程式設計或示教,在除錯階段可以通過示教控制盒對編譯好的程式一步一步地進行,除錯成功後可投入正式執行。

機器人語言作業系統包括3個基本的操作狀態:

  1. 監控狀態
  2. 程式設計狀態
  3. 執行狀態

監控狀態:用來進行整個系統的監督控制。

編輯狀態:提供操作者編制程式或編輯程式

執行狀態:用來執行機器人程式

把機器人源程式轉換成機器碼,以便機器人控制櫃能直接讀取和執行,編譯後的程式執行速度將大大加快。

根據機器人不同的工作要求,需要不同的程式設計。程式設計能力和程式設計方式有很大的關係,程式設計方式決定著機器人的適應性和作業能力。隨著計算機在工業上的廣泛應用,工業機器人的計算機程式設計變得日益重要。

工業機器人用什麼語言程式設計的?

程式語言也是多種多樣的,目前工業機器人的程式設計方式有以下幾種:

  • 順序控制的程式設計

在順序控制的機器中,所有的控制都是由機械或者電氣的順序控制來實現,一般沒有程式設計的要求。順序控制的靈活性小,這是因為所有的工作過程都已編輯好,由機械擋塊,或其他確定的辦法所控制。大量的自動機都是在順序控制下操作的,這種方法的主要優點是成本低、易於控制和操作。

  • 示教方式程式設計

目前,大多數工業機器人都具有采用示教方式來程式設計的功能。示教方式程式設計一般可分為手把手示教程式設計和示教盒示教程式設計兩種方式:

1、手把手示教程式設計:主要用於噴漆、弧焊等要求實現連續軌跡控制的工業機器人示教程式設計中。具體的方法是利用示教手柄引導末端執行器經過所要求的位置,同時由感測器檢測出工業機器人個關節處的座標值,並由控制系統記錄、儲存下這些資料資訊。實際工作中,工業機器人的控制系統會重複再現示教過的軌跡和操作技能。

手把手示教程式設計也能實現點位控制,與CP控制不同的是它只記錄個軌跡程式移動的兩端點位置,軌跡的運動速度則按各軌跡程式段應對的功能資料輸入。

2、示教盒示教程式設計方式是人工利用示教盒上所具有的各種功能的按鈕來驅動工業機器人的各關節軸,按作業所需要的順序單軸運動或多關節協調運動,完成位置和功能的示教程式設計。示教盒示教一般用於大型機器人或危險條件作業下的機器人示教。

工業機器人用什麼語言程式設計的?

3、離線程式設計或預程式設計

  • 離線程式設計和預程式設計的含義相同,它是指用機器人程式語言預先用示教的方法程式設計,離線程式設計的優點:
  • 程式設計可以不使用機器人,可以騰出機器人去做其他工作
  • 可預先優化操作方案和執行週期
  • 以前完成的過程或子程式可結合到代編的程式中去
  • 可以用感測器探測外部資訊,從而使機器人做出相應的響應。這種響應使機器人可以在自適應的方式下工作
  • 控制功能中,可以包含現有的計算機輔助設計(CAD)和計算機輔助製造(CAM)的資訊
  • 可以用預先執行程式來模擬實際運動,從而不會出現危險,以在螢幕上模擬機器人運動來輔助程式設計
  • 對不同的工作目的,只需替換一部分待定的程式

在非自適應系統中,沒有外界環境的反饋,僅有的輸入是關節感測器的測量值,從而可以使用簡單的程式設計手段。

工業機器人用什麼語言程式設計的?

4、對機器人的程式設計要求

  1. 能夠建立世界模型
  2. 能夠描述機器人的作業
  3. 能夠描述機器人的運動
  4. 允許使用者規定執行流程
  5. 有良好的編輯環境

5、機器人編輯語言的型別

  1. 動作級(AL語言系統、LUNA語言及其特徵)
  2. 物件級(AUTOPASS語言及其特徵、RAPT語言及其特徵)
  3. 任務級