任務目標
本教程將完整實現:
-
在服務器無頭模式下運行IsaacSim,并在本地顯示GUI界面
-
通過IsaacSim的ROS2 Bridge發布圖像數據
-
在本地Foxglove中實時可視化服務器端的ROS2數據流
實現步驟
1. 服務器無頭運行IsaacSim + 本地GUI顯示
在服務器端執行:
isaacsim isaacsim.exp.full.streaming --no-window
本地機使用WebRTC客戶端連接:
-
下載安裝IsaacSim Livestream Client:Livestream Clients — Isaac Sim Documentation
-
打開客戶端連接服務器(具體安裝方法可參考筆者往期教程)
2. ROS2 Bridge配置與圖像發布
關鍵準備:
-
確保服務器已安裝ROS2
-
解決常見libstdc++鏈接問題:
在isaacsim上打開ros2bridge時, 遇到一個小坑:
需要創建軟鏈接指向系統的 libstdc++
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /xxxxxxxxx/miniconda3/envs/env/lib/libstdc++.so.6
操作流程:
-
在IsaacSim中添加機器人模型和攝像頭
-
配置ROS2 Bridge插件
-
發布攝像頭數據到ROS2話題
3. Foxglove數據可視化
服務器端配置:
-
安裝Foxglove 和 Foxglove Bridge:
在服務器上安裝foxglove, 貼上鏈接:
Download Foxglove
然后安裝foxglove bridge:
sudo apt install ros-$ROS_DISTRO-foxglove-bridge
安裝完之后啟動服務:
ros2 launch foxglove_bridge foxglove_bridge_launch.xml
運行之后可以看到:
此時服務區的8765端口已經打開
然后打開本機的foxglove,?
輸入服務器的ip, 點擊連接, 即可看到服務器上傳輸過來的視頻數據
本方案實現了跨平臺的機器人仿真數據可視化,為后續的算法開發和調試提供了便利的觀察窗口。