ROS多机通信实战:两台Ubuntu共享Realsense D435i数据的高效方案
当视觉处理与运动控制需要分布式计算时,ROS的多机通信能力便成为关键。本文将深入探讨如何构建一个稳定传输Realsense D435i相机数据的双机系统,其中一台负责高负载的视觉处理,另一台则专注于实时运动控制。
1. 环境准备与基础配置
在开始多机通信前,确保两台Ubuntu 20.04主机已完成以下基础环境搭建:
- ROS Noetic安装:两机均需完整安装桌面版ROS
- Realsense SDK:librealsense需在两台设备上编译安装
- Realsense-ROS包:通过源码编译方式安装至各自的工作空间
提示:建议在两台设备上使用相同版本的软件组件,避免因版本差异导致兼容性问题
验证单机环境是否正常工作的快速命令:
bash复制# 在终端1启动ROS核心
roscore
# 在终端2启动相机节点(需先source工作空间)
roslaunch realsense2_camera rs_camera.launch
# 在终端3查看图像话题
rostopic list | grep image
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 网络拓扑与ROS主从配置
多机ROS通信的核心在于正确设置主从关系和环境变量。我们假设主机IP为192.168.1.100,从机为192.168.1.101。
2.1 主机配置
在主控计算机上执行:
bash复制export ROS_IP=192.168.1.100
export ROS_MASTER_URI=http://192.168.1.100:11311
roscore
2.2 从机配置
在视觉处理计算机上配置:
bash复制export ROS_IP=192.168.1.101
export ROS_MASTER_URI=http://192.168.1.100:11311
验证网络连通性的实用命令:
bash复制# 在两台机器上互相ping测试
ping 192.168.1.100
ping 192.168.1.101
# 检查11311端口是否开放
netstat -tuln | grep 11311
