本發(fā)明涉及機(jī)器人領(lǐng)域,尤其涉及一種舵機(jī)信息防丟失方法及裝置。
背景技術(shù):
機(jī)器人取代人工逐漸成為一種趨勢,作為應(yīng)用于機(jī)器人上的舵機(jī),為了便于連線,通常采用數(shù)字舵機(jī)方式,這種方式舵機(jī)內(nèi)帶mcu,能進(jìn)行數(shù)據(jù)指令解析及運(yùn)行電機(jī)控制算法,還能存儲一些舵機(jī)關(guān)鍵信息,比如舵機(jī)的id,零點(diǎn)漂移值等,這些信息通常被存儲在mcu的flash區(qū)。在機(jī)器人各關(guān)節(jié)中,各個舵機(jī)相當(dāng)于一個小型發(fā)電機(jī),當(dāng)機(jī)器人在未上電且有外力掰動機(jī)器人關(guān)節(jié)時(shí),如果舵機(jī)主板沒有對舵機(jī)所發(fā)的電進(jìn)行適當(dāng)處理的話,各關(guān)節(jié)舵機(jī)所發(fā)的電將直接注入舵機(jī)電源總線中,很有可能會使得某些舵機(jī)直接上電工作。而在實(shí)際情況下外力掰動機(jī)器人關(guān)節(jié)都是隨機(jī),沒規(guī)律的,對應(yīng)所產(chǎn)生的電壓也是隨意波動的,表現(xiàn)出極不穩(wěn)定。某些舵機(jī)就是在這種極不穩(wěn)定的電壓下上電工作的,而實(shí)驗(yàn)證明大多數(shù)單片機(jī)在不穩(wěn)定電壓下對flash區(qū)進(jìn)行的讀取寫入操作并不可靠,導(dǎo)致讀取舵機(jī)信息時(shí)產(chǎn)生讀取錯誤,這些信息會被不正確的頻繁修改,導(dǎo)致舵機(jī)存儲的關(guān)鍵信息丟失的情況時(shí)常發(fā)生,給樣機(jī)品質(zhì)帶來很大隱患。
另在對舵機(jī)信息進(jìn)行調(diào)試時(shí),有時(shí)會被非法修改,導(dǎo)致舵機(jī)信息錯亂,無法正??刂茩C(jī)器人。比如,一機(jī)器人有標(biāo)識id分別為1、2、3、4、5、6的6個舵機(jī),如果其中標(biāo)識id為6的舵機(jī)被修改成了id1,那么機(jī)器上將會有兩個1號舵機(jī),同時(shí)少了一個6號舵機(jī),原本的機(jī)器人的控制程序?qū)o法正??刂茩C(jī)器人。同時(shí)如果2號舵機(jī)的零點(diǎn)漂移值被修改了,那么在原來相同的機(jī)器人控制命令下,2號舵機(jī)所做出來的動作將發(fā)生一定角度的偏移,這種偏移可以使機(jī)器人的某些動作變形。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種舵機(jī)存儲信息防丟失方法,其能解決機(jī)器人樣機(jī)研發(fā)調(diào)試過程中舵機(jī)存儲信息被不正確頻繁修改導(dǎo)致存儲的正確信息丟失的問題。
本發(fā)明的目的采用以下技術(shù)方案實(shí)現(xiàn):
一種舵機(jī)信息防丟失方法,包括以下步驟:
讀取預(yù)先存儲的舵機(jī)信息;
判斷讀取的預(yù)先存儲的舵機(jī)信息是否合法;
若合法,則將所述讀取的預(yù)先存儲的舵機(jī)信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息;若不合法,則調(diào)用統(tǒng)一樣板配置信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息。
優(yōu)選的,所述舵機(jī)信息包括舵機(jī)標(biāo)識和零點(diǎn)漂移值。
優(yōu)選的,所述判斷讀取的預(yù)先存儲的舵機(jī)信息是否合法包括判斷讀取的舵機(jī)信息格式是否正確以及判斷相關(guān)的數(shù)值是否在設(shè)定范圍之內(nèi)。
優(yōu)選的,所述方法還包括:
若接收到舵機(jī)信息修改指令,則判斷舵機(jī)信息修改指令中的指令標(biāo)識是否與舵機(jī)標(biāo)識一致;
若一致,則根據(jù)所述舵機(jī)信息修改指令修改舵機(jī)信息,并將修改后的舵機(jī)信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息。
優(yōu)選的,所述方法還包括:
將修改后的舵機(jī)信息更新至存儲區(qū)。
本發(fā)明還提供了一種舵機(jī)信息防丟失裝置,包括:
讀取模塊,用于讀取預(yù)先存儲的舵機(jī)信息;
第一判斷模塊,用于判斷讀取的預(yù)先存儲的舵機(jī)信息是否合法;
設(shè)置模塊,用于當(dāng)讀取的預(yù)先存儲的舵機(jī)信息合法時(shí),將所述讀取的預(yù)先存儲的舵機(jī)信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息;
調(diào)用模塊,用于當(dāng)讀取的預(yù)先存儲的舵機(jī)信息不合法時(shí),則調(diào)用統(tǒng)一樣板配置信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息;
優(yōu)選的,所述舵機(jī)信息包括舵機(jī)標(biāo)識和零點(diǎn)漂移值。
優(yōu)選的,所述第一判斷模塊還具體用于判斷讀取的舵機(jī)信息格式是否正確以及判斷相關(guān)的數(shù)值是否在設(shè)定范圍之內(nèi)。
優(yōu)選的,所述裝置還包括:
接收模塊,用于接收輸入的舵機(jī)修改指令;
第二判斷模塊,用于當(dāng)接收到舵機(jī)信息修改指令時(shí),判斷舵機(jī)信息修改指令中的指令標(biāo)識是否與舵機(jī)標(biāo)識一致;
修改模塊,用于當(dāng)舵機(jī)信息修改指令中的指令標(biāo)識與舵機(jī)標(biāo)識一致時(shí),根據(jù)所述舵機(jī)信息修改指令修改舵機(jī)信息,并將修改后的舵機(jī)信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息。更新模塊,用于將修改后的舵機(jī)信息更新至存儲區(qū)。
本發(fā)明還提供了一種舵機(jī)信息防丟失裝置,所述裝置包括:
處理器,
以及用于存儲所述處理器可執(zhí)行指令的存儲器;
所述處理器被配置用于:
讀取預(yù)先存儲的舵機(jī)信息;
判斷讀取的預(yù)先存儲的舵機(jī)信息是否合法;
若合法,則將所述讀取的預(yù)先存儲的舵機(jī)信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息;若不合法,則調(diào)用統(tǒng)一樣板配置信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息。
相比現(xiàn)有技術(shù),本發(fā)明的有益效果在于:通過判斷讀取的預(yù)先存儲的舵機(jī)信息是否合法,設(shè)置存儲的舵機(jī)信息或調(diào)用統(tǒng)一樣板配置信息作為當(dāng)前運(yùn)行的舵機(jī)信息,運(yùn)行完畢,當(dāng)前運(yùn)行的舵機(jī)信息不保存,預(yù)先存儲的舵機(jī)信息不做改變,避免了電源壓不穩(wěn)定下,讀取錯誤導(dǎo)致的舵機(jī)信息被改。
附圖說明
圖1為本發(fā)明實(shí)施例中舵機(jī)信息防丟失方法流程示意圖;
圖2為本發(fā)明實(shí)施例中舵機(jī)信息防丟失裝置結(jié)構(gòu)示意圖。
圖3為本發(fā)明另一實(shí)施例中舵機(jī)信息防丟失裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面,結(jié)合附圖以及具體實(shí)施方式,對本發(fā)明做進(jìn)一步描述:
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明中實(shí)施例一提供了一種舵機(jī)信息防丟失方法,解決上電電壓不穩(wěn)定讀取操作錯誤舵機(jī)信息被錯誤修改以及執(zhí)行修改指令被非法修改的問題;本發(fā)明實(shí)例二又提供了一種舵機(jī)信息防丟失裝置,同樣也是解決上電電壓不穩(wěn)定讀取操作錯誤舵機(jī)信息被錯誤修改以及執(zhí)行修改指令被非法修改的問題。以下從具體實(shí)施例詳細(xì)介紹。
實(shí)施例一:
如圖1所示,圖1為本實(shí)施例中的舵機(jī)信息防丟失方法流程示意圖。在圖1中,舵機(jī)信息防丟失方法,包括以下步驟:
步驟001:讀取預(yù)先存儲的舵機(jī)信息。
研發(fā)樣機(jī)組裝完成之后,相對應(yīng)的舵機(jī)信息也已經(jīng)寫入舵機(jī)mcu中進(jìn)行存儲。舵機(jī)上電后,就會在第一時(shí)間讀取預(yù)先存儲的舵機(jī)信息,舵機(jī)的很多操作,如命令的過濾,響應(yīng)等都會用到這些信息,并以此信息作為一個重要的標(biāo)準(zhǔn)來決定舵機(jī)自身是否要響應(yīng)所接收的命令,以及如何響應(yīng)命令等。
步驟002:判斷預(yù)先存儲的舵機(jī)信息是否合法。
對讀取的預(yù)先存儲的舵機(jī)信息進(jìn)行判斷是否合法,具體體現(xiàn)在對比舵機(jī)信息在格式上和數(shù)值范圍是否符合內(nèi)部預(yù)設(shè)的標(biāo)準(zhǔn)。
步驟0031:若合法,則將讀取的舵機(jī)信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息;
步驟0032:若不合法,則調(diào)用統(tǒng)一樣板配置信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息。
對于讀取的舵機(jī)信息是否合法,若合法,則進(jìn)行步驟0031,即將讀取的舵機(jī)信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息,這里將合法舵機(jī)信息作為當(dāng)前運(yùn)行的舵機(jī)信息,運(yùn)行完畢下電即失效,預(yù)先存儲的舵機(jī)信息還是存儲在mcu中的flash區(qū);若不合法,則進(jìn)行步驟0032,即調(diào)用統(tǒng)一樣板配置信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息,這里的統(tǒng)一樣板配置信息為所有舵機(jī)信息的共同子集,即在所有舵機(jī)上都適用,為一組特殊的數(shù)據(jù)信息值,這里將統(tǒng)一樣板配置信息作為當(dāng)前運(yùn)行的舵機(jī)信息,運(yùn)行完畢下電即失效,預(yù)先存儲的舵機(jī)信息還是存儲在mcu中的flash區(qū)。避免了讀取錯誤對預(yù)先存儲的舵機(jī)信息進(jìn)行修改。
樣機(jī)上電運(yùn)行之后,經(jīng)常需要對樣機(jī)進(jìn)行調(diào)試,通過修改一些舵機(jī)信息進(jìn)行參數(shù)優(yōu)化,在此過程經(jīng)常出現(xiàn)非法被修改。
進(jìn)一步的,舵機(jī)信息防丟失方法還包括以下步驟:
步驟004:接收舵機(jī)信息修改指令。
步驟005:判斷舵機(jī)信息修改指令中的指令標(biāo)識與舵機(jī)標(biāo)識是否一致。
舵機(jī)標(biāo)識是由mcu的芯片進(jìn)過一定的運(yùn)算得到的,由于mcu芯片的id具有唯一性,故舵機(jī)標(biāo)識也具有唯一性。對接收的舵機(jī)信息修改指令進(jìn)行判斷,對比指令中包括的標(biāo)識與已存在的舵機(jī)標(biāo)識是否一致。
步驟006:若一致,則根據(jù)舵機(jī)信息修改指令修改舵機(jī)信息,并將修改后的舵機(jī)信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息。
指令標(biāo)識與舵機(jī)標(biāo)識一致,則此次舵機(jī)運(yùn)行以修改后的舵機(jī)信息為標(biāo)準(zhǔn)。當(dāng)然,不一致,則不能進(jìn)行修改,需重新輸入修改指令。
步驟007:運(yùn)行完畢,將修改好的舵機(jī)信息更新到預(yù)先存儲區(qū)。
在調(diào)試過程中,不斷進(jìn)行舵機(jī)信息修改,試驗(yàn),直到本次調(diào)試好,則當(dāng)前舵機(jī)信息為調(diào)試好的信息,調(diào)試運(yùn)行完畢之后,則將本次當(dāng)前修改好的舵機(jī)信息對預(yù)先存儲區(qū)的舵機(jī)信息進(jìn)行更新保存,作為當(dāng)前最佳舵機(jī)信息進(jìn)行保存。
實(shí)施例二:
本發(fā)明實(shí)施例還提供了一種舵機(jī)信息防丟失裝置,如圖2所示,圖2為本實(shí)施例中的舵機(jī)信息防丟失裝置結(jié)構(gòu)示意圖。在圖2中,舵機(jī)信息防丟失裝置,包括:
讀取模塊100,讀取預(yù)先存儲的舵機(jī)信息;
第一判斷模塊200,判斷讀取模塊讀取的預(yù)先存儲的舵機(jī)信息是否合法;
設(shè)置模塊310,將讀取的舵機(jī)信息設(shè)置為當(dāng)前運(yùn)行需要的舵機(jī)信息;
調(diào)用模塊320,調(diào)用統(tǒng)一樣板配置信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息;
進(jìn)一步的,舵機(jī)信息防丟失裝置還可包括:
接收模塊400,接收舵機(jī)信息修改指令;
第二判斷模塊500,判斷舵機(jī)信息修改指令中的指令標(biāo)識與舵機(jī)標(biāo)識是否一致;
修改模塊600,根據(jù)舵機(jī)信息修改指令修改舵機(jī)信息;
更新模塊700,將修改好的舵機(jī)信息更新到預(yù)先存儲區(qū)。
本實(shí)施例中的裝置與前述實(shí)施例一中的方法是基于同一發(fā)明構(gòu)思下的兩個方面,在前面已經(jīng)對方法實(shí)施過程作了詳細(xì)的描述,所以本領(lǐng)域技術(shù)人員可根據(jù)前述描述清楚地了解本實(shí)施中的系統(tǒng)的結(jié)構(gòu)組成,為了說明書的簡潔,在此就不再贅述。
實(shí)施例三:
本發(fā)明實(shí)施例另又提供了一種舵機(jī)信息防丟失裝置,如圖3所示,圖3為本實(shí)施例中的舵機(jī)信息防丟失裝置結(jié)構(gòu)示意圖。在圖3中,舵機(jī)信息防丟失裝置,包括:
處理器900,
以及用于存儲所述處理器可執(zhí)行指令的存儲器800;
所述處理器800被配置用于:
讀取預(yù)先存儲的舵機(jī)信息;
判斷讀取的預(yù)先存儲的舵機(jī)信息是否合法;
若合法,則將所述讀取的預(yù)先存儲的舵機(jī)信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息;若不合法,則調(diào)用統(tǒng)一樣板配置信息作為當(dāng)前運(yùn)行需要的舵機(jī)信息。
進(jìn)一步的,處理器還被配置用于:
判斷舵機(jī)信息修改指令中的指令標(biāo)識與舵機(jī)標(biāo)識是否一致;
根據(jù)舵機(jī)信息修改指令修改舵機(jī)信息將修改好的舵機(jī)信息更新到存儲器中。
相比現(xiàn)有技術(shù),本發(fā)明的有益效果在于:通過判斷讀取的預(yù)先存儲的舵機(jī)信息是否合法,設(shè)置存儲的舵機(jī)信息或調(diào)用統(tǒng)一樣板配置信息作為當(dāng)前運(yùn)行的舵機(jī)信息,運(yùn)行完畢,當(dāng)前運(yùn)行的舵機(jī)信息不保存,預(yù)先存儲的舵機(jī)信息不做改變,避免了電源壓不穩(wěn)定下,讀取錯誤導(dǎo)致的舵機(jī)信息被改;以及通過判斷接收的舵機(jī)信息修改指令中的標(biāo)識碼與舵機(jī)標(biāo)識碼是否一致,減少了被非法修改的可能性。
本實(shí)施例中的裝置與前述實(shí)施例一中的方法是基于同一發(fā)明構(gòu)思下的兩個方面,在前面已經(jīng)對方法實(shí)施過程作了詳細(xì)的描述,所以本領(lǐng)域技術(shù)人員可根據(jù)前述描述清楚地了解本實(shí)施中的系統(tǒng)的結(jié)構(gòu)組成,為了說明書的簡潔,在此就不再贅述。
為了描述的方便,描述以上裝置時(shí)以功能分為各種模塊分別描述。當(dāng)然,在實(shí)施本發(fā)明時(shí)可以把各模塊的功能在同一個或多個軟件和/或硬件中實(shí)現(xiàn)。
通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn)。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例或者實(shí)施例的某些部分所述的方法。
描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的模塊或單元可以是或者也可以不是物理上分開的,作為模塊或單元示意的部件可以是或者也可以不是物理模塊,既可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)模塊上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實(shí)施。
對本領(lǐng)域的技術(shù)人員來說,可根據(jù)以上描述的技術(shù)方案以及構(gòu)思,做出其它各種相應(yīng)的改變以及形變,而所有的這些改變以及形變都應(yīng)該屬于本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。