網頁

2025年4月1日 星期二

IMU 整合進你的自走避障車中並建立 SLAM(同時定位與地圖建立)系統

 IMU 整合進你的自走避障車中並建立 SLAM(同時定位與地圖建立)系統,能讓車子在未知環境中自行探索、記錄地圖並持續定位自己,這是進階自走車的關鍵能力 🔥


📍 SLAM 簡介(適用地面車)

SLAM(Simultaneous Localization and Mapping)需要以下資訊來源:

  1. 視覺資訊(camera):了解環境樣貌

  2. 慣性感測器(IMU):推估動態與方向(dead reckoning)

  3. 有時還搭配:輪速編碼器(Wheel encoder)或雷達(LiDAR)


🧩 系統架構(視覺 + IMU SLAM)

css
[Webcam] + [IMU(陀螺儀+加速度)][Visual-Inertial SLAM (如 VINS-Fusion / ORB-SLAM3)][地圖建立 + 即時定位][導航 + 控制避障]

🔧 建議使用的 SLAM 工具與架構

工具支援功能相容性
ORB-SLAM3支援 Mono, Stereo, Visual-Inertial SLAM(VIO)✅ Raspberry Pi 5(需優化)
VINS-Fusion專注於 IMU + Camera 融合,支援 GPS 整合✅ Hailo 不影響相容
RTAB-Map圖形化建圖 + SLAM,可用於 ROS✅ 相容 Raspberry Pi
Kimera / ROVIOMIT/ETHZ 的進階研究用 SLAM⚠️ 適合高手、需強算力

📦 必備元件與套件

📌 感測器建議

感測器功能推薦
MPU6050 / ICM-20948 / BNO055IMU(三軸加速度 + 陀螺儀)✅ 小車用
CSI 攝影機 / USB Webcam畫質穩定、低延遲✅ 建議使用

🛠️ 開發流程(以 VINS-Fusion 為例)

1️⃣ 安裝相依套件(在 Pi 上)

bash
sudo apt update sudo apt install ros-noetic-desktop-full cd ~/catkin_ws/src git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git cd .. catkin_make

✅ 建議使用 Ubuntu 20.04 + ROS Noetic


2️⃣ 校正相機與 IMU

  • 安裝 Kalibr 做 IMU+camera 時間同步與內參標定

  • 輸出 YAML 檔提供給 VINS-Fusion 使用


3️⃣ 建立啟動檔

建立 vins_rviz.launch.yaml 設定檔:

xml
<node pkg="vins" type="vins_node" output="screen" name="vins_estimator" args="$(find vins)/config/euroc/euroc.yaml" />

4️⃣ 執行 SLAM 並顯示地圖

bash
roslaunch vins vins_rviz.launch rosrun vins pose_graph rviz

你將能看到即時路徑、定位與地圖構建。


🔁 Hailo 加速器搭配 SLAM?

Hailo-8L 負責前段影像辨識(例如物件標記、避障),不影響 SLAM 的執行,可與 SLAM 並行運作於 Raspberry Pi 上,建議將推論與 SLAM 執行分開 thread 或 node 管理。


📌 小結:建置 SLAM 系統你需要...

項目狀態
✅ 有鏡頭(webcam)✔️
✅ 有 IMU 感測器✔️ 建議使用 ICM-20948
✅ 有運算核心(Pi5 + Hailo)✔️
✅ 選好 SLAM 框架(VINS / ORB-SLAM3)可選
🔧 相機與 IMU 時間同步(Kalibr)建議執行
🔁 整合模型推論 + SLAM + 控制多執行緒或 ROS

如果你想一步步建置這個系統,我可以幫你:

  • 找 IMU 模組接線方式(I²C / SPI)

  • 提供 ORB-SLAM3 / VINS-Fusion Raspberry Pi 編譯教學

  • 幫你產生相機與 IMU 標定設定檔

  • 整合 Hailo 推論與 SLAM 在同一台車上

沒有留言:

張貼留言