跳到主要內容

WSL2 Ubuntu 22.04 環境架設 micro-ROS Agent

這是一篇寫給自己的備忘錄。好記性不如爛筆頭,把這次在 WSL2 踩坑、開通 Mirrored 網路跟編譯的完整指令記下來,下次要用直接複製貼上。


🛠 一、 網路環境配置(大前提)

小車如果走 Wi-Fi (UDP) 連線,WSL2 預設的 NAT 模式會讓小車找不到路進來。必須改用 Mirrored (鏡像) 模式,讓 WSL 直接共享 Windows 的 IP。

1. 調整 WSL2 網路模式

在 Windows 個人資料夾下(C:\Users\<你的用戶名>\)編輯或建立 .wslconfig 檔案:

[wsl2]
networkingMode=mirrored

💡 提示:改完後,打開 Windows PowerShell 徹底重啟 WSL: ```powershell wsl --shutdown

```

2. 解放 Windows 防火牆(UDP 8888)

Windows 防火牆會把實體網卡進來的 UDP 封包當成威脅直接丟掉。必須手動開通。 以系統管理員身分開啟 Windows PowerShell,直接盲刷這行指令:

New-NetFirewallRule -DisplayName "micro-ROS Agent UDP" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 8888

🏗 二、 micro-ROS Setup 工作空間建置

直接在 Ubuntu 22.04 (ROS2 Humble) 環境下,從原始碼編譯出專屬的 Agent。

1. 建立並編譯 Setup 工具箱

# 開新資料夾並噴進去
mkdir -p ~/microros_ws/src && cd ~/microros_ws

# 抓 Humble 分支的設定檔
git clone -b humble https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup

# 載入底層 ROS2 環境
source /opt/ros/humble/setup.bash

# 餵 rosdep 安裝相依套件
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -y

# 初次編譯(讓系統認得這個工具箱)
colcon build
source install/local_setup.bash

2. 解鎖 vcstool 與 rosdep 初始化

如果中間報錯 vcs: command not foundrosdep 沒初始化,按下面順序補刀:

# 補裝版本控制工具
sudo apt install python3-vcstool -y

# 補初始化 rosdep
sudo rosdep init
rosdep update

3. 實體下載並編譯 Agent 核心

工具箱認得後,開始叫它去 GitHub 搬真正的 Agent 原始碼回來。

# 下載 Agent 原始碼 (會在 src 底下生出 micro_ros_agent)
ros2 run micro_ros_setup create_agent_ws.sh

# 開始編譯 (這步要跑個 2-5 分鐘,去倒杯咖啡)
ros2 run micro_ros_setup build_agent.sh

# 刷新當前工作空間的環境變數
source install/local_setup.bash

🚀 三、 日常執行與除錯指令

1. 檢查小車的 UDP 封包到底進來了沒

Agent 跑不起來時,先用 netcat 抓包,確認 Windows 防火牆真的有開:

# 關閉 Agent,純監聽 8888 埠口
sudo apt install netcat -y
nc -u -l 8888
  • 結果判斷:小車一開機,終端機如果開始瘋狂噴亂碼/二進位字元 $\rightarrow$ 網路通了。按 Ctrl + C 退出。

2. 啟動 micro-ROS Agent

# 每次開新終端機都要先載入這兩行環境
source /opt/ros/humble/setup.bash
cd ~/microros_ws && source install/local_setup.bash

# 執行 Agent (UDP 模式)
ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888 -v4

# 執行 Agent (USB 序列埠模式,需搭配 usbipd)
# ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyUSB0 -v4

3. 另開視窗驗證數據

Agent 跑起來後,開第 2 個 Ubuntu 分頁,直接撈小車噴出來的 Topic:

# 載入環境
source /opt/ros/humble/setup.bash

# 看看有沒有多出小車定義的 Topic
ros2 topic list

# 印出實時數據
ros2 topic echo /<你的小車Topic名稱>

留言