從頭開始學 Isaac Sim 07 -- 串接 ROS 2 Humble === 到目前為止,我們的 SimpleRobot 已經能移動、看見(RGB 相機)與感知(Lidar)。接下來要做的,就是把這些資料串接到 ROS 2 Humble,讓我們能在 RViz 進行即時可視化,並與外部應用整合。 ### 1 安裝 ROS 2 Humble 在 Ubuntu 22.04 [安裝 ROS 2 Humble](https://docs.ros.org/en/humble/index.html)(建議使用 Debian package 安裝方式)。 參考官方指令,安裝後確認 `ros2 topic list` 能正確執行。 額外安裝 Isaac Sim ROS 2 Bridge 所需的 vision_msgs 套件。 ROS 2 是整個生態系統的中樞,沒有正確安裝與初始化,就無法接收 Isaac Sim 傳出的感測器資料。vision_msgs 則是橋接套件的必要依賴。 ### 2 啟動 Isaac Sim 並開啟專案 開一個 Terminal,先執行 source `/opt/ros/humble/setup.bash。` > 如果有把 source 寫進 .bashrc 或是 .zashrc 就不用每次都做。 進入你的專案資料夾後,使用 ./isaac-sim.sh 啟動 Isaac Sim(可能需要一點時間載入)。 在 Isaac Sim 裡選 File → Open Recent,打開上一個模組儲存的 SimpleRobot 場景。 這樣可以確保 Isaac Sim 啟動時就繼承 ROS 2 環境變數,才能順利與 ROS 2 溝通。 ### 3 啟用 ROS 2 Bridge 擴展 在 Isaac Sim 裡選 Window → Extensions。搜尋「ROS2」,找到 ROS 2 Bridge 擴展。確認它已啟用,如果沒啟用就打勾啟用。 > ROS 2 Bridge 提供 OmniGraph 節點,讓 Isaac Sim 能把感測器數據轉成 ROS 2 Topic。 <p style="display:flex; align-items:center; justify-content:center;"> <img src="https://hackmd.io/_uploads/H1-zABScgg.png" width="80%"> </p>> ### 4 建立 Lidar 資料串流的 ActionGraph 新建一個 ActionGraph,命名為 ROS2_LidarStream。在下方的 ActionGraph 窗格,使用左方的搜尋框新增以下節點: - On Playback Tick(每幀觸發) - Isaac Read Lidar Beams(讀取 Lidar 數據) - Isaac Read Simulation Time(讀取模擬時間) - ROS 2 Publish Laser Scan(輸出為 ROS Topic) <div style="display:flex; align-items:center; justify-content:center; gap:20px;"> <img src="https://hackmd.io/_uploads/r1gAYsGceg.png" width="50%"> <img src="https://hackmd.io/_uploads/rJCtTsfceg.png" width="53%"> </div> 連線方式: <p style="display:flex; align-items:center; justify-content:center;"> <img src="https://hackmd.io/_uploads/BJSOCjM9gx.png" width="90%"> </p>> 在 ROS2 Publish Laser Scan 裡設定: - TopicName = scan_lidar - FrameID = sim_lidar <p style="display:flex; align-items:center; justify-content:center;"> <img src="https://hackmd.io/_uploads/H1B6CjG5ex.png" width="80%"> </p>> > 這樣能確保每幀都讀取 Lidar 數據,並以正確的時間戳發送到 ROS 2。 #### 注意事項 如果 Lidar 偵測到自己的輪子,請把它的高度調高一點。 ### 5 在 RViz 中查看 Lidar 數據 在 Isaac Sim 按 Play,開始串流數據。 在 Ubuntu Terminal: ``` source /opt/ros/humble/setup.bash ``` ros2 topic list 確認有 scan_lidar。 rviz2 開啟 RViz。 在 RViz 裡: Fixed Frame 設成 sim_lidar Add → By Topic → laser scan → OK 現在可以看到紅點代表的障礙物。(非常淺的紅色) > RViz 是 ROS 的標準可視化工具,透過它能即時觀察 Lidar 偵測到的環境,驗證串流是否正確。 <p style="display:flex; align-items:center; justify-content:center;"> <img src="https://hackmd.io/_uploads/rk_Ny2fqge.png" width="80%"> </p>> ### 6 Summary 到這裡,我們已經完成: 1. 安裝 ROS 2 Humble 並設定環境 2. 啟動 Isaac Sim 並啟用 ROS 2 Bridge 擴展 3. 建立 Lidar 資料串流的 ActionGraph 4. 在 RViz 即時觀察 Lidar 資料 --- 希望我的內容對你有所幫助,想看到更多內容歡迎追蹤我的 IG、Threads 等平台。 Threads:[@minimalist_shine](https://www.threads.com/@minimalist_shine) IG:[@minimalist_shine](https://www.instagram.com/minimalist_shine/)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up