當前位置:網(wǎng)站首頁(yè) > 新聞資訊
摘 要:
根據現代工業(yè)機器人發(fā)展的趨勢和需求,本文提出了一種模塊化機器人控制系統的設計方法,并且給出了具體實(shí)現。本文闡述了該設計的基本思想和原則,提出了實(shí)現模塊化設計的中間層架構設計方法。本文后按照雙通道機器人給出具體業(yè)務(wù)模塊的詳細內容描述。本文提出的機器人架構已經(jīng)編碼用于實(shí)際的工業(yè)機器人,經(jīng)過(guò)實(shí)踐驗證,該設計具有魯棒性強,柔性化程度高,可靈活配置,可動(dòng)態(tài)擴展等優(yōu)點(diǎn)。
關(guān)鍵詞:
上世紀七十到九十年代,由于電子技術(shù)等的約束,工業(yè)控制系統還是以單片機等為主,整個(gè)軟件系統的規模不大。但是隨著(zhù)計算機軟硬件技術(shù)、物聯(lián)網(wǎng)技術(shù)等的快速發(fā)展,越來(lái)越多的工業(yè)控制系統都轉向了基于計算機操作系統的體系架構
對于機器人控制系統,柔性通常指如下一些方面:
系統的模塊應該能夠按照不同層次進(jìn)行分布部署,例如,按照線(xiàn)程、按照進(jìn)程、按照網(wǎng)絡(luò )等方式。同時(shí),系統按照不同層次部署時(shí),不同的模塊應該共享相同的通訊架構接口。
系統的業(yè)務(wù)應當已模塊的方式組織,這樣可以大化的重用已經(jīng)實(shí)現的業(yè)務(wù)內容。
可配置性是指可以對控制系統進(jìn)行多方面的配置,通常包含如下內容:系統結構配置,也就是模塊之間的耦合關(guān)系;系統功能配置,也就是選擇配置系統功能(算法)。
可移植性通常指應用的硬件無(wú)關(guān)、操作系統無(wú)關(guān)性,通過(guò)提供硬件抽象和操作系統的封裝,使得應用程序無(wú)需關(guān)注設備的底層。
每一個(gè)軟件工程項目都是持續演進(jìn)的,依賴(lài)于完善的文檔、單元測試框架和一致性的設計理念,使得軟件可以得以在初代開(kāi)發(fā)人員離開(kāi)后由后續開(kāi)發(fā)人員延續開(kāi)發(fā)。
綜合以上特性,本文給出了一種模塊化機器人控制系統的內涵和架構,并給出了模塊化的設計細節。
模塊化設計需要解決一系列的問(wèn)題,包括但不限于:
各模塊如何劃分功能;模塊化是如何實(shí)現柔性的;模塊間消息傳遞的粒度如何劃分。
模塊化的設計在不同的領(lǐng)域軟件中有不同的定義,通常認為模塊化架構的定義就是:模塊是向系統其他模塊提供廣義的服務(wù)的一個(gè)組件。對于機器人控制系統,模塊化主要有三個(gè)層面的意義:
模塊可以被替換,也就是一個(gè)模塊可以被提供相同服務(wù)的其他模塊替換。
模塊可以擴展,也就是一個(gè)模塊的設計應該可以實(shí)現各種特定的應用。
模塊設計不變,很多模塊可以共享相同的設計方法。
針對以上模塊化設計的要點(diǎn),設計時(shí)需要考慮如下的一些關(guān)鍵問(wèn)題:
從軟件層面,架構設計和功能業(yè)務(wù)的開(kāi)發(fā)是分離的,架構設計只進(jìn)行軟件框架的工作,而功能業(yè)務(wù)開(kāi)發(fā)部分負責使用架構設計的框架進(jìn)行業(yè)務(wù)功能的系統開(kāi)發(fā)。
機制和策略分離是軟件工程的重要設計理念。兩者的本質(zhì)區別就是如何實(shí)現一個(gè)功能和如何使用一個(gè)功能的區別。通常軟件開(kāi)發(fā)應當在設計階段盡可能的面向機制編程,而不要過(guò)渡的關(guān)注策略細節,否則會(huì )導致軟件在柔性和可維護性上發(fā)生問(wèn)題。
數據流指一個(gè)模塊與其他模塊產(chǎn)生的交互數據,執行控制是模塊內執行業(yè)務(wù)流。本條原則不是指數據流不能影響模塊內業(yè)務(wù)執行,而是指不能由數據流來(lái)主導模塊內的業(yè)務(wù)模型,這通常指:模塊間的通訊不應影響執行控制;模塊可能被重新配置。
模塊化架構的服務(wù)通常應當封裝操作系統的實(shí)現細節,這樣讓開(kāi)發(fā)者無(wú)需關(guān)注過(guò)多的操作系統底層實(shí)現。
提高軟件產(chǎn)品質(zhì)量、縮短開(kāi)發(fā)周期、降低開(kāi)發(fā)成本是軟件開(kāi)發(fā)人員的迫切要求,軟件產(chǎn)品的模塊化和可復用性是滿(mǎn)足這一要求的唯一方法
模塊中間層系統提供標準化的創(chuàng )建模塊方法。同時(shí),模塊中間層可以為模塊指定操作系統相關(guān)的一些基本操作,例如創(chuàng )建線(xiàn)程、終止線(xiàn)程等。
類(lèi)型系統中間層為系統提供了構建結構化數據表示的方法,并且提供了若干種將類(lèi)型數據轉換為主流數據串行化框架(JSON、OpcUa)的方式。類(lèi)型系統是下述服務(wù)中間層、參數中間層等的基礎。
服務(wù)中間層系統為模塊間提供標準的服務(wù)調用機制,當模塊處于不同的層次時(shí),例如,網(wǎng)絡(luò )間或者同一進(jìn)程中的不同線(xiàn)程,調用服務(wù)不用關(guān)注其背后的技術(shù)實(shí)現,服務(wù)中間層已經(jīng)按照表1所示進(jìn)行實(shí)現。
參數中間層為模塊參數修改、讀寫(xiě)提供了標準方法,這樣,所有模塊可以共享同一套參數機制。
模塊加載框架是終實(shí)現應用程序的重要框架、模塊加載框架可以設置哪些模塊需要加載、以何種方式加載,不同模塊之間的數據交互方式,模塊參數加載的方式等。
基于上述中間層,完成模塊化機器人控制系統的框架(中間件)部分。系統總體中間層設計思路如圖1所示。
由圖中所示,系統的日志系統、參數系統、數據類(lèi)型系統提供統一服務(wù),且模塊的運行控制標準化,模塊間數據流和服務(wù)也采用統一的機制。
本部以雙通道機器人(一個(gè)控制器同時(shí)控制兩個(gè)獨立的機械臂,同時(shí)機械臂之間存在數據交互)控制為例,描述了機器人業(yè)務(wù)架構構成。系統總體框架如圖2所示。
圖中每個(gè)矩形框均為一個(gè)模塊,紅線(xiàn)內為實(shí)時(shí)系統部分,紫色模塊均為通訊模塊。Group1和Group2中的為單獨每個(gè)通道需要部署的模塊,這部分代碼實(shí)現可重用。
按照該結構可以實(shí)現代碼高可重用的雙通道機器人控制系統,系統柔性高,可擴展性強。
以下描述主要模塊的功能。
總線(xiàn)模塊提供總線(xiàn)設備數據讀寫(xiě)的驅動(dòng)服務(wù)。如前所述,模塊化使得相似功能的模塊只要提供相同的服務(wù),則可以相互代替,針對機器人硬件總線(xiàn)選擇不同,還可以靈活的使用例如CanOpen總線(xiàn)模塊來(lái)代替Ethercat模塊。
該模塊提供如下服務(wù):
·總線(xiàn)拓撲結構查詢(xún)服務(wù)。
·總線(xiàn)數據讀寫(xiě)服務(wù)。
·總線(xiàn)錯誤診斷服務(wù)。
關(guān)節控制模塊是系統控制關(guān)節運動(dòng)的模塊,提供各種和關(guān)節相關(guān)的服務(wù):
·關(guān)節控制設置服務(wù),包括關(guān)節驅動(dòng)模式、關(guān)節伺服上下使能等。
·關(guān)節狀態(tài)查詢(xún)服務(wù),包括關(guān)節驅動(dòng)狀態(tài)、驅動(dòng)錯誤等數據讀取。
·關(guān)節運動(dòng)控制服務(wù),包括各種單關(guān)節運動(dòng)、多關(guān)節同步運動(dòng)、工作空間運動(dòng)等服務(wù)。
可以看到針對雙通道,該關(guān)節組控制模塊共用同一套代碼,只需部署參數調整即可適配不同的機械臂硬件
IO控制模塊是系統控制外部IO的模塊,提供如下服務(wù):
·獲取模擬量和數字量輸入。
·設置模擬量和數字量輸出。
安全控制器實(shí)現負責監控機器人的安全狀態(tài),確保機器人的安全性。主要參考標準為ISO12100、ISO10218-1、ISO10218-2
本模塊通過(guò)一系列的參數配置,設置機器人的結構類(lèi)型、DH參數、關(guān)節限位等信息。
·獲取機器人結構類(lèi)型。
·獲取機器人DH參數。
·獲取機器人關(guān)節限位信息。
工業(yè)機器人通常通過(guò)示教編程方式進(jìn)行操作
·執行機器人程序。
·停止機器人程度。
·單步執行機器人程序。
工業(yè)機器人通過(guò)安裝在機械臂末端的末端執行器執行任務(wù),對于末端執行器,有包括末端執行器運動(dòng)學(xué)轉換、質(zhì)量、重心位置、慣量矩陣等一系列數據通過(guò)參數進(jìn)行配置。提供如下服務(wù):
·末端執行器運動(dòng)學(xué)標定服務(wù)。
·末端執行器動(dòng)力學(xué)標定服務(wù)。
實(shí)現機器人控制系統的對外API,機器人示教器和外部第三方程序通過(guò)這些API和機器人系統交互數據。
·OpcUa模塊,負責提供系統的OpcUa標準通訊協(xié)議。
·SoftPLC模塊,負責提供系統的軟PLC業(yè)務(wù)。
系統還包括其它各種業(yè)務(wù)模塊,由于模塊化的設計,后續還可以添加例如針對碼垛、打磨、焊接等各種工藝模塊。
現代機器人控制系統對柔性、模塊化提出了諸多需求、根據軟件工程的基本原理和機器人控制系統的特征,本文給出了一種模塊化的機器人控制系統的設計方法和思路并進(jìn)行了實(shí)現。實(shí)現分為兩個(gè)部分,首先設計實(shí)現模塊化機器人控制系統的中間層框架,然后基于中間層框架開(kāi)發(fā)了業(yè)務(wù)系統。目前該系統已經(jīng)作為產(chǎn)品實(shí)際使用,實(shí)際使用證明該架構和系統柔性高、魯棒性強,是一種可以用于機器人控制系統的設計。
[1]付永紅,熊飛麗.基于WINDOWS下CNC系統軟件模塊化設計的研究[J].機電工程, 2000, 17(6):42-44.
[2]曹軍威,范玉順.柔性軟件系統的概念,方法與實(shí)踐[J].計算機科學(xué), 1999, 26(2):74-77.
[3]夏凌云.嵌入式Linux通信軟件開(kāi)發(fā)中的設計模式[J].數字通信, 2017(11):75-76.
[4]張愛(ài)紅,張秋菊.機器人示教編程方法[J].組合機床與自動(dòng)化加工技術(shù), 2003(4):47-49.
文章轉自中國知網(wǎng),如有侵權,聯(lián)系刪除
地址:青島市西海岸新區海濱工業(yè)園香海路168號
手機:13806390681 服務(wù)熱線(xiàn):0532-86131102
郵箱:qdhengchangkeji@163.com
魯ICP備18013584號