陸偉,趙雅琪,褚云勝,黃學務
(安徽安利合成革有限公司,安徽 合肥 230601)
由于社會發(fā)展的需要,對工業(yè)機器人使用的數量將會越來越多,這就促使工業(yè)機器人向經濟實惠、高效、低損耗的方向發(fā)展,未來工業(yè)機器人學的重大挑戰(zhàn)就是經濟的可行性[1],而在工業(yè)機器人領域,由于機器人控制的復雜性,需要進行大量的數學運算以及在運動控制過程中需要與驅動系統(tǒng)進行實時的數據交換等原因,為了保證其穩(wěn)定性,這就對工業(yè)機器人控制系統(tǒng)軟件環(huán)境的操作系統(tǒng)提出了很高的要求。目前主流的工業(yè)機器人都是采用的專門定制的運動控制卡,加上實時操作系統(tǒng),這樣既保證了數據的實時傳輸同時又能保證運動控制的精確執(zhí)行,大大提升了整個系統(tǒng)的穩(wěn)定性,從而提升機器人的性能。如ABB機器人,采用的是VxWorks+.NetFrameWork高性能穩(wěn)定的操作系統(tǒng)來保證其精確的軌跡規(guī)劃和定位控制,KUKA機器人控制軟件運行于WindowsXP+VxWorks平臺,既可以提供良好的人機交互界面,又能提供精確的實時控制。Keba與ABB和庫卡不同,它不是機器人生產商,他的產品是工業(yè)級伺服控制系統(tǒng),能夠實現多自由度機器人的控制,其控制系統(tǒng)中通過VxWorks平臺或者Windows+RTX實時擴展平臺保證軟件運行環(huán)境的實時性,通過運動規(guī)劃和運動控制單元可以實現對總線式伺服驅動器的控制,從而達到對機器人的精確控制。采用VxWorks實時操作系統(tǒng)來搭建機器人控制系統(tǒng)是一個很好的解決方案,然而,其代價也是昂貴的,由于實時操作系統(tǒng)的成本高,很大程度限制了國內工業(yè)機器人產業(yè)化發(fā)展。
采用通用的操作系統(tǒng)由于消息處理機制的缺陷,不能滿足工業(yè)機器人在運行的過程中高穩(wěn)定性和響應快速性的要求,控制系統(tǒng)的上下位機之間進行頻繁地通信的實時必然不能滿足運動控制的要求,從而降低了工業(yè)機器人的產業(yè)化的可能。一些學者從控制算法以及控制系統(tǒng)的結構做了很大的改進。J.S.Gu和C.W.de Silva[2]提出,工業(yè)機器人系統(tǒng)必須具備具有實時操作功能的在線控制和高級智能決策,并設計了一種實時的開放架構的工業(yè)機器人控制系統(tǒng)。張良安,梅江平等[3]采用Petri網絡建立軟件模塊調用規(guī)則模型和控制邏輯模型,避免機器人在碼垛過程中的邏輯錯誤,從而提升機器人的碼垛效率,并通過實際的工業(yè)現場碼垛驗證了該方法的有效性。張廣立、談世哲等[4]介紹了一個在Windows NT平臺上開發(fā)的工業(yè)機器人控制系統(tǒng),該系統(tǒng)可在通用的工業(yè)計算機上運行,系統(tǒng)運行環(huán)境為Windows加RTX實時擴展,可保證良好的實時性;該系統(tǒng)硬件平臺為標準的PC硬件平臺,控制軟件采用模塊化設計具有良好的開放性和可擴展性。但是控制系統(tǒng)的軟件算法并不能脫離對實時性的要求。張廣立、付瑩等[5]開發(fā)了可在Windows NT平臺下運行的開放式工業(yè)機器人控制系統(tǒng)。該系統(tǒng)采用單處理器結構,可在通用的工業(yè)計算機和Windows NT加RTX實時擴展環(huán)境下運行,具有良好的實時性和友好的圖形用戶接口。雖然提供了解決控制系統(tǒng)的可擴展性,但是不能解決系統(tǒng)對實時性的要求。田茂勝,唐小琦等[6]以嵌入式工業(yè)PC為硬件平臺,Linux搭載實時RT核的操作系統(tǒng)為軟件平臺,采用模塊化的軟件設計方法,設計了工業(yè)機器人開放式控制系統(tǒng)來實現信號交互。Hang Thu Tran等[7]提出了一種實時的PC平臺的實時機器人學控制器,該控制器能夠方便的被用戶使用,并實現了對二自由度拾放(pick-and-place)機器人的控制,該控制器能夠使用戶方便的實現其合理復雜度的控制算法。這些工作從一定程度上能夠解決工業(yè)機器人在實際應用過程中的操作系統(tǒng)問題,但是不能解決對實時操作系統(tǒng)的依賴性。由于采用實時操作系統(tǒng)來搭建機器人控制系統(tǒng)的代價是昂貴的,如Vx-Works是Wind River System公司的一款實時操作系統(tǒng),其價格達到數十萬元甚至幾十萬元[8]。所以提出一種脫離主機,減少機器人控制對操作系統(tǒng)依賴性的控制策略將會對工業(yè)機器人產業(yè)化進程產生積極的意義。而泛型編程(Generic Programming)理論的發(fā)展使得跨語言編程成為可能,它支持不同數據類型的快速編程[9],這是使得字符特征的提取成為可能,通過對語法規(guī)則的構建,利用提取的語句特征進行程序合成,實現跨語言自動編程。
本文提出的自動編程技術解決工業(yè)機器人控制系統(tǒng)軟件系統(tǒng)對操作系統(tǒng)的依賴性的策略正是以這種以泛型編程理論為基礎的自動編程技術。通過自動編程技術,示教系統(tǒng)可以動態(tài)加載運動控制程序至下位運動控制器,使得下位運動控制器來管理機器人運動控制,在機器人運動的過程中,主機可以和控制器進行動態(tài)的通信,從而實現運動控制系統(tǒng)既不受限于主機的運動數據,也能響應主機的基本控制指令,如停止,參數監(jiān)測等。
分層控制系統(tǒng)是指工業(yè)機器人控制系統(tǒng)采用分層控制的思想,分成決策層和物理層兩個獨立的系統(tǒng),決策層完成運動學計算以及動力學模型估計,物理層作為運動的執(zhí)行部分,負責執(zhí)行決策層的決策結果[10]。采用分層控制可以降低系統(tǒng)功能模塊之間的耦合性,提高控制系統(tǒng)穩(wěn)定性和可修改性。該系統(tǒng)分層控制體現在采用自動編程技術的示教系統(tǒng)和帶有可編程運動控制器的運動控制系統(tǒng)。
示教系統(tǒng)采用的是工業(yè)嵌入式PC加載Windows操作系統(tǒng),和底層運動控制器采用Ethernet高速通信,
并且提供友好的示教界面。該部分主要實現兩個功能,機器人末端位置坐標記錄和自動生成運動控制程序。
1.1.1 機器人末端位置記錄
機器人的末端位置記錄是通過電機位置編碼器反饋回來機器人各個軸當前角度來進行正運動學計算獲得機器人末端位置的空間坐標和姿態(tài),并以機器人語言的方式進行記錄,產生標準化的機器人語言的運動程序。
末端位置記錄是為了方便機器人示教重現的過程,根據示教記錄的空間點坐標,運用正逆運動學進行軌跡規(guī)劃和速度規(guī)劃,產生各個軸轉動的角度,進而驅動電機轉動。
1.1.2 自動編程技術
自動編程技術主要是通過軟件算法來實現對機器人語言的運動學程序自動翻譯生成運動控制卡語言的運動程序,自動生成的程序嚴格的符合運動控制器的編程語法。在控制的過程中,我們不采用實時操作系統(tǒng),基于windowsXP的示教系統(tǒng)必須具有動態(tài)加載運動程序的能力,才能保證機器人運動正確運行。自動編程技術是實現工業(yè)機器人示教過程重現的關鍵技術,采用自動編程技術,可以對機器人示教系統(tǒng)產生的點進行程序合成,動態(tài)下載至運動控制卡中,從而避免了傳統(tǒng)工業(yè)機器人實時加載運動數據的過程,即機器人的運動控制由底層的運動控制器來管理,實現運動控制脫離主機而獨立運行。圖1所示為自動編程技術算法結構流程。從算法的結構圖可以看出,核心部分是機器人語言程序語句處理部分,采用泛型編程理論和機器人語言語法規(guī)則,提取出相關參數進行存儲并進行分類。具體做法是根據泛型變成理論,定義特征標志結構體和容器變量,將語句解析過程中所獲的特征標志賦值給特征結構體變量,將結構體存入容器變量。
圖1 基于泛型編程理論的自動編程技術框圖
其語句合成部分則按照運動控制卡語法進行合成,通過前面提取的運動學參數,包括坐標,插補方式,端口號和端口操作類型,根據事先定制好的運動控制卡運動學語法規(guī)則,對獲得的參數進行語句合成,生成可執(zhí)行文件,直接加載到運動控制卡中,使得機器人脫離主機,在只有運動控制卡參與控制的情況下進行示教重現運動。
運動控制系統(tǒng)采用的是運動控制卡搭載伺服系統(tǒng)來構建,由于運動控制卡是一個獨立的運動控制器,它在工作的過程中不需要主機的參與,同時能實時的與主機進行通信,接收和響應主機的命令,從而在運動的同時,能夠執(zhí)行主機的命令操作。該部分的運動控制卡采用支持加載運動程序的卡,即能通過上位機動態(tài)加載運動控制程序。
測試平臺是采用上述設計的機器人控制系統(tǒng)搭建工業(yè)現場使用的碼垛機器人控制系統(tǒng),根據實際生產的需要,編寫了機器人示教器軟件界面。在使用運動控制卡之前,先要將我們實現設計好的運動控制算法寫入卡里,包括正逆運動學求解,并且使得運動控制卡工作在獨立的坐標系模式下。
PMAC(Programmable Multi-Axis Controller)是美國 Delta Tau Data System公司推出的PC機平臺上的運動控制器,是一個完全開放的系統(tǒng)。采用PMAC運動控制卡搭建機器人運動控制系統(tǒng)具有一定的優(yōu)勢,能夠實現運動程序的自動加載與運行,通過VC++開發(fā)環(huán)境中MFC基礎類開發(fā)可視化人機界面,并且根據運動控制卡提供接口函數對功能函數的封裝。
圖2所示的是采用PMAC運動控制卡搭建機器人控制系統(tǒng)的硬件結構圖,整個系統(tǒng)分三層,即會話層,決策層和物理層,通過分層將運動控制系統(tǒng)進行模塊化設計,回話層主要是指示教系統(tǒng),采用嵌入式PC搭載工業(yè)觸摸屏,構成嵌入式示教系統(tǒng),決策層主要是指PMAC運動控制器,負責信息采集和命令決策,物理層采用安川伺服系統(tǒng)構建運動控制執(zhí)行部分。
圖2 PMAC運動控制系統(tǒng)結構
由PMAC運動控制卡和電機伺服驅動搭建的運動控制系統(tǒng)既能獨立的運行,也能實時的和主機進行通信,并支持多線程操作,保證了機器人在獨立運行的同時,能夠實時的對主機的命令進行響應。根據合成的運動控制程序,PMAC管理運動學參數,包括正逆解,以及路徑規(guī)劃。由于PMAC運動控制器和主機之間的通信方式采用Ethernet高速通信模式,從而更加保證了整個系統(tǒng)的可靠性。
示教操作是上位示教系統(tǒng)的核心,采用逐點輸入模式加載運動控制數據,支持多坐標系切換。在手動運行情況下,移動機器人末端,通過記錄按鈕,記錄當前機器人末端坐標。通過示教器界面的編譯按鈕,可以對示教生成的程序進行編譯生成PMAC運動控制語言。并生成control.pmc文件。圖3所示的自動編程技術翻譯的程序過程。
圖3 自動編程技術程序解析
由于在初始化的過程中,將運動控制算法下載到卡里,這就使得機器人在運動控制時,按照自動編譯成的運控制程序進行運行,不需要進行上位進行實時數據交換,使得運動控制部分脫離主機,將機器人放置工業(yè)現場,對其進行碼垛測試,根據機構設計和控制系統(tǒng)分析的結果,采用NDI三維動態(tài)位移測量系統(tǒng),標定機器人重復定位精度,并測試機器人D-H參數,進行機器人定位精度校核,根據生產搬運實際作業(yè)要求,示教產生實際的運動路徑,進行機器人實際搬運作業(yè)性能試驗,以獲得樣機性能測試數據。
經過碼垛測試,從機器人碼垛的負重,工作半徑,工作節(jié)拍以及重復定位精度來與國內外工業(yè)機器人進行比較。表1所示的是該機器人與國內外先進機器人性能之間的比較,通過比較可得,在性能上與國外的機器人(ABB,OTC)達到同等水平,重復精度達到±0.3 mm,工作節(jié)拍能力相當,搬運速度較快。
表1 機器人實驗數據對比
采用自動編程技術工業(yè)機器人示教系統(tǒng)可以自動進行跨語言平臺進行自動編程,有效的實現運動控制程序的動態(tài)加載與執(zhí)行,從而減少底層運動控制器和主機之間進行數據交換。降低控制系統(tǒng)對操作系統(tǒng)實時性的要求,從而降低工業(yè)機器人生產成本。
采用分層控制思想,將工業(yè)機器人的示教系統(tǒng)和運動控制進行分層設計,降低示教系統(tǒng)和底層運動控制之間的耦合,增強系統(tǒng)軟件的可修改性和可擴展性,同時提高系統(tǒng)的穩(wěn)定性。
[1]TORGNY B,Present and future robot control development—An industrial perspective[J].Annual Reviews in Control,2007(31)31:69-79.
[2]GU J S,SILVA C W,Development and implementation of a real-time open-architecture control system for industrial robot systems[J].Engineering Applications of Artificial Intelligence,2004,17:469-483.
[3]張良安,梅江平,黃田.基于 Petri網絡的碼垛機器人生產線控制軟件設計方法[J].天津大學學報,2011,44(1):23-28.
[4]張廣立,談世哲,楊汝清.基于WindowsNT的開放式機器人控制系統(tǒng)[J].機器人,2002,24(5):443-446.
[5]張廣立,付瑩,楊汝清,等.基于Windows NT的開放式機器人實時控制系統(tǒng)[J].機器人,2003(5):724-728.
[6]田茂勝,唐小琦,孟國軍,等.基于嵌入式PC的工業(yè)機器人開放式控制系統(tǒng)交互控制的實現[J].計算機應用,2010,11(30):3087-3090.
[7]HANG T T,AMIR KHAJEPOUR,KAAN ERKORKMAZ.Development and analysis of a PC-based object-oriented real-time robotics controller[C]//[CD]Proceedings of the 2005 IEEE Conference on Control Applications.Toronto,Canada,CCA.2005:1379-1384.
[8]SHAO B B,Open resources of RTOS for embedded systems[OL]//Conference of Nuclear Electronics&Detection2002-12-02/2002-12-04.http://wenku.baidu.com/view/2c25a1f49e31433239689352.html.
[9]奧斯騰.泛型編程和 STL(侯捷譯)[M].北京:中國電力出版社,2003.
[10]FANG J,ZHAO J H,HE F,et al,Design and research of three-layers open architecture model for industrial robot software system,proceedings of 2013 IEEE International conference on mechatronics and automation,104-109[C],Takamatsu,IEEE:2013.