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

相关推荐
双星系统2 小时前
双臂机器人迎来广阔应用风口!既是工业柔性主力,也是人形机器人优质上肢配件
人工智能·机器人
MartinYeung55 小时前
当“捕食者”沦为“猎物”:Jaredfromsubway MEV机器人被黑750万美元的技术拆解与代码修复方案
机器人·区块链
GlobalInfo5 小时前
2026年显微外科手术机器人系统市场报告:市场规模、产业研究、十五五规划与发展趋势预测
大数据·人工智能·机器人
陈天伟教授8 小时前
具身智能机器人技术专业介绍(二)
机器人·具身智能机器人技术
陈天伟教授10 小时前
具身智能机器人技术专业介绍(一)
机器人·具身智能机器人技术
物联网软硬件开发-轨物科技11 小时前
【技术白皮书】并网柜在线监测物联网解决方案 · 技术白皮书
人工智能·科技·其他·机器人
雨辰AI1 天前
RAG 知识库搭建:基于人大金仓构建信创运维问答机器人|全栈国产化落地完整版
运维·ai·机器人·ai编程
一次旅行1 天前
2026.08.16 AI产业深度解读|国产大模型全面突围,算力硬件/智能安全/人形机器人四大趋势附落地方案
人工智能·安全·机器人
一知半解仙1 天前
大国博弈与机器人纪元:我们正站在怎样的历史拐点?
大数据·人工智能·机器人