999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Qt的工業機器人語言系統的設計

2015-11-02 11:10:40陳富林
組合機床與自動化加工技術 2015年3期
關鍵詞:指令按鈕語言

楊 杏,陳富林,周 霏

(南京航空航天大學機電學院,南京 210016)

基于Qt的工業機器人語言系統的設計

楊 杏,陳富林,周 霏

(南京航空航天大學機電學院,南京 210016)

工業機器人語言系統是機器人控制系統的重要組成部分,在研究和分析了工業機器人語言系統的構成和特點的基礎上,提出了基于Qt和正則表達式的工業機器人的語言系統設計方案。該語言系統包括了機器人編程語言、編輯器和解釋器。自定義了動作級機器人編程語言;在此基礎上詳細設計了基于Qt圖形化界面的機器人編輯器,給出了編輯器各部分功能的具體實現;最后基于正則表達式詳細設計了機器人解釋器。該套機器人語言系統運用在工業機器人示教器上,具有良好的可可移植性。

語言系統;機器人編程語言;解釋器;Qt;正則表達式

0 引言

作為對工業機器人進行有效控制和利用的前提,機器人語言系統在整個機器人控制系統中占有十分重要的地位,它直接影響著工業機器人的基本作業和離線編程等,從而影響到用戶對機器人的控制效率[1]。機器人語言系統一般以軟件形式嵌入在示教器硬件中,軟硬件結合完成對機器人的控制。

由于工業機器人示教裝置和作業要求的多樣性,機器人語言系統也是各種各樣。這也就導致了機器人語言系統在不同的控制器和操作系統上的可移植性和可擴展性較差。而Qt是一個多平臺的C++圖形用戶界面應用程序架構。利用Qt編寫出來的應用程序,在幾乎不用修改的情況下,就可以同時在多種平臺和系統中運行,大大增加了機器人語言系統的可移植性。它提供了關于圖形用戶界面的應用程序所需的一切功能。它基于完全面向對象的C++,擴展性非常強,并且允許利用組件編程。

正是由于Qt優越的跨平臺性,所以本文設計和實現了一套基于Qt和正則表達式的工業機器人語言系統。利用Qt將三個模塊組合在一起構成了一個集成環境,并移植嵌入示教器中。以示教器界面呈現給使用者,使對機器人的控制變得簡單而高效。

1 工業機器人語言系統

1.1 語言系統結構和示教器

機器人語言系統不僅要能夠支持機器人編程、控制,還應該要支持機器人與外圍設備、傳感器的接口、和計算機的通信等,機器人語言系統如圖1所示。

工業機器人語言系統以示教器為載體,示教器生成的空間點與機器人編程語言一起構成了機器人源程序。機器人源程序經過解釋器的翻譯生成主控制器所能識別的命令,從而控制機器人本體的運動。

示教器采用嵌入式ARM板,外接LCD觸摸屏,并移植嵌入式Linux操作系統。通過RS232與主控制器通信。它提供美觀實用的人機界面:示教時,操作示教界面的按鈕向主控制器發送驅動各關節軸的命令,使機械手到達相應的示教點,并記錄示教點的位姿;再現模式時,通過機器人編程語言系統和記錄的示教點構成的源程序再現示教的軌跡。

1.2 機器人編程語言設計

機器人編程語言是機器人運動和控制的結合點,是實現人與機器人通訊的主要方法[2],也是研究機器人語言系統的起點。本文所使用的編程語言是自定義的指令系統,為動作級語言,一個命令對應一個動作,語言簡單,便于示教編程[3]。

機器人指令可以簡單分為運動控制指令、程序控制指令、輸入輸出指令等。對于本文研究的工業機器人有如下幾條指令代碼:

(1)運動控制指令:MOVL、MOVC、MOVJ等指令

(2)控制指令:IF、THEN、ELSE、ENDIF、WAIT、JUMP、CALL、TIMER等指令

(3)輸入輸出指令:DIN、DOUT等指令

程序段是為了完成某個動作要求所需指令的組合[4],程序段格式如表1所示。

表1 機器人編程語言程序段格式

在程序段中,字與字之間以空格分隔,以“;”作為一個程序段的結束符。每個程序段完成一個功能或者動作,若干程序段按照一定的結構構成機器人程序塊。

2 工業機器人程序編輯器的設計

