ROS2-第十七章:网络通信,win11系统 通过镜像配置 打通 WSL 下的ros2与 同局域网(同IP段)的里其它设备上的ros2通信

win11系统 通过镜像配置 打通 WSL 下的ros2与 同IP端的里一台设备ros2通信;

一、win11 设备 先关闭wsl 关闭指令 wsl --shutdown;

二、win11 设备端 修改 .wslconfig 文件路径:C:\Users\LHAYR\.wslconfig

wsl2

processors=12

swapFile=D:\\AvM\\swap.vhdx

debugConsole=true

networkingMode=mirrored

dnsTunneling=true

firewall=true

autoProxy=true

三、win11电脑重新启动 WSL ,启动完成后 再wsl Ubuntu里验证是否修改成功,输入 ip a | grep eth

正常修改成功后,wsl 会出现192.168.1.X的 IPv4的地址(和你电脑win11 端地址同网段);

复制代码
robot@LHAYR:~$ ip a | grep eth
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether c2:bf:be:8f:31:7e brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 60:cf:84:c2:54:1a brd ff:ff:ff:ff:ff:ff
    link/ether 00:15:5d:a4:b8:f8 brd ff:ff:ff:ff:ff:ff
5: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1492 qdisc mq state UP group default qlen 1000
    link/ether bc:9d:ec:34:1f:27 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.6/24 brd 192.168.1.255 scope global noprefixroute eth2
6: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether c2:bf:be:8f:21:6e brd ff:ff:ff:ff:ff:ff

四、win11电脑 设置ros2 的域ID,只有 DOMain ID 相同的节点,才能互相发现,收发话题;

复制代码
robot@LHAYR:~$ source /opt/ros/jazzy/setup.bash
robot@LHAYR:~$ export ROS_DOMAIN_ID=0

五、运行demo接收

robot@LHAYR:~$ ros2 run demo_nodes_py listener

六、 其它设备:再同一个路由器或者IP网段下,另一台设备运行 ros2(版本相同,这里使用的是jazzy版本); 先设置export ROS_DOMAIN_ID=0;

robot@armbian:~$ source /opt/ros/jazzy/setup.bash

robot@armbian:~$ export ROS_DOMAIN_ID=0

robot@armbian:~$ export ROS_IP=192.168.1.84

七、其它设备:运行发送demo。

robot@armbian:~$ ros2 run demo_nodes_cpp talker

INFO 1786962160.159081428 talker: Publishing: 'Hello World: 1'

INFO 1786962161.159048127 talker: Publishing: 'Hello World: 2'

INFO 1786962162.159064909 talker: Publishing: 'Hello World: 3'

INFO 1786962163.159050941 talker: Publishing: 'Hello World: 4'

INFO 1786962164.159407807 talker: Publishing: 'Hello World: 5'

INFO 1786962165.159384131 talker: Publishing: 'Hello World: 6'

八、 win11设备,会接收到 发送的数据

robot@LHAYR:~$ ros2 run demo_nodes_py listener

