資料介紹
描述
田野守護者又名 - Buggy QXA3
背景
面對海平面上升和全球變暖的威脅,以及人口的穩步增長,農民甚至家庭必須保持農業產量以保證穩定的產品交付。由于野火和颶風等自然災害帶來的殺蟲劑、雜草和空氣毒性,這一直具有挑戰性。雖然商業農場可能有能力消除大部分危害并擴大規模以應對中斷的全球供應鏈,但小型工業化農場主發揮著至關重要的作用,但他們一直無法做到這一點。得益于低成本硬件和加速人工智能技術,工業物聯網和機器人技術將成為徹底改變農業需求的工具。
靈感
Hovergame 生態系統將允許早期的人類互動來繪制興趣點、有害昆蟲、不需要的殺蟲劑、雜草,以及早期發現田間發生故障的設備。在無人機上進行人工監督的早期監視和監測將使我們能夠由包括農業研究人員、工程師和科學家在內的專家進一步進行分析,以提高作物生長的性能并滿足生產需求。由于缺乏遙測和傳感器數據,現場的工業人員一直面臨著不斷解決此類問題的挑戰。如果不全神貫注,產量監測也被證明是困難的。
車輛組裝(加上一些早期的問題)
[幸運的是,貨物到達并收集了所有重要部件以組裝 RC 控制試駕!得益于指導性MR-BUGGY3 構建指南(NXP CUP 的一部分),節省了許多時間
主要障礙(你必須在進入機器人開發和 NAVQ+ 集成之前解決問題)
硬件磨合:a) 遠程控制/遙測 - 由于無線電控制器配置問題,尋求穩定的 PX4 版本用于 Rover 機身。throttle not zero
解決了PX4 version: v1.13.2-28-ga5ccd145aa
帶有 ESC 的額外 PWM 微調。該版本還允許為流動站禁用 GPS 鎖定以進行飛行測試。通過調整和映射到上限上限,油門在適當的轉向和轉向角度下適當地降低動力。
nsh> pwm test -d /dev/pwm_output0 -c 4 -p
b) HW revC 6 針 PWM 上的 ESC 配置。c) 元器件洗牌、接線整理、配電板固定。
Software Grind : a)nxp_fmuk66-v3
在 Mac M1 上使用 PX4-Autopilot 克服構建/編譯/Flash(請參閱要點了解 python3 版本和 conda 要求)
b) 使用 UART/TELEM2 在 NavQ+ 和飛行控制器之間建立串行通信(設備樹分配給/dev/ttymxc2上的 SPI ,使用/dev/ttyUSB0的解決方法) c) NavQ+ 上用于構建eIQ工具的 ubuntu 穩定版本的 UUU 閃存和MAVSDK
技術開發
BME688 固件和傳感器 uORB 主題
需要進行一些調整來包裝與 Bosch C++ API 通信的 PX4 驅動程序(I2C/SPI HAL 不可知代碼)。固件端口的詳細信息可以在本教程和Github頁面上找到。
uint64 timestamp # time since system start (microseconds)
uint64 timestamp_sample
uint32 device_id # unique device ID for the sensor that does not change between power cycles
uint32 sample_count # bme688 sample counts
float32 temperature # temperature in degrees Celsius
float32 pressure # static pressure measurement in Pascals
float32 humidity # Humidity in percentage (%)
float32 gas_resistance # gas resistance (ohm)
uint8 device_status # byte hex 0xB0
uint32 error_count
uint8 ORB_QUEUE_LENGTH = 4
Use of I2C scan (default address: 0x77 on adafruit BME688 breakout)
nsh> i2cdetect -b 1
Scanning I2C bus: 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77 -- -- -- -- -- -- -- --
nsh> bme688 start -X -f 200000
NFO [SPI_I2C] adding a running instance -set started to true
bme688 #0 on I2C bus 1 address 0x77
nsh> bme688 status
INFO [SPI_I2C] Running on I2C Bus 1, Address 0x77
bme688: sample: 108 events, 115304us elapsed, 1067.63us avg, min 884us max 1411us 93.582us rms
bme688: measure: 109 events, 16119470us elapsed, 147885.05us avg, min 147140us max 148614us 266.258us rms
bme688: comms errors: 0 events
傳感器 uORB 主題對 PX4 系統是透明的,并且可以由農作物監控應用程序訂閱,如下所示(下面使用測試listener
)
nsh> uorb status
TOPIC NAME INST #SUB #Q SIZE PATH
sensor_gas 0 0 4 48 /obj/sensor_gas0
nsh> listener sensor_gas
TOPIC: sensor_gas
sensor_gas
timestamp: 185075367 (0.630325 seconds ago)
timestamp_sample: 185074305 (1062 us before timestamp)
device_id: 12744457 (Type: 0xC2, I2C:1 (0x77))
sample_count: 1
temperature: 23.7633
pressure: 101306.1875
humidity: 59.5401
gas_resistance: 35814.2148
error_count: 0
device_status: 176
By
將 app 命令添加到PX4 src/boards/nxp/fmuk66-v3/init/rc.board_sensors
,氣體傳感器驅動程序將在設備啟動時啟動 I2C 狀態機,在測量和收集狀態之間切換發布sensor_gas主題 @ 2 Hz(每 500 毫秒)
# auto start BME688 gas sensor on external i2c bus 1 @200k
bme688 start -X -b 1 -f 200000
static constexpr uint32_t _measure_interval{250 * 1000}; // every 0.5 sec
數據采樣是在強制(而不是并行模式)下完成的,因為我們以高數據速率發布推理決策(不需要長時間的熱分析)以獲取溫度、濕度、氣壓和氣體指標。
Edge ML - 使用 Bosch AI Studio
這個簡短實驗的目標是收集傳感器數據并提供可部署到 IoT Edge 的基本分類模型,在我們的例子中是一個相當占用的 FMUK-66。Bosch BME688 開發套件(x8 傳感器)用于收集具有各種傳感配置文件的一些植物的溫度、壓力、濕度和氣體成分,以最大限度地減少數據差異并避免 Bosch AI studio 中的 BSEC 訓練出現異常。收集階段耗時數小時,并在控制環境下進行了兩次(相隔約 1.5 周),一次是在這些植物處于最健康狀態時,一次是在其易碎、腐爛的狀態(葉子呈褐色,活力較差,和干腐爛的根
在數據收集之前,電路板傳感器已經穩定(準備 24 小時)。加熱器配置文件是使用 8 傳感器評估套件(ESP32 Teensy 模塊)創建的。雖然尚不清楚額外的氣體成分(如 CO、NO2、乙醇、氣體混合物)是否是植物樣本健康惡化的任何因素,但該模型能夠得出一些可靠的結果,而不是嚴重過度擬合(門控通過工作室訓練的混淆矩陣)通過暗示溫度、濕度等其他因素。
訓練方法:批量大小為32 的ADAM ,1024輪,70%/30%數據拆分
除了 AI studio 生成的 BSEC 配置頭文件和 .config 二進制文件,我們還需要導入其 cortex-M4庫(FMUK-66 架構)以包含在bsec.h
分類任務中。預測結果作為 uORB crop_health 主題的一部分發布,該主題由在 PX4 上開發的作物監測 C++ 應用程序推斷
珊瑚相機支架和NAVQ+ 集成
pixy2 pan tilt 套件被修改為連接珊瑚短殼并嘗試讓云臺控制相機(物理安裝但未使用,考慮到飛行控制上的 CPU 負載很重 ~91%)設法在底部鉆了幾個洞NavQ+ 機箱,同時為配套計算機騰出空間。USB 集線器安裝在第一個 PCB 的頂部,它允許 NavQ+ 與 /dev/ttyUSB0 上的 FMUK66 通信以獲取 MAVLink 消息。
- 。
作物健康監測
uORB sensor_gas主題必須由機載農作物監控應用程序定期使用,該應用程序在通過 MAVLink 發送它們之前計算分類結果和指標。
uint64 timestamp # time since system start (microseconds)
char[20] crop_type # type of crops
float32 temperature # temperature in degrees Celsius
float32 pressure # static pressure measurement in Pascals
float32 humidity # Humidity in percentage (%)
float32 gas_resistance # gas resistance (ohm)
float32 health_index # general health index
uint8 pred_longevity # model prediction
1) 添加rcS文件以允許 Edge ML 訂閱、解釋、監控農作物健康狀況。crops_monitor
2) 添加 MAVLink stream 命令以啟用包流以周期性速率到地面站和 NavQ+ 的串行/遙測(這兩個文件都在ROMFS/px4fmu_common/init.d-posix 下)px4-rc.mavlink
# custom CROPS_MONITOR startup stream for mavlink
mavlink stream -r 2 -s CROPS_MONITOR -d /dev/ttyS1
crops_monitor.cpp
PX4_INFO("Crops monitor evaluate identified plant health using BME688 gas sensor metrics");
// subscribe to sensor_gas topic
int sensor_gas_fd = orb_subscribe(ORB_ID(sensor_gas));
// limit the update rate to 50 Hz
orb_set_interval(sensor_gas_fd, 20);
struct crops_health_s ch{};
orb_advert_t ch_pub = orb_advertise(ORB_ID(crops_health), &ch);
px4_pollfd_struct_t fds[] = {
{ .fd = sensor_gas_fd, .events = POLLIN },
};
3) health_index作為植物健康的一般指標,由濕度、壓力和溫度的比例值組成。pred_longevity是上述 BSEC 分類模型使用來自 BME688 的實時樣本的推理結果。
<mavlink>
<include>development.xmlinclude>
<dialect>1dialect>
<messages>
<message id="437" name="CROPS_HEALTH">
<description>Mavlink Crop Health Metrics sampled and reported by flight controller FMUK66description>
<field type="uint64_t" name="timestamp">time since system start (microseconds)field>
<field type="char[20]" name="crop_type">crop typefield>
<field type="float" name="temperature">temperaturefield>
<field type="float" name="pressure">pressurefield>
<field type="float" name="humidity">humidityfield>
<field type="float" name="gas_resistance">gas resistancefield>
<field type="float" name="health_index">health indexfield>
<field type="uint8_t" name="pred_longevity">pred longevityfield>
message>
messages>
mavlink>
可以通過流式傳輸使用 QGC 上的視覺指示器來應用現場條件和標簽。遠程車輛接近數據樣本和目視檢查,因為它們被附近的標簽識別。顏色編碼的指標表示每種植物的健康狀況,如下所示:(來自 QGC 直播的照片)
crops_monitor [1360:100]
nsh> INFO [crops_monitor] Crops monitor evaluate identified plant health using BME688 gas sensor metrics
INFO [crops_monitor] Sensor Gas: 25.2710 46.7412 102259.9063
INFO [crops_monitor] Sensor Gas: 25.2710 46.7476 102259.9063
INFO [crops_monitor] Sensor Gas: 25.2760 46.7610 102263.6484
INFO [crops_monitor] Sensor Gas: 25.2710 46.7603 102259.9063
1) 添加rcS文件以允許 Edge ML 訂閱、解釋、監控農作物健康狀況。2) 添加 MAVLink stream 命令以啟用包流以周期性速率到地面站和 NavQ+ 的串行/遙測(這兩個文件都在ROMFS/px4fmu_common/init.d-posix 下)crops_monitor
px4-rc.mavlink
# custom CROPS_MONITOR startup stream for mavlink
mavlink stream -r 2 -s CROPS_MONITOR -d /dev/ttyS1
項目事后分析
1. ROS2 集成:一個全面的發展戰略,以實現哪種方法非常適合我們的家庭和商業農業用例。考慮到完成時間,硬件測試會有所限制。
2.使用 UCANS32K 板擴展 BME688 的環境感測(如 NXP Cup Demo 中采用的那樣):雖然使用 FMUK-66 的機載感測在此處運行良好,但我們顯著限制了傳感器與被監控植物之間的探測和測量距離。一旦總線延伸超過幾米,板載 I2C/SPI 噪聲幾乎呈指數增長。帶有 CAN FD 的 UAVCAN 橋將有助于準確地進行機械探測,但會犧牲更多的外圍設備。
3.對 YOLO3/MobileNet V3 的訓練不足:只有導入 eIQ 用于 NavQ+ 視覺識別的模型是移動網絡singleShotDetector ,它在大規模真實世界物體方面表現出色,但在沒有進一步訓練和監督的情況下無法識別物體類別。訓練有素的轉換網絡可能足以滿足我們的用例。
- 高精度、高重復性國產三坐標測量機,精密制造的質量守護者
- 入侵者警報開源構建
- 解放者土方壓磚機開源分享
- SafeKeeper安全守護者
- RobUV Covid終結者開源
- 一場精彩記憶游戲開源分享
- 由太陽能供電基于聲學事件構建非法記錄檢測的森林守護者
- process-monitor進程守護者
- 開源網絡協議分析器WireShark軟件下載 15次下載
- 基于攝像頭的機場地面保護區航空器識別研究 5次下載
- 可應用在電磁渦流場問題的等幾何配點法 7次下載
- 開源課程行動倡議及科學導論綜述 6次下載
- 開源軟件關鍵開發者類型及協作網絡魯棒性綜述 4次下載
- Linux守護進程詳解 0次下載
- 用電流場模擬靜電場
- 家庭電路實用檢修技巧 290次閱讀
- 半導體產業背后的“守護者”:全生命周期測試設備解析 186次閱讀
- 探索LED顯示屏背后的“守護者”:氣密性檢測儀的重要性 178次閱讀
- 通信電源系統的守護者:鋰離子電池 164次閱讀
- 什么是守護線程?守護線程的底層原理和使用示例 1155次閱讀
- 高性能加密狗芯片LKT4302U概述 549次閱讀
- 電氣守護者:揭秘TVS二極管的神奇力量 384次閱讀
- 什么是光學中的近場和遠場?二者的區別是什么? 4027次閱讀
- 前沿開源技術領域的開源大數據一一解讀 1006次閱讀
- EMC半屏蔽測試場地的基本原理和使用方法 1692次閱讀
- 2020年開源的六大發展趨勢 4257次閱讀
- 華為P30系列的芯片級守護 4127次閱讀
- Infineon TLE9879單片汽車3相馬達驅動方案 7370次閱讀
- 11個機器學習開源項目 2767次閱讀
- 門守護電路 1446次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多