數(shù)據(jù)集抖動(dòng)根源:四類硬件污染與定位方法)
1. 力反饋遙操作數(shù)據(jù)集里的抖動(dòng)到底是誰在搗亂做過力反饋遙操作真機(jī)數(shù)據(jù)采集的人大概率都經(jīng)歷過這種崩潰時(shí)刻明明機(jī)械臂在遙操作端走得挺順主手手感也還算干凈可一落盤成數(shù)據(jù)集回放的時(shí)候關(guān)節(jié)力矩曲線就像心電圖一樣上下亂跳。你以為是控制算法沒調(diào)好反復(fù)改阻抗參數(shù)、換導(dǎo)納控制律結(jié)果抖動(dòng)依舊。折騰幾天之后才反應(yīng)過來——問題根本不在算法層而是硬件鏈路里藏著幾類“污染源”它們把干凈的力信號(hào)一點(diǎn)點(diǎn)搞臟了。這篇內(nèi)容就是圍繞“力反饋遙操作真機(jī)數(shù)據(jù)集為什么總帶抖動(dòng)”這個(gè)具體問題展開的。我會(huì)把常見的四類硬件問題拆開講清楚它們分別怎么產(chǎn)生抖動(dòng)、抖動(dòng)在數(shù)據(jù)里長什么樣、怎么定位、怎么在采集流程里規(guī)避。適合正在做遙操作數(shù)據(jù)采集、力反饋主手標(biāo)定、模仿學(xué)習(xí)數(shù)據(jù)集構(gòu)建的從業(yè)者參考也適合剛接手真機(jī)平臺(tái)、對(duì)“數(shù)據(jù)為什么不能用”感到困惑的工程師。核心關(guān)鍵詞就是力反饋、遙操作、真機(jī)數(shù)據(jù)集、抖動(dòng)、硬件污染全文圍繞這幾個(gè)點(diǎn)往深里挖。先說一個(gè)反直覺的結(jié)論大部分?jǐn)?shù)據(jù)集里的抖動(dòng)不是控制頻率不夠高造成的也不是濾波器沒加。真正高頻出現(xiàn)的元兇是硬件層面的四類問題——編碼器量化與機(jī)械回差、力傳感器供電與接地噪聲、通信鏈路時(shí)序抖動(dòng)、以及主從端機(jī)械諧振耦合。這四類問題有個(gè)共同特點(diǎn)它們?cè)趩未握{(diào)試時(shí)往往被控制環(huán)的魯棒性“壓住”了看起來沒事但一旦進(jìn)入長時(shí)間、多工況的數(shù)據(jù)采集就會(huì)在樣本里留下系統(tǒng)性的污染。下面逐類拆解。2. 第一類污染編碼器量化誤差與機(jī)械回差疊加出的“假抖動(dòng)”2.1 為什么編碼器分辨率不夠會(huì)偽裝成力抖動(dòng)力反饋遙操作里力信號(hào)很多時(shí)候不是直接測(cè)出來的而是通過關(guān)節(jié)位置差分、再結(jié)合雅可比矩陣反推出來的。這就意味著位置信號(hào)的量化誤差會(huì)被放大到力維度。舉個(gè)具體例子某關(guān)節(jié)編碼器是14位單圈分辨率16384減速比100:1那么輸出端理論分辨率大約是0.00038度。聽起來很細(xì)但如果你用位置差分算速度、再算加速度和力矩兩次差分之后量化噪聲會(huì)被放大兩個(gè)數(shù)量級(jí)。在低速段真實(shí)運(yùn)動(dòng)量可能只有幾個(gè)量化臺(tái)階差分出來的速度就是0、臺(tái)階、0、臺(tái)階這種跳變反映到力矩上就是規(guī)律性的小抖動(dòng)。這種抖動(dòng)的典型特征是頻率和采樣率相關(guān)幅度不大但持續(xù)存在而且和運(yùn)動(dòng)速度強(qiáng)相關(guān)——速度越低越明顯。很多人誤以為是摩擦力模型沒建好其實(shí)是量化噪聲在作祟。判斷方法很簡單讓機(jī)械臂完全靜止采集一段力矩?cái)?shù)據(jù)如果靜止時(shí)力矩曲線依然有固定頻率的小幅波動(dòng)基本可以鎖定是量化或差分放大問題。2.2 機(jī)械回差是怎么把干凈信號(hào)變成“雙穩(wěn)態(tài)”抖動(dòng)的比量化更隱蔽的是機(jī)械回差。諧波減速器、同步帶、聯(lián)軸器這些環(huán)節(jié)都存在間隙。當(dāng)遙操作主手做往復(fù)運(yùn)動(dòng)時(shí)間隙會(huì)導(dǎo)致位置信號(hào)在換向瞬間出現(xiàn)“跳變”——不是連續(xù)變化而是突然跳過一個(gè)小區(qū)間。這個(gè)跳變經(jīng)過力反饋控制律會(huì)瞬間產(chǎn)生一個(gè)反向力矩脈沖主手端能明顯感覺到“咯噔”一下。在數(shù)據(jù)集里這種抖動(dòng)的特征是出現(xiàn)在運(yùn)動(dòng)方向反轉(zhuǎn)的時(shí)刻幅度比量化抖動(dòng)大頻率不固定和換向頻率一致。如果你把關(guān)節(jié)力矩和關(guān)節(jié)速度畫在同一張圖上會(huì)發(fā)現(xiàn)抖動(dòng)總是出現(xiàn)在速度過零附近。這類污染對(duì)模仿學(xué)習(xí)特別致命因?yàn)椴呗跃W(wǎng)絡(luò)會(huì)把“換向時(shí)的力矩脈沖”當(dāng)成一種需要復(fù)現(xiàn)的動(dòng)作特征學(xué)進(jìn)去最后學(xué)出來的策略在換向時(shí)也會(huì)抖。2.3 實(shí)操中怎么區(qū)分這兩者并做針對(duì)性處理區(qū)分方法我常用一個(gè)簡單流程先做靜態(tài)采集機(jī)械臂鎖死不動(dòng)看力矩噪聲底再做勻速往復(fù)運(yùn)動(dòng)看換向點(diǎn)附近的力矩突變。靜態(tài)有規(guī)律小波動(dòng)是量化換向有脈沖是回差。處理上量化問題靠提高編碼器有效分辨率或改用直接力傳感來繞開差分放大比如在關(guān)節(jié)輸出端加裝力矩傳感器直接測(cè)力矩而不是反推?;夭顔栴}沒法靠軟件完全消除但可以在采集流程里規(guī)避讓遙操作軌跡盡量單向、減少高頻換向或者在數(shù)據(jù)后處理階段把換向窗口的數(shù)據(jù)段標(biāo)記出來訓(xùn)練時(shí)降權(quán)或剔除。我個(gè)人的經(jīng)驗(yàn)是回差導(dǎo)致的污染樣本占比如果超過5%這批數(shù)據(jù)最好重新采不要硬洗。3. 第二類污染力傳感器供電與接地噪聲最容易被忽視的“電抖動(dòng)”3.1 供電紋波如何直接調(diào)制到力信號(hào)上力傳感器尤其是應(yīng)變片式的輸出是毫伏級(jí)差分信號(hào)對(duì)供電質(zhì)量極其敏感。很多采集平臺(tái)圖省事力傳感器和電機(jī)驅(qū)動(dòng)器共用一路24V電源電機(jī)一加速母線電流波動(dòng)供電紋波就耦合進(jìn)傳感器激勵(lì)電壓里。結(jié)果就是電機(jī)動(dòng)作越猛力信號(hào)上的噪聲越大。這種抖動(dòng)的特征是幅度和電機(jī)電流強(qiáng)相關(guān)頻率往往在幾百赫茲到幾千赫茲表現(xiàn)為力信號(hào)上疊了一層“毛刺”。更麻煩的是這種噪聲在時(shí)域上看起來像隨機(jī)噪聲但在頻域上和電機(jī)PWM頻率及其諧波對(duì)得上。如果你做頻譜分析會(huì)發(fā)現(xiàn)噪聲峰值出現(xiàn)在PWM頻率整數(shù)倍附近。判斷方法讓電機(jī)空載勻速轉(zhuǎn)力傳感器不受外力采集力信號(hào)做FFT如果看到和PWM頻率相關(guān)的峰基本就是供電耦合。3.2 接地環(huán)路看不見的抖動(dòng)放大器接地問題比供電紋波更隱蔽。遙操作平臺(tái)通常有多個(gè)接地點(diǎn)控制柜、主手、從手、傳感器屏蔽層、采集卡。如果這些接地點(diǎn)之間存在電位差就會(huì)形成接地環(huán)路環(huán)路電流會(huì)在信號(hào)線上感應(yīng)出噪聲。這種噪聲的特征是50Hz及其諧波明顯幅度隨平臺(tái)擺放、線纜走向變化有時(shí)候你動(dòng)一下線纜噪聲就變了。我踩過的一個(gè)坑是主手和從手分別接在不同的電源插座上兩個(gè)插座的地線電位差有幾十毫伏結(jié)果力信號(hào)上一直有50Hz干擾。后來把整個(gè)平臺(tái)統(tǒng)一到一個(gè)配電點(diǎn)用等電位接地排噪聲直接降了一個(gè)數(shù)量級(jí)。這個(gè)經(jīng)驗(yàn)很土但非常有效。3.3 屏蔽與走線的幾個(gè)硬規(guī)矩處理電噪聲硬件層面有幾條硬規(guī)矩值得遵守。第一力傳感器信號(hào)線必須用雙絞屏蔽線屏蔽層單端接地接在采集卡端不要兩端都接否則形成屏蔽環(huán)流。第二信號(hào)線和電機(jī)動(dòng)力線必須分開走線至少間隔20厘米交叉時(shí)盡量垂直。第三傳感器激勵(lì)電源獨(dú)立供電用線性電源或低紋波開關(guān)電源不要和電機(jī)驅(qū)動(dòng)器共用。第四采集卡和傳感器之間如果距離超過2米考慮用差分傳輸或加信號(hào)調(diào)理模塊。這些規(guī)矩聽起來老生常談但我在至少三個(gè)不同平臺(tái)上見過因?yàn)閯?dòng)力線和信號(hào)線捆在一起走導(dǎo)致的數(shù)據(jù)污染。數(shù)據(jù)集里的表現(xiàn)就是力信號(hào)上有一層和電機(jī)動(dòng)作同步的噪聲訓(xùn)練出來的策略在電機(jī)大動(dòng)作時(shí)力矩輸出也會(huì)跟著抖。4. 第三類污染通信鏈路時(shí)序抖動(dòng)讓力反饋“對(duì)不上拍”4.1 時(shí)序抖動(dòng)為什么會(huì)在力信號(hào)上留下痕跡力反饋遙操作是閉環(huán)系統(tǒng)主手位置要傳到從手從手力要傳回主手這個(gè)環(huán)路有通信延遲。如果通信延遲是恒定的控制算法可以補(bǔ)償?shù)绻舆t是抖動(dòng)的——也就是時(shí)序抖動(dòng)——補(bǔ)償就失效了。時(shí)序抖動(dòng)會(huì)導(dǎo)致力反饋指令和實(shí)際位置不同步在數(shù)據(jù)里表現(xiàn)為力信號(hào)和位置信號(hào)之間的相位關(guān)系不穩(wěn)定時(shí)域上看就是力信號(hào)上疊了一層低頻晃動(dòng)。這種抖動(dòng)的特征是頻率較低通常在幾赫茲到幾十赫茲和通信周期的抖動(dòng)頻率相關(guān)。它和機(jī)械抖動(dòng)的區(qū)別在于機(jī)械抖動(dòng)和運(yùn)動(dòng)狀態(tài)強(qiáng)相關(guān)時(shí)序抖動(dòng)則和通信負(fù)載相關(guān)——當(dāng)你同時(shí)采集多路信號(hào)、或者后臺(tái)有其他任務(wù)占用總線時(shí)抖動(dòng)會(huì)加重。4.2 常見通信方式的時(shí)序抖動(dòng)對(duì)比不同通信方式的時(shí)序抖動(dòng)差異很大選型時(shí)值得對(duì)照看通信方式典型周期時(shí)序抖動(dòng)適用場(chǎng)景注意事項(xiàng)工業(yè)以太網(wǎng)1ms幾十微秒多軸同步采集需硬件時(shí)間戳CAN總線1-10ms百微秒級(jí)關(guān)節(jié)伺服負(fù)載高時(shí)抖動(dòng)大串口5-20ms毫秒級(jí)低速傳感器不適合力反饋閉環(huán)實(shí)時(shí)總線0.5-1ms微秒級(jí)高動(dòng)態(tài)遙操作成本高需專用卡從表里能看出來如果你用力反饋?zhàn)龈邉?dòng)態(tài)遙操作串口基本不能用CAN在負(fù)載高時(shí)也會(huì)拖后腿。我見過一個(gè)平臺(tái)用CAN傳力信號(hào)單軸測(cè)試時(shí)挺好六軸一起跑的時(shí)候時(shí)序抖動(dòng)直接翻倍數(shù)據(jù)集里的力信號(hào)出現(xiàn)周期性晃動(dòng)查了很久才定位到總線負(fù)載。4.3 用時(shí)間戳和緩沖策略把時(shí)序抖動(dòng)壓下去處理時(shí)序抖動(dòng)軟件層面有兩個(gè)實(shí)用手段。第一所有采集數(shù)據(jù)打硬件時(shí)間戳不要用軟件時(shí)間戳。硬件時(shí)間戳能反映信號(hào)真實(shí)到達(dá)時(shí)刻后處理時(shí)可以重采樣對(duì)齊。第二在通信接收端加抖動(dòng)緩沖把數(shù)據(jù)先緩存幾個(gè)周期再消費(fèi)用緩沖深度換時(shí)序穩(wěn)定性。緩沖深度需要權(quán)衡太淺壓不住抖動(dòng)太深增加延遲一般取3到5個(gè)通信周期比較合適。還有一個(gè)經(jīng)驗(yàn)采集程序和通信程序盡量綁核避免被操作系統(tǒng)調(diào)度打斷。在Linux下可以用CPU親和性設(shè)置把采集線程綁到獨(dú)立核心上。這個(gè)操作看起來和力反饋無關(guān)但實(shí)測(cè)能把時(shí)序抖動(dòng)降低一半以上。5. 第四類污染主從端機(jī)械諧振耦合最像“算法問題”的硬件問題5.1 諧振是怎么被誤判成控制參數(shù)問題的機(jī)械諧振是四類污染里最容易被誤判的。主手和從手都是彈性結(jié)構(gòu)有固有頻率。當(dāng)力反饋控制環(huán)的帶寬接近機(jī)械固有頻率時(shí)就會(huì)激發(fā)諧振表現(xiàn)為力信號(hào)和位置信號(hào)同時(shí)出現(xiàn)某個(gè)固定頻率的大幅振蕩。這個(gè)頻率通常在幾十赫茲到幾百赫茲看起來特別像控制增益調(diào)太高導(dǎo)致的振蕩。很多人遇到這種情況第一反應(yīng)是降增益、加濾波器。降增益確實(shí)能壓住振蕩但代價(jià)是力反饋?zhàn)儭叭狻蓖该鞫认陆禂?shù)據(jù)集里的力信號(hào)變得遲鈍。加濾波器能濾掉振蕩頻率但會(huì)引入相位滯后同樣影響透明度。結(jié)果就是振蕩沒了但數(shù)據(jù)質(zhì)量也廢了——力信號(hào)被濾得太平滑丟失了真實(shí)的接觸力細(xì)節(jié)。5.2 用敲擊測(cè)試找固有頻率別靠猜定位諧振最靠譜的方法是做敲擊測(cè)試。機(jī)械臂斷電用加速度計(jì)貼在主手和從手末端用小錘敲擊采集加速度信號(hào)做FFT找峰值頻率。這個(gè)頻率就是機(jī)械固有頻率。然后對(duì)比你的控制環(huán)帶寬如果兩者接近諧振風(fēng)險(xiǎn)就很高。我做過的一個(gè)平臺(tái)主手固有頻率在85Hz左右控制環(huán)帶寬設(shè)到了60Hz結(jié)果力信號(hào)上一直有80多赫茲的振蕩。一開始以為是傳感器噪聲后來敲擊測(cè)試才找到根源。把控制帶寬降到40Hz以下振蕩消失但透明度確實(shí)下降了。最后的方案是在機(jī)械結(jié)構(gòu)上加阻尼材料把固有頻率挪到120Hz以上才既保住帶寬又壓住諧振。5.3 結(jié)構(gòu)阻尼與陷波器的組合用法處理諧振硬件和軟件要配合。硬件上在主手和從手的連桿連接處加阻尼墊片、用高阻尼材料做結(jié)構(gòu)件能把諧振峰壓低、頻率挪高。軟件上如果諧振頻率固定可以用陷波器精準(zhǔn)濾掉那個(gè)頻率而不是用低通濾波器一刀切。陷波器的參數(shù)要根據(jù)敲擊測(cè)試結(jié)果來設(shè)中心頻率對(duì)準(zhǔn)諧振峰帶寬設(shè)窄一點(diǎn)這樣對(duì)其它頻段影響最小。需要提醒的是陷波器會(huì)引入相位失真用在力反饋閉環(huán)里要謹(jǐn)慎。我的做法是先盡量用結(jié)構(gòu)阻尼把諧振峰壓到不影響控制的水平陷波器只作為最后一道保險(xiǎn)而且只在數(shù)據(jù)后處理階段用不在實(shí)時(shí)控制環(huán)里用。這樣采集到的原始數(shù)據(jù)保留了真實(shí)力信息后處理時(shí)再?zèng)Q定要不要濾。6. 把四類污染串起來一套可復(fù)現(xiàn)的抖動(dòng)定位流程6.1 從數(shù)據(jù)特征反推污染類型的對(duì)照表實(shí)際排查時(shí)最快的方式是先看數(shù)據(jù)特征再反推污染類型。下面這張表是我自己總結(jié)的對(duì)照關(guān)系實(shí)測(cè)命中率挺高數(shù)據(jù)特征可能污染類型快速驗(yàn)證方法靜止時(shí)固定頻率小波動(dòng)編碼器量化鎖死機(jī)械臂采靜態(tài)數(shù)據(jù)換向時(shí)力矩脈沖機(jī)械回差勻速往復(fù)運(yùn)動(dòng)看換向點(diǎn)噪聲與電機(jī)電流相關(guān)供電紋波電機(jī)空載勻速轉(zhuǎn)看FFT50Hz及諧波明顯接地環(huán)路統(tǒng)一接地點(diǎn)前后對(duì)比低頻晃動(dòng)與通信負(fù)載相關(guān)時(shí)序抖動(dòng)單軸vs多軸采集對(duì)比固定頻率大幅振蕩機(jī)械諧振敲擊測(cè)試找固有頻率這張表的價(jià)值在于它把“看數(shù)據(jù)猜原因”變成了“按特征查表”能省掉大量盲目試錯(cuò)的時(shí)間。我建議每個(gè)做遙操作數(shù)據(jù)采集的團(tuán)隊(duì)都根據(jù)自己的平臺(tái)特征維護(hù)一張類似的表因?yàn)椴煌脚_(tái)的污染特征會(huì)有差異。6.2 采集前的硬件自檢清單與其等數(shù)據(jù)臟了再洗不如采集前把硬件狀態(tài)確認(rèn)一遍。我常用的自檢清單包括力傳感器靜態(tài)噪聲底是否低于量程的0.1%電機(jī)動(dòng)作時(shí)力信號(hào)噪聲是否明顯增大通信時(shí)序抖動(dòng)是否在可接受范圍主從手敲擊測(cè)試諧振頻率是否遠(yuǎn)離控制帶寬所有信號(hào)線屏蔽和走線是否合規(guī)。這幾項(xiàng)檢查加起來不到半小時(shí)但能避免幾天的數(shù)據(jù)返工。6.3 數(shù)據(jù)后處理階段的補(bǔ)救手段與邊界如果數(shù)據(jù)已經(jīng)采了發(fā)現(xiàn)抖動(dòng)后處理能救回一部分但有邊界。量化噪聲和電噪聲可以用濾波壓但濾波會(huì)損失帶寬回差脈沖可以標(biāo)記剔除但會(huì)減少有效樣本時(shí)序抖動(dòng)可以重采樣對(duì)齊但需要硬件時(shí)間戳諧振可以陷波但會(huì)引入相位失真。我的原則是能通過硬件解決的不靠軟件能采集時(shí)規(guī)避的不靠后處理。后處理只做微調(diào)不做主力。7. 幾個(gè)我在真機(jī)采集里踩出來的經(jīng)驗(yàn)第一個(gè)經(jīng)驗(yàn)抖動(dòng)問題優(yōu)先懷疑硬件最后懷疑算法。我早期做遙操作采集遇到抖動(dòng)就改控制參數(shù)改了好幾天沒效果最后發(fā)現(xiàn)是傳感器供電和電機(jī)共用導(dǎo)致的。從那以后我的排查順序固定為供電與接地、通信時(shí)序、機(jī)械回差與諧振、最后才是控制參數(shù)。第二個(gè)經(jīng)驗(yàn)靜態(tài)噪聲底是數(shù)據(jù)質(zhì)量的“體溫計(jì)”。每次采集前花兩分鐘采一段靜態(tài)數(shù)據(jù)看噪聲底。如果靜態(tài)噪聲底比平時(shí)高說明硬件狀態(tài)有變化先查硬件再采。這個(gè)習(xí)慣幫我攔下了好幾次因?yàn)榫€纜松動(dòng)、接地不良導(dǎo)致的數(shù)據(jù)污染。第三個(gè)經(jīng)驗(yàn)換向段數(shù)據(jù)要單獨(dú)標(biāo)記。機(jī)械回差導(dǎo)致的換向脈沖很難完全消除但可以在數(shù)據(jù)里把換向窗口標(biāo)記出來。訓(xùn)練模仿學(xué)習(xí)策略時(shí)對(duì)這些段降權(quán)或者用單向軌跡替代能明顯提升策略的平滑度。這個(gè)操作不復(fù)雜但對(duì)最終策略質(zhì)量影響很大。第四個(gè)經(jīng)驗(yàn)別追求“完美干凈”的數(shù)據(jù)。真實(shí)力反饋數(shù)據(jù)一定帶噪聲適度的噪聲反而讓策略更魯棒。關(guān)鍵是區(qū)分“真實(shí)力信號(hào)”和“硬件污染”——前者要保留后者要處理。我見過有人把數(shù)據(jù)濾得特別干凈結(jié)果策略在真機(jī)上完全不適應(yīng)因?yàn)檎鎸?shí)世界本來就有噪聲。所以處理抖動(dòng)的目標(biāo)是“去污染”不是“去噪聲”。力反饋遙操作真機(jī)數(shù)據(jù)集的抖動(dòng)問題說到底是一個(gè)硬件鏈路質(zhì)量的問題。四類污染——編碼器量化與回差、供電與接地噪聲、通信時(shí)序抖動(dòng)、機(jī)械諧振耦合——每一類都有明確的特征和對(duì)應(yīng)的處理手段。把這幾類問題在采集流程里系統(tǒng)性地管起來數(shù)據(jù)集的質(zhì)量會(huì)有質(zhì)的提升。后續(xù)如果要做更細(xì)的頻域分析或者自適應(yīng)濾波也可以在這個(gè)基礎(chǔ)上繼續(xù)往下挖。