機器人語言編程工作界面的設計是示教盒界面設計中最重要的一部分,操作人員通過此界面完成對工業機器人的示教編程工作[5]。基于Qt設計的界面如圖2所示,此界面功能的實現主要靠四部分來完成,最上面的列表框用來顯示機器人編程工作文件的內容,中間的編輯框是用來編輯當前的編程語句,最下面的按鈕組用來對上面的兩部分進行相應的控制操作。右邊的按鈕組用來對機器人語言進行調試和運行。

圖2 程序編輯器界面

2.1 工作內容列表框的設計

列表框使用的是QListWidget部件,QListWidget可以顯示一個清單,清單中的每個項目是QListWidget-Item的一個實例,通過QListWidgetItem來操作[6],可以對清單中的每個項目進行添加、刪除、查找和替換。

2.2 語句編輯框的實現

編輯框使用了Qt的編輯框控件類(QLineEdit),通過text()函數獲取QLineEdit中的內容。在語句編輯框中設置了一個檢驗器來限制輸入的范圍。Qt提供了三個內置檢驗器類[7]:QIntValidator、QDoubleValidator、QRegExpValidator。在這里使用檢驗器類QRegExpValidator,讓它帶一個正則表達式來限制機器人語言輸入,即只能按照定義好的程序段格式輸入。避免輸入未定義的語句,有效防止錯誤的產生。QRegExp regExp("(N\d+)(\s)(MOVL)(\s)(\d+)(\s)(\d+)(\s)((OPEN)|(CLOSE));");//程序段格式的正則表達式

ui->lineEdit->setValidator (new QRegExpValidator(regExp,this));//調用檢驗器

2.3 編輯操作按鈕的實現

(1)添加按鈕的實現

添加按鈕是語句編輯框的默認按鈕。默認按鈕就是當用戶按下Enter鍵能夠按下對應的按鈕[8]。當編輯框沒有內容時,添加按鈕是灰色的不能和用戶發生交互操作,只有當行編輯器中的文本發生變化時就會調用槽enableAddButton()。enableAddButtond的實現如下:

ui->Add_pushButton->setEnabled(ui->line-Edit->hasAcceptableInput());//如果有文本輸入就調用使能函數。

輸入完成后,當用戶單擊添加按鈕或者按下Enter時,會調用Add_PushButton_Slot()私有槽。私有槽的實現是將行編輯器中的文本內容取出來,產生新的一個項目,并加入到清單(QListWidget)中。

QString AddName=ui->lineEdit->text();//將編輯框內的文本取出來;

QListWidgetItem*item=new QListWidgetItem;

item->setText(AddName);//把文本內容添加到項目QListWidgetItem中

ui->listWidget->addItem(item);//將新產生的項目加入到清單QListWidget中

ui->lineEdit->clear();//當前編輯框清空(2)刪除按鈕的實現

主要實現刪除QListWidget中的一個Item,利用takeItem的類函數實現。QListWidgetItem*item=ui ->listWidget->takeItem(ui->listWidget->currentRow());

delete item;

(3)刪除全部按鈕實現

主要實現刪除QListWidget中的全部Items,即此按鈕可以刪除全部顯示在工作列表框中的所有內容

(4)軟鍵盤實現

在觸摸屏上的激活方式只限于單擊,因此也就需要設計一套輸入字母和數值的方法[9]。在此使用的是軟鍵盤的方法,當用戶需要輸入字母或數字時,點擊輸入框時,將彈出軟鍵盤對話框,用戶可以點擊軟鍵盤的字母或數字輸入數據,點關閉后將回到先前的對話框中,并將輸入數據顯示出來。需要輸入的編輯框都重載了鼠標單擊函數(相當于觸摸屏點擊),在重載函數里實現了軟鍵盤的彈出功能。如圖3所示。

圖3 軟鍵盤界面

3 工業機器人程序解釋器的設計

解釋器負責將自定義的機器人語言翻譯成機器人目標平臺能識別的指令系統。傳統解釋過程為輸入的機器人程序進行譯碼和數據處理的過程,解釋程序首先要識別出源程序中的每個單詞,再分析每個語句及其語義,最后根據指令的語義執行相關動作。即解釋過程分為詞法分析、語法分析、語義分析、信息提取、錯誤記錄和處理等過程[10]。

傳統的解釋過程復雜,實時性不好。針對這一問題本文設計的解釋器基于正則表達式。由于在程序編輯器模塊對輸入的機器人語言進行了限制,大大降低了錯誤代碼的產生,也可以省去詞法分析和語法分析的復雜過程,只對代碼進行語義分析。對于一行正確輸入的代碼,只需要按照一定的匹配模式,進行關鍵詞歸約,并根據關鍵詞進入相應的解釋子程序,方便快捷的完成機器人指令程序的解釋[11]。解釋器流程圖如圖4所示。

