網頁

2025年4月1日 星期二

Raspberry Pi 5 + Hailo-8L + webcam 來建置自走避障車

 使用 Raspberry Pi 5 + Hailo-8L + webcam 來建置自走避障車,是一個結合邊緣 AI 推論與機器控制的完整專案,非常有挑戰性也很實用。我可以幫你規劃整個開發架構與技術流程,以下是詳細介紹:


🧠 專案核心架構概觀

css
[Webcam][Raspberry Pi 5 + Hailo-8L][AI 模型推論][避障邏輯][馬達控制板][驅動馬達]

📦 建議使用的硬體

元件建議說明
Raspberry Pi 5運行主控邏輯與 AI 推論
Hailo-8L AI 加速器執行即時影像辨識(物件偵測、路徑判斷)
Webcam / CSI 攝影機擷取前方影像
馬達驅動板(L298N / PCA9685)控制雙輪或履帶馬達
DC馬達 / 伺服馬達作為行走與轉向裝置
電池供電模組提供移動時所需動力

🧠 軟體系統架構

1️⃣ AI 模型部分(避障核心)

  • 模型建議:

    • ✅ 使用 YOLOv5s / YOLOv6 / NanoDet(有支援 Hailo)

    • ✅ 任務:物件偵測 + 區域距離估計

    • ✅ 可加強:路面/通道分割(使用 MobileUNet)

  • Hailo 工作流程:

    1. 使用官方 Model Zoo 模型 (.hef)

    2. 實作推論流程:

      python
      from hailo_platform import HailoModel model = HailoModel("yolov5s.hef") preds = model.infer_from_frame(frame)

2️⃣ Raspberry Pi 控制層

  • 程式語言:Python

  • 使用模組:

    • opencv-python:擷取與處理 webcam 影像

    • RPi.GPIO / gpiozero / pigpio:控制馬達

    • hailo_platform.py:模型推論

    • threading:推論與控制並行執行


🧩 邏輯範例(簡化版)

python
if obstacle_ahead(): stop() turn_left() # 或右 else: go_forward()

可以依照物件 bounding box 的座標與大小判斷是否前方有障礙物、距離近遠。


📹 相機處理

使用 OpenCV 擷取畫面:

python
import cv2 cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() preds = model.infer_from_frame(frame) # Hailo 推論 process(preds)

🛠️ 控制馬達示意

python
from gpiozero import Motor motor = Motor(forward=17, backward=18) motor.forward() # 向前 motor.backward() # 後退 motor.stop()

🎯 開發步驟建議

  1. ✅ 測試 webcam + OpenCV 擷取影像

  2. ✅ 安裝並驗證 Hailo 推論流程

  3. ✅ 模擬模型輸出結果邏輯(可先用 fake data)

  4. ✅ 整合馬達控制與避障邏輯

  5. ✅ 加入 threading / asyncio 提高同步效率

  6. ✅ 車體整合與實測校調


如果你需要我幫你:

  • 整理 YOLO 模型在 Hailo 上的部署範例

  • 提供完整 Python 控制架構範例

  • 幫你模擬避障邏輯或做影像區域分析

  • 教你怎麼從模型 zoo 抓出合用的 .hef

沒有留言:

張貼留言