田間巡航艦是繼土砲一號後另一個農業機器人專案,主要用來實驗在田間巡航的技術可行性,以及用自己的屍體展示地雷在哪裡。
田間巡航艦與土砲一號的架構/功能差別如下:
- 以市售遙控賽車車體為基礎,沒有機器手臂
- 使用24V鋰電池供電系統(5V電力系統已推不動這麼大台的車子)
- 用STM32控制板取代Arduino,整合感測器與馬達控制
- 用Jetson nano取代Raspberry pi,讓物體偵測可以直接在板端運行
- 從板端提供網頁介面,讓其他裝置可(從內網)透過網頁看車子狀態並控制車體運行
- 實作三種控制模式,除遙桿控制外,也測試了跟隨模式和自動巡航模式
- 提供網頁介面讓使用者設定巡航路線
- 整合gps和超音波測距做自動巡航
- 整合相機校正程序做apriltag 3d定位
- 整合realsense depth camera
- 整合yolov4,yolov5物體偵測
- 可從車體上傳影像到群眾標註,讓社群產生資料集供後續訓練
-
手動模式
-
跟隨模式
-
建立巡航路徑
-
自動模式 - 定點測試
- 本專案因軟硬體架構的運算能力/頻寬限制/加減速反應等因素,車體定位功能很容易迷失方向,因此無法實際在室外做自動巡航。(詳情請見下方的「已知問題」)
-
YoloV4物體偵測(使用yolov4-tiny.weights)
-
YoloV5物體偵測(使用yolov5s.pt)
-
物體偵測整合深度資訊
-
上傳群眾標註
- nano
- ros_ws/: ros workspace,放車體主程式
- py3_ros_ws/: 使用python3的ros workspace,放YoloV4、YoloV5物體偵測程式
- web/: 放控制車體的網頁程式
- *.sh: 執行車體程式
- experiment/: 開發時測試用的程式
- stm32/VapaaCruiser
- VapaaCruiser.ioc: STM32Cube檔,設定控制板腳位
- Src/: 控制板主程式
- Inc/: 由STM32Cube產生的include檔
- Drivers/: 由STM32Cube產生的STM32硬體函式庫
- MDK-ARM/: 由STM32Cube產生的Keil uVision專案,在windows開發時可用
- STM32CubeIDE/: 由STM32Cube產生的STM32CubeIDE專案,在ubuntu開發時可用
- TrueSTUDIO/: 由STM32Cube產生的TrueSTUDIO專案,在ubuntu開發時可用
- Makefile: 由STM32Cube產生的Makefile,在nano開發時可用
- 感謝Lock出借車體、控制板、電池、Realsense D435、Jetson nano
- 感謝哈爸提供韌體開發技術指導
- 感謝Victor提供STM32技術指導
- 感謝CH YoloV4、Yolov5技術文章與開源工具