魏烈祥 張晶 汪天照 廖輝 秦家寶
[摘? ? 要]介紹了6軸機(jī)械臂自動(dòng)進(jìn)樣控制系統(tǒng)軟件開發(fā)的一種軟件設(shè)計(jì)方法。使用配置文件,降低了軟件開發(fā)的復(fù)雜度以及與其他配套的管理軟件的耦合度,使得配套軟件設(shè)計(jì)時(shí)無需關(guān)心自動(dòng)進(jìn)樣裝置的具體硬件,通過調(diào)用中間件函數(shù),做到硬件無關(guān)性。
[關(guān)鍵詞]配置文件;自動(dòng)進(jìn)樣;機(jī)械臂;中間件
[中圖分類號]TP241 [文獻(xiàn)標(biāo)志碼]A [文章編號]2095–6487(2021)04–00–03
Design Method of Automatic Sampling Software for 6-axis
Robotic Arm Based on File Configuration
Wei Lie-xiang,Zhang Jing,Wang Tian-zhao,Liao Hui,Qin Jia-bao
[Abstract]A software design method for the software development of the 6-axis robotic arm automatic sampling control system is introduced. The use of configuration files reduces the complexity of software development and the degree of coupling with other supporting management software, so that the supporting software design does not need to care about the specific hardware of the automatic sampling device. By calling middleware functions, hardware independence is achieved.
[Keywords]configuration file; automatic sampling; robotic arm; middleware
多軸機(jī)械臂已經(jīng)在自動(dòng)進(jìn)樣系統(tǒng)中得到廣泛應(yīng)用。機(jī)械臂進(jìn)樣軌跡控制一般采用軟件編程或PLC編程實(shí)現(xiàn),當(dāng)進(jìn)樣裝置結(jié)構(gòu)需要調(diào)整,點(diǎn)位位置發(fā)生變化或改變運(yùn)行軌跡,增加功能時(shí),則需要改動(dòng)軟件或重新對機(jī)械臂進(jìn)行PLC編程,軟件設(shè)計(jì)與硬件相關(guān)性太大,軟件重復(fù)利用率很低,人員成本高。
針對上述問題,本文采用一種文件配置的方法,通過點(diǎn)位關(guān)節(jié)坐標(biāo)文件和運(yùn)動(dòng)功能文件的配置,通過中間件函數(shù)調(diào)用,實(shí)現(xiàn)自動(dòng)進(jìn)樣需要的各項(xiàng)運(yùn)動(dòng)和控制功能,管理軟件無需知道自動(dòng)進(jìn)樣裝置硬件結(jié)構(gòu)和運(yùn)動(dòng)原理就能實(shí)現(xiàn)需要的功能,無需軟件設(shè)計(jì)人員參與,生產(chǎn)維護(hù)成本低。
1 自動(dòng)進(jìn)樣裝置的組成和工作原理
1.1 組成
自動(dòng)進(jìn)樣裝置由支架平臺、6軸機(jī)械臂、樣品托盤、攝像頭、掃碼裝置、控制器和電腦組成。機(jī)械臂的運(yùn)動(dòng)驅(qū)動(dòng)由控制器完成,運(yùn)動(dòng)算法由自動(dòng)進(jìn)樣控制軟件在電腦上實(shí)現(xiàn)。托盤上樣品擺放位置按照多軌道設(shè)計(jì),每個(gè)軌道樣品位置地址順序編址,第一軌道樣品地址從1到M;第二軌道樣品地址從M+1到N;第三軌道樣品地址從N+1到K;第四軌道樣品地址從K+1到L。攝像頭可以檢測樣品托盤上實(shí)際存放了多少樣品,存放在什么位置。掃碼裝置可以讀出樣品上的標(biāo)簽。如圖1所示。
1.2 工作原理
系統(tǒng)管理軟件首先通過攝像頭,識別樣品托盤上有多少個(gè)樣品,樣品擺放在什么位置,然后按照檢測策略進(jìn)樣檢測。自動(dòng)進(jìn)樣主要有3個(gè)功能。
(1)送樣??刂茩C(jī)械臂到樣品托盤指定樣品位置,抓取樣品運(yùn)動(dòng)到掃碼位置,識別樣品編號,然后將樣品送到檢測系統(tǒng)指定的檢測位置,將樣品放好,機(jī)械臂抓手松開,機(jī)械臂返回到就緒位置。
(2)放回。機(jī)械臂從就緒位置到檢測系統(tǒng)的檢測位置,將樣品抓起運(yùn)動(dòng)到樣品托盤上需要放回的位置,機(jī)械臂回到就緒位置。
(3)重置。檢測系統(tǒng)按一定算法,控制機(jī)械臂到樣品托盤上抓取樣品,運(yùn)動(dòng)到掃描位置,掃描樣品標(biāo)簽,識別后再放到樣品托盤上要求擺放的位置,反復(fù)操作,直到達(dá)到擺放要求,最后機(jī)械臂回到就緒位置,實(shí)現(xiàn)樣品按照指定順序重新擺放。
1.3 自動(dòng)進(jìn)樣控制軟件需求分析
由于自動(dòng)進(jìn)樣裝置有大有小,還有樣品托盤可能是不規(guī)則圓形,樣品擺放位置不同,運(yùn)動(dòng)軌跡會(huì)發(fā)生變化,需要軟件設(shè)計(jì)以適合這些變化,盡量做到檢測系統(tǒng)軟件設(shè)計(jì)與具體進(jìn)樣設(shè)備物理形狀無關(guān)。通過中間件來控制自動(dòng)進(jìn)樣設(shè)備,設(shè)備的控制及操作可配置化。
2 軟件設(shè)計(jì)
基于配置文件的自動(dòng)進(jìn)樣中間件軟件設(shè)計(jì)方法,即自動(dòng)進(jìn)樣控制根據(jù)配置文件,根據(jù)不同的服務(wù)要求,在配置文件中設(shè)置不同的功能運(yùn)動(dòng)軌跡,以中間件的形式實(shí)現(xiàn)自動(dòng)進(jìn)樣的運(yùn)動(dòng)軌跡控制和不同的控制功能。
2.1 配置文件的內(nèi)容與組織方式
配置文件是自動(dòng)進(jìn)樣軟件中間件的核心,確定了控制點(diǎn)位的物理位置、機(jī)械臂的運(yùn)動(dòng)軌跡、運(yùn)動(dòng)速度和機(jī)械臂抓手的控制動(dòng)作,同時(shí)能將不同的子功能序列組成特定主功能,所有主功能通過子功能序列組成,所有子功能由不同的單步運(yùn)動(dòng)序列組成,樣品位置可以通過樣品托盤的物理結(jié)構(gòu)定義。
配置文件分為點(diǎn)位關(guān)節(jié)坐標(biāo)文件、運(yùn)動(dòng)功能文件和操作功能配置文件。
點(diǎn)位關(guān)節(jié)坐標(biāo)文件是與運(yùn)動(dòng)軌跡相關(guān)的運(yùn)動(dòng)點(diǎn)位位置的機(jī)械臂6軸關(guān)節(jié)坐標(biāo)。由自動(dòng)進(jìn)樣軟件中間件讀取使用,見表1。
運(yùn)動(dòng)功能文件是按照不同的運(yùn)動(dòng)功能要求,將一組單步運(yùn)動(dòng)順序組織起來,控制機(jī)械臂完成一組相應(yīng)動(dòng)作的運(yùn)動(dòng)功能集合,由自動(dòng)進(jìn)樣軟件中間件讀取使用,見表2。
操作功能配置文件由檢測系統(tǒng)軟件處理,檢測系統(tǒng)軟件根據(jù)要執(zhí)行的自動(dòng)進(jìn)樣操作功能,查找相應(yīng)操作功能中的運(yùn)動(dòng)功能序列,調(diào)用自動(dòng)進(jìn)樣控制軟件中間件,完成相應(yīng)自動(dòng)進(jìn)樣操作,見表3。
舉例說明:如需要完成機(jī)械臂從樣品盤取樣品放到檢測位置進(jìn)行檢測,并且告訴檢測系統(tǒng)這是什么樣品。先從進(jìn)樣裝置示意圖上規(guī)劃一條曲線,就緒點(diǎn)A(序號為:2L+1)→樣品所在軌道的首位位置提升處(X_UPf)→樣品所在位置提升處(X_UP)→樣品位置(X_DOWN)+抓取→樣品提升處(X_UP)→樣品所在軌道首位位置提升處(X_DOWN)→掃描位置B(2L+2)+掃描→就緒位置A(2L+1)→樣品檢測入口位置C(2L+3)→樣品檢測位置D(2L+4)+松開→樣品檢測入口位置C(2L+3)→就緒位置A(2L+1)。
根據(jù)所需要取樣樣品位置,可以確定X_DOWN、X_UP和X_UPf這三個(gè)點(diǎn)位位置。
根據(jù)上面規(guī)劃的軌跡路線,確定了12個(gè)單步運(yùn)動(dòng)序列,再確定這些序列是直線運(yùn)動(dòng)還是曲線運(yùn)動(dòng)和運(yùn)動(dòng)速度,在表2中就可以配置一個(gè)“送樣”功能。
上述“送樣”功能也可以分成兩個(gè)或者多個(gè)功能組成的功能組,系統(tǒng)軟件通過調(diào)用多個(gè)功能組同樣能實(shí)現(xiàn)送樣功能。
2.2 程序?qū)崿F(xiàn)方法
自動(dòng)進(jìn)樣控制軟件中間件主要包含兩個(gè)函數(shù):單步運(yùn)動(dòng)函數(shù)和運(yùn)動(dòng)功能函數(shù)。
(1)單步運(yùn)動(dòng)函數(shù)。主要實(shí)現(xiàn)兩點(diǎn)之間的運(yùn)動(dòng)及實(shí)現(xiàn)機(jī)械臂抓手的動(dòng)作控制。
具體過程:讀取運(yùn)動(dòng)功能文件中運(yùn)行時(shí)間值,判斷本單步運(yùn)動(dòng)是否需要控制機(jī)械臂作軌跡運(yùn)動(dòng),如果值為零,則機(jī)械臂不做軌跡運(yùn)動(dòng),直接判斷機(jī)械臂末端是否需要?jiǎng)幼?,讀取機(jī)械臂抓手動(dòng)作類型,控制機(jī)械臂抓手相應(yīng)動(dòng)作。如果運(yùn)行時(shí)間不為零,則將控制機(jī)械臂從上一單步運(yùn)動(dòng)的點(diǎn)位位置按照運(yùn)動(dòng)功能文件中的運(yùn)動(dòng)模式、文件中的運(yùn)行時(shí)間做兩點(diǎn)運(yùn)動(dòng),完成后判斷機(jī)械臂抓手是否有動(dòng)作要求,如沒有則本單步運(yùn)動(dòng)完成。見圖2。
(2)運(yùn)動(dòng)功能函數(shù)。由多個(gè)單步運(yùn)動(dòng)序列按照運(yùn)動(dòng)功能要求,組成一個(gè)運(yùn)動(dòng)組合。
具體過程:打開運(yùn)動(dòng)功能文件(TrackTime.cvs),搜索該配置文件的運(yùn)動(dòng)功能欄目,將該運(yùn)動(dòng)功能中的點(diǎn)位位置欄目涉及的樣品位置信息替換成指定需要操作的樣品點(diǎn)位位置信息,并讀取文件中運(yùn)動(dòng)功能欄目下所有單步運(yùn)動(dòng)序列信息,按照單步運(yùn)動(dòng)序列,依次調(diào)用單步運(yùn)動(dòng)函數(shù),從而完成文件中運(yùn)動(dòng)功能欄目下的運(yùn)動(dòng)功能。運(yùn)動(dòng)功能流程見圖3。
檢測系統(tǒng)軟件的自動(dòng)進(jìn)樣操作部分只需要簡單調(diào)用上面自動(dòng)進(jìn)樣的兩個(gè)函數(shù)(中間件)即可。
具體:
如要將樣品盤上第7個(gè)樣品送到檢測位置進(jìn)行檢測,這個(gè)功能在運(yùn)動(dòng)功能文件(TrackTime.cvs)中功能名是“送樣”,用樣品點(diǎn)位位置7和功能名“送樣”作為參數(shù)調(diào)用運(yùn)動(dòng)功能函數(shù),通過這個(gè)函數(shù)就能完成需要完成的送樣功能。
為了增加軟件的實(shí)用性,系統(tǒng)軟件完成一個(gè)操作,通過增加幾個(gè)空功能操作,調(diào)用多個(gè)功能組,即通過多次調(diào)用運(yùn)動(dòng)功能函數(shù)來實(shí)現(xiàn)。
3 結(jié)語
本文提出了一種基于配置的自動(dòng)進(jìn)樣軟件中間件設(shè)計(jì)方法:1.降低了軟件設(shè)計(jì)的關(guān)聯(lián)性,降低檢測系統(tǒng)軟件與自動(dòng)進(jìn)樣控制軟件之間的耦合度。2.自動(dòng)進(jìn)樣設(shè)備物理尺寸發(fā)生改變不需要修改軟件,通過修改配置文件即可。
參考文獻(xiàn)
[1] 高天德,楊小麗.基于配置文件的自動(dòng)化測試軟件設(shè)計(jì)方法[J].測控技術(shù),2009,28(6):69-71,74.
[2] 何波玲,張志春,徐坤.基于外部配置文件的硬件檢測軟件生成方法研究[J].軟件導(dǎo)刊,2015,14(6):28-30.
[3] 玉龍,韋潛,蔡晴.一種基于讀取和解析XML文件的設(shè)備自動(dòng)配置方案[J].視聽,2019(5):6-8.
[4] 孟韶南,梁雁冰,師恒.基于ROS平臺的六自由度機(jī)械臂運(yùn)動(dòng)規(guī)劃[J].上海交通大學(xué)學(xué)報(bào),2016,50(S1):94-97.