首先利用正則表達式建立關鍵字表,然后依次從列表框中讀入一條語句,利用剛剛建立的關鍵詞表對整條語句進行匹配,如果匹配成功則根據關鍵字類型來調用相應的分析函數;如果匹配不成功則錯誤檢查確定行號錯誤還是參數錯誤。

3.1 建立關鍵詞表

利用正則表達式為每條語句建立一個關鍵詞表,只有嚴格按照正則表達式所規定的格式的語句才能被完全匹配。

增加機器人語言只需要在此多建立相對應的正則表達式即可,方便進行語言的擴展,使得解釋器具有良好的靈活性。

3.2 匹配并解釋

對于每一種指令類型,都要設計其各自的語義檢查和目標代碼生成的接口。此函數中包含大量的 if else if語句來根據不同的匹配語句調用相應的解釋函數,函數的主要結構如下。

對于運動控制、輸入輸出、等待等簡單指令,只需要按照其指令及參數做相應的簡單處理即可。

3.3 流程控制指令的解釋方法

對于流程控制指令等,常還需要進行解釋程序段的跳轉等。現以條件分支指令說明流程控制指令的解釋方法。

IF IN/OUT 5 1/0 JUMP/CALL;

此指令用于判別輸入輸出口的狀態(“0”和“1”),若為輸入輸出口的狀態符合語句定義,則執行后面的操作,否則跳過此程序行。后面的操作可為跳轉或子程序調用,所以,條件分支指令語義分析的核心任務是檢測輸入輸出口的狀態、跳轉或子程序調用的處理。在語義分析程序讀到“IF”指令后,讀進下一個符號判斷是檢測輸入還是輸出口,然后讀取下一個符號決定檢測第幾個輸入或輸出口,根據檢測結果判斷是否執行下面的操作。

若條件輸入輸出口的狀態滿足要求,再根據條件表達式后的第一個字符進行相應的處理。

若為“JMUP”,讀進下一個符號即標號,利用正則表達式對標號進行匹配,若找到則從標簽處開始解釋,否則進行錯誤處理;

若為“CALL”,則讀進下一個符號即子程序名,利用正則表達式對子程序號進行匹配,若找到保留當前程序解釋的斷點同時開始解釋子程序,若沒找到則進行錯誤處理。

條件分支指令解釋的流程圖如圖5所示。

圖5 條件分支指令處理流程圖

4 測試和結論

將開發好的Qt應用程序移植到示教器中,示教器界面如圖6所示,輸入完成后單擊測試框中的自動按鈕完成測試。

圖6 示教器界面

示教生成了10個點,其中0號點為初始位置,1號點為抓取工件的位置,5、6點為兩個放置工件的位置。傳感器5號通道為1時應該將工件放置在5號位置,否則將工件放置到6號位置。

實驗表明基于Qt的機器人語言系統能夠很好的完成對機器人的控制,滿足工業機器人實時性的要求。同時由于Qt程序能在不同的平臺和操作系統上運行,所以該套機器人語言系統能夠適用于多個平臺和系統,具有較好的可移植性。

[1]郭顯金.工業機器人編程語言的設計與實現[D].武漢:華中科技大學,2013.

[2]別衛春,朱志紅,葉伯生,等.HNC-IR機器人語言解釋系統的研究與實踐[J].機電一體化,2000(3):27-30.

[3]張瑋光,劉俊玲,趙新,等.微操作機器人編程語言[J].中南大學學報(自然科學版),2007,38(1):558-559.

[4]陳生翰.不銹鋼廚具拉伸成型工序機器人控制軟件設計與實現[D].廣州:華南理工大學,2011.

[5]王彥.碼垛機器人示教盒系統軟硬件設計[D].上海:上海交通大學,2010.

[6]丁林松,黃麗琴.Qt4圖形設計與嵌入式開發[M].北京:人民郵電出版社,2009.

[7]閆鋒欣.C++GUIQt4[M].北京:電子工業出版社,2008.

[8]蔡志明.精通Qt4編程[M].北京:電子工業出版社,2008.

[9]謝芬,潘麗,劉守印.基于QT/E的嵌入式Linux系統的軟鍵盤實現[J].電子設計工程,2012,20(5):177-179.

