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