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