[10]何嘉健,李偉光.基于GRETA正則表達式的機器人解釋器的研究[J].組合機床與自動化加工技術,2012(1):17-24.

[11]任松濤.NC代碼編譯器的設計與實現[D].西安:西北工業大學,2007.

(編輯 李秀敏)

Design of the Industry Robot Language System Based on Qt

YANG Xing,CHEN Fu-lin,ZHOU Fei
(Collage of Mechanical and Electronic Engineering,NanJing University of Aeronautics and Astronautics,Nanjing 210016,China)

Industrial robot language system is an important part of the robot control system,research and analysis the structure and characteristics of robot language system.The design scheme of industrial robot language system is put forward based on Qt and Regular Expression.Robot programming language,the editor and the interpreter are included in the language system.On the basis of the custom action level robot programming language,detailed design a graphical interface editor based on Qt.Editor function of each part are given specific implementation.Then detailed design robot interpreter based on Regular Expression.The set of robot language system has good extensibility.

robot language system;robot programming language;interpreter;Qt;regular expression

TH166;TG506

A

1001-2265(2015)03-0071-04 DOI:10.13462/j.cnki.mmtamt.2015.03.019

2014-07-09;

2014-08-12

楊杏(1990—),男,江蘇泰興人,南京航空航天大學碩士研究生,研究方向為機器人及自動控制,(E-mail)yxxb@163.com。

猜你喜歡
指令按鈕語言
這些按鈕能隨便按嗎?
聽我指令:大催眠術
當你面前有個按鈕
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
讓語言描寫搖曳多姿
累積動態分析下的同聲傳譯語言壓縮
我有我語言
內心不能碰的按鈕
商業評論(2014年9期)2015-02-28 04:32:41
主站蜘蛛池模板: 国产精品 欧美激情 在线播放| 国产精品第页| 成年人视频一区二区| 国产青青操| 欧美伦理一区| 国产色婷婷| 日本亚洲欧美在线| 高清欧美性猛交XXXX黑人猛交| 日本不卡视频在线| 男女性午夜福利网站| 免费在线色| 中国成人在线视频| 亚洲欧美日韩成人高清在线一区| 欧美色伊人| 91久久性奴调教国产免费| 日韩欧美国产区| 久久成人国产精品免费软件 | 极品国产一区二区三区| 欧美日韩一区二区三区四区在线观看 | 欧美日韩成人在线观看| 国产精品一区二区在线播放| 无码中文AⅤ在线观看| 国产精品偷伦在线观看| 青青草原偷拍视频| 国产精品夜夜嗨视频免费视频| 国产丰满成熟女性性满足视频| 国产成人综合亚洲网址| 欧美成人精品高清在线下载| 天堂岛国av无码免费无禁网站| 91最新精品视频发布页| 国产成人综合在线观看| 日本黄网在线观看| 国产91蝌蚪窝| 99国产精品国产| 毛片网站在线播放| 97亚洲色综久久精品| 青青青视频蜜桃一区二区| 国产靠逼视频| 婷婷成人综合| 国产精品综合久久久| 天天综合网站| a级毛片网| 老熟妇喷水一区二区三区| 国产黄在线观看| 四虎永久免费网站| 亚洲精品免费网站| 男人天堂伊人网| 色噜噜综合网| 成人免费一区二区三区| 亚洲天堂色色人体| 国产精品视频猛进猛出| 亚洲全网成人资源在线观看| 91欧美在线| 亚洲成人免费看| 国产在线视频自拍| 国产福利观看| 99视频在线观看免费| 青青草国产精品久久久久| av在线5g无码天天| 就去吻亚洲精品国产欧美 | 日韩国产一区二区三区无码| 国产成人综合日韩精品无码首页 | 国产在线自乱拍播放| 国产日本欧美亚洲精品视| 亚洲欧美自拍中文| 毛片最新网址| 四虎影视永久在线精品| 91福利在线观看视频| 91福利免费视频| 国产亚洲精| 又猛又黄又爽无遮挡的视频网站| 亚洲色精品国产一区二区三区| 精品视频一区在线观看| 男女性色大片免费网站| 免费女人18毛片a级毛片视频| 亚洲人成网站观看在线观看| 久久久久国产一级毛片高清板| 国产日韩欧美精品区性色| 综合人妻久久一区二区精品 | 亚洲精品国产精品乱码不卞| 天天爽免费视频| 精品无码专区亚洲|