一種用于六自由度機(jī)器人的控制方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例公開(kāi)了一種用于六自由度機(jī)器人的控制方法,涉及自動(dòng)控制技術(shù)領(lǐng)域,能夠在提高工業(yè)機(jī)器人控制效率的基礎(chǔ)上,增強(qiáng)工業(yè)機(jī)器人的計(jì)算能力。本發(fā)明包括:至少六個(gè)節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)包括伺服器,和加載伺服器上的DSP控制板卡;各節(jié)點(diǎn)間通過(guò)總線進(jìn)行物理連接,總線采用Ethernet總線并形成微型局域網(wǎng)進(jìn)行信息傳輸??刂葡到y(tǒng)中的任一節(jié)點(diǎn)啟動(dòng)后,檢測(cè)是否為群首節(jié)點(diǎn)G;若是則開(kāi)始令牌初始化過(guò)程,若不是則等待令牌初始化指令到達(dá)。當(dāng)令牌初始化完成后,檢測(cè)當(dāng)前是否存在待發(fā)送數(shù)據(jù)需要發(fā)送;若是,則當(dāng)令牌到達(dá)時(shí)發(fā)送待發(fā)送數(shù)據(jù);若否則發(fā)送令牌信息,并循環(huán)令牌初始化完成后的過(guò)程,直至控制系統(tǒng)關(guān)閉。本發(fā)明適用于六自由度機(jī)器人的控制系統(tǒng)。
【專(zhuān)利說(shuō)明】
一種用于六自由度機(jī)器人的控制方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及自動(dòng)控制技術(shù)領(lǐng)域,尤其涉及一種用于六自由度機(jī)器人的控制方法。
【背景技術(shù)】
[0002] 由于DSP(運(yùn)動(dòng)控制板卡)的經(jīng)濟(jì)性較高,且可靠性能夠滿足大部分的生產(chǎn)環(huán)境的 要求,因此目前被廣泛使用的工業(yè)機(jī)器人普遍采用PC機(jī)+DSP運(yùn)動(dòng)控制板卡的方案。另一方 面,由于DSP的設(shè)計(jì)性能的限制,使得工業(yè)機(jī)器人的控制系統(tǒng)的控制性能受限于DSP性能,在 實(shí)際應(yīng)用中,可控制的軸數(shù)大都限制在6軸左右。
[0003] 而近年來(lái),隨著PC機(jī)技術(shù)的發(fā)展,基于PC機(jī)總線設(shè)計(jì)的控制系統(tǒng)已經(jīng)發(fā)展到可以 控制21個(gè)軸甚至于27個(gè)軸。但是由于DSP板卡的性能并沒(méi)有較大的改進(jìn),依然采用PC機(jī)+DSP 板卡的主從結(jié)構(gòu)設(shè)計(jì),會(huì)導(dǎo)致PC機(jī)負(fù)載劇增;并且由于PC機(jī)+DSP板卡的主從結(jié)構(gòu)設(shè)計(jì)中,通 訊采用線束方式,當(dāng)節(jié)點(diǎn)增多時(shí)線束數(shù)量也會(huì)隨之劇增,極大的影響了控制性能,并增加了 維護(hù)成本;還由于PC機(jī)+DSP板卡的主從結(jié)構(gòu)設(shè)計(jì)中,數(shù)據(jù)存儲(chǔ)于PC機(jī),當(dāng)PC機(jī)發(fā)生故障時(shí)往 往會(huì)導(dǎo)致整個(gè)控制系統(tǒng)功能喪失,且日常維護(hù)時(shí)若涉及到PC機(jī)停機(jī),則整個(gè)控制系統(tǒng)都必 須停機(jī),進(jìn)而導(dǎo)致整個(gè)生產(chǎn)線停轉(zhuǎn),成本十分高昂;當(dāng)節(jié)點(diǎn)增多時(shí)控制系統(tǒng)中流轉(zhuǎn)的信息也 會(huì)劇增,從而導(dǎo)致信息存儲(chǔ)混亂,從而造成系統(tǒng)錯(cuò)誤。這些問(wèn)題都導(dǎo)致了現(xiàn)有的PC機(jī)+DSP運(yùn) 動(dòng)控制板卡的方案難以在提高工業(yè)機(jī)器人控制效率的基礎(chǔ)上,有效控制主機(jī)的負(fù)載壓力, 工業(yè)機(jī)器人的計(jì)算能力難有進(jìn)一步的改善空間。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的實(shí)施例提供一種用于六自由度機(jī)器人的控制方法,能夠提高工業(yè)機(jī)器人 控制效率的基礎(chǔ)上,減輕主機(jī)的負(fù)載壓力,增強(qiáng)工業(yè)機(jī)器人的計(jì)算能力。
[0005] 為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0006] 用于一種控制系統(tǒng)的方法,所述控制系統(tǒng)包括:至少六個(gè)節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)包括伺 服器,和加載伺服器上的DSP控制板卡;各節(jié)點(diǎn)間通過(guò)總線進(jìn)行物理連接,所述總線采用 Ethernet總線并形成微型局域網(wǎng)進(jìn)行信息傳輸。
[0007] 所述方法包括:所述控制系統(tǒng)中的任一節(jié)點(diǎn)啟動(dòng)后,檢測(cè)是否為群首節(jié)點(diǎn)G;若是 則開(kāi)始令牌初始化過(guò)程,若不是則等待令牌初始化指令到達(dá)。
[0008] 當(dāng)令牌初始化完成后,檢測(cè)當(dāng)前是否存在待發(fā)送數(shù)據(jù)需要發(fā)送;若是,則當(dāng)令牌到 達(dá)時(shí)發(fā)送所述待發(fā)送數(shù)據(jù);若否則發(fā)送令牌信息,并循環(huán)令牌初始化完成后的過(guò)程,直至所 述控制系統(tǒng)關(guān)閉。
[0009] 在每一個(gè)節(jié)點(diǎn)中還包括共享存儲(chǔ)區(qū)(GS),其中,各節(jié)點(diǎn)中的共享存儲(chǔ)區(qū)在邏輯上 擁有統(tǒng)一地址空間,各節(jié)點(diǎn)中的共享存儲(chǔ)區(qū)在物理上共占用至少六塊地址空間,所述至少 六塊地址空間分布于所述控制系統(tǒng)中的至少六個(gè)節(jié)點(diǎn)中。通過(guò)所述Ethernet總線廣播全局 性數(shù)據(jù),并由各節(jié)點(diǎn)將所述全局性數(shù)據(jù)存儲(chǔ)至所述共享存儲(chǔ)區(qū);通過(guò)所述Ethernet總線對(duì) 全網(wǎng)廣播對(duì)于共享存儲(chǔ)區(qū)的修改數(shù)據(jù)的修改信息,其中,各節(jié)點(diǎn)對(duì)共享存儲(chǔ)區(qū)的訪問(wèn)采用 P-V互鎖方式;
[0010]在每一個(gè)節(jié)點(diǎn)中還包括私有存儲(chǔ)區(qū)(PS),其中,各節(jié)點(diǎn)中的私有存儲(chǔ)區(qū)在邏輯上 擁有互不相同的地址空間,各節(jié)點(diǎn)中的私有存儲(chǔ)區(qū)在物理上共占用至少六塊地址空間,所 述至少六塊地址空間分布于所述控制系統(tǒng)中的至少六個(gè)節(jié)點(diǎn)中。一個(gè)節(jié)點(diǎn)存儲(chǔ)、維護(hù)和修 改這一個(gè)節(jié)點(diǎn)的私有存儲(chǔ)區(qū)中的數(shù)據(jù);并通過(guò)所述Ethernet總線訪問(wèn)另一個(gè)節(jié)點(diǎn)中的私有 存儲(chǔ)區(qū)中的數(shù)據(jù)。
[0011]所述令牌初始化完成后的過(guò)程,還包括:在每個(gè)檢測(cè)周期,檢測(cè)其中一個(gè)節(jié)點(diǎn)是否 收到所述令牌信息,其中,所述檢測(cè)周期大于一個(gè)數(shù)據(jù)幀在所述令牌環(huán)網(wǎng)絡(luò)上流轉(zhuǎn)一周的 時(shí)間;若所述檢測(cè)周期超期時(shí)所述其中一個(gè)節(jié)點(diǎn)沒(méi)有收到所述令牌信息,則競(jìng)爭(zhēng)產(chǎn)生新令 牌,并將新令牌在所述令牌環(huán)網(wǎng)絡(luò)上流轉(zhuǎn),其它節(jié)點(diǎn)根據(jù)所述新令牌的生成號(hào)判定繼續(xù)競(jìng) 爭(zhēng)或退出,且產(chǎn)生新令牌的節(jié)點(diǎn)首先獲得信息發(fā)送權(quán);若所述其中一個(gè)節(jié)點(diǎn)上存在比當(dāng)前 令牌更新的生成號(hào),則丟棄原令牌,當(dāng)所述令牌信息傳回所述其中一個(gè)節(jié)點(diǎn)時(shí),更改令牌號(hào) 為所述更新的生成號(hào)。
[0012] 本發(fā)明實(shí)施例提供的用于六自由度機(jī)器人的控制方法,采用多主平行結(jié)構(gòu)設(shè)計(jì), 由伺服單元與控制器構(gòu)成"節(jié)點(diǎn)",各伺服單元帶有獨(dú)立的控制器,從而解決了PC機(jī)+DSP板 卡的主從結(jié)構(gòu)設(shè)計(jì)中PC機(jī)負(fù)載劇增的問(wèn)題,以及解決了節(jié)點(diǎn)增多時(shí)線束數(shù)量也會(huì)隨之劇增 的問(wèn)題;采用總線進(jìn)行節(jié)點(diǎn)(即各伺服單元的控制器)間通信,且節(jié)點(diǎn)間通信采用令牌環(huán)邏 輯進(jìn)行通信抉擇的令牌環(huán)邏輯設(shè)計(jì),從而解決了節(jié)點(diǎn)增多時(shí)控制系統(tǒng)中流轉(zhuǎn)的信息也會(huì)劇 增,從而導(dǎo)致信息存儲(chǔ)混亂的問(wèn)題;在多主平行結(jié)構(gòu)基礎(chǔ)上,信息流分布上采用全局一所有 者設(shè)計(jì)。具體在信息流分布中,采用全局-所有者結(jié)構(gòu)進(jìn)行信息分類(lèi);其中,按照信息分類(lèi)情 況,全局的信息在公共存儲(chǔ)區(qū)進(jìn)行共享存儲(chǔ);按照信息分類(lèi)情況,所有者信息在各節(jié)點(diǎn)中進(jìn) 行私有存儲(chǔ),從而解決了PC機(jī)+DSP板卡的主從結(jié)構(gòu)設(shè)計(jì)中,數(shù)據(jù)存儲(chǔ)于PC機(jī),當(dāng)PC機(jī)發(fā)生故 障時(shí)往往會(huì)導(dǎo)致整個(gè)控制系統(tǒng)功能喪失的問(wèn)題。與現(xiàn)有技術(shù)相比較,本發(fā)明基于現(xiàn)有總線 技術(shù)和令牌環(huán)網(wǎng)技術(shù),采用分布式通信對(duì)六自由度工業(yè)機(jī)器人進(jìn)行六軸控制,建立了完整 的令牌訪問(wèn)控制策略、全局-所有者資源控制策略。該方法具有實(shí)現(xiàn)簡(jiǎn)單、應(yīng)用方便,且與其 他總線兼容,便于拓展的特點(diǎn)。在能夠提高工業(yè)機(jī)器人控制效率的基礎(chǔ)上,減輕主機(jī)的負(fù)載 壓力,增強(qiáng)工業(yè)機(jī)器人的計(jì)算能力。
【附圖說(shuō)明】
[0013] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的 附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng) 域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附 圖。
[0014] 圖1是本實(shí)施例提供的六自由度機(jī)器人組件分布式調(diào)度的物理結(jié)構(gòu)示意圖;
[0015] 圖2是本實(shí)施例提供的令牌環(huán)通信抉擇方案的實(shí)例示意圖;
[0016] 圖3是本實(shí)施例提供的令牌幀結(jié)構(gòu)示意圖;
[0017] 圖4是本實(shí)施例提供的通訊抉擇流程圖;
[0018] 圖5是本實(shí)施例提供的組件共享存儲(chǔ)流程圖;
[0019] 圖6是本實(shí)施例提供的組件私有數(shù)據(jù)的存儲(chǔ)流程圖。
【具體實(shí)施方式】
[0020] 為使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明的技術(shù)方案,下面結(jié)合附圖和具體實(shí)施方 式對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。下文中將詳細(xì)描述本發(fā)明的實(shí)施方式,所述實(shí)施方式的示 例在附圖中示出,其中自始至終相同或類(lèi)似的標(biāo)號(hào)表示相同或類(lèi)似的元件或具有相同或類(lèi) 似功能的元件。下面通過(guò)參考附圖描述的實(shí)施方式是示例性的,僅用于解釋本發(fā)明,而不能 解釋為對(duì)本發(fā)明的限制。本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形 式"一"、"一個(gè)"、"所述"和"該"也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說(shuō)明書(shū) 中使用的措辭"包括"是指存在所述特征、整數(shù)、步驟、操作、元件和/或節(jié)點(diǎn),但是并不排除 存在或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、節(jié)點(diǎn)和/或它們的組。應(yīng)該理解, 當(dāng)我們稱(chēng)元件被"連接"或"耦接"到另一元件時(shí),它可以直接連接或耦接到其他元件,或者 也可以存在中間元件。此外,這里使用的"連接"或"耦接"可以包括無(wú)線連接或耦接。這里使 用的措辭"和/或"包括一個(gè)或更多個(gè)相關(guān)聯(lián)的列出項(xiàng)的任一單元和全部組合。本技術(shù)領(lǐng)域 技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(yǔ)(包括技術(shù)術(shù)語(yǔ)和科學(xué)術(shù)語(yǔ))具有 與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用 字典中定義的那些術(shù)語(yǔ)應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且 除非像這里一樣定義,不會(huì)用理想化或過(guò)于正式的含義來(lái)解釋。
[0021] 本發(fā)明實(shí)施例提供一種用于六自由度機(jī)器人的控制方法,所述方法用于一種如圖 1所示的控制系統(tǒng),所述控制系統(tǒng)包括:至少六個(gè)節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)包括伺服器,和加載伺服 器上的DSP控制板卡;各節(jié)點(diǎn)間通過(guò)總線進(jìn)行物理連接,所述總線采用Ethernet總線并形成 微型局域網(wǎng)進(jìn)行信息傳輸。其中,如圖1所示的控制系統(tǒng)在采用多主平行結(jié)構(gòu)的基礎(chǔ)上,使 用總線進(jìn)行節(jié)點(diǎn)間通信,以便使六自由度機(jī)器人實(shí)現(xiàn)負(fù)載均衡的分布式控制。
[0022]所述方法包括:
[0023]所述控制系統(tǒng)中的任一節(jié)點(diǎn)啟動(dòng)后,檢測(cè)是否為群首節(jié)點(diǎn)G;若是則開(kāi)始令牌初始 化過(guò)程,若不是則等待令牌初始化指令到達(dá)。
[0024]當(dāng)令牌初始化完成后,檢測(cè)當(dāng)前是否存在待發(fā)送數(shù)據(jù)需要發(fā)送;若是,則當(dāng)令牌到 達(dá)時(shí)發(fā)送所述待發(fā)送數(shù)據(jù);若否則發(fā)送令牌信息,并循環(huán)令牌初始化完成后的過(guò)程,直至所 述控制系統(tǒng)關(guān)閉。
[0025]例如:如圖4所示的,在采用本實(shí)施例中所述Ethernet總線進(jìn)行總線通信后,可以 采用令牌環(huán)邏輯進(jìn)行通信抉擇的過(guò)程,其中包括:系統(tǒng)中任一節(jié)電啟動(dòng)后,首先按照是否是 節(jié)點(diǎn)G進(jìn)行令牌初始化,若是節(jié)點(diǎn)G則起始令牌初始化過(guò)程,若不是節(jié)點(diǎn)G則等待令牌初始化 指令到達(dá)。然后等待令牌初始化完成。在令牌初始化完成后,進(jìn)入令牌鏈路維護(hù),在存在數(shù) 據(jù)要發(fā)送的情況下,當(dāng)令牌到達(dá)時(shí)發(fā)送數(shù)據(jù),否則就僅發(fā)送令牌信息,然后再進(jìn)行令牌鏈路 維護(hù)階段,如此循環(huán),直至結(jié)束網(wǎng)絡(luò)鏈路。
[0026]在本實(shí)施例中,在每一個(gè)節(jié)點(diǎn)中還包括共享存儲(chǔ)區(qū)(GS),其中,各節(jié)點(diǎn)中的共享存 儲(chǔ)區(qū)在邏輯上擁有統(tǒng)一地址空間,各節(jié)點(diǎn)中的共享存儲(chǔ)區(qū)在物理上共占用至少六塊地址空 間,所述至少六塊地址空間分布于所述控制系統(tǒng)中的至少六個(gè)節(jié)點(diǎn)中。具體的,通過(guò)所述 Ethernet總線廣播全局性數(shù)據(jù),并由各節(jié)點(diǎn)將所述全局性數(shù)據(jù)存儲(chǔ)至所述共享存儲(chǔ)區(qū)。通 過(guò)所述Ethernet總線對(duì)全網(wǎng)廣播對(duì)于共享存儲(chǔ)區(qū)的修改數(shù)據(jù)的修改信息。
[0027] 本實(shí)施例中,全局信息進(jìn)行共享存儲(chǔ)的方式包括:在如圖1所示的各節(jié)點(diǎn)中開(kāi)辟GS (Global Storage,共享存儲(chǔ)區(qū)),全局性數(shù)據(jù)由Ethernet總線進(jìn)行廣播發(fā)送,各節(jié)點(diǎn)在共享 存儲(chǔ)區(qū)對(duì)全局性數(shù)據(jù)進(jìn)行存儲(chǔ)。在邏輯上共享存儲(chǔ)區(qū)擁有統(tǒng)一地址空間,在物理上共享存 儲(chǔ)區(qū)共占用6塊地址空間,分布于6個(gè)節(jié)點(diǎn)中。其中,各節(jié)點(diǎn)對(duì)共享存儲(chǔ)區(qū)的訪問(wèn)采用P-V互 鎖方式,對(duì)共享存儲(chǔ)區(qū)數(shù)據(jù)的修改將通過(guò)總線對(duì)全網(wǎng)廣播。
[0028] 進(jìn)一步的,如圖5所示,在各節(jié)點(diǎn)中進(jìn)行共享存儲(chǔ)的流程包括:在節(jié)點(diǎn)中以Flash進(jìn) 行數(shù)據(jù)存儲(chǔ)。若節(jié)點(diǎn)中已經(jīng)存在全局存儲(chǔ)區(qū),則直接使用,若不存在,則開(kāi)辟全局存儲(chǔ)區(qū) Global_Data。然后監(jiān)視總線數(shù)據(jù),若在總線上有全局?jǐn)?shù)據(jù)寫(xiě)入,則起始P-V操作,對(duì)節(jié)點(diǎn)中 的全局?jǐn)?shù)據(jù)進(jìn)行改寫(xiě)。若本節(jié)點(diǎn)對(duì)全局?jǐn)?shù)據(jù)進(jìn)行修改,則在P-V操作后,將修改后的數(shù)據(jù)送 到總線上。
[0029] 在本實(shí)施例中,在每一個(gè)節(jié)點(diǎn)中還包括私有存儲(chǔ)區(qū)(PS),其中,各節(jié)點(diǎn)中的私有存 儲(chǔ)區(qū)在邏輯上擁有互不相同的地址空間,各節(jié)點(diǎn)中的私有存儲(chǔ)區(qū)在物理上共占用至少六塊 地址空間,所述至少六塊地址空間分布于所述控制系統(tǒng)中的至少六個(gè)節(jié)點(diǎn)中。具體的,一個(gè) 節(jié)點(diǎn)存儲(chǔ)、維護(hù)和修改這一個(gè)節(jié)點(diǎn)的私有存儲(chǔ)區(qū)中的數(shù)據(jù)。并通過(guò)所述Etherne t總線訪問(wèn) 另一個(gè)節(jié)點(diǎn)中的私有存儲(chǔ)區(qū)中的數(shù)據(jù)。
[0030] 在本實(shí)施例中,進(jìn)行私有存儲(chǔ)的方式包括:在如圖1所示的各節(jié)點(diǎn)中開(kāi)辟P S (Private Storage,私有存儲(chǔ)區(qū)),私有數(shù)據(jù)由各節(jié)點(diǎn)進(jìn)行存儲(chǔ)、維護(hù)和修改,需要進(jìn)行信息 交互時(shí),由請(qǐng)求方發(fā)起通信,所有者進(jìn)行響應(yīng)。進(jìn)一步的,如圖6所示,在各節(jié)點(diǎn)中進(jìn)行私有 數(shù)據(jù)存儲(chǔ)的過(guò)程包括:在節(jié)點(diǎn)中以Flash進(jìn)行數(shù)據(jù)存儲(chǔ)。若節(jié)點(diǎn)中已經(jīng)存在所有者存儲(chǔ)區(qū), 則直接使用,若不存在,則開(kāi)辟所有者存儲(chǔ)區(qū)Private_Data。然后監(jiān)視總線數(shù)據(jù),若在總線 上出現(xiàn)本節(jié)點(diǎn)的數(shù)據(jù)操作,則判斷其權(quán)限。若其沒(méi)有對(duì)本節(jié)點(diǎn)所有者數(shù)據(jù)進(jìn)行操作的權(quán)限, 則拒絕,然后返回總線數(shù)據(jù)監(jiān)視。若其有對(duì)本節(jié)點(diǎn)所有者數(shù)據(jù)進(jìn)行操作的權(quán)限,則與全局?jǐn)?shù) 據(jù)一樣進(jìn)行相應(yīng)的讀寫(xiě)和修改操作。
[0031 ]在本實(shí)施例中,所述令牌初始化過(guò)程包括:
[0032]由群首節(jié)點(diǎn)G生成初始化令牌消息,并隨機(jī)發(fā)送給G的鄰居節(jié)點(diǎn)I,并向I告知G為群 首節(jié)點(diǎn),同時(shí)標(biāo)記I為G的其后繼節(jié)點(diǎn)。I收到所述初始化令牌消息后,標(biāo)記I的其后繼節(jié)點(diǎn), 在每一個(gè)節(jié)點(diǎn)上重復(fù)標(biāo)記其后繼節(jié)點(diǎn)的過(guò)程,直至G收到G的鄰居節(jié)點(diǎn)K發(fā)送的G為K的后繼 節(jié)點(diǎn)消息后,確定令牌環(huán)網(wǎng)絡(luò)建立完畢,所述令牌環(huán)網(wǎng)絡(luò)的網(wǎng)絡(luò)地址為G的MC地址。
[0033]例如:如圖2所示,在6個(gè)節(jié)點(diǎn)間定義令牌優(yōu)先級(jí)次序。然后令牌在各節(jié)點(diǎn)間依次傳 遞。其中,令牌初始化過(guò)程即令牌環(huán)網(wǎng)絡(luò)形成過(guò)程。由實(shí)現(xiàn)定義的群首節(jié)點(diǎn)G負(fù)責(zé)生成一個(gè) 初始化令牌消息,隨機(jī)發(fā)送給鄰居節(jié)點(diǎn)I,告知G為首站點(diǎn),同時(shí)標(biāo)記I為其后繼節(jié)點(diǎn),I收到 消息后,采用相同方式進(jìn)行標(biāo)記,當(dāng)G收到其鄰居節(jié)點(diǎn)K發(fā)送的G為K的后繼節(jié)點(diǎn)消息后,令牌 環(huán)網(wǎng)絡(luò)形成。該令牌環(huán)的網(wǎng)絡(luò)地址即是G的MAC地址。
[0034]所述令牌初始化完成后的過(guò)程,包括:
[0035] I在發(fā)送數(shù)據(jù)時(shí)首先將數(shù)據(jù)幀packetl的令牌位置為零,并發(fā)送數(shù)據(jù)幀。若一個(gè)節(jié) 點(diǎn)存在待發(fā)送數(shù)據(jù)需要發(fā)送,則在所述一個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)所述數(shù)據(jù)幀PacketI時(shí),將所述數(shù)據(jù)幀 packetl的令牌位置為這一個(gè)節(jié)點(diǎn)的標(biāo)號(hào),當(dāng)所述數(shù)據(jù)幀packetl回到I時(shí),將發(fā)送權(quán)轉(zhuǎn)交至 這一個(gè)節(jié)點(diǎn)。
[0036]例如:基于令牌的數(shù)據(jù)傳送過(guò)程包括:節(jié)點(diǎn)I在發(fā)送數(shù)據(jù)時(shí)首先將數(shù)據(jù)幀packetl 的令牌位置零,將數(shù)據(jù)幀發(fā)送出去。如果節(jié)點(diǎn)J有數(shù)據(jù)要發(fā)送,則在其轉(zhuǎn)發(fā)packetl時(shí),將 packetl的令牌位置為J,當(dāng)packetl回到I節(jié)點(diǎn)時(shí),節(jié)點(diǎn)I知道J有數(shù)據(jù)發(fā)送,則將發(fā)送權(quán)轉(zhuǎn)交 給J。如果令牌為空,則說(shuō)明此時(shí)沒(méi)有其他節(jié)點(diǎn)要發(fā)送數(shù)據(jù),I可以繼續(xù)進(jìn)行數(shù)據(jù)發(fā)送。
[0037] 所述令牌初始化完成后的過(guò)程,還包括:
[0038] 在每個(gè)檢測(cè)周期,檢測(cè)其中一個(gè)節(jié)點(diǎn)是否收到所述令牌信息,其中,所述檢測(cè)周期 大于一個(gè)數(shù)據(jù)幀在所述令牌環(huán)網(wǎng)絡(luò)上流轉(zhuǎn)一周的時(shí)間。若所述檢測(cè)周期超期時(shí)所述其中一 個(gè)節(jié)點(diǎn)沒(méi)有收到所述令牌信息,則競(jìng)爭(zhēng)產(chǎn)生新令牌,并將新令牌在所述令牌環(huán)網(wǎng)絡(luò)上流轉(zhuǎn), 其它節(jié)點(diǎn)根據(jù)所述新令牌的生成號(hào)判定繼續(xù)競(jìng)爭(zhēng)或退出,且產(chǎn)生新令牌的節(jié)點(diǎn)首先獲得信 息發(fā)送權(quán)。若所述其中一個(gè)節(jié)點(diǎn)上存在比當(dāng)前令牌更新的生成號(hào),則丟棄原令牌,當(dāng)所述令 牌信息傳回所述其中一個(gè)節(jié)點(diǎn)時(shí),更改令牌號(hào)為所述更新的生成號(hào)。
[0039] 具體的,由于網(wǎng)絡(luò)可能出現(xiàn)節(jié)點(diǎn)缺失或干擾的情況,可能導(dǎo)致令牌的丟失或多個(gè) 令牌出現(xiàn),因此還需要對(duì)令牌進(jìn)行維護(hù)。其中,等待確認(rèn)的時(shí)間(檢測(cè)周期)必須大于一個(gè)數(shù) 據(jù)幀在環(huán)上行走一周的時(shí)間TsencU如果令牌沒(méi)有丟失,該節(jié)點(diǎn)必然會(huì)第二次收到,從而避 免產(chǎn)生新的令牌。若超期沒(méi)有收到,則競(jìng)爭(zhēng)產(chǎn)生新令牌。新令牌在環(huán)上運(yùn)行時(shí),其他節(jié)點(diǎn)可 以根據(jù)令牌的生成號(hào)判斷繼續(xù)競(jìng)爭(zhēng)還是退出。如果某一節(jié)點(diǎn)有一個(gè)比當(dāng)前令牌更新的生成 號(hào),則所述某一節(jié)點(diǎn)聲明為它的令牌號(hào),丟棄原令牌,當(dāng)令牌轉(zhuǎn)回該節(jié)點(diǎn)時(shí),發(fā)生令牌號(hào)變 化,便知道有一個(gè)更新的令牌,從而退出競(jìng)爭(zhēng)。令牌繞環(huán)一周后,新的令牌產(chǎn)生。產(chǎn)生新令牌 的節(jié)點(diǎn)首先獲得信息發(fā)送權(quán)。
[0040] 在本實(shí)施例中,在所述令牌信息中令牌的幀結(jié)構(gòu)包括:幀控制字段、環(huán)地址、目的 地址、源地址、序列號(hào)、生成序列號(hào)、下一個(gè)獲得令牌的節(jié)點(diǎn)地址、待發(fā)送的數(shù)據(jù)、接收數(shù)據(jù) 響應(yīng)位、循環(huán)冗余糾錯(cuò)碼。其中,所述幀控制字段用于表示定義幀類(lèi)型,所述環(huán)地址用于表 明令牌所屬的令牌環(huán)網(wǎng)絡(luò),當(dāng)令牌每經(jīng)過(guò)一個(gè)節(jié)點(diǎn)所述序列號(hào)就累加1且返回到令牌環(huán)網(wǎng) 絡(luò)的發(fā)起站時(shí)清零,所述生成序列號(hào)初始值為〇,令牌在令牌環(huán)網(wǎng)絡(luò)循環(huán)一周,則生成序列 號(hào)累加1。
[0041 ]例如:如圖3所示,為本實(shí)施例中令牌幀結(jié)構(gòu)一種可能的實(shí)例,其中各字段定義如 下:
[0042] FC:幀控制字段(Frame Control)。定義幀類(lèi)型,如代表一般令牌,特殊令牌,數(shù)據(jù) 幀,設(shè)置前導(dǎo),設(shè)置后繼等。
[0043] RA:環(huán)地址(Ring Address)表明令牌屬于哪個(gè)令牌環(huán)網(wǎng)絡(luò),以區(qū)別不同令牌環(huán)上 的令牌。
[0044] DA:目的地址(Destination Address)如果為令牌幀,則DA代表該節(jié)點(diǎn)地址,如果 幀為數(shù)據(jù)幀,則DA代表發(fā)送數(shù)據(jù)的目的地址。
[0045] SA:源地址(Source Address)。
[0046] Seq:序列號(hào)(Sequence Number)初始值為0,當(dāng)令牌每經(jīng)過(guò)一個(gè)節(jié)點(diǎn),序列號(hào)就加 1,當(dāng)返回到令牌環(huán)的發(fā)起站時(shí),Seq就清零。
[0047] GenSeq:生成序列號(hào)(Generation Sequence)初始值為0,令牌循環(huán)一周,聲稱(chēng)序列 號(hào)就加1。
[0048] NRA:下一個(gè)獲得令牌的節(jié)點(diǎn)地址(Next Ring Address)。
[0049] Data:發(fā)送的數(shù)據(jù),在數(shù)據(jù)幀中有效。
[0050] ACK:接收數(shù)據(jù)響應(yīng)位,在數(shù)據(jù)幀中有效。
[0051] CRC:循環(huán)冗余糾錯(cuò)碼,在數(shù)據(jù)幀中有效。
[0052] 其中,全局信息和所有者信息按照其關(guān)聯(lián)度進(jìn)行分類(lèi),在系統(tǒng)設(shè)計(jì)階段進(jìn)行全局 信息和所有者信息的定義。例如表1所示,本實(shí)施例中基于全局-所有者結(jié)構(gòu)的分類(lèi)方法進(jìn) 行機(jī)器人控制系統(tǒng)分類(lèi)的部分?jǐn)?shù)據(jù)。
[0055] 表1
[0056] 本實(shí)施例可應(yīng)用于六自由度工業(yè)機(jī)器人,也可用于相似的其他機(jī)器人,該方法與 物理層具體的實(shí)現(xiàn)型號(hào)并無(wú)直接聯(lián)系,只要求驅(qū)動(dòng)模塊帶有總線接口即可實(shí)現(xiàn)。可廣泛應(yīng) 用于各種機(jī)器人的系統(tǒng)設(shè)計(jì)中。
[0057] 本發(fā)明實(shí)施例提供的用于六自由度機(jī)器人的控制方法,采用多主平行結(jié)構(gòu)設(shè)計(jì), 由伺服單元與控制器構(gòu)成"節(jié)點(diǎn)",各伺服單元帶有獨(dú)立的控制器,從而解決了PC機(jī)+DSP板 卡的主從結(jié)構(gòu)設(shè)計(jì)中PC機(jī)負(fù)載劇增的問(wèn)題,以及解決了節(jié)點(diǎn)增多時(shí)線束數(shù)量也會(huì)隨之劇增 的問(wèn)題;采用總線進(jìn)行節(jié)點(diǎn)(即各伺服單元的控制器)間通信,且節(jié)點(diǎn)間通信采用令牌環(huán)邏 輯進(jìn)行通信抉擇的令牌環(huán)邏輯設(shè)計(jì),從而解決了節(jié)點(diǎn)增多時(shí)控制系統(tǒng)中流轉(zhuǎn)的信息也會(huì)劇 增,從而導(dǎo)致信息存儲(chǔ)混亂的問(wèn)題;在多主平行結(jié)構(gòu)基礎(chǔ)上,信息流分布上采用全局一所有 者設(shè)計(jì)。具體在信息流分布中,采用全局-所有者結(jié)構(gòu)進(jìn)行信息分類(lèi);其中,按照信息分類(lèi)情 況,全局的信息在公共存儲(chǔ)區(qū)進(jìn)行共享存儲(chǔ);按照信息分類(lèi)情況,所有者信息在各節(jié)點(diǎn)中進(jìn) 行私有存儲(chǔ),從而解決了PC機(jī)+DSP板卡的主從結(jié)構(gòu)設(shè)計(jì)中,數(shù)據(jù)存儲(chǔ)于PC機(jī),當(dāng)PC機(jī)發(fā)生故 障時(shí)往往會(huì)導(dǎo)致整個(gè)控制系統(tǒng)功能喪失的問(wèn)題。與現(xiàn)有技術(shù)相比較,本發(fā)明基于現(xiàn)有總線 技術(shù)和令牌環(huán)網(wǎng)技術(shù),采用分布式通信對(duì)六自由度工業(yè)機(jī)器人進(jìn)行六軸控制,建立了完整 的令牌訪問(wèn)控制策略、全局-所有者資源控制策略。該方法具有實(shí)現(xiàn)簡(jiǎn)單、應(yīng)用方便,且與其 他總線兼容,便于拓展的特點(diǎn)。在能夠提高工業(yè)機(jī)器人控制效率的基礎(chǔ)上,減輕主機(jī)的負(fù)載 壓力,增強(qiáng)工業(yè)機(jī)器人的計(jì)算能力。
[0058] 本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部 分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于設(shè)備實(shí) 施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例 的部分說(shuō)明即可。以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于 此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替 換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范 圍為準(zhǔn)。
【主權(quán)項(xiàng)】
1. 一種用于六自由度機(jī)器人的控制方法,其特征在于,所述方法用于一種控制系統(tǒng),所 述控制系統(tǒng)包括:至少六個(gè)節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)包括伺服器,和加載伺服器上的DSP控制板卡; 各節(jié)點(diǎn)間通過(guò)總線進(jìn)行物理連接,所述總線采用Ethernet總線并形成微型局域網(wǎng)進(jìn)行信息 傳輸; 所述方法包括: 所述控制系統(tǒng)中的任一節(jié)點(diǎn)啟動(dòng)后,檢測(cè)是否為群首節(jié)點(diǎn)G; 若是則開(kāi)始令牌初始化過(guò)程,若不是則等待令牌初始化指令到達(dá); 當(dāng)令牌初始化完成后,檢測(cè)當(dāng)前是否存在待發(fā)送數(shù)據(jù)需要發(fā)送; 若是,則當(dāng)令牌到達(dá)時(shí)發(fā)送所述待發(fā)送數(shù)據(jù);若否則發(fā)送令牌信息,并循環(huán)令牌初始化 完成后的過(guò)程,直至所述控制系統(tǒng)關(guān)閉。2. 根據(jù)權(quán)利要求1所述的控制方法,其特征在于,在每一個(gè)節(jié)點(diǎn)中還包括共享存儲(chǔ)區(qū) (GS),其中,各節(jié)點(diǎn)中的共享存儲(chǔ)區(qū)在邏輯上擁有統(tǒng)一地址空間,各節(jié)點(diǎn)中的共享存儲(chǔ)區(qū)在 物理上共占用至少六塊地址空間,所述至少六塊地址空間分布于所述控制系統(tǒng)中的至少六 個(gè)節(jié)點(diǎn)中; 通過(guò)所述Ethernet總線廣播全局性數(shù)據(jù),并由各節(jié)點(diǎn)將所述全局性數(shù)據(jù)存儲(chǔ)至所述共 享存儲(chǔ)區(qū); 通過(guò)所述Ethernet總線對(duì)全網(wǎng)廣播對(duì)于共享存儲(chǔ)區(qū)的修改數(shù)據(jù)的修改信息,其中,各 節(jié)點(diǎn)對(duì)共享存儲(chǔ)區(qū)的訪問(wèn)采用P-V互鎖方式。3. 根據(jù)權(quán)利要求1所述的控制方法,其特征在于,在每一個(gè)節(jié)點(diǎn)中還包括私有存儲(chǔ)區(qū) (PS),其中,各節(jié)點(diǎn)中的私有存儲(chǔ)區(qū)在邏輯上擁有互不相同的地址空間,各節(jié)點(diǎn)中的私有存 儲(chǔ)區(qū)在物理上共占用至少六塊地址空間,所述至少六塊地址空間分布于所述控制系統(tǒng)中的 至少六個(gè)節(jié)點(diǎn)中; 一個(gè)節(jié)點(diǎn)存儲(chǔ)、維護(hù)和修改這一個(gè)節(jié)點(diǎn)的私有存儲(chǔ)區(qū)中的數(shù)據(jù); 并通過(guò)所述Ethernet總線訪問(wèn)另一個(gè)節(jié)點(diǎn)中的私有存儲(chǔ)區(qū)中的數(shù)據(jù)。4. 根據(jù)權(quán)利要求1所述的控制方法,其特征在于,所述令牌初始化過(guò)程包括: 由群首節(jié)點(diǎn)G生成初始化令牌消息,并隨機(jī)發(fā)送給G的鄰居節(jié)點(diǎn)I,并向I告知G為群首節(jié) 點(diǎn),同時(shí)標(biāo)記I為G的其后繼節(jié)點(diǎn); I收到所述初始化令牌消息后,標(biāo)記I的其后繼節(jié)點(diǎn),在每一個(gè)節(jié)點(diǎn)上重復(fù)標(biāo)記其后繼 節(jié)點(diǎn)的過(guò)程,直至G收到G的鄰居節(jié)點(diǎn)K發(fā)送的G為K的后繼節(jié)點(diǎn)消息后,確定令牌環(huán)網(wǎng)絡(luò)建立 完畢,所述令牌環(huán)網(wǎng)絡(luò)的網(wǎng)絡(luò)地址為G的MAC地址。5. 根據(jù)權(quán)利要求4所述的控制方法,其特征在于,所述令牌初始化完成后的過(guò)程,包括: I在發(fā)送數(shù)據(jù)時(shí)首先將數(shù)據(jù)幀packetl的令牌位置為零,并發(fā)送數(shù)據(jù)幀; 若一個(gè)節(jié)點(diǎn)存在待發(fā)送數(shù)據(jù)需要發(fā)送,則在所述一個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)所述數(shù)據(jù)幀packetl時(shí), 將所述數(shù)據(jù)幀packetl的令牌位置為這一個(gè)節(jié)點(diǎn)的標(biāo)號(hào),當(dāng)所述數(shù)據(jù)幀packetl回到I時(shí),將 發(fā)送權(quán)轉(zhuǎn)交至這一個(gè)節(jié)點(diǎn)。6. 根據(jù)權(quán)利要求4所述的控制方法,其特征在于,所述令牌初始化完成后的過(guò)程,還包 括: 在每個(gè)檢測(cè)周期,檢測(cè)其中一個(gè)節(jié)點(diǎn)是否收到所述令牌信息,其中,所述檢測(cè)周期大于 一個(gè)數(shù)據(jù)幀在所述令牌環(huán)網(wǎng)絡(luò)上流轉(zhuǎn)一周的時(shí)間; 若所述檢測(cè)周期超期時(shí)所述其中一個(gè)節(jié)點(diǎn)沒(méi)有收到所述令牌信息,則競(jìng)爭(zhēng)產(chǎn)生新令 牌,并將新令牌在所述令牌環(huán)網(wǎng)絡(luò)上流轉(zhuǎn),其它節(jié)點(diǎn)根據(jù)所述新令牌的生成號(hào)判定繼續(xù)競(jìng) 爭(zhēng)或退出,且產(chǎn)生新令牌的節(jié)點(diǎn)首先獲得信息發(fā)送權(quán); 若所述其中一個(gè)節(jié)點(diǎn)上存在比當(dāng)前令牌更新的生成號(hào),則丟棄原令牌,當(dāng)所述令牌信 息傳回所述其中一個(gè)節(jié)點(diǎn)時(shí),更改令牌號(hào)為所述更新的生成號(hào)。7.根據(jù)權(quán)利要求1-6中任意一項(xiàng)所述的控制方法,其特征在于,在所述令牌信息中令牌 的幀結(jié)構(gòu)包括:幀控制字段、環(huán)地址、目的地址、源地址、序列號(hào)、生成序列號(hào)、下一個(gè)獲得令 牌的節(jié)點(diǎn)地址、待發(fā)送的數(shù)據(jù)、接收數(shù)據(jù)響應(yīng)位、循環(huán)冗余糾錯(cuò)碼; 其中,所述幀控制字段用于表示定義幀類(lèi)型,所述環(huán)地址用于表明令牌所屬的令牌環(huán) 網(wǎng)絡(luò),當(dāng)令牌每經(jīng)過(guò)一個(gè)節(jié)點(diǎn)所述序列號(hào)就累加1且返回到令牌環(huán)網(wǎng)絡(luò)的發(fā)起站時(shí)清零,所 述生成序列號(hào)初始值為0,令牌在令牌環(huán)網(wǎng)絡(luò)循環(huán)一周,則生成序列號(hào)累加1。
【文檔編號(hào)】B25J9/16GK106041929SQ201610473531
【公開(kāi)日】2016年10月26日
【申請(qǐng)日】2016年6月24日
【發(fā)明人】孫斌
【申請(qǐng)人】南京工程學(xué)院