本發(fā)明屬于工業(yè)機(jī)器人控制技術(shù)領(lǐng)域,具體涉及一種基于雙cpu+fpga的開放式工業(yè)機(jī)器人控制器架構(gòu)的設(shè)計與實現(xiàn)。
背景技術(shù):
開放式工業(yè)機(jī)器人控制器對機(jī)器人技術(shù)的應(yīng)用和研究具有重要促進(jìn)作用。在應(yīng)用方面,現(xiàn)代制造業(yè)對工業(yè)機(jī)器人提出了更高的要求,需要其在生產(chǎn)過程中具有更多的柔性和更易用的編程環(huán)境,適應(yīng)不同的應(yīng)用場合和多品種小批量的生產(chǎn)。這些都要求機(jī)器人控制器具有開放性,能夠方便地接入用戶自己的外部設(shè)備,并進(jìn)行工藝流程控制程序的開發(fā)。而在研究方面,對機(jī)器人控制器的開放性需求更為迫切,研究人員希望有一個開放式的機(jī)器人控制器,能夠在上面集成各種外部傳感器并進(jìn)行控制算法的開發(fā)以提高機(jī)器人系統(tǒng)的性能和智能水平。
然而,目前商品化的機(jī)器人系統(tǒng)均采用封閉結(jié)構(gòu)的專用控制器,一般采用專用計算機(jī)作為上層主控計算機(jī),使用專用機(jī)器人語言作為離線編程工具,采用專用微處理器,并將控制算法固化在eeprom中,這種專用系統(tǒng)很難集成外部硬件,而且修改封閉系統(tǒng)的代價是非常昂貴的,如果不進(jìn)行重新設(shè)計,多數(shù)情況下技術(shù)上是不可能的。解決這些問題的根本辦法是研究和開發(fā)開放結(jié)構(gòu)的機(jī)器人控制器。
技術(shù)實現(xiàn)要素:
為了克服機(jī)器人專用控制器的封閉性問題,本發(fā)明提出了一種基于雙cpu+fpga的開放式工業(yè)機(jī)器人控制器架構(gòu)的設(shè)計和實現(xiàn)方法。主cpu通過調(diào)用可重構(gòu)標(biāo)準(zhǔn)功能庫,實現(xiàn)工業(yè)機(jī)器人的產(chǎn)品應(yīng)用,通過系統(tǒng)重構(gòu)和二次開發(fā),實現(xiàn)特殊工藝要求;輔cpu通過數(shù)據(jù)共享,既可實現(xiàn)產(chǎn)品的補(bǔ)償控制,也可全部接管機(jī)器人的控制,用于算法研究和功能模塊開發(fā),達(dá)到分級高度開放的目標(biāo)。由于共享數(shù)據(jù)采用同一地址編碼,輔cpu程序可以生成被主cpu程序直接執(zhí)行的機(jī)器代碼,實現(xiàn)功能模塊的快速移植和重構(gòu)。fpga芯片引腳數(shù)量多,可為各種外部設(shè)備提供接口,同時又能方便地進(jìn)行時序電路的設(shè)計。fpga中設(shè)計的雙端口ram結(jié)構(gòu)具有兩套完全獨立的數(shù)據(jù)線、地址線和讀寫控制線,可使兩個cpu分時獨立訪問其內(nèi)部ram資源,并且雙cpu同時訪問時的仲裁邏輯電路全部集成在雙端口ram內(nèi)部,簡化了電路的設(shè)計。
為達(dá)到上述目的,本發(fā)明所述的基于雙cpu+fpga架構(gòu)的開放式工業(yè)機(jī)器人控制器的實現(xiàn)方法主要包括以下步驟:
1)搭建開放式機(jī)器人控制器的外部接口電路,包括hmi接口、擴(kuò)展通訊接口、jtag接口、以太網(wǎng)/工業(yè)現(xiàn)場總線接口、傳感器接口、di/do/ai/ao/plc接口、伺服總線接口。hmi接口,用于連接手持編程示教器或者pc編程示教器到主cpu;擴(kuò)展通訊接口,用于連接外部擴(kuò)展設(shè)備/ros-i等到fpga;jtag接口,用于從pc端下載程序到輔cpu;以太網(wǎng)/工業(yè)現(xiàn)場總線接口,用于連接pc至輔cpu;傳感器接口,用于連接各種外部傳感器到fpga;di/do/ai/ao/plc接口,用于連接外部i/o至fpga;伺服總線接口,用于連接伺服單元至fpga。
2)fpga內(nèi)部擴(kuò)展總線控制模塊與擴(kuò)展通訊接口相連接,fpga內(nèi)部存儲器接口控制模塊與ram/rom存儲器相連接,fpga內(nèi)部io控制接口模塊與di/do/ai/ao/plc接口相連接,fpga內(nèi)部傳感器接口控制模塊與傳感器接口相連接,fpga內(nèi)部運動控制接口模塊與高速伺服總線接口相連接。內(nèi)部總線包括內(nèi)部總線a和內(nèi)部總線b以及相應(yīng)的總線控制器,內(nèi)部總線a將各控制模塊與主cpu相連接;內(nèi)部總線b將各控制模塊與輔cpu相連接。
3)在主cpu和輔cpu中搭建系統(tǒng)軟件。主cpu和輔cpu的系統(tǒng)軟件均采用實時分層控制和模塊化設(shè)計方法,將軟件劃分為不同功能模塊。系統(tǒng)軟件通過定時器,實現(xiàn)實時性分級控制,最小控制周期250μs,實現(xiàn)運動控制的高實時性和同步性,并按實時性分為多種系統(tǒng)模塊,可方便實現(xiàn)機(jī)器人控制系統(tǒng)的重構(gòu),根據(jù)不同用戶要求,實現(xiàn)分級開放,主cpu具有可重構(gòu)的控制功能庫,采用定制調(diào)度方式,提高系統(tǒng)穩(wěn)定性和可靠性,通過參數(shù)設(shè)置實現(xiàn)控制功能選擇,適應(yīng)不同的工藝和特殊控制要求,輔cpu輔cpu的所有端口向用戶開放,可實現(xiàn)底層控制軟件的重構(gòu),添加或替換原控制模塊,實現(xiàn)高度開放。
本發(fā)明具有以下有益效果:
在本發(fā)明提出的基于雙cpu+fpga架構(gòu)的開放式工業(yè)機(jī)器人控制器的實現(xiàn)方法中,主cpu可通過軟件控制模塊庫,實現(xiàn)機(jī)器人的常規(guī)運動控制功能,可通過開放式軟件平臺實現(xiàn)系統(tǒng)重構(gòu)、特殊功能模塊設(shè)計、二次開發(fā)等,實現(xiàn)低等級的開放,降低開發(fā)難度,滿足機(jī)器人產(chǎn)品的可靠性、靈活性和經(jīng)濟(jì)性要求。輔cpu的所有端口向用戶開放,用于高級開發(fā)、性能測試、功能擴(kuò)展等,通過主cpu設(shè)置相關(guān)參數(shù),輔cpu可接管整個系統(tǒng)的控制,也可在主cpu控制的基礎(chǔ)上實現(xiàn)運動的附加控制(如補(bǔ)償,前饋等),由于和主cpu共享系統(tǒng)變量(如位置、速度、電流、控制參數(shù)和控制輸出),還可以實現(xiàn)系統(tǒng)運動控制特性的在線測試、故障診斷以及功能擴(kuò)展等,由于共享數(shù)據(jù)采用同一地址編碼,輔cpu程序可以生成被主cpu程序直接執(zhí)行的機(jī)器代碼,實現(xiàn)功能模塊的快速移植和重構(gòu)。
附圖說明
圖1為本發(fā)明中開放式機(jī)器人控制器硬件總體架構(gòu)。
圖2為本發(fā)明中雙端口開放式機(jī)器人控制器fpga結(jié)構(gòu)原理圖。
圖3為本發(fā)明中開放式機(jī)器人控制系統(tǒng)雙端口運動控制模塊結(jié)構(gòu)原理圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進(jìn)一步詳細(xì)描述:
本發(fā)明所述的基于fpga和雙端口ram的開放式雙cpu機(jī)器人控制器的實現(xiàn)方法,主要包括以下步驟:
1)搭建開放式機(jī)器人控制器的外部接口電路。包括hmi接口,用于連接手持編程示教器或者pc編程示教器到主cpu;擴(kuò)展通訊接口,用于連接外部擴(kuò)展設(shè)備/ros-i等到fpga;jtag接口,用于從pc端下載程序到輔cpu;以太網(wǎng)/工業(yè)現(xiàn)場總線接口,用于連接pc至輔cpu;傳感器接口,用于連接各種外部傳感器到fpga;di/do/ai/ao/plc接口,用于連接外部i/o至fpga;伺服總線接口,用于連接伺服單元至fpga。通過各種外部接口電路滿足機(jī)器人控制器開放性的要求,方便各種通訊方式的建立和各種傳感器、i/o設(shè)備、伺服單元的接入。以fpga作為橋梁連接主/輔cpu和外部接口電路,通過fpga及其雙端口ram塊,實現(xiàn)兩個cpu的數(shù)據(jù)共享和協(xié)同控制。
2)在fpga中搭建接口控制模塊和內(nèi)部總線。接口控制模塊包括與擴(kuò)展通訊接口相連的擴(kuò)展總線控制模塊,與ram/rom相連的存儲器接口控制模塊,與di/do/ai/ao/plc接口相連的io控制接口模塊,與傳感器接口相連的傳感器接口控制模塊,與高速伺服總線接口相連的運動控制接口模塊。內(nèi)部總線包括內(nèi)部總線a和內(nèi)部總線b以及相應(yīng)的總線控制器,內(nèi)部總線a將各控制模塊與主cpu相連,并由內(nèi)部總線控制器a控制;內(nèi)部總線b將各控制模塊與輔cpu相連,并由內(nèi)部總線控制器b控制。內(nèi)部總線a與內(nèi)部總線b通過雙端口ram塊共享系統(tǒng)反饋變量,各控制模塊均采用雙端口設(shè)計,并在兩個cpu中采用相同的地址編碼,為程序移植提供方便。
3)在主cpu和輔cpu中搭建系統(tǒng)軟件。主cpu和輔cpu的系統(tǒng)軟件均采用實時分層控制和模塊化設(shè)計方法,將軟件劃分為不同功能模塊。系統(tǒng)軟件通過定時器,實現(xiàn)實時性分級控制,最小控制周期250μs,實現(xiàn)運動控制的高實時性和同步性,并按實時性分為多種系統(tǒng)模塊,可方便實現(xiàn)機(jī)器人控制系統(tǒng)的重構(gòu),根據(jù)不同用戶要求,實現(xiàn)分級開放,主cpu具有可重構(gòu)的控制功能庫,采用定制調(diào)度方式,提高系統(tǒng)穩(wěn)定性和可靠性,通過參數(shù)設(shè)置實現(xiàn)控制功能選擇,適應(yīng)不同的工藝和特殊控制要求,輔cpu輔cpu的所有端口向用戶開放,可實現(xiàn)底層控制軟件的重構(gòu),添加或替換原控制模塊,實現(xiàn)高度開放。
實施例一
參考圖1,以接口擴(kuò)展為例對控制器的開放性進(jìn)行說明。ros-i擴(kuò)展接口實施方案:ros-i的controllerlayer是機(jī)器人控制器的生產(chǎn)廠商接口層,通過本層接口和tcp協(xié)議,就可實現(xiàn)trajectory消息由上層ros-i傳送到底層控制器。通過設(shè)計解析程序,可以生成相應(yīng)的位置控制指令,進(jìn)而實現(xiàn)機(jī)器人的控制。這部分接口和功能,可以由控制器的輔cpu實現(xiàn),為ros-i提供硬件控制器平臺,既可以和主cpu控制部分進(jìn)行對比研究,也可以充分利用ros-i的研究成果,提高控制器性能。工業(yè)總線擴(kuò)展接口實施方案:ethercat、powerlink、profinet等工業(yè)總線采用以太網(wǎng)物理接口,只是通信協(xié)議不同,本控制器設(shè)計2個以太網(wǎng)接口,連接到fpga,通過fpga編程,實現(xiàn)對不同總線鏈路層協(xié)議的支持,通過軟件解析,實現(xiàn)與這些總線的通信。傳感器擴(kuò)展接口實施方案:市場上觸覺、視覺、力、語音等常用感知傳感器接口和通信協(xié)議均有不同,對常用傳感器的輸出信號電氣特性以及接線方式進(jìn)行分類,提供常用數(shù)字總線標(biāo)準(zhǔn)接口:rs485接口、can總線接口等,采用標(biāo)準(zhǔn)的串口協(xié)議或can協(xié)議,實現(xiàn)多模態(tài)感知信號的接入。
實施例二
參考圖2及圖3,以性能測試及仿真技術(shù)為例對控制器的開放性進(jìn)行說明?;趦?nèi)置信號的測試系統(tǒng)開放式接口技術(shù)實施方案:由于本控制器采用雙cpu結(jié)構(gòu),主要控制參數(shù)、控制變量和系統(tǒng)反饋數(shù)據(jù)共享。輔cpu可按伺服控制周期捕獲機(jī)器人控制系統(tǒng)內(nèi)部全部共享信號,包括:主cpu的各控制環(huán)輸出、電機(jī)位置、速度、電流等反饋信息以及機(jī)器人末端姿位信息,利用同步插補(bǔ)控制信號作為信號采集的觸發(fā)信號,可實現(xiàn)最高采集頻率為4khz的數(shù)據(jù)采集,并通過以太網(wǎng)接口和pc實現(xiàn)實時通信,最高通信速度設(shè)計為1khz;通過設(shè)計pc端上位機(jī)軟件,采用高速數(shù)據(jù)緩存技術(shù),實現(xiàn)數(shù)據(jù)的采集和存儲,構(gòu)建高實時在線測試系統(tǒng),實現(xiàn)運動過程特征數(shù)據(jù)的采樣,研究控制器內(nèi)部信號、參數(shù)對工業(yè)機(jī)器人性能的評價方法,構(gòu)建機(jī)器人運動性能測試與分析系統(tǒng),為機(jī)器人運動特性分析、算法研究、標(biāo)定、故障診斷等提供基礎(chǔ)。將以太網(wǎng)通信協(xié)議開放,可以支持第三方應(yīng)用開發(fā)??焖僭头抡婕夹g(shù)實施方案:matlab的simulink是一種常用的用于控制算法研究的工具,通過以太網(wǎng)接口將輔cpu和pc相連,通過研究matlab的硬件支持及通信接口技術(shù),設(shè)計pc應(yīng)用程序,將simulink生成的算法代碼,自動調(diào)用相應(yīng)的編譯工具,生成機(jī)器碼,通過以太網(wǎng)傳輸?shù)捷ocpu的特定存儲位置,并控制該程序的調(diào)用。輔cpu的程序設(shè)計采用定時中斷結(jié)構(gòu),并機(jī)器人基本反饋模塊,讀入常用變量,通過接受pc程序數(shù)據(jù),讀入到特定位置,再將中斷向量指向該位置,實現(xiàn)控制算法的定時中斷執(zhí)行。