受到Plantvillage.psu.edu和iita.org工作的啟發(fā),我們希望使用DonkeyCar平臺構(gòu)建一個自主機(jī)器人。
該機(jī)器人可以在農(nóng)場環(huán)境中移動而不會損壞現(xiàn)有植物或土壤,并使用物體檢測來查找和標(biāo)記病害作物具有環(huán)保色彩。傳統(tǒng)上,在大多數(shù)高科技案例中,我們都必須使用手機(jī)手動檢查大型農(nóng)場以標(biāo)記農(nóng)作物,這會花費我們大量的時間和精力。此外,使用的各種手機(jī)不一定具備高效完成任務(wù)所需的所有功能,或者他們必須等待擁有合適設(shè)備的人。圍繞農(nóng)場運行的統(tǒng)一機(jī)器人平臺將解決這些問題并使標(biāo)記速度更快。速度還可以更輕松地在多個農(nóng)場之間共享平臺。
挑戰(zhàn):
保持機(jī)器人的尺寸/重量足夠小,以免損壞作物本身。
在不損壞現(xiàn)有作物的情況下導(dǎo)航。
尋找一種安全標(biāo)記患病作物的方法。
尋找一個數(shù)據(jù)集和農(nóng)場來測試平臺
背景:
除了在方法、技術(shù)、時間安排等方面找到共同點之外,我們還必須制定一個包含會議時間表、存儲庫、會議技術(shù)等的框架。從本質(zhì)上講,專業(yè)項目的所有組成部分都必須到位,除了沒有報酬。我們沒有預(yù)算,不過這不是問題,因為我們有共同的愿景和執(zhí)行意愿。在這段時間,我們都度過了愉快的時光,這是一次了不起的學(xué)習(xí)經(jīng)歷。
構(gòu)建機(jī)器人:
底盤、自主導(dǎo)航和圖像分類的工作立即開始,進(jìn)展順利。但我們遇到了與底盤和驅(qū)動系統(tǒng)相關(guān)的重大意外挑戰(zhàn)和延誤。
簡而言之,我們沒有預(yù)料到測試溫室之間會出現(xiàn)如此多變的地形,在場景A中表現(xiàn)良好的電機(jī)、輪子、接線、控制等在場景B中不堪重負(fù)。我們通過大量的mod撥入了一個適用于我們所有環(huán)境的工作機(jī)箱。所以我們不得不做出大量時間和預(yù)算限制,但最終產(chǎn)品超出了我們最初的最小可行配置目標(biāo)。提交時的最終設(shè)計如下所述。
相機(jī)桿:
為了能夠觀察凸起的植物床,并可能升級到可以觀察番茄植物頂部和底部的移動攝像頭,我們使用從車庫出售的碳纖維桿建造了一個攝像桿。該桿裝有2個3D打印夾具,用于導(dǎo)航和分類攝像頭。我們還在桿子上添加了1.2v太陽能照明,以及在泳池頂部添加了12v多色狀態(tài)燈。是的,那是一個在桿子頂部涂成黑色的重新利用的藥丸容器。最終效果非常好!
這些相機(jī)是連接到兩個由USB充電器供電的不同Pi上的RaspberryPi相機(jī)。使用2Pi的原因是分類和導(dǎo)航都使用需要大量處理能力的神經(jīng)網(wǎng)絡(luò)。此外,分類攝像頭必須指向植物,而導(dǎo)航攝像頭必須指向前方。桿子的頂部也必須有燈作為指示器。在尋找足夠亮的RGB燈時,我們發(fā)現(xiàn)它們要花費100美元以上,所以我們使用揚聲器的燈、一個用于反射的小塑料袋并裝在一個空藥瓶中制作了自己的燈。因為燈需要12伏我們的Arduino輸出為5伏,我們將其連接到繼電器。連接需要與Arduino和3根電線共同接地,我們在Arduino的引腳7、8和11上放置的綠色和藍(lán)色燈。我們可以通過使用analogWrite函數(shù)為所有三根線提供不同的值來模擬這些燈的RGB光譜。請注意,為了正確著色,所有三個都需要寫入,否則之前在任何一個引腳上寫入的顏色可能會顯示出意想不到的結(jié)果。
機(jī)殼:
我們在StoneCoop和GrowingHope農(nóng)場對帶有輪子和履帶的塑料底盤進(jìn)行的實驗證明是不成功的,這兩種選擇都將挖入有利于植物的沙地。我們剝離了其中一個臨時底盤版本很多塑料齒輪在升級到金屬之前和處理更高電流的能力:
由于其強(qiáng)大的電機(jī)和大輪子,我們最終選擇了MountainArkSR13底盤,并按照以下說明進(jìn)行組裝。
我們對MountainArk進(jìn)行了修改,添加了一個平臺以將計算技術(shù)與電源分開,并通過定制涂漆的輕質(zhì)外殼和獨特的徽標(biāo)為Farmaid增添了一絲風(fēng)格。
組裝好底盤后,我們需要電機(jī)和電池為其供電。雖然底盤帶有電池盒,但我們決定使用12V鋰聚合物電池,因為我們已經(jīng)有了可用的電池,并且已將其與舊底盤一起使用。電機(jī)使用接線盒連接到電池,以獲得更高的電流消耗。
我們最初使用的是我們擁有的普通L298電機(jī)控制器,但發(fā)現(xiàn)電流太低,無法為我們現(xiàn)在擁有的320RPM電機(jī)供電。因此,我們改用IBT-2電機(jī)控制器,這是另一個創(chuàng)客空間成員捐贈的。IBT-2電機(jī)控制器的問題在于它們只能控制1個電機(jī),所以我們必須連接其中的4個。
IBT-2的詳細(xì)信息可以在這里看到:http://www.hessmer.org/blog/2013/12/28/ibt-2-h-bridge-with-arduino/為了節(jié)省布線空間,我們拼接了左右PWM線,接頭將左側(cè)電機(jī)和右側(cè)電機(jī)的L-PWM和R-PWM相互連接。
我們使用的另一種節(jié)省空間的技術(shù)是將所有電機(jī)的使能引腳直接連接到Arduino的5伏電壓。
在此之后,我們需要直接連接到Arduino的唯一電機(jī)部分是PWM引腳。在左側(cè),我們將左側(cè)電機(jī)的R_PWM連接到Arduino上的6引腳,將L_PWM連接到5引腳。請注意,左側(cè)兩個控制器的R_PWM引腳和左側(cè)兩個控制器上的L_PWM是拼接的,因此向一個的正向命令將同時向前移動,向一個反向命令將在左側(cè)的兩個輪子反轉(zhuǎn)。右側(cè)也進(jìn)行了同樣的拼接。右側(cè)的R_PWM連接到Arduino的9針,L_PWM連接到Arduino的10針。對于碰撞檢測,我們首先嘗試了我們小組成員中的一個Garmin激光雷達(dá),但我們很難讓它工作,所以我們決定使用SR04超聲波傳感器。
我們還在后面添加了另一個傳感器,但由于使用定時器中斷的方式,我們無法在手動控制機(jī)器人的同時使用它。請注意,我們制作了另一個Arduino例程,僅使用傳感器在障礙物之間移動機(jī)器人,但這不符合行為克隆方法。
駕駛:
由于我們無法使用類似于驢車的底盤,因為它無法在我們給定的環(huán)境中行駛,因此我們必須編寫自己的駕駛代碼。為此,我們使用了兩個靈感,DonkeyCar自己的***rSentdex的一系列視頻。駕駛模型基于DonkeyCar,除了沒有回歸和均方誤差,我們使用分類來使用圖像在7個按鈕之間進(jìn)行分類。我們還將它轉(zhuǎn)換成一個全卷積神經(jīng)網(wǎng)絡(luò),使其更快,并與新的研究相一致。在測試中,我們發(fā)現(xiàn)它不斷輸出一個按鈕,這與訓(xùn)練中我們在幾個間隔后按下一個鍵不同。為了解決這個問題,我們后來在Arduino腳本中添加了一些代碼來輸出按鈕按下之間經(jīng)過的時間。
病株分類:
對于分類,我們使用MobileNetSSD模型,因為它的尺寸相對較小,而且它已經(jīng)有一種上傳到安卓應(yīng)用程序的方法。我們通過使用5-10秒的視頻獲取數(shù)據(jù)并創(chuàng)建了一個腳本來從這些視頻中提取圖像視頻。視頻本身被放置在以疾病和植物命名的文件夾中。我們確保在不同的條件和不同的地點拍攝這些視頻。整個訓(xùn)練數(shù)據(jù)集由大約2000張圖像組成。我們還制作了一個網(wǎng)站來展示分類的輸出以及溫室及其植物健康的整體地圖。該網(wǎng)站使用XML數(shù)據(jù)創(chuàng)建此網(wǎng)格。
-
機(jī)器人
+關(guān)注
關(guān)注
211文章
28673瀏覽量
208545 -
自主機(jī)器人
+關(guān)注
關(guān)注
0文章
20瀏覽量
7923
發(fā)布評論請先 登錄
相關(guān)推薦
【「具身智能機(jī)器人系統(tǒng)」閱讀體驗】2.具身智能機(jī)器人的基礎(chǔ)模塊
機(jī)器人想要實現(xiàn)智能移動,必須具備超強(qiáng)的自主定位導(dǎo)航能力
SLAM不等于機(jī)器人自主定位導(dǎo)航
【MAX40056申請】自主機(jī)器人的BLDC驅(qū)動
怎么構(gòu)建一張滿足機(jī)器人導(dǎo)航需求的地圖?
機(jī)器人是什么?
DIY一個友好型自主機(jī)器人
自制一個單獨行走的機(jī)器人
毫米波技術(shù)如何為自主機(jī)器人提供邊緣智能
自主機(jī)器人足球系統(tǒng)的通信機(jī)制
ISLA是一個DIY友好型自主機(jī)器人
![ISLA是<b class='flag-5'>一</b><b class='flag-5'>個</b>DIY友好型<b class='flag-5'>自主機(jī)器人</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論