跨平台ROS2视觉数据流:服务器运行IsaacSim+Foxglove本地可视化全攻略
任务目标
本教程将完整实现:
-
在服务器无头模式下运行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, 点击连接, 即可看到服务器上传输过来的视频数据
本方案实现了跨平台的机器人仿真数据可视化,为后续的算法开发和调试提供了便利的观察窗口。