工業機器人編程

發布日期:2012-12-07    蘭生客服中心    瀏覽:4712

  第一節:機器人編程

  為使機器人完成某種任務而設置的動作順序描述。機器人運動和作業的指令都是由程序進行控制,常見的編制方法有兩種,示教編程方法和離線編程方法。其中示教 編程方法包括示教、編輯和軌跡再現,可以通過示教盒示教和導引式示教兩種途徑實現。由于示教方式實用性強,操作簡便,因此大部分機器人都采用這種方式。離線編程方法是利用計算機圖形學成果,借助圖形處理工具建立幾何模型,通過一些規劃算法來獲取作業規劃軌跡。與示教編程不同,離線編程不與機器人發生關系, 在編程過程中機器人可以照常工作。工業上離線工具只作為一種輔助手段,未得到廣泛的應用。

  用EDIT指令進入編輯狀態后,可以用C、D、E、I、L、P、R、S、T等命令來進一步編輯。如:
  C命令:改變編輯的程序,用一個新的程序代替。
  D命令:刪除從當前行算起的n行程序,n缺省時為刪除當前行。
  E命令:退出編輯返回監控模式。
  I命令:將當前指令下移一行,以便插入一條指令。
  P命令:顯示從當前行往下n行的程序文本內容。
  T命令:初始化關節插值程序示教模式,在該模式下,按一次示教盒上的“RECODE”按鈕就將MOVE指令插到程序中。

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

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

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

2) 存儲指令
  FORMAT指令:執行磁盤格式化。

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

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

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

  LOADP指令:功能是將文件中的程序送入內存。

  LOADL指令:功能是將文件中指定的位置變量送入系統內存。

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

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

  ERASE指令:擦除磁內容并初始化。

3) 控制程序執行指令
  ABORT指令:執行此指令后緊急停止(緊停)。

  DO指令:執行單步指令。

  EXECUTE指令:此指令執行用戶指定的程序n次,n可以從–32 768到 32 767,當n被省略時,程序執行一次。

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

  PROCEED指令:此指令實現在某一步暫停、急;蜻\行錯誤后,自下一步起繼續執行程序。

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

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

4) 系統狀態控制指令
  CALIB指令:此指令校準關節位置傳感器。

  STATUS指令:用來顯示用戶程序的狀態。

  FREE指令:用來顯示當前未使用的存儲容量。

  ENABL指令:用于開、關系統硬件。

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

  DONE:此指令停止監控程序,進入硬件調試狀態。

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

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

  MOVE #PICK!
  表示機器人由關節插值運動到精確PICK所定義的位置!!”表示位置變量已有自己的值。

  MOVET <位置>,<手開度>
  功能是生成關節插值運動使機器人到達位置變量所給定的位姿,運動中若手為伺服控制,則手由閉合改變到手開度變量給定的值。

  又例如:

  OPEN [<手開度>]
  表示使機器人手爪打開到指定的開度。

2) 機器人位姿控制指令
  這些指令包括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實現程序的無條件轉移,而IF指令執行有條件轉移。IF指令的格式為

  IF <整型變量1> <關系式> <整型變量2> <關系式> THEN <標識符>

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

5) 開關量賦值指令
  指令包括SPEED、COARSE、FINE、NONULL、NULL、INTOFF及INTON。

6) 其他指令
  其他指令包括REMARK及TYPE。

  SIGLA語言

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

  這種語言主要用于裝配任務的控制,它可以把裝配任務劃分為一些裝配子任務,如取旋具,在螺釘上料器上取螺釘A,搬運螺釘A,定位螺釘A,裝入螺釘A,緊固螺釘等。編程時預先編制子程序,然后用子程序調用的方式來完成。

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

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

  IML語言的主要指令有:運動指令MOVE、速度指令SPEED、停止指令STOP、手指開合 指令OPEN及CLOSE、坐標系定義指令COORD、軌跡定義命令TRAJ、位置定義命令HERE、程序控制指令IF…THEN、FOR EACH語句、CASE語句及DEFINE等。

  任務程序員能夠指揮機器人系統去完成的分立單一動作就是基本程序功能。例如,把工具移動至某一 指定位置,操作末端執行裝置,或者從傳感器或手調輸入裝置讀個數等。機器人工作站的系統程序員,他的責任是選用一套對作業程序員工作最有用的基本功能。這 些基本功能包括運算、決策、通訊、機械手運動、工具指令以及傳感器數據處理等。許多正在運行的機器人系統,只提供機械手運動和工具指令以及某些簡單的傳感 數據處理功能。

1. 運算
  在作業過程中執行的規定運算能力是機器人控制系統最重要的能力之一。

  如果機器人未裝有任何傳感器,那么就可能不需要對機器人程序規定什么運算。沒有傳感器的機器人只不過是一臺適于編程的數控機器。

  裝有傳感器的機器人所進行的一些最有用的運算是解析幾何計算。這些運算結果能使機器人自行做出決定,在下一步把工具或夾手置于何處。

2. 決策
  機器人系統能夠根據傳感器輸入信息做出決策,而不必執行任何運算。按照未處理的傳感器數據計算得到的結果,是做出下一步該干什么這類決策的基礎。這種決策能力使機器人控制系統的功能更強有力。

3. 通訊
  機器人系統與操作人員之間的通訊能力,允許機器人要求操作人員提供信息、告訴操作者下一步該干什么,以及讓操作者知道機器人打算干什么。人和機器能夠通過許多不同方式進行通訊。

4. 機械手運動
  可用許多不同方法來規定機械手的運動。最簡單的方法是向各關節伺服裝置提供一組關節位置,然后 等待伺服裝置到達這些規定位置。比較復雜的方法是在機械手工作空間內插入一些中間位置。這種程序使所有關節同時開始運動和同時停止運動。用與機械手的形狀 無關的坐標來表示工具位置是更先進的方法,而且(除X-Y-Z機械手外)需要用一臺計算機對解答進行計算。在笛卡兒空間內插入工具位置能使工具端點沿著路 徑跟隨軌跡平滑運動。引入一個參考坐標系,用以描述工具位置,然后讓該坐標系運動。這對許多情況是很方便的。

5.工具指令
  一個工具控制指令通常是由閉合某個開關或繼電器而開始觸發的,而繼電器又可能把電源接通或斷 開,以直接控制工具運動,或者送出一個小功率信號給電子控制器,讓后者去控制工具。直接控制是最簡單的方法,而且對控制系統的要求也較少?梢杂脗鞲衅鱽 感受工具運動及其功能的執行情況。

6. 傳感數據處理
  用于機械手控制的通用計算機只有與傳感器連接起來,才能發揮其全部效用。我們已經知道,傳感器具有多種形式。此外,我們按照功能,把傳感器概括如下:

 。1) 內體感受器用于感受機械手或其它由計算機控制的關節式機構的位置。

 。2) 觸覺傳感器用于感受工具與物體(工件)間的實際接觸。

 。3) 接近度或距離傳感器用于感受工具至工件或障礙物的距離。

 。4) 力和力矩傳感器用于感受裝配(如把銷釘插入孔內)時所產生的力和力矩。

 。5) 視覺傳感器用于“看見”工作空間內的物體,確定物體的位置或(和)識別它們的形狀等。傳感數據處理是許多機器人程序編制的十分重要而又復雜的組成部分。