網頁

2025年4月1日 星期二

SLAM 架構 + 安裝指南 + IMU 模組接線圖(針對 Raspberry Pi 5 + Hailo-8L + Webcam)

 從這三個部分著手:


✅ SLAM 架構 + 安裝指南 + IMU 模組接線圖(針對 Raspberry Pi 5 + Hailo-8L + Webcam)


🔷 一、SLAM 架構設計(以 VINS-Fusion 為例)

這裡採用 VINS-Fusion,支援視覺 + IMU 結合,適合地面型移動機器人。

🧠 模組分層圖:

css
[Webcam] + [IMU模組][VINS-Fusion 節點][定位 + 地圖建立][ROS RViz 視覺化][導航系統整合]

🔧 二、安裝與設定流程(Ubuntu 20.04 + ROS Noetic)

1️⃣ 安裝 ROS Noetic(一次性)

bash
sudo apt update sudo apt install ros-noetic-desktop-full

設定 ROS 環境變數:

bash
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc

2️⃣ 建立工作區 & 安裝 VINS-Fusion

bash
mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git cd .. catkin_make -j4

若遇 OpenCV 相容性問題,可以限定版本(如 4.2)。


3️⃣ 安裝相依模組(建議)

bash
sudo apt install ros-noetic-cv-bridge ros-noetic-tf sudo apt install libeigen3-dev libsuitesparse-dev

4️⃣ 安裝 Kalibr(相機 + IMU 校正工具)

Kalibr 能產生你需要的 .yaml 相機+IMU 設定檔:

bash
sudo apt install python3-pip pip3 install numpy scipy # 建議使用 Docker 安裝 Kalibr 或 Ubuntu 18.04 虛擬機

5️⃣ 使用範例設定檔啟動

bash
roslaunch vins vins_rviz.launch

你將看到 RViz 中的實時 SLAM 與地圖建立。


🔌 三、IMU 模組接線(以 ICM-20948 為例)

ICM-20948 腳位Raspberry Pi 5 腳位
VCC(3.3V)Pin 1(3.3V)
GNDPin 6(GND)
SDAPin 3(GPIO 2, SDA)
SCLPin 5(GPIO 3, SCL)

👉 I²C 方式連接最簡單!

開啟 I²C 功能:

bash
sudo raspi-config # Interfacing Options → I2C → Enable

檢查是否偵測到 IMU:

bash
sudo i2cdetect -y 1

🔍 驅動安裝(ICM-20948)

你可使用 SparkFun 提供的 Python 套件或自行寫程式:

bash
git clone https://github.com/sparkfun/Qwiic_ICM20948_Py.git cd Qwiic_ICM20948_Py python3 setup.py install

取得即時 IMU 資料:

python
import qwiic_icm20948 imu = qwiic_icm20948.QwiicIcm20948() imu.begin() while True: imu.getAgmt() print("Accel X: ", imu.axRaw)

🎯 下一步建議

  1. 先完成 IMU 驅動與 webcam 影像擷取

  2. 使用 Kalibr 對 IMU + Camera 做同步與標定(會給你 .yaml

  3. 修改 VINS-Fusion 配置檔,執行 vins_estimator

  4. 查看 RViz 中即時地圖與定位


如果你想要我幫你:

  • 寫 IMU + Camera 的 ROS 節點程式碼(發送 /camera/image_raw/imu/data

  • 幫你建立 .yaml 標定檔格式模板

  • 寫完整的 launch 檔讓你一鍵啟動 SLAM


需要我先幫你寫一個 ROS node 把 IMU 和 webcam 整合送出嗎?

沒有留言:

張貼留言