2024-07-31 |Annabel Ng
在該項(xiàng)目的[上一篇博客文章]中,我介紹了運(yùn)行機(jī)器人電機(jī)、處理音頻信號(hào)和調(diào)節(jié)電壓所需的電路的基礎(chǔ)知識(shí)。然而,機(jī)器人還沒有完全完成!盡管機(jī)器人可以正確移動(dòng)輪子并識(shí)別音頻信號(hào),但它仍然無法通過語音命令控制或按預(yù)定義路徑行駛。
線性控制模型
首先要解決的問題是實(shí)現(xiàn)直線驅(qū)動(dòng)。為此,我們使用線性模型來控制提供給車輪的電壓。使用線性模型適合對(duì)汽車系統(tǒng)進(jìn)行建模,因?yàn)榫€性系統(tǒng)更容易分析,并且我們可以通過找到具有近似線性行為的工作點(diǎn)來估計(jì)真實(shí)系統(tǒng)。對(duì)于我們的每個(gè)車輪,我們使用以下模型,其中 v 代表速度,d 代表編碼器測量的刻度數(shù),u 代表 PWM 信號(hào)傳遞的電壓,theta 代表輸入電壓的變化以改變速度變化,beta 代表一些常數(shù)。
為了測試不同的數(shù)據(jù)收集速度,我們改變了脈寬調(diào)制信號(hào) (PWM) 的占空比,這些信號(hào)是具有可變“開啟”時(shí)間的方波。這些占空比代表信號(hào)所花費(fèi)的時(shí)間百分比,使我們能夠控制 PWM 信號(hào)的平均電壓。這對(duì)于電機(jī)等系統(tǒng)特別有用,您可以[在此處]閱讀有關(guān) PWM 周期的更多信息!例如,占空比為 0.75 的 5V 信號(hào)會(huì)產(chǎn)生 3.75V 的平均電壓,因此通過循環(huán)不同的占空比,我們可以輕松測試不同特定電壓對(duì)汽車速度的影響。
最小二乘法
為了選擇直線驅(qū)動(dòng)機(jī)器人的運(yùn)行速度,我們首先收集 50 到 250 個(gè) PWM 周期的一些粗輪速度數(shù)據(jù),然后查看數(shù)據(jù)圖表以觀察數(shù)據(jù)的近似線性范圍。確定特定的 PWM 范圍后,我們重新運(yùn)行數(shù)據(jù)收集并對(duì)左右車輪速度應(yīng)用最小二乘模型。最小二乘法的工作原理是找到一個(gè)線性方程,最小化到給定數(shù)據(jù)點(diǎn)的平方距離。這種最小二乘模型使我們能夠控制輸入 PWM 電壓,從而線性控制速度。
閉環(huán)反饋
然而,最小二乘法是一個(gè)開環(huán)系統(tǒng),這意味著它不會(huì)響應(yīng)外部反饋。這種開環(huán)系統(tǒng)使機(jī)器人沿圓周行駛,而不是沿所需的直線行駛。一旦我們將反饋?zhàn)兞考{入系統(tǒng)中,使其成為閉環(huán)系統(tǒng),兩個(gè)車輪就會(huì)以相等的速度驅(qū)動(dòng),從而使汽車直線行駛。我們的閉環(huán)系統(tǒng)必須是穩(wěn)定的,這意味著系統(tǒng)特征值的大小必須小于 1。最后,為了實(shí)現(xiàn)轉(zhuǎn)彎,我們必須采用圓弧的幾何形狀,并考慮到左圓弧之間行駛距離的差異。和右輪。
現(xiàn)在我們的機(jī)器人可以直行并左右轉(zhuǎn)彎,下一步就是建立語音分類模型。由于不同的單詞有不同的波形,我們選擇了 4 個(gè)具有不同音節(jié)和聲音的單詞,以產(chǎn)生不同的波形。我們使用機(jī)器人上的麥克風(fēng)將每個(gè)單詞錄制 50 次,預(yù)處理數(shù)據(jù),然后將數(shù)據(jù)分成訓(xùn)練和測試部分。我們通過垂直堆疊數(shù)據(jù)、貶低數(shù)據(jù)并對(duì)該數(shù)據(jù)進(jìn)行奇異值分解(SVD)來構(gòu)建矩陣。
這是分解任意矩陣的 SVD 方程:
對(duì)數(shù)據(jù)進(jìn)行 SVD 使我們能夠找到數(shù)據(jù)的“本質(zhì)”,或者從頭開始重建數(shù)據(jù)最重要的數(shù)據(jù)。我們可以通過選擇前 3 個(gè)主成分作為新的矩陣基礎(chǔ)來找到這些重要成分。將數(shù)據(jù)投影到這個(gè)新的基礎(chǔ)上后,數(shù)據(jù)分裂成不同的簇,使我們能夠找到每個(gè)簇的中心,也稱為質(zhì)心。然后,我們使用這些質(zhì)心對(duì)我們的測試點(diǎn)進(jìn)行分類:分類的工作原理是找到從測試點(diǎn)到質(zhì)心的歐幾里得距離并將其與閾值進(jìn)行比較 - 如果距離小于閾值,則該點(diǎn)將被分類為相同的點(diǎn)類作為該特定質(zhì)心。一旦我們有了很強(qiáng)的模型準(zhǔn)確性,我們就在 Arduino 上使用這個(gè)模型來測試實(shí)時(shí)分類。
這是我們選擇的四個(gè)單詞的簇的圖像:狗、拉布拉多、柯基犬、汽油。這些簇非常不同且分離,因此可以輕松創(chuàng)建基于歐幾里德距離的準(zhǔn)確分類模型。
當(dāng)機(jī)器人能夠成功地直線行駛、轉(zhuǎn)向不同方向以及對(duì)語音命令進(jìn)行分類之后,就到了將所有內(nèi)容組合在一起的時(shí)候了。集成涉及將運(yùn)動(dòng)命令添加到分類程序中,因此如果 Arduino 將某個(gè)詞分類為“直”,則相應(yīng)的運(yùn)動(dòng)將是直行。經(jīng)過大量測試和調(diào)整響度和歐幾里德閾值,我們的機(jī)器人終于工作了!這是整個(gè)學(xué)期學(xué)習(xí)電路、控制系統(tǒng)和 PCA 的成果,看到它的實(shí)際應(yīng)用真是太酷了。
這是完成的機(jī)器人的圖像!
如果我再次做這個(gè)項(xiàng)目,我會(huì)嘗試以更高層次的視角來研究它,而不是總是試圖關(guān)注較小的細(xì)節(jié)。有時(shí),我太沉迷于實(shí)際構(gòu)建電路或編碼算法,以至于忘記了電路在大局中的作用,直到最后我才對(duì)所有組件有了更好的欣賞。進(jìn)入了這個(gè)項(xiàng)目。有幾周我還害怕實(shí)驗(yàn)室,因?yàn)槲抑肋@需要實(shí)驗(yàn)室的整整三個(gè)小時(shí)甚至更多,但我會(huì)提醒自己最終產(chǎn)品,并且我非常感激有機(jī)會(huì)將我所學(xué)到的知識(shí)應(yīng)用到這個(gè)項(xiàng)目中!
特別感謝我的實(shí)驗(yàn)室合作伙伴 Eric Wen(他也是加州大學(xué)伯克利分校 EECS 的學(xué)生),以及使學(xué)習(xí)所有這些內(nèi)容成為可能的課程工作人員!所有數(shù)據(jù)均來自官方網(wǎng)站[https://www.eecs16b.org/]。
審核編輯 黃宇
-
機(jī)器人
+關(guān)注
關(guān)注
211文章
28645瀏覽量
208426 -
PWM
+關(guān)注
關(guān)注
114文章
5198瀏覽量
214889 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8441瀏覽量
133087 -
語音控制
+關(guān)注
關(guān)注
5文章
484瀏覽量
28310 -
線性模型
+關(guān)注
關(guān)注
0文章
9瀏覽量
7849
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論