使用光電二極管陣列,構(gòu)建一款自動(dòng)尋光機(jī)器人汽車
我們的團(tuán)隊(duì)開(kāi)發(fā)了一款自動(dòng)尋光機(jī)器人汽車,旨在探測(cè)和導(dǎo)航光源。該系統(tǒng)采用四方向光敏傳感器陣列,通過(guò)內(nèi)置微控制器進(jìn)行實(shí)時(shí)處理,以演示基于傳感器的決策和控制。
硬件
機(jī)器人的感知和跟蹤能力由光電二極管模塊驅(qū)動(dòng)。我們使用的光電二極管模塊將光電二極管的標(biāo)準(zhǔn)微安培輸出電流轉(zhuǎn)換為放大的模擬電壓,范圍從0V到3.3V。然后將這些模擬信號(hào)傳輸?shù)絋I發(fā)射臺(tái),然后使用板載adc縮放到0V - 3V范圍,以優(yōu)化控制邏輯的動(dòng)態(tài)范圍。
4個(gè)光電二極管按N-S-E-W方向排列,安裝在固定平臺(tái)的頂部。當(dāng)“北方”傳感器對(duì)準(zhǔn)機(jī)器人的前進(jìn)方向時(shí),機(jī)器人可以同時(shí)從四個(gè)基本方向采樣入射光強(qiáng)度。
采樣、導(dǎo)航和跟蹤
控制邏輯以比較原理運(yùn)行,旨在使機(jī)器人的前進(jìn)方向與檢測(cè)到的最強(qiáng)光源保持一致。通過(guò)從四個(gè)光電二極管不斷采樣,控制系統(tǒng)確定哪個(gè)方向提供最高的光強(qiáng)度。當(dāng)一個(gè)光電二極管檢測(cè)到比其他更強(qiáng)的光時(shí),機(jī)器人的控制系統(tǒng)就會(huì)調(diào)整馬達(dá),這樣汽車就會(huì)轉(zhuǎn)向更亮的光源。這種感知、比較和機(jī)動(dòng)的連續(xù)反饋循環(huán)使機(jī)器人能夠自主地重新定位,并朝著光源行駛,直到到達(dá)目的地,展示了基于傳感器的基本導(dǎo)航和自主決策。
我們的控制邏輯被分成三個(gè)主要部分,每個(gè)部分都有自己的中斷:
?該過(guò)程由ADC_ISR啟動(dòng),它對(duì)來(lái)自光電二極管的模擬信號(hào)進(jìn)行采樣,并將其轉(zhuǎn)換為數(shù)字值進(jìn)行處理。
?然后將控制傳遞給SPIB_ISR, SPIB_ISR通過(guò)從實(shí)時(shí)讀數(shù)中減去環(huán)境光電平,對(duì)ADC讀數(shù)進(jìn)行2秒的初始信號(hào)校準(zhǔn)。這最大限度地降低了機(jī)器人對(duì)背景環(huán)境噪音的敏感性。
?最后,SWI_ISR中斷包含高級(jí)決策和電機(jī)驅(qū)動(dòng)。外部基于光強(qiáng)度和內(nèi)部電機(jī)控制回路被安置在這個(gè)中斷函數(shù)中。在這里,將校準(zhǔn)后的傳感器數(shù)據(jù)進(jìn)行比較,以確定最佳轉(zhuǎn)向方向,并相應(yīng)地調(diào)整電機(jī)PWM信號(hào)以轉(zhuǎn)向機(jī)器人。
機(jī)器人控制邏輯
通過(guò)將控制邏輯分為兩個(gè)回路:高層的外部“光跟蹤”回路和低層的內(nèi)部“電機(jī)控制”回路,使用嵌套控制回路來(lái)確定機(jī)器人對(duì)光源的導(dǎo)航行為。
1)基于外部強(qiáng)度的循環(huán)
?計(jì)算光亮度矢量m來(lái)確定光源的信號(hào)強(qiáng)度和方向性:
?如果檢測(cè)到方向良好的光源,且m大于閾值,機(jī)器人將計(jì)算東西傳感器之間的歸一化誤差,以確定轉(zhuǎn)向方向。標(biāo)準(zhǔn)化有助于確保昏暗/遠(yuǎn)光源和強(qiáng)/近光源之間的一致靈敏度,防止機(jī)器人在靠近強(qiáng)光源時(shí)變得“過(guò)于激進(jìn)”,同時(shí)保持對(duì)弱/遠(yuǎn)光源的響應(yīng)。
?比例導(dǎo)數(shù)(PD)控制器使用歸一化誤差來(lái)計(jì)算轉(zhuǎn)速,而導(dǎo)數(shù)項(xiàng)有助于抑制振蕩并防止超調(diào)。
?如果機(jī)器人檢測(cè)到最強(qiáng)的光源在機(jī)器人后面(即來(lái)自南方傳感器的最高強(qiáng)度讀數(shù)),則啟動(dòng)180°旋轉(zhuǎn)以使機(jī)器人旋轉(zhuǎn)。
?如果機(jī)器人在400ms內(nèi)沒(méi)有檢測(cè)到強(qiáng)光源/定向光源,則進(jìn)入“搜索狀態(tài)”,進(jìn)行緩慢、連續(xù)的逆時(shí)針旋轉(zhuǎn),掃描環(huán)境,直到檢測(cè)到強(qiáng)光源→進(jìn)入“光跟蹤狀態(tài)”。
?當(dāng)機(jī)器人接近光源時(shí),會(huì)觸發(fā)第一強(qiáng)度閾值限制,使機(jī)器人不再向前移動(dòng)。不久之后,觸發(fā)更高(+0.01 V)的第二強(qiáng)度閾值限制,鳴響蜂鳴器,表明機(jī)器人正前方有強(qiáng)光源。
2)內(nèi)電機(jī)控制回路
?在這里,一個(gè)耦合比例積分(PI)控制器將期望的轉(zhuǎn)速與實(shí)際車輪速度進(jìn)行比較,并調(diào)整發(fā)送給電機(jī)的PWM信號(hào),以不斷更新其轉(zhuǎn)速。為了防止積分項(xiàng)累積誤差,采用了反積分上發(fā)條的方法。
未來(lái)的工作/改進(jìn)
?改進(jìn)的跟蹤分辨率- 4個(gè)對(duì)角傳感器(東北/西北/東南/西南)
將當(dāng)前(N-S-E-W)傳感器布局?jǐn)U展為八個(gè)方向的八角形陣列,以填補(bǔ)北、東、南、西方向之間的空白。這種密集的傳感器位置填補(bǔ)了主軸之間的空白,提高了角度分辨率,并允許控制邏輯在連續(xù)的360°范圍內(nèi)插入光強(qiáng)度。這使得機(jī)器人在光源離軸時(shí)反應(yīng)更平穩(wěn),減少方向和振蕩的突然變化,并防止機(jī)器人由于類似的傳感器讀數(shù)而無(wú)法旋轉(zhuǎn)的“死區(qū)”??偟膩?lái)說(shuō),這提高了轉(zhuǎn)向的穩(wěn)定性,從而實(shí)現(xiàn)了更穩(wěn)定、更自然的導(dǎo)航和更流暢的目標(biāo)軌跡。
?動(dòng)態(tài)三軸光跟蹤
通過(guò)集成伺服驅(qū)動(dòng)的傾斜機(jī)構(gòu),機(jī)器人獲得了第二自由度,使其能夠主動(dòng)掃描峰值光強(qiáng)度的特定高度。這個(gè)“俯仰”軸使控制系統(tǒng)能夠超越簡(jiǎn)單的水平估計(jì),并確定目標(biāo)光源是位于機(jī)器人當(dāng)前平面的上方還是下方。
有了這種垂直掃描能力,機(jī)器人可以定位和跟蹤三維光源,而不是假設(shè)光源總是位于二維平面上,使系統(tǒng)在光源高度可能變化的現(xiàn)實(shí)環(huán)境中更加健壯。
本文編譯自hackster.io