INFO\] \[1786962199.409450095\] \[listener\]: I heard: \[Hello World: 40

INFO\] \[1786962200.404100320\] \[listener\]: I heard: \[Hello World: 41

INFO\] \[1786962201.403400571\] \[listener\]: I heard: \[Hello World: 42

INFO\] \[1786962202.404231047\] \[listener\]: I heard: \[Hello World: 43

INFO\] \[1786962203.403598134\] \[listener\]: I heard: \[Hello World: 44

INFO\] \[1786962204.406740564\] \[listener\]: I heard: \[Hello World: 45

INFO\] \[1786962205.403906505\] \[listener\]: I heard: \[Hello World: 46

十、备注 如果 win11 设备 没有显示接收到的 Hello World 信息;

如果还是收不到消息怎么办? 在镜像模式下,如果 talker 和 listener 依然无法通信,99% 是 Windows 防火墙拦截了 UDP 广播包。

10.1快速验证方法:1在 Windows 上暂时关闭"专用网络"的防火墙。

重新测试 talker 和 listener。

如果关闭防火墙后能收到消息,说明就是防火墙的问题。你可以重新开启防火墙,并手动添加入站规则放行 UDP 端口。

十一、设置win11系统的防火窗放行:

第一步:永久放行 ROS2 通信(恢复防火墙)

你现在可以重新打开 Windows 防火墙了。为了防止被拦截,我们需要在防火墙中为 ROS2 添加专门的放行规则。

请在 Windows PowerShell(以管理员身份运行) 中执行以下命令:

1. 放行 ROS2 发现机制(UDP 多播)

New-NetFirewallRule -DisplayName "ROS2 DDS Discovery (UDP)" -Direction Inbound -Protocol UDP -LocalPort 7400-7500 -Action Allow

2. 放行 ROS2 数据传输(TCP)

New-NetFirewallRule -DisplayName "ROS2 DDS Data (TCP)" -Direction Inbound -Protocol TCP -LocalPort 7400-7500 -Action Allow

3. 允许 WSL2 虚拟交换机通过防火墙(关键!)

New-NetFirewallRule -DisplayName "WSL2 vEthernet" -Direction Inbound -InterfaceAlias "vEthernet (WSL*)" -Action Allow

第二步:持久化 ROS2 环境变量

为了避免每次打开终端都要手动输入 export,我们把配置写入 ~/.bashrc。

  1. 在 WSL2 终端中执行:

echo 'export ROS_DOMAIN_ID=0' >> ~/.bashrc

source ~/.bashrc

  1. 在里一个终端设备上执行(上述6、7步骤中发送设备):

echo 'export ROS_DOMAIN_ID=0' >> ~/.bashrc

echo 'export ROS_IP=192.168.1.84' >> ~/.bashrc

source ~/.bashrc

相关推荐
嘉立创FPC苗工1 小时前
软硬共生:FPC与机器人的双向赋能,解锁智能装备进化新势能
人工智能·机器人·制造·fpc·电路板
初恋叫萱萱1 小时前
企业微信智能化办公机器人部署与大语言模型集成实操深度指南
语言模型·机器人·企业微信
正在走向自律1 小时前
爆火全网的2026机器人运动会:从赛场竞速到具身智能产业化的技术全解析
人工智能·机器人·具身智能·人形机器人·机器人运动会·百米竞速
倍利福猎头公司官方账号1 小时前
2026机器人猎头公司怎么选?收费标准与合作注意事项【HR版】
大数据·数据库·机器人·求职招聘·业界资讯
YFJ_mily2 小时前
第四届成熟系列会议|SPIC2026信号处理与智能计算 IEEE会议|连续两届完成EI&Scopus检索|广州会议
人工智能·机器人·信号处理·智能计算·ieee会议·rdlink研发家·高届数会议
鲁邦通物联网2 小时前
边缘计算物理抽象:基于GPIO隔离实现非侵入式机器人梯控
机器人·机器人梯控·agv梯控·机器人乘梯·机器人自主乘梯
FII工业富联科技服务10 小时前
Omniverse + Isaac Teleop + 合成数据:工业富联机器人大脑训练+执行落地闭环拆解
大数据·人工智能·深度学习·机器学习·机器人·制造·具身智能
YFJ_mily12 小时前
985中山大学主办|往届3个月EI检索|ACIRA2026先进计算与智能机器人会议 10.31截稿
机器人·rdlink研发家·广州会议·先进计算·智能机器人应用·985高校背书·往届会议历史
zhangrelay20 小时前
《ROS 机器人程序设计》课程教学大纲-2026- kinetic-lyrical
linux·笔记·学习·ubuntu·机器人
QYR-分析21 小时前
机器人精密运动核心部件!全球机器人关节轴承行业全景市场报告
机器人