WSL2连接FishBot小车遇到的通信问题及个人解决方案
-
问题描述
Win11+WSL2+Ubuntu22.04.5 LTS环境下,无法连接FishBot小车的主控板和雷达版,表现为MicroRos接收不到数据,
ros2 node list无节点,雷达板nc -l 8889监听不到端口信息等。问题分析
实质上是网络问题,我在实际中遇到的问题有两点:一是WSL2的网络模式与防火墙问题,二是路由器的双频合一(或多频合一)的设置问题。
解决方法
- 小车若连接路由器,一定要关闭路由器的双频合一功能,并使小车连接2.4G频段。
- 打开“网络和Internet设置”,修改当前网络的配置文件类型为专用网络。公用网络的防火墙比较严格。

- 修改
.wslconfig配置文件,位于C:\Users\<你的用户名>\.wslconfig,没有的话就手动创建一个,WSL2启动时会自动读取。在其中添加以下内容:
[wsl2] networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true此处是设置WSL2为镜像网络模式,让WSL2的IP地址与宿主机相同,并告诉WSL允许防火墙规则生效。
4. 手动放行MicroRos代理的端口,和雷达板需要的端口:
(1)允许Ping入站:New-NetFirewallRule -DisplayName "WSL2 ICMP Inbound" -Direction Inbound -Action Allow -Protocol ICMPv4 -Enabled True(2)允许 Micro-ROS Agent 端口 (UDP 8888):
New-NetFirewallRule -DisplayName "Micro-ROS Agent UDP" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 8888 -Enabled True(3)允许 雷达版 端口 (TCP 8889):
New-NetFirewallRule -DisplayName "Lidar TCP 8889" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8889 -Enabled True放行端口后也是成功接收到了数据。
以上是我在使用WSL2连接小车时遇到的问题,以及解决的方法,希望对大家有所帮助。 -
-
@小鱼 感谢鱼哥

-
按照此文章操作,除了路由器双频合一没有关闭(公司的路由器不敢乱动),验证了不用关闭双频合一WSL2也可以接收到MicroRos数据
