惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
The Cloudflare Blog
Blog — PlanetScale
Blog — PlanetScale
F
Full Disclosure
G
Google Developers Blog
罗磊的独立博客
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
A
About on SuperTechFans
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
GbyAI
GbyAI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
The Register - Security
The Register - Security
U
Unit 42
D
Docker
Martin Fowler
Martin Fowler
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
博客园_首页
Google DeepMind News
Google DeepMind News

马浩飞丨博客

Cloudflare R2 个人图床 Isaac Sim 机械臂逆运动学控制 ROS2_Rviz2显示URDF模型 ROS2基本命令总结 使用zsh创建更高效的shell环境 Isaac Sim 仿真环境使用简介 Ubuntu设置定时任务 审稿意见撰写流程 Ubuntu 固定USB设备端口名(ttyUSB0->自定义) Git+Github的代码备份与多设备同步 【设备使用】法奥意威 FR5 机械臂 Python 控制 Python识别图片中文字和数字_easyocr 【设备使用】omega.7主手配置与使用方法 【论文笔记】ACT 使用低成本硬件的双手操作模仿学习 HDF5数据文件格式 【仿真实验】robomimic项目复现 【课程笔记】Stanford CS25 V2 - Robotics and Imitation Learning Ubuntu与Window双主机共用一套键鼠 Windows与Ubuntu双系统绑定同一个蓝牙设备(无需重新配对)
ROS实现多机话题通信
马浩飞 · 2025-11-19 · via 马浩飞丨博客

两台Ubuntu系统(如台式机与机器人),通过网线连接,共享ROS节点。

一、准备工作

例如我的台式机Ubuntu作为电脑A,机器人机载电脑Ubuntu作为电脑B。

要实现多机通信,首先要求两台电脑连接同一个局域网(wifi或网线),然后分别打开终端查看对应的IP地址 ifconfig

注意如果电脑连接了多个网络,一定要确认两个系统共处的局域网的IP。例如:

1
2
3
4
5
6
7
# 电脑A IP
ifconfig
# enp4s0: 169.254.128.255

# 电脑B IP
ifconfig
# eth0: 169.254.128.20

(1)检测通讯

测试能否通过IP实现通讯。

  • 电脑A:ping [ip_B]
  • 电脑B:ping [ip_A]

(2)设置ROS_MASTER_URI

选择两台电脑的其中一台作为主机(例如台式机),设置对应的ROS master,从机上(例如机器人机载电脑)设置ROS_MASTER_URI。

打开两个电脑的.bashrc

1
sudo gedit ~/.bashrc

在主机上(电脑A)设置:

1
2
3
4
5
6
export ROS_HOSTNAME=ip_A
export ROS_MASTER_URI=http://ip_A:11311

# 例如
# export ROS_HOSTNAME=169.254.128.66
# export ROS_MASTER_URI=http://169.254.128.66:11311

在从机上(电脑B)设置:

1
2
3
4
5
6
export ROS_HOSTNAME=ip_B
export ROS_MASTER_URI=http://ip_A:11311

# 例如
# export ROS_HOSTNAME=169.254.128.20
# export ROS_MASTER_URI=http://169.254.128.66:11311

完成。

(3)测试

在主机上运行小乌龟仿真

1
2
3
roscore

rosrun turtlesim turtlesim_node

在从机上运行键盘控制器,控制主机的小乌龟运动

1
rosrun turtlesim  turtle_teleop_key

打赏

  • 微信支付

    微信支付

  • 支付宝

    支